Как настроить политики сложности паролей в Linux

LinuxBeginner
Практиковаться сейчас

Введение

Поддержание надежных политик паролей имеет решающее значение для защиты систем Linux. Этот учебник проведет вас через понимание основ политик паролей Linux, настройку требований к сложности паролей и применение этих политик для повышения общей безопасности вашей среды Linux.

Понимание файлов политик паролей Linux

Системы Linux используют несколько файлов конфигурации для управления политиками паролей. На этом шаге мы рассмотрим эти файлы и поймем их назначение в управлении паролями.

Изучение файлов конфигурации политик паролей

Давайте начнем с изучения ключевых файлов конфигурации, которые управляют политиками паролей в Ubuntu:

  1. Сначала откройте терминал, щелкнув значок терминала в среде рабочего стола.

  2. Давайте посмотрим на файл /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: Количество дней предупреждения до истечения срока действия пароля
  3. Еще одним важным файлом является /etc/pam.d/common-password, который управляет настройками PAM (Pluggable Authentication Modules) для аутентификации паролей:

    cat /etc/pam.d/common-password

    Этот файл содержит несколько строк, настраивающих управление паролями, включая требования к сложности.

  4. Система использует библиотеку pwquality для обеспечения качества паролей. Давайте проверим, установлена ли она:

    dpkg -l | grep libpwquality

    Если она не установлена, мы можем установить ее:

    sudo apt update
    sudo apt install -y libpam-pwquality
  5. Теперь давайте рассмотрим файл конфигурации качества паролей:

    cat /etc/security/pwquality.conf

    Этот файл может содержать большинство строк, закомментированных с помощью #, что означает использование значений по умолчанию.

Понимание параметров политики паролей

Вот ключевые параметры, которые вы можете настроить:

  • minlen: Минимальная длина пароля
  • dcredit: Кредит за цифры в пароле
  • ucredit: Кредит за прописные буквы
  • lcredit: Кредит за строчные буквы
  • ocredit: Кредит за специальные символы
  • retry: Количество попыток ввода нового пароля
  • enforce_for_root: Применять ли эти политики для пользователя root
    Эти параметры предоставляют всеобъемлющую структуру для управления сложностью и безопасностью паролей в вашей системе Linux.

Настройка базовых политик паролей

На этом шаге мы настроим базовые политики паролей, изменив файл /etc/login.defs, чтобы установить требования к сроку действия паролей.

Настройка параметров срока действия пароля

  1. Сначала создадим резервную копию исходного файла:

    sudo cp /etc/login.defs /etc/login.defs.backup
  2. Теперь откройте файл для редактирования с помощью nano:

    sudo nano /etc/login.defs
  3. В редакторе найдите эти параметры (используйте Ctrl+W для поиска):

    PASS_MAX_DAYS
    PASS_MIN_DAYS
    PASS_WARN_AGE
  4. Измените эти значения, чтобы реализовать более безопасную политику срока действия пароля:

    • Измените PASS_MAX_DAYS с 99999 на 90 (пароли истекают через 90 дней)
    • Измените PASS_MIN_DAYS с 0 на 7 (минимум 7 дней между сменами паролей)
    • Измените PASS_WARN_AGE с 7 на 14 (предупреждать пользователей за 14 дней до истечения срока действия пароля)
  5. Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите с помощью Ctrl+X.

  6. Проверьте свои изменения:

    cat /etc/login.defs | grep "^PASS_"

    Вы должны увидеть:

    PASS_MAX_DAYS   90
    PASS_MIN_DAYS   7
    PASS_WARN_AGE   14

Тестирование политики на новом пользователе

Давайте создадим тестового пользователя, чтобы увидеть, как применяются эти политики:

  1. Создайте нового пользователя:

    sudo useradd -m testuser
  2. Установите пароль для нового пользователя:

    sudo passwd testuser

    Введите простой пароль при появлении запроса (мы усилим его на следующих шагах).

  3. Проверьте информацию о сроке действия пароля для нового пользователя:

    sudo chage -l testuser

    Вы должны увидеть, что политики паролей были применены к этому новому пользователю, отображая дату истечения срока действия на основе ваших настроек.

Обратите внимание, что эти изменения применяются только к новым учетным записям или при смене пароля. Существующие учетные записи сохраняют свои предыдущие настройки, пока вы не обновите их вручную.

Настройка требований к сложности паролей

На этом шаге мы настроим правила сложности паролей, чтобы обеспечить использование надежных паролей в нашей системе.

Настройка правил сложности паролей

  1. Сначала создадим резервную копию файла конфигурации PAM:

    sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.backup
  2. Теперь откройте файл для редактирования:

    sudo nano /etc/pam.d/common-password
  3. Найдите строку, содержащую pam_pwquality.so. Она может выглядеть примерно так:

    password        requisite                       pam_pwquality.so retry=3
  4. Измените эту строку, чтобы добавить требования к сложности. Замените ее на:

    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
  5. Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите с помощью Ctrl+X.

Настройка дополнительных параметров в pwquality.conf

  1. Теперь давайте изменим файл конфигурации pwquality для дополнительных элементов управления:

    sudo cp /etc/security/pwquality.conf /etc/security/pwquality.conf.backup
    sudo nano /etc/security/pwquality.conf
  2. Раскомментируйте (удалите # в начале) и измените эти строки или добавьте их, если они не существуют:

    minlen = 12
    dcredit = -1
    ucredit = -1
    lcredit = -1
    ocredit = -1
    difok = 4
    enforce_for_root = 1

    Параметр difok = 4 требует, чтобы как минимум 4 символа отличались от предыдущего пароля.

  3. Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите с помощью Ctrl+X.

Тестирование новой политики сложности паролей

  1. Давайте протестируем нашу новую политику, изменив пароль для нашего тестового пользователя:

    sudo passwd testuser
  2. Попробуйте ввести простой пароль, например password123. Система должна отклонить его из-за несоответствия требованиям к сложности.

  3. Теперь попробуйте сложный пароль, соответствующий всем требованиям, например Secure@Password123.

    Если вы все настроили правильно, система должна принять этот пароль.

Требования к сложности гарантируют, что пользователи создают надежные пароли, что затрудняет для злоумышленников их угадывание или взлом.

Реализация контроля истории паролей

На этом шаге мы настроим контроль истории паролей, чтобы пользователи не могли повторно использовать свои недавние пароли.

Настройка истории паролей

  1. Сначала создадим резервную копию файла конфигурации PAM, если вы этого еще не сделали:

    sudo cp /etc/pam.d/common-password /etc/pam.d/common-password.backup2
  2. Откройте файл для редактирования:

    sudo nano /etc/pam.d/common-password
  3. Найдите строку, содержащую pam_unix.so. Она может выглядеть примерно так:

    password        [success=1 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512
  4. Измените эту строку, чтобы добавить параметр remember. Добавьте remember=5 в конце строки:

    password        [success=1 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512 remember=5

    Это не позволит пользователям повторно использовать любые из своих 5 последних паролей.

  5. Сохраните файл, нажав Ctrl+O, затем Enter, и выйдите с помощью Ctrl+X.

Понимание принципа работы истории паролей

Параметр remember=5 предписывает системе хранить хэши последних 5 паролей для каждого пользователя. Когда пользователь пытается изменить свой пароль, система сравнивает новый пароль с этими сохраненными хэшами, чтобы убедиться, что он не используется повторно.

История паролей хранится в файле /etc/security/opasswd. Давайте проверим, существует ли этот файл:

ls -la /etc/security/opasswd

Если его нет, он будет создан автоматически, когда первый пользователь изменит свой пароль с новой политикой.

Тестирование истории паролей

  1. Давайте попробуем несколько раз изменить пароль тестового пользователя, чтобы увидеть механизм истории в действии:

    sudo passwd testuser
  2. Установите сложный пароль, например Complex@Password1.

  3. Теперь попробуйте изменить его снова немедленно:

    sudo passwd testuser
  4. Попробуйте снова установить тот же пароль. Система должна отклонить его из-за политики истории.

  5. Попробуйте это еще несколько раз с разными паролями, а затем попробуйте повторно использовать более ранний пароль. Вы должны обнаружить, что не можете повторно использовать ни один из своих 5 последних паролей.

Этот механизм истории паролей добавляет еще один уровень безопасности, предотвращая повторное использование паролей, что является распространенной уязвимостью безопасности.

Применение политик паролей к существующим пользователям

На этом заключительном шаге мы узнаем, как применить наши новые политики паролей к существующим пользователям и управлять информацией о паролях пользователей.

Понимание управления сроком действия паролей

Когда вы изменяете политики паролей в /etc/login.defs, новые настройки применяются только к вновь созданным пользователям или при ручном обновлении существующих пользователей. Давайте посмотрим, как управлять существующими пользователями:

  1. Сначала проверьте текущий статус учетной записи пользователя:

    sudo chage -l labex

    Это отображает информацию о сроке действия пароля для текущего пользователя.

  2. Чтобы заставить пользователя изменить свой пароль при следующем входе в систему:

    sudo chage -d 0 testuser

    Это устанавливает дату последнего изменения пароля на 0, принуждая к смене пароля при следующем входе в систему.

  3. Чтобы вручную установить дату истечения срока действия пароля:

    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 дней для пользователя.

Просмотр информации о паролях пользователей

Вы можете проверить информацию о пароле пользователя, используя несколько команд:

  1. Просмотр всех локальных учетных записей пользователей:

    cat /etc/passwd
  2. Проверка статуса пароля для конкретного пользователя:

    sudo passwd -S testuser
  3. Список пользователей с определенной настройкой пароля:

    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. Вы:

  1. Изучили ключевые файлы конфигурации, которые управляют политиками паролей.
  2. Настроили базовые политики срока действия паролей для обеспечения регулярного обновления паролей.
  3. Реализовали строгие требования к сложности паролей для обеспечения безопасности паролей.
  4. Настроили контроль истории паролей для предотвращения повторного использования паролей.
  5. Узнали, как применять политики паролей к существующим пользователям.

Эти конфигурации политик паролей необходимы для поддержания безопасной среды Linux. Внедряя строгие требования к паролям, регулярную ротацию паролей и предотвращая повторное использование паролей, вы значительно улучшили состояние безопасности вашей системы от несанкционированного доступа и потенциальных нарушений.

Помните, что эффективные политики паролей — это лишь один аспект комплексной стратегии безопасности. Они должны сочетаться с другими мерами безопасности, такими как регулярные обновления системы, надлежащее управление пользователями и постоянный мониторинг безопасности.