Как установить политики паролей в Linux

Несмотря на то, Linux является безопасной конструкцией, есть много возможностей для нарушения безопасности. Один из них - слабые пароли. Как системный администратор, вы должны обеспечить создания надежных паролей для пользователей. Потому что, главным образом, нарушения безопасности системы происходят из-за слабых паролей. В этом руководстве описывается, как установить политики паролей, такие как длина пароля, сложность пароля, срок действия пароля и т.д., в системах на основе DEB, типа Debian, Ubuntu, Linux Mint и систем на основе RPM, типа RHEL, CentOS, Scientific Linux.

По умолчанию, все операционные системы Linux, требуют длину пользовательского пароля не менее 6 символов. Настоятельно советую вам не устанавливать длину пароля ниже этого предела. Кроме того, не используйте свое настоящее имя, имя родителя / супруга / ребенка или дату вашего рождения в качестве пароля. Даже новичок-хакер может легко сломать такие пароли за считанные минуты. Хороший пароль должен содержать более 6 символов, включающие число, заглавную букву и специальный символ.

Обычно файлы конфигурации, связанные с паролем и идентификацией, в операционных системах на базе DEB хранятся в каталоге /etc/pam.d/.

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

$ sudo nano /etc/pam.d/common-password

Найдите следующую строку:

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

И добавьте в конце строки minlen = 8. В данном случае я устанавливаю минимальную длину пароля равное 8 символам.

password [success=2 default=ignore] pam_unix.so obscure sha512 minlen=8

Сохраните и закройте файл. Итак, теперь пользователи не могут использовать менее 8 символов для своего пароля.

В RHEL, CentOS, Scientific Linux 7.x, чтобы установить длину пароля, необходимо выполнить следующую команду от пользователя root:

# authconfig --passminlen=8 --update

Для того чтобы просмотреть действующую минимальную длину пароля, запустите:

# grep "^minlen" /etc/security/pwquality.conf

Пример вывода:

minlen = 8

В системах RHEL, CentOS, Scientific Linux 6.x отредактируйте файл /etc/pam.d/system-auth:

# nano /etc/pam.d/system-auth

Найдите следующую строку:

password requisite pam_cracklib.so try_first_pass retry=3 type=

и добавьте в конце строки:

minlen=8

Как указано выше, минимальная длина пароля составляет 8 символов.

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

Сначала установите библиотеку проверки качества пароля, используя команду:

$ sudo apt-get install libpam-pwquality

Затем отредактируйте файл /etc/pam.d/common-password:

$ sudo nano /etc/pam.d/common-password

Чтобы установить по крайней мере одну обязательную прописную букву в пароле, добавьте ucredit = -1 в конце следующей строки:

password        requisite                       pam_pwquality.so retry=3 ucredit=-1

Также вы можете задайть по крайней мере одну обязательную строчную букву в пароле, как показано ниже:

password        requisite                       pam_pwquality.so retry=3 dcredit=-1

Чтобы задать обязательный любой другой символ в пароле добавьте ocredit=-1:

password        requisite                       pam_pwquality.so retry=3 ocredit=-1

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

Вы также можете установить минимальное/максимальное количество разрешенных классов в пароле.

В следующем примере показана установка минимального количества требуемых классов символов для нового пароля:

password        requisite                       pam_pwquality.so retry=3 minclass=2

In RHEL 7.x/CentOS 7.x/Scientific Linux 7.x:

Чтобы установить хотя бы одну обязательную строчную букву в пароле, запустите:

# authconfig --enablereqlower --update

Чтобы проверить настройки, запустите:

# grep "^lcredit" /etc/security/pwquality.conf

Вывод должен содержать:

lcredit = -1

Аналогично, установите по крайней мере одну пописную букву в пароле, используя команду:

# authconfig --enablerequpper --update

Проверим установку запустив следующую команду:

# grep "^ucredit" /etc/security/pwquality.conf

Вывод должен содержать следующее:

ucredit = -1

Чтобы установить хотя бы одну цифру в пароле, запустите:

# authconfig --enablereqdigit --update

Для проверки запустите:

# grep "^dcredit" /etc/security/pwquality.conf

Результат должен быть:

dcredit = -1

Чтобы установить любой другой обязательный символ в пароле, запустите:

# authconfig --enablereqother --update

Проверяем настройки:

# grep "^ocredit" /etc/security/pwquality.conf

Получаем результат:

ocredit = -1

В системах RHEL 6.x/CentOS 6.x/Scientific Linux 6.x , редактируем файл /etc/pam.d/system-auth от пользователя root:

# nano /etc/pam.d/system-auth

Найдите следующую строку:

password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8

и добавьте следующее в конце строки dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1

Должна получится такая строка:

password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1

В соответствии с приведенным выше строкой, пароль должен содержать не менее 8 символов, минимум одну прописную букву, одну строчную букву, одну цифру и еще один специальный символ.

Теперь мы собираемся установить следующие политики:

  1. Максимальное количество дней использования пароля.
  2. Минимальное количество дней между изменениями пароля.
  3. Предупреждение о количестве дней до истечения срока действия пароля.

Чтобы установить эту политику, отредактируйте:

$ sudo nano /etc/login.defs

Задайте значения в соответствии с вашими требованиями. Например:

PASS_MAX_DAYS 100 
PASS_MIN_DAYS 0 
PASS_WARN_AGE 7

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

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

Чтобы установить максимальное количество дней между изменением пароля для существующих пользователей, вы должны выполнить следующую команду:

$ sudo chage -M <days> <username>

Чтобы установить минимальное количество дней между сменой пароля, запустите:

$ sudo chage -m <days> <username>

Чтобы установить предупреждение до истечения срока действия пароля, запустите:

$ sudo chage -W <days> <username>

Чтобы просмотреть действующие политики для существующих пользователей, запустите:

$ sudo chage -l sk

Где sk существующий пользователь в нашей системе.

После запуска данной команды мы получим примерно следующее:

Последний раз пароль был изменён				: мар 24, 2018 
Срок действия пароля истекает					: никогда 
Пароль будет деактивирован через				: никогда 
Срок действия учётной записи истекает				: никогда 
Минимальное количество дней между сменой пароля			: 0 
Максимальное количество дней между сменой пароля		: 99999 
Количество дней с предупреждением перед деактивацией пароля	: 7

Как вы видите из приведенного выше вывода команды, срок действия пароля не ограничен.

Для изменения срока действия пароля существующего пользователя используем команду:

$ sudo chage -E 24/06/2019 -m 5 -M 90 -I 10 -W 10 sk

Вышеупомянутая команда установит срок действия пароля пользователя «sk» до 24/06/2019. Установит минимальное количество дней между сменой пароля равное 5 дням, а максимальное количество дней между изменениями пароля устанавливается на 90 дней. Учетная запись пользователя будет заблокирована автоматически через 10 дней и предупреждающее сообщение начнет отображаться за 10 дней до истечения срока действия пароля.

Все действия аналогичны действиям в системах на основе DEB

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

Для этого отредактируйте файл /etc/pam.d/common-password:

$ sudo nano /etc/pam.d/common-password

Найдите следующую строку и добавьте remember=5:

password        [success=2 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512 remember=5

Вышеупомянутая политика запретит пользователям использовать последние 5 использованных паролей.

Для RHEL 6.x и RHEL 7.x, и для их клон-систем, таких как CentOS, Scientific Linux используются одинаковые команды.

Отредактируем /etc/pam.d/system-auth от пользователя root:

# vi /etc/pam.d/system-auth

Найдите следующую строку и добавьте remember=5:

password     sufficient     pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

Теперь вы знаете, что такое политика паролей в Linux, и как устанавливать разные политики паролей в системах на основе DEB и RPM.

Это все на данный момент.