Введение
Поддержание надежных политик паролей имеет решающее значение для защиты систем Linux. Этот учебник проведет вас через понимание основ политик паролей Linux, настройку требований к сложности паролей и применение этих политик для повышения общей безопасности вашей среды Linux.
Понимание файлов политик паролей Linux
Системы Linux используют несколько файлов конфигурации для управления политиками паролей. На этом шаге мы рассмотрим эти файлы и поймем их назначение в управлении паролями.
Изучение файлов конфигурации политик паролей
Давайте начнем с изучения ключевых файлов конфигурации, которые управляют политиками паролей в Ubuntu:
Сначала откройте терминал, щелкнув значок терминала в среде рабочего стола.
Давайте посмотрим на файл
/etc/login.defs, который содержит основные настройки политики паролей:cat /etc/login.defs | grep "^PASS_"Вы должны увидеть вывод, похожий на этот:
PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_WARN_AGE 7Эти настройки управляют:
PASS_MAX_DAYS: Максимальное количество дней, в течение которых пароль остается действительнымPASS_MIN_DAYS: Минимальное количество дней, требуемое между сменами паролейPASS_WARN_AGE: Количество дней предупреждения до истечения срока действия пароля
Еще одним важным файлом является
/etc/pam.d/common-password, который управляет настройками PAM (Pluggable Authentication Modules) для аутентификации паролей:cat /etc/pam.d/common-passwordЭтот файл содержит несколько строк, настраивающих управление паролями, включая требования к сложности.
Система использует библиотеку
pwqualityдля обеспечения качества паролей. Давайте проверим, установлена ли она:dpkg -l | grep libpwqualityЕсли она не установлена, мы можем установить ее:
sudo apt update sudo apt install -y libpam-pwqualityТеперь давайте рассмотрим файл конфигурации качества паролей:
cat /etc/security/pwquality.confЭтот файл может содержать большинство строк, закомментированных с помощью
#, что означает использование значений по умолчанию.
Понимание параметров политики паролей
Вот ключевые параметры, которые вы можете настроить:
minlen: Минимальная длина пароляdcredit: Кредит за цифры в паролеucredit: Кредит за прописные буквыlcredit: Кредит за строчные буквыocredit: Кредит за специальные символыretry: Количество попыток ввода нового пароляenforce_for_root: Применять ли эти политики для пользователя root Эти параметры предоставляют всеобъемлющую структуру для управления сложностью и безопасностью паролей в вашей системе Linux.
Настройка базовых политик паролей
На этом шаге мы настроим базовые политики паролей, изменив файл /etc/login.defs, чтобы установить требования к сроку действия паролей.
Настройка параметров срока действия пароля
Сначала создадим резервную копию исходного файла:
sudo cp /etc/login.defs /etc/login.defs.backupТеперь откройте файл для редактирования с помощью nano:
sudo nano /etc/login.defsВ редакторе найдите эти параметры (используйте Ctrl+W для поиска):
PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGEИзмените эти значения, чтобы реализовать более безопасную политику срока действия пароля:
- Измените
PASS_MAX_DAYSс99999на90(пароли истекают через 90 дней) - Измените
PASS_MIN_DAYSс0на7(минимум 7 дней между сменами паролей) - Измените
PASS_WARN_AGEс7на14(предупреждать пользователей за 14 дней до истечения срока действия пароля)
- Измените
Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите с помощью Ctrl+X.
Проверьте свои изменения:
cat /etc/login.defs | grep "^PASS_"Вы должны увидеть:
PASS_MAX_DAYS 90 PASS_MIN_DAYS 7 PASS_WARN_AGE 14
Тестирование политики на новом пользователе
Давайте создадим тестового пользователя, чтобы увидеть, как применяются эти политики:
Создайте нового пользователя:
sudo useradd -m testuserУстановите пароль для нового пользователя:
sudo passwd testuserВведите простой пароль при появлении запроса (мы усилим его на следующих шагах).
Проверьте информацию о сроке действия пароля для нового пользователя:
sudo chage -l testuserВы должны увидеть, что политики паролей были применены к этому новому пользователю, отображая дату истечения срока действия на основе ваших настроек.
Обратите внимание, что эти изменения применяются только к новым учетным записям или при смене пароля. Существующие учетные записи сохраняют свои предыдущие настройки, пока вы не обновите их вручную.
Настройка требований к сложности паролей
На этом шаге мы настроим правила сложности паролей, чтобы обеспечить использование надежных паролей в нашей системе.
Настройка правил сложности паролей
Сначала создадим резервную копию файла конфигурации PAM:
sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.backupТеперь откройте файл для редактирования:
sudo nano /etc/pam.d/common-passwordНайдите строку, содержащую
pam_pwquality.so. Она может выглядеть примерно так:password requisite pam_pwquality.so retry=3Измените эту строку, чтобы добавить требования к сложности. Замените ее на:
password requisite pam_pwquality.so retry=3 minlen=12 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 enforce_for_rootЭта конфигурация означает:
minlen=12: Минимальная длина пароля — 12 символовdcredit=-1: Требуется как минимум 1 цифраucredit=-1: Требуется как минимум 1 заглавная букваlcredit=-1: Требуется как минимум 1 строчная букваocredit=-1: Требуется как минимум 1 специальный символenforce_for_root: Применить эти политики и к пользователю root
Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите с помощью Ctrl+X.
Настройка дополнительных параметров в pwquality.conf
Теперь давайте изменим файл конфигурации pwquality для дополнительных элементов управления:
sudo cp /etc/security/pwquality.conf /etc/security/pwquality.conf.backup sudo nano /etc/security/pwquality.confРаскомментируйте (удалите
#в начале) и измените эти строки или добавьте их, если они не существуют:minlen = 12 dcredit = -1 ucredit = -1 lcredit = -1 ocredit = -1 difok = 4 enforce_for_root = 1Параметр
difok = 4требует, чтобы как минимум 4 символа отличались от предыдущего пароля.Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите с помощью Ctrl+X.
Тестирование новой политики сложности паролей
Давайте протестируем нашу новую политику, изменив пароль для нашего тестового пользователя:
sudo passwd testuserПопробуйте ввести простой пароль, например
password123. Система должна отклонить его из-за несоответствия требованиям к сложности.Теперь попробуйте сложный пароль, соответствующий всем требованиям, например
Secure@Password123.Если вы все настроили правильно, система должна принять этот пароль.
Требования к сложности гарантируют, что пользователи создают надежные пароли, что затрудняет для злоумышленников их угадывание или взлом.
Реализация контроля истории паролей
На этом шаге мы настроим контроль истории паролей, чтобы пользователи не могли повторно использовать свои недавние пароли.
Настройка истории паролей
Сначала создадим резервную копию файла конфигурации PAM, если вы этого еще не сделали:
sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.backup2Откройте файл для редактирования:
sudo nano /etc/pam.d/common-passwordНайдите строку, содержащую
pam_unix.so. Она может выглядеть примерно так:password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512Измените эту строку, чтобы добавить параметр
remember. Добавьтеremember=5в конце строки:password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512 remember=5Это не позволит пользователям повторно использовать любые из своих 5 последних паролей.
Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите с помощью Ctrl+X.
Понимание принципа работы истории паролей
Параметр remember=5 предписывает системе хранить хэши последних 5 паролей для каждого пользователя. Когда пользователь пытается изменить свой пароль, система сравнивает новый пароль с этими сохраненными хэшами, чтобы убедиться, что он не используется повторно.
История паролей хранится в файле /etc/security/opasswd. Давайте проверим, существует ли этот файл:
ls -la /etc/security/opasswd
Если его нет, он будет создан автоматически, когда первый пользователь изменит свой пароль с новой политикой.
Тестирование истории паролей
Давайте попробуем несколько раз изменить пароль тестового пользователя, чтобы увидеть механизм истории в действии:
sudo passwd testuserУстановите сложный пароль, например
Complex@Password1.Теперь попробуйте изменить его снова немедленно:
sudo passwd testuserПопробуйте снова установить тот же пароль. Система должна отклонить его из-за политики истории.
Попробуйте это еще несколько раз с разными паролями, а затем попробуйте повторно использовать более ранний пароль. Вы должны обнаружить, что не можете повторно использовать ни один из своих 5 последних паролей.
Этот механизм истории паролей добавляет еще один уровень безопасности, предотвращая повторное использование паролей, что является распространенной уязвимостью безопасности.
Применение политик паролей к существующим пользователям
На этом заключительном шаге мы узнаем, как применить наши новые политики паролей к существующим пользователям и управлять информацией о паролях пользователей.
Понимание управления сроком действия паролей
Когда вы изменяете политики паролей в /etc/login.defs, новые настройки применяются только к вновь созданным пользователям или при ручном обновлении существующих пользователей. Давайте посмотрим, как управлять существующими пользователями:
Сначала проверьте текущий статус учетной записи пользователя:
sudo chage -l labexЭто отображает информацию о сроке действия пароля для текущего пользователя.
Чтобы заставить пользователя изменить свой пароль при следующем входе в систему:
sudo chage -d 0 testuserЭто устанавливает дату последнего изменения пароля на 0, принуждая к смене пароля при следующем входе в систему.
Чтобы вручную установить дату истечения срока действия пароля:
sudo chage -E $(date -d "90 days" +%Y-%m-%d) testuserЭто устанавливает дату истечения срока действия учетной записи на 90 дней с сегодняшнего дня.
Установка максимального срока действия пароля для существующих пользователей
Чтобы применить политику максимального срока действия пароля к существующему пользователю:
sudo chage -M 90 testuser
Это устанавливает максимальный срок действия пароля на 90 дней для пользователя.
Установка минимального срока действия пароля для существующих пользователей
Чтобы применить политику минимального срока действия пароля к существующему пользователю:
sudo chage -m 7 testuser
Это устанавливает минимальный срок действия пароля на 7 дней для пользователя.
Установка предупреждения об истечении срока действия пароля для существующих пользователей
Чтобы применить политику предупреждения об истечении срока действия пароля к существующему пользователю:
sudo chage -W 14 testuser
Это устанавливает период предупреждения об истечении срока действия пароля на 14 дней для пользователя.
Просмотр информации о паролях пользователей
Вы можете проверить информацию о пароле пользователя, используя несколько команд:
Просмотр всех локальных учетных записей пользователей:
cat /etc/passwdПроверка статуса пароля для конкретного пользователя:
sudo passwd -S testuserСписок пользователей с определенной настройкой пароля:
awk -F: '($3 >= 1000) {print $1}' /etc/passwdЭто выводит список всех обычных пользователей в системе (UID >= 1000).
Применение политик ко всем пользователям
Чтобы применить новые политики паролей ко всем обычным пользователям в системе, вы можете использовать простой скрипт. Вот пример:
for user in $(awk -F: '($3 >= 1000) && ($3 < 60000) {print $1}' /etc/passwd); do
echo "Updating password policy for user: $user"
sudo chage -M 90 -m 7 -W 14 $user
done
Этот скрипт обновляет всех обычных пользователей с нашими новыми политиками срока действия паролей.
Применяя эти политики к существующим пользователям, вы обеспечиваете согласованную безопасность паролей во всей вашей системе.
Резюме
В этой лабораторной работе вы узнали, как настраивать и применять надежные политики паролей в Linux. Вы:
- Изучили ключевые файлы конфигурации, которые управляют политиками паролей.
- Настроили базовые политики срока действия паролей для обеспечения регулярного обновления паролей.
- Реализовали строгие требования к сложности паролей для обеспечения безопасности паролей.
- Настроили контроль истории паролей для предотвращения повторного использования паролей.
- Узнали, как применять политики паролей к существующим пользователям.
Эти конфигурации политик паролей необходимы для поддержания безопасной среды Linux. Внедряя строгие требования к паролям, регулярную ротацию паролей и предотвращая повторное использование паролей, вы значительно улучшили состояние безопасности вашей системы от несанкционированного доступа и потенциальных нарушений.
Помните, что эффективные политики паролей — это лишь один аспект комплексной стратегии безопасности. Они должны сочетаться с другими мерами безопасности, такими как регулярные обновления системы, надлежащее управление пользователями и постоянный мониторинг безопасности.



