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

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

На 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 дней работает, но:

  • Это требует дополнительной работы.
  • Аудиторы безопасности могут не быть счастливыми.

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

4 ответа

Решение

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

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

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

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

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

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

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

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

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

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

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

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

chage -l username

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

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

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

Другие вопросы по тегам