Как вы устанавливаете требования (например, минимальную длину) к паролям?

18

Есть ли способ установить минимальные требования к паролю, такие как минимальная длина, требование использования буквенно-цифровых символов в смешанном регистре и не менее 1 символа в пароле, и принудительно применять его при изменении пароля?

Томас Уорд
источник

Ответы:

21

Сложность пароля в Ubuntu контролируется PAM. К сожалению, PAM "типично Unix", как в своем подходе. Это означает, что он распространяет свою конфигурацию через большое количество очень запутанных файлов.

Файл, который контролирует сложность пароля:

/etc/pam.d/common-password

Есть строка:

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

Который определяет основные правила сложности пароля. Вы можете добавить минимальное переопределение длины, изменив его на:

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

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

man pam_unix

Ищите «неясный».

Существует большое количество модулей pam, которые можно установить.

apt-cache search libpam-

Должен показать вам их.

Я боюсь, что вам придется выслеживать документацию для них. Но "cracklib" является обычным дополнением.

ОБНОВЛЕНИЕ: я должен был указать, что параметр по умолчанию «неясный» включает в себя тесты на сложность, основанные на предыдущих паролях и простоте (длина, количество символов разных типов). Пример на странице руководства показывает cracklib в действии. Установите libpam_cracklib, чтобы это работало.

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

Джулиан Найт
источник
Согласно man pam_unixминимальной длине пароля по умолчанию составляет 6 символов, если вы ищете minlen.
Тимо
это не работает для Ubuntu 18.04 - даже с этой настройкой я могу поставить любой пароль, какой захочу (короткий, палиндром, ..) - мне просто нужно повторить такой пароль 4x :(
xhudik
Когда вы говорите «не работает», неясно, что вы имеете в виду. Вы хотите сказать , что это действительно работает , но что повторении короткий пароль 4 раза это своего рода «обход» - если да, то с уважением, вы не правы, что по - прежнему сильный код доступа. В противном случае, не могли бы вы уточнить?
Джулиан Найт
1

Значения пароля контролируются в файле

/etc/pam.d/common-password

Для получения дополнительной информации о том, как изменить файл, смотрите man-страницу pam_unix.

Митч
источник
1
Вы перечислили pam_unix (5), правильная страница - pam_unix (8) linux.die.net/man/8/pam_unix . На самом деле, онлайн-версии man-страницы, по некоторым причинам, не содержат важный раздел по параметру «скрытый» - тот, который я включил в свой ответ. Если вы сделаете это man pam_unix, вы сможете увидеть это все же.
Джулиан Найт
1
@JulianKnight Спасибо за комментарий. Я исправил ссылку :)
Митч
1

Предустановленные модули PAM позволяют устанавливать основные требования в свете сложности. Есть хороший модуль, который является преемником модуля pam_cracklib - pam_pwquality. Чтобы установить его, наберите следующее

apt-get install libpam-pwquality

тогда познакомьтесь с этим

man pam_pwquality

особенно с разделом «Опции».

Теперь вы можете редактировать общий пароль в /etc/pam.d/

vi /etc/pam.d/common-password

найдите строку, которая содержит следующий оператор "password Реквизит pam_pwquality.so" и после pam_pwquality.so прикрепите ваши параметры следующим образом

password        requisite         pam_pwquality.so minlen=16 ucredit=-4 retry=3

что означает «минимальный размер пароля составляет 16 символов, где минимум 4 из них в верхнем регистре. Запрашивать пароль у пользователя 3 раза.

pam_pwquality позволяет вам устанавливать более сложные требования к паролям в сочетании с другими модулями, такими как pam_pwhistory. Удачи

Петр Ковальчик
источник