Как установить политику паролей в Linux
В этом руководстве описывается, как установить политики паролей, такие как длина пароля, сложность пароля, пароль срок действия. и т. д. в системах на базе DEB, таких как Debian, Ubuntu и Linux Mint, а также в системах на основе RPM, таких как Fedora, RHEL и CentOS.
Введение
Несмотря на то, что Linux изначально безопасен, существует еще много шансов на нарушение безопасности. Один из них — слабые пароли.
Как системный администратор, вы должны установить надежный пароль для пользователей и обеспечить соблюдение политики надежных паролей. Потому что очень много взломов системы происходит из-за слабых паролей.
В этом руководстве мы узнаем, как реализовать некоторые важные политики паролей Linux с использованием Подключаемого метода аутентификации, вскоре известного как PAM, чтобы повысить безопасность вашей системы Linux.
Прежде чем перейти к этой теме, я хотел бы перечислить несколько важных ключевых элементов, которые следует запомнить перед настройкой политики паролей.
Рекомендации по использованию паролей и лучшие практики
Убедитесь, что пароль достаточно длинный
В большинстве сред рекомендуемая длина пароля составляет 8 символов.
Рекомендуется использовать восьмизначный пароль, поскольку он достаточно длинный, чтобы обеспечить адекватную безопасность, и в то же время достаточно короткий, чтобы пользователи могли его легко запомнить. Я настоятельно советую вам не опускаться ниже этого предела.
Было обнаружено, что длина пароля является основным фактором, определяющим надежность пароля. Чем длиннее пароль, тем больше времени потребуется на его взлом.
Слишком короткие пароли подвержены атакам методом перебора, а также атакам по словарю с использованием слов и часто выбираемых паролей.
На самом деле, более длинный пароль, даже состоящий из более простых слов или конструкций, намного лучше, чем короткий пароль со специальными символами.
Избегайте легко угадываемых паролей
Еще один важный момент, который следует помнить при выборе пароля, — избегать часто используемых паролей.
Что еще более важно, никогда не используйте свое настоящее имя, имя родителей/супруга/детей, название школы/колледжа или дату рождения в своем пароле.
Возможно, вы добавили некоторые свои личные и большую часть информации об образовании и профессиональной деятельности в социальные (например, Facebook) и профессиональные сети (например, LinkedIn). Злоумышленник может попытаться угадать пароль по этим данным. Следовательно, вам не следует включать вышеупомянутые данные в свои пароли.
Избегайте слишком сложных паролей
Некоторые администраторы Linux налагают слишком большие ограничения на выбор пароля пользователями. Хотя это лучше всего для безопасности, это также может быть контрпродуктивно.
Пользователи будут разочарованы политикой надежных паролей и будут выбирать более плохие пароли, чтобы соответствовать политике паролей.
Например, пользователь усложнит свой пароль, просто добавив цифру или специальный символ, например «1» или «!» до конца или набрав первую букву пароля с заглавной буквы.
Для взлома таких паролей может потребоваться больше времени, но злоумышленники знают, что пользователи склонны использовать эти шаблоны, и могут попытаться угадать пароль на основе этих шаблонов.
Избегайте сокращения срока действия пароля
Это еще одно часто налагаемое ограничение безопасности. Это создает ненужную нагрузку для пользователей. Допустим, вы установили срок действия пароля на 30 дней. Таким образом, пользователю приходилось каждый месяц устанавливать новый пароль, и это определенно не обрадовало пользователей.
Вместо того, чтобы устанавливать более короткий срок действия, вы можете увеличить длину пароля.
Использовать многофакторную аутентификацию
По возможности старайтесь использовать методы 2FA или MFA. Это одна из лучших практик обеспечения безопасности, которой каждый должен следовать для защиты своих систем.
В общем, хороший пароль всегда должен содержать не менее 8 символов, включая цифру, заглавную букву и специальный символ. Если возможно, используйте многофакторную аутентификацию.
Что ж, давайте продолжим и узнаем, как установить политику паролей Linux.
Установите политику паролей в Linux
Как я уже сказал, мы собираемся реализовать следующие 3 политики паролей:
- Длина пароля,
- Сложность пароля,
- Срок действия пароля.
Сначала мы увидим, как установить длину пароля в системах на базе DEB.
Установка длины пароля в Debian, Ubuntu и его производных
Подключаемые модули аутентификации (PAM) установлены по умолчанию в системах на базе DEB.
Обычно файлы конфигурации, связанные с паролем и аутентификацией, хранятся в каталоге /etc/pam.d/
в системах на базе Debian. А политики паролей определены в файле /etc/pam.d/common-password
. Прежде чем вносить в него какие-либо изменения, на всякий случай сделайте резервную копию этого файла.
sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.bak
Чтобы установить минимальную длину пароля, отредактируйте файл /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
Установите длину пароля в системах на базе DEB
Сохраните и закройте файл. Теперь пользователи не могут использовать пароль длиной менее 8 символов.
Установка длины пароля в системах на базе RPM
В системах RHEL, CentOS 7.x выполните следующую команду от имени пользователя root, чтобы установить длину пароля.
authconfig --passminlen=8 --update
Чтобы просмотреть минимальную длину пароля, выполните:
grep "^minlen" /etc/security/pwquality.conf
Пример вывода:
minlen = 8
В системах RHEL, CentOS 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
Установите длину пароля в системах на базе RPM.
Согласно приведенным выше настройкам минимальная длина пароля составляет 8 символов.
Установка сложности пароля в системах на базе DEB
Этот параметр определяет, сколько классов (прописных, строчных и других символов) должно быть в пароле.
Сначала установите библиотеку проверки качества паролей с помощью команды:
sudo apt 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
Установка сложности пароля в системах на базе DEB
Введите в пароль хотя бы одну строчную букву, как показано ниже.
password requisite pam_pwquality.so retry=3 dcredit=-1
Введите в пароль как минимум другие буквы, как показано ниже.
password requisite pam_pwquality.so retry=3 ocredit=-1
Как вы видите в приведенных выше примерах, мы установили в пароле как минимум (минимум) один верхний и нижний регистр, а также специальный символ. Вы можете установить любое максимально допустимое количество прописных, строчных и других букв в своем пароле.
Вы также можете установить минимальное/максимальное количество разрешенных классов в пароле.
В следующем примере показано минимальное количество требуемых классов символов для нового пароля:
password requisite pam_pwquality.so retry=3 minclass=2
Установка сложности пароля в системах на базе RPM
В RHEL 7.x/CentOS 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 отредактируйте файл /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
Согласно приведенным выше настройкам, пароль должен содержать не менее 8 символов. Кроме того, пароль должен содержать хотя бы одну заглавную букву, одну строчную букву, одну цифру и еще один символ.
Установите срок действия пароля в системах на базе DEB
Мы собираемся установить следующие политики.
- Максимальное количество дней, в течение которых можно использовать пароль.
- Минимальное количество дней, допустимое между сменой пароля.
- Количество дней, в течение которых выдается предупреждение до истечения срока действия пароля.
Чтобы установить эту политику, отредактируйте:
sudo nano /etc/login.defs
Установите значения в соответствии с вашими требованиями.
PASS_MAX_DAYS 100
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
Установите срок действия пароля в системах на базе DEB
Как видно из приведенного выше примера, пользователь должен менять пароль один раз каждые 100 дней, а предупреждающее сообщение появится за 7 дней до истечения срока действия пароля.
Помните, что эти настройки повлияют на вновь созданных пользователей.
Чтобы установить максимальное количество дней между сменой пароля для существующих пользователей, необходимо выполнить следующую команду:
sudo chage -M <days> <username>
Чтобы установить минимальное количество дней между сменой пароля, запустите:
sudo chage -m <days> <username>
Чтобы установить предупреждение до истечения срока действия пароля, запустите:
sudo chage -W <days> <username>
Чтобы отобразить пароль для существующих пользователей, запустите:
sudo chage -l sk
Здесь sk — мое имя пользователя.
Пример вывода:
Last password change : Feb 24, 2017
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
Как видно из приведенного выше вывода, срок действия пароля никогда не истекает.
Чтобы изменить срок действия пароля существующего пользователя,
sudo chage -E 24/06/2018 -m 5 -M 90 -I 10 -W 10 sk
Приведенная выше команда установит срок действия пароля пользователя 'sk' 24/06/2018. Кроме того, минимальное количество дней между сменой пароля установлено на уровне 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.
vi /etc/pam.d/system-auth
Найдите следующую строку и добавьте в конец remember=5.
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
Рекомендуется прочитать:
- 4 простых способа создать надежный пароль в Linux
- Как проверить сложность пароля в Linux
- Как заставить пользователей использовать надежные пароли в Debian, Ubuntu
- Titan – менеджер паролей командной строки для Linux
- Buttercup — бесплатный, безопасный и кроссплатформенный менеджер паролей
- KeeWeb – кроссплатформенный менеджер паролей с открытым исходным кодом
Теперь вы знаете, что такое политики паролей в Linux и как устанавливать различные политики паролей в системах на базе DEB и RPM.