Несмотря на то, 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 символов, минимум одну прописную букву, одну строчную букву, одну цифру и еще один специальный символ.
Теперь мы собираемся установить следующие политики:
Чтобы установить эту политику, отредактируйте:
$ 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.
Это все на данный момент.