Как запретить пользователям менять свой пароль на один из последних паролей X?

9

У меня есть Ubuntu GNOME 15.10 с системой GNOME 3.18, которую я хотел бы настроить таким образом, чтобы пользователи, использующие ее, не могли установить новый пароль в качестве одного из предыдущих паролей X, как этого можно достичь?

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

Примечание . История последних паролей X не должна храниться небезопасным незашифрованным образом, фактически они должны храниться таким же или аналогичным образом, как текущий пароль (как соленый хеш).

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

Обновление информации:

Как и было запрошено, здесь находится содержимое моего (за исключением комментариев вверху) /etc/pam.d/common-passwordфайла:

# here are the per-package modules (the "Primary" block)
password        [success=1 default=ignore]      pam_unix.so obscure sha512
# here's the fallback if no module succeeds
password        requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password        required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)
password        optional        pam_gnome_keyring.so
# end of pam-auth-update config
guntbert
источник
Обратите внимание, что а) принуждение пользователей изменить свой пароль и б) предотвращение старых паролей X, где Х> 2, может снизить безопасность ... "Хм, лучше просто добавьте 1 к моему старому паролю ... И напишите это в заметке postit, чтобы напомнить я ... "
Тим
@Tim: В мою систему уже встроены механизмы, которые не позволяют паролю быть похожим на последний.
Это часто так же плохо - это гарантирует, что пользователь запишет это. Я также не убежден, что изменение имеет какие-то преимущества - и, безусловно, имеет недостатки.
Тим
@Tim: Кроме того, вы только что напомнили мне о чем-то, что я забыл включить, я обновил свой вопрос с ним (хотя учтите, что хотя это было бы неплохо, если ответ не может показать, как сделать эту дополнительную вещь, то я был бы в порядке с получить то, что я изначально просил).
@Tim: У меня будут другие правила, запрещающие им делать это, и я буду пристально следить за ними.

Ответы:

17

Вы можете настроить PAM, чтобы сделать это для вас. Просто откройте /etc/pam.d/common-passwordи добавьте use_authtokк первой passwordстроке (той, которая вызывает модуль pam_unix), чтобы она выглядела примерно так:

password    [success=1 default=ignore]  pam_unix.so obscure sha512 use_authtok

Теперь добавьте эту строку над ранее измененной строкой:

password    required    pam_pwhistory.so  remember=X

где X- количество предыдущих паролей, по которым вы хотите проверить повторяющийся пароль.

Здесь предыдущие Xпароли будут храниться в хешированном виде на месте/etc/security/opasswd

Поэтому вам нужно создать файл тогда и только тогда, когда он не существует, и назначить ему разрешение 600 ( -rw-------):

sudo touch /etc/security/opasswd
sudo chmod 600 /etc/security/opasswd
daltonfury42
источник
Хотя выполнение, как вы говорите, похоже, означает, что если я пытаюсь установить пароль, который я использовал ранее в качестве одного из моих последних паролей X в gnome-control-center, он просто ничего не делает и вынуждает меня принудительно выйти из приложения, кажется, не очень хорошо работает ... Что именно он делает на 14.04? Потому что я ожидал, что он покажет мне, что пароль не подходит, а не просто зависает, когда я прошу его изменить его.
@ParanoidPanda Очень интересно. Что вы получаете, когда пытаетесь изменить пароль с помощью passwd? Это то, что происходит со мной. Когда я изменяю использование, passwdя получаю «Пароль уже использовался. Выберите другой». и когда я пытаюсь сменить пароль из графического интерфейса, он не позволяет мне сменить пароль (кнопка «Изменить» неактивна) и написано «Слишком слабый пароль».
daltonfury42
Следует отметить, что я сообщаю из Ubuntu 14.04 под управлением Unity, а не Gnome.
daltonfury42
Я проверил это снова, на этот раз в установке Ubuntu GNOME 16.04 Beta 2 с GNOME 3.20, и я обнаружил, что он работает так же, как вы описали с passwdкомандой, но не в gnome-control-center, он просто зависает после того, как позволяет мне нажать Change. Хотя, возможно, это ошибка, мне нужно подать отчет о ...
2
@ParanoidPanda Это из-за паршивого программирования в gnome-control-center, а не потому, что это не работает. Конфигурация PAM, безусловно, лучший способ сделать это.
Сет