Как применить политику сложности пароля?

14

Мне нужно настроить сервер Ubuntu для соблюдения строгой политики паролей компании, которая определяет следующее:

  • хотя бы один верхний регистр
  • хотя бы одна строчная буква
  • хотя бы одна цифра
  • хотя бы один специальный символ

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

Любая помощь будет оценена.

Стивен Р.К.
источник

Ответы:

19

Сложность пароля обеспечивается pam_cracklibмодулем.

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

В окне терминала ( Ctrl+ Alt+ T) введите следующую команду:

sudo -i gedit /etc/pam.d/common-password

Добавьте следующую строку в файл (до pam_unix.soили в зависимости от того, какой модуль PAM используется в основном для аутентификации, как видно из примеров на странице руководства) и сохраните файл:

password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

Этот оператор реализует следующие требования к паролю:

  • dcredit == цифра
  • ucredit == заглавные буквы
  • lcredit == строчные буквы
  • ocredit== другой символ (включая специальные символы ! , @ # $ %)

Это должно удовлетворить ваши требования.

Вы также можете использовать переменные minlengthи retriesдополнительно ограничить требования к паролю.

Вот еще один хороший пример изменения политики паролей таким способом: размещение в /etc/pam.d/common-passwordфайле следующей строки :

password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

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

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

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

Смотрите также эту статью о настройке более строгих правил политики паролей в Linux .

Кевин Боуэн
источник
3
Отличный ответ! Я бы добавил, что в отношении повторных попыток важно соблюдать осторожность при рассмотрении политики, запрещающей пользователям входить в систему, у которых слишком много недавних неудачных попыток входа в систему. Это может привести к жизнеспособности одной из самых простых и легко осуществляемых атак типа «отказ в обслуживании» для учетной записи (попытайтесь выполнить вход X несколько раз, пока учетная запись не будет «заблокирована», а затем законный пользователь не сможет войти в нее) ,
Элия ​​Каган
Фантастический ответ, спасибо :) Хотя один вопрос, кажется, что rootпользователь может игнорировать требования к паролю ... Возможно ли применить это также и для пользователя root?
Стивен Р.К.
@Valorin Какую часть требований к паролю не соблюдает пользователь root?
Кевин Боуэн
@maggotbrain Любое из них, оно выдает предупреждение, но все равно сохраняет его, это был пароль 'snare': paste.ubuntu.com/1543154
Стивен Р.К.
@Valorin Итак, вы включили учетную запись с именем «root» и можете использовать эту учетную запись с этим паролем, правильно? Какие предупреждения вы получаете? К сожалению, у меня нет машины с включенной учетной записью root, чтобы проверить это самостоятельно. Это звучит как ошибка, но нужно больше информации.
Кевин Боуэн
0

Там в форке pam_cracklib Томаса Мраз: pam_pwquality с несколькими лучшими вариантами.

Добавьте его с помощью apt install libpam-pwquality или passwd будет жаловаться:

Модуль неизвестен

кадуцей
источник