- Как установить политики паролей в Linux
- Установка длины пароля в системах на основе DEB
- Установка длины пароля в системах на основе RPM
- Установка сложности пароля в системах на основе DEB
- Установка сложности пароля в системах на основе RPM
- Установка срока действия пароля в системах на основе DEB
- Установка срока действия пароля в системах на основе RPM
- Запрет использования ранее действующих паролей в системах на основе DEB
- Запрет использования ранее действующих паролей в системах на основе RPM
- Указание сложности пароля
- 1 ответ 1
- How do you set requirements (such as minimum length) on passwords?
- 3 Answers 3
Как установить политики паролей в Linux
Несмотря на то, Linux является безопасной конструкцией, есть много возможностей для нарушения безопасности. Один из них — слабые пароли. Как системный администратор, вы должны обеспечить создания надежных паролей для пользователей. Потому что, главным образом, нарушения безопасности системы происходят из-за слабых паролей. В этом руководстве описывается, как установить политики паролей, такие как длина пароля, сложность пароля, срок действия пароля и т.д., в системах на основе DEB, типа Debian, Ubuntu, Linux Mint и систем на основе RPM, типа RHEL, CentOS, Scientific Linux.
Установка длины пароля в системах на основе DEB
По умолчанию, все операционные системы 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 символов для своего пароля.
Установка длины пароля в системах на основе RPM
В RHEL, CentOS, Scientific Linux 7.x, чтобы установить длину пароля, необходимо выполнить следующую команду от пользователя root:
# authconfig --passminlen=8 --update
Для того чтобы просмотреть действующую минимальную длину пароля, запустите:
# grep "^minlen" /etc/security/pwquality.conf
В системах RHEL, CentOS, Scientific Linux 6.x отредактируйте файл /etc/pam.d/system-auth:
password requisite pam_cracklib.so try_first_pass retry=3 type=
и добавьте в конце строки:
Как указано выше, минимальная длина пароля составляет 8 символов.
Установка сложности пароля в системах на основе DEB
Этот параметр обеспечивает соблюдение, как много классов, то есть верхний регистр, нижний регистр, и другие символы, должны быть в пароле.
Сначала установите библиотеку проверки качества пароля, используя команду:
$ 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
Установка сложности пароля в системах на основе RPM
In RHEL 7.x/CentOS 7.x/Scientific Linux 7.x:
Чтобы установить хотя бы одну обязательную строчную букву в пароле, запустите:
# authconfig --enablereqlower --update
Чтобы проверить настройки, запустите:
# grep "^lcredit" /etc/security/pwquality.conf
Аналогично, установите по крайней мере одну пописную букву в пароле, используя команду:
# authconfig --enablerequpper --update
Проверим установку запустив следующую команду:
# grep "^ucredit" /etc/security/pwquality.conf
Вывод должен содержать следующее:
Чтобы установить хотя бы одну цифру в пароле, запустите:
# authconfig --enablereqdigit --update
# grep "^dcredit" /etc/security/pwquality.conf
Чтобы установить любой другой обязательный символ в пароле, запустите:
# authconfig --enablereqother --update
# grep "^ocredit" /etc/security/pwquality.conf
В системах RHEL 6.x/CentOS 6.x/Scientific Linux 6.x , редактируем файл /etc/pam.d/system-auth от пользователя root:
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 символов, минимум одну прописную букву, одну строчную букву, одну цифру и еще один специальный символ.
Установка срока действия пароля в системах на основе DEB
Теперь мы собираемся установить следующие политики:
Чтобы установить эту политику, отредактируйте:
Задайте значения в соответствии с вашими требованиями. Например:
PASS_MAX_DAYS 100 PASS_MIN_DAYS 0 PASS_WARN_AGE 7
Как вы видите в приведенном выше примере, пользователь должен сменить пароль один раз в каждые 100 дней, а предупреждающее сообщение появится за 7 дней до истечения срока действия пароля.
Помните, что эти настройки будут влиять на вновь созданных пользователей.
Чтобы установить максимальное количество дней между изменением пароля для существующих пользователей, вы должны выполнить следующую команду:
Чтобы установить минимальное количество дней между сменой пароля, запустите:
Чтобы установить предупреждение до истечения срока действия пароля, запустите:
Чтобы просмотреть действующие политики для существующих пользователей, запустите:
Где 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 дней до истечения срока действия пароля.
Установка срока действия пароля в системах на основе RPM
Все действия аналогичны действиям в системах на основе DEB
Запрет использования ранее действующих паролей в системах на основе 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 использованных паролей.
Запрет использования ранее действующих паролей в системах на основе RPM
Для RHEL 6.x и RHEL 7.x, и для их клон-систем, таких как CentOS, Scientific Linux используются одинаковые команды.
Отредактируем /etc/pam.d/system-auth от пользователя root:
Найдите следующую строку и добавьте remember=5:
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
Теперь вы знаете, что такое политика паролей в Linux, и как устанавливать разные политики паролей в системах на основе DEB и RPM.
Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:
CC Attribution-Noncommercial-Share Alike 4.0 International
Указание сложности пароля
Как требовать от всех пользователей использования сложного пароля для входа в систему (буквы, цифры и символы).
вроде нынче по умолчанию так и есть. или вы про организационные моменты, а не технические? // p.s. — «буквы, цифры» — это, кстати, «символы». наверно, вы подразумевали знаки препинания?
1 ответ 1
Обычный подход — установить и настроить модуль pam_cracklib . Инструкций с точными последовательностями действий для конкретных дистрибутивов много в гугле по запрусу «имя дистрибутива cracklib», а общий принцип действий вкратце выглядит как-то так:
- Собственно установить модуль pam_cracklib.so , обычно это отдельный пакет с именем вроде pam-cracklib . Обычно это так или иначе сразу включает его с параметрами по умолчанию.
- Добавить/изменить строчку для этого модуля в подходящий файл в /etc/pam.d/ (обычно «подходящий» — это тот, который включается в /etc/pam.d/passwd ; в Gentoo, например, это /etc/pam.d/system-auth ):
password required pam_cracklib.so minlen=8 dcredit=-1 ocredit=-1 lcredit=0 ucredit=0 minclass=3
- minlen=8 — минимальная длина 8 символов
- dcredit=-1 — требовать одну цифру
- ocredit=-1 — требовать один спец. символ
- lcredit=0 — не уменьшать требование длины при использовании строчных букв
- ucredit=0 — не уменьшать требование длины при использовании заглавных букв
- minclass=3 — требовать 3 различных класса символов (строчные/заглавные/цифры/символы)
Подробности по параметрам см. в man pam_cracklib . По формату файла — в man pam.d
How do you set requirements (such as minimum length) on passwords?
Is there any way to set up minimum passcode requirements, such as a minimum length, requirement of mixed case alphanumerics and at least 1 symbol in the passcode, and enforce that at passcode changes?
3 Answers 3
Password complexity in Ubuntu is controlled by PAM. Unfortunately, PAM is «typically Unix» like in its approach. Meaning that it spreads its configuration through a large number of very confusing files.
The file that controls password complexity is:
password [success=1 default=ignore] pam_unix.so obscure sha512
Which defines the basic rules for password complexity. You can add a minimum length override by changing it to:
password [success=1 default=ignore] pam_unix.so obscure sha512 minlen=12
or whatever minimum you want. As you can see, the default already defines some basic obscurity rules. These basic rules can be seen in:
There are a large number of pam modules that can be installed.
You will need to hunt down the documenation for them I’m afraid. But the «cracklib» is a common addition.
UPDATE: I should have pointed out that the default «obscure» parameter includes tests for complexity based on previous passwords and simplicity (length, number of different types of character). The example in the manpage shows cracklib in action. Install libpam_cracklib to get that working.
Also, once you have worked out what to change, the changes are the same in other files so that you can enforce the same (or different) password checks for SSH and other applications.