- Как установить политики паролей в Linux
- Установка длины пароля в системах на основе DEB
- Установка длины пароля в системах на основе RPM
- Установка сложности пароля в системах на основе DEB
- Установка сложности пароля в системах на основе RPM
- Установка срока действия пароля в системах на основе DEB
- Установка срока действия пароля в системах на основе RPM
- Запрет использования ранее действующих паролей в системах на основе DEB
- Запрет использования ранее действующих паролей в системах на основе RPM
- DESCRIPTION
- OPTIONS
- SEE ALSO
- AUTHORS
Как установить политики паролей в 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
DESCRIPTION
pwquality.conf provides a way to configure the default password quality requirements for the system passwords. This file is read by the libpwquality library and utilities that use this library for checking and generating passwords.
The file has a very simple name = value format with possible comments starting with «#» character. The whitespace at the beginning of line, end of line, and around the «=» sign is ignored.
The libpwquality library also first reads all *.conf files from the /etc/security/pwquality.conf.d directory in ASCII sorted order. The values of the same settings are overridden in the order the files are parsed.
OPTIONS
The possible options in the file are:
difok Number of characters in the new password that must not be present in the old password. (default 1)
The special value of 0 disables all checks of similarity of the new password with the old password except the new password being exactly the same as the old one.
minlen Minimum acceptable size for the new password (plus one if credits are not disabled which is the default). (See pam_pwquality(8).) Cannot be set to lower value than 6. (default 8) dcredit The maximum credit for having digits in the new password. If less than 0 it is the minimum number of digits in the new password. (default 0) ucredit The maximum credit for having uppercase characters in the new password. If less than 0 it is the minimum number of uppercase characters in the new password. (default 0) lcredit The maximum credit for having lowercase characters in the new password. If less than 0 it is the minimum number of lowercase characters in the new password. (default 0) ocredit The maximum credit for having other characters in the new password. If less than 0 it is the minimum number of other characters in the new password. (default 0) minclass The minimum number of required classes of characters for the new password (digits, uppercase, lowercase, others). (default 0) maxrepeat The maximum number of allowed same consecutive characters in the new password. The check is disabled if the value is 0. (default 0) maxsequence The maximum length of monotonic character sequences in the new password. Examples of such sequence are ‘12345’ or ‘fedcb’. Note that most such passwords will not pass the simplicity check unless the sequence is only a minor part of the password. The check is disabled if the value is 0. (default 0) maxclassrepeat The maximum number of allowed consecutive characters of the same class in the new password. The check is disabled if the value is 0. (default 0) gecoscheck If nonzero, check whether the words longer than 3 characters from the GECOS field of the user’s passwd(5) entry are contained in the new password. The check is disabled if the value is 0. (default 0) dictcheck If nonzero, check whether the password (with possible modifications) matches a word in a dictionary. Currently the dictionary check is performed using the cracklib library. (default 1) badwords Space separated list of words that must not be contained in the password. These are additional words to the cracklib dictionary check. This setting can be also used by applications to emulate the gecos check for user accounts that are not created yet. dictpath Path to the cracklib dictionaries. Default is to use the cracklib default. enforce_for_root The module will return error on failed check even if the user changing the password is root. This option is off by default which means that just the message about the failed check is printed but root can change the password anyway. Note that root is not asked for an old password so the checks that compare the old and new password are not performed. local_users_only The module will not test the password quality for users that are not present in the /etc/passwd file. The module still asks for the password so the following modules in the stack can use the use_authtok option. This option is off by default.
SEE ALSO
AUTHORS
Powered by archmanweb, using mandoc for the conversion of manual pages.
The website is available under the terms of the GPL-3.0 license, except for the contents of the manual pages, which have their own license specified in the corresponding Arch Linux package.