Назад | Перейти на главную страницу

Есть ли способ предотвратить истечение срока действия пароля, если у пользователя нет пароля?

Хорошо, мы все заботимся о безопасности, поэтому пользователи должны регулярно менять свои пароли (кто сказал, что пароли похожи на нижнее белье?).

В redhat и centos (5.x и 6.x) можно сделать так, чтобы срок действия каждого реального пароля пользователя истек через 45 дней, и предупредить их за 7 дней до этого.

Запись в / etc / shadow будет выглядеть так:

testuser:$6$m8VQ7BWU$b3UBovxC5b9p2UxLxyT0QKKgG1RoOHoap2CV7HviDJ03AUvcFTqB.yiV4Dn7Rj6LgCBsJ1.obQpaLVCx5.Sx90:15588:1:45:7:::

Он работает очень хорошо, и большинство пользователей часто меняют свои пароли.

Некоторым пользователям удобно не использовать какой-либо пароль, кроме открытого ключа ssh (и я бы хотел их поддержать).

Затем через 45 дней они не могут войти в систему, так как забыли свой пароль, и их просят изменить его.

Есть ли способ предотвратить истечение срока действия пароля тогда и только тогда, когда пароль отключен?

Настройка testuser:!!:15588:1:45:7::: в / etc / shadow не работало: testuser просят сменить пароль через 45 дней.

Конечно, установка срока действия пароля на 99999 дней работает, но:

Есть ли общесистемный параметр, который предлагал бы пользователю изменить пароль с истекшим сроком, только если он у него действительно есть?

Вы используете традиционные файлы passwd / shadow unix? Если да, то пробовали ли вы отключить UsePAM в конфиге sshd?

Я тестировал отключение UsePAM на OpenSSH 5.8_p1, и пользователи, проходящие аутентификацию с помощью пароля, должным образом отклоняются, если срок действия их учетной записи истек, и их должным образом просят изменить свой пароль; и ничего не спрашивается при входе с ключом (и когда UsePAM включен, я могу подтвердить, что при использовании ключа система по-прежнему запрашивает смену пароля.)

В соответствии с этот ответ на SU, пользователь должен по-прежнему иметь возможность войти в систему со своим закрытым ключом, даже если срок его действия истек.

Я думаю, что «ключ» в том, что у пользователя действительно есть пароль, срок действия которого истекает. Закрытый ключ - это еще один способ входа в систему. Я считаю, что если вы не отключите вход на основе пароля (настройка PasswordAuthentication в sshd_config), пользователь все еще может войти со своим паролем.

В sshd_config есть еще один параметр, который называется PermitEmptyPasswords, значение по умолчанию - «нет». Если вы удалите пароль пользователя, единственный способ войти в систему должен быть с его закрытым ключом. Поскольку на этом этапе пароля нет, возможно, срок его действия не истечет.

Это просто основано на ssh. Есть и другие области, на которые стоит обратить внимание, например console и su. Я не уверен, как они обрабатывают пустые пароли.

В крайнем случае вы всегда можете поместить bash-скрипт в cron, чтобы проверить, у каких пользователей есть ключи, и соответственно установить срок их действия. Я бы также сделал обратное: если у пользователя нет ключа, убедитесь, что срок его действия не слишком далек.

Лично я бы сделал всех пользователей парами открытых / закрытых ключей.

Таким образом, вы можете запросить информацию через

chage -l username

И вы можете отменить общесистемное значение по умолчанию с помощью следующих

chage -I -1 -m 0 -M 99999 -E -1 username

Я не думаю, что вы можете установить что-нибудь, что говорит ... у пользователя нет пароля, поэтому игнорируйте его.

Если пользователи не помнят свои пароли, это, конечно, потому, что им не нужно их использовать. Я бы рекомендовал использовать централизованную систему аутентификации, такую ​​как LDAP, чтобы у каждого пользователя был только один пароль, который дает ему доступ к все.

Это решает сразу несколько проблем:

  • Вам не нужно беспокоиться об управлении индивидуальными паролями на каждом хосте
  • Пользователи будут помнить свои пароли, потому что они им нужны.
  • Вы можете управлять политикой паролей в одном центральном месте (каталог LDAP) и заставлять пользователей менять пароль там, когда это необходимо (подумайте о письме, предупреждающем их об истечении срока действия за несколько дней до этого и т. Д.)
  • У вас есть централизованное управление пользователями, что позволяет сэкономить время, когда необходимо создать новую учетную запись или отключить старую (кто никогда не слышал «как можно скорее отключить учетную запись этого пользователя во всех системах»?)