Настройка локальной политики паролей Linux: Сложность и Срок действия
На этом шаге вы узнаете, как усилить безопасность системы Linux путем настройки надежной политики паролей. Сильная политика паролей является фундаментальным механизмом безопасности, который обеспечивает два критически важных аспекта: сложность и срок действия. Правила сложности гарантируют, что пароли трудно угадать, требуя смешивания типов символов, в то время как правила срока действия заставляют пользователей периодически менять свои пароли, снижая риск компрометации учетных данных. Вы будете использовать стандартные утилиты Linux для изменения системных файлов конфигурации и применения этих политик.
Сначала рассмотрим сложность пароля. В современных системах на базе Debian, таких как Ubuntu, качество пароля управляется модулем pam_pwquality. Его конфигурация хранится в файле /etc/security/pwquality.conf.
Начнем с изучения настроек по умолчанию. Используйте команду cat для просмотра содержимого конфигурационного файла. Мы будем использовать grep для фильтрации закомментированных строк и пустых строк, чтобы сделать вывод более чистым.
grep -vE '^#|^$' /etc/security/pwquality.conf
Вы можете увидеть некоторые настройки по умолчанию, или файл может быть пуст с точки зрения активных конфигураций. Теперь мы применим более строгую политику. Нам нужно отредактировать этот файл с правами администратора, поэтому мы будем использовать sudo с редактором nano.
sudo nano /etc/security/pwquality.conf
Добавьте следующие строки в файл, чтобы применить нашу новую политику. Эти настройки требуют, чтобы пароль был не менее 10 символов в длину и содержал как минимум одну цифру, одну заглавную букву и одну строчную букву.
minlen = 10
dcredit = -1
ucredit = -1
lcredit = -1
Разберем эти опции:
minlen = 10: Устанавливает минимально допустимую длину пароля в 10 символов.
dcredit = -1: Требует как минимум одну цифру. Отрицательное число означает "как минимум одна".
ucredit = -1: Требует как минимум один заглавный символ.
lcredit = -1: Требует как минимум один строчный символ.
После добавления этих строк сохраните файл и выйдите из nano, нажав Ctrl+X, затем Y и Enter.
Теперь перейдем к настройке срока действия пароля (password aging). Эти настройки определяют максимальный и минимальный срок действия пароля. Значения по умолчанию для новых учетных записей пользователей хранятся в /etc/login.defs.
Используйте grep для поиска соответствующих настроек в этом файле.
grep -E 'PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_WARN_AGE' /etc/login.defs
Вы увидите значения по умолчанию, где PASS_MAX_DAYS часто устанавливается очень большим числом, что фактически отключает истечение срока действия.
## PASS_MAX_DAYS Maximum number of days a password may be used.
PASS_MAX_DAYS 99999
## PASS_MIN_DAYS Minimum number of days allowed between password changes.
PASS_MIN_DAYS 0
## PASS_WARN_AGE Number of days warning is given before a password expires.
PASS_WARN_AGE 7
Давайте установим политику истечения срока действия в 9000 дней. Откройте файл с помощью sudo nano.
sudo nano /etc/login.defs
Найдите строку PASS_MAX_DAYS и измените ее значение с 99999 на 9000. Вы также можете установить PASS_MIN_DAYS в 7, чтобы предотвратить слишком частое изменение пароля пользователями.
## PASS_MAX_DAYS Maximum number of days a password may be used.
PASS_MAX_DAYS 9000
## PASS_MIN_DAYS Minimum number of days allowed between password changes.
PASS_MIN_DAYS 7
## PASS_WARN_AGE Number of days warning is given before a password expires.
PASS_WARN_AGE 14
Сохраните файл и выйдите из nano. Эти настройки в /etc/login.defs применяются к пользователям, созданным после этого изменения. Чтобы применить политику к существующему пользователю, например, нашему пользователю labex, мы используем команду chage.
Сначала проверьте текущую информацию о сроке действия для пользователя labex.
sudo chage -l labex
Вывод покажет, что срок действия пароля никогда не истекает.
Last password change : Jul 22, 2023
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
Теперь используйте chage с флагом -M, чтобы установить максимальное количество дней в 9000 для пользователя labex.
sudo chage -M 9000 labex
Проверьте изменение, снова проверив информацию о сроке действия пользователя.
sudo chage -l labex
Теперь вы увидите, что дата Password expires была обновлена, и максимальное количество дней установлено в 9000, что успешно применяет политику срока действия.
Last password change : Jul 22, 2023
Password expires : Jan 01, 2048
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 9000
Number of days of warning before password expires : 7
Теперь вы успешно настроили как политику сложности пароля, так и политику срока его действия в вашей системе Linux.