Блог Синявского
  • Разделы
  • Метки
  • Все статьи

PAM модуль Linux

1

При попытке сменить пароль возникла ошибка

passwd username
Смена пароля для пользователя username.
Новый пароль :
НЕУДАЧНЫЙ ПАРОЛЬ: слишком простой
или
НЕУДАЧНЫЙ ПАРОЛЬ: основан на слове из словаря
Повторите ввод нового пароля :

В английской версии эти сообщения выглядят так (для лучшей поисковой оптимизации):

passwd username
Changing password for user username
New UNIX password:
BAD PASSWORD: is too simple
or
BAD PASSWORD: it is based on a (reversed) dictionary word
Retype new UNIX password:

Простые пароли пользователей в CentOS

Нужно сконфигурировать PAM (Pluggable Authentication Modules) для того, чтобы изменить системные политики проверки сложности пароля и смены паролей для всех пользователей системы. PAM - это такая модель, которая делает гибкой систему аутентификации в операционной системе, она делает независимой операционную систему и методы аутентификации. PAM модуль является частью всех дистрибутивов linux и конфигурация должна работать с любым дистрибутивом.

Необходимо отредактировать файл (с правами суперпользователя) /etc/pam.d/system-auth и изменить следующие две строки:

# nano /etc/pam.d/system-auth

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

Должно получиться вот так (# - закомментировано):

#password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass #use_authtok

Теперь все получится. Всегда используйте простые пароли и будет счастье :) хакерам!

Смена пароля для пользователя username.
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: все токены проверки подлинности успешно обновлены.

Файл конфигурации PAM

Важно! Только на ваш страх и риск. Ошибки могут привести к самому страшному - сбою в вашей системе.

Конфигурационный файл etc/pam.d/system-auth, как я писал выше содержит важные параметры системы аутентификации, в том числе описание модулей для работы с паролем:

  • pam_cracklib - Это простой модуль проверки стойкости пароля для РАМ. В дополнение к проверке обычных паролей, он поддерживает парольные фразы и может генерировать случайные пароли.
  • pam_passwdqc - Этот модуль предоставляет функциональные возможности для изменение пароля, то есть содержит "пароль" функцию.
  • pam_chauthtok() - сервисная функция которая запрашивает у пользователя новый пароль, и убеждается, что он соответствует определенным минимальным стандартам. Если пароль является неудовлетворительным, сервисная функция возвращает PAM_AUTHTOK_ERR.

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

Модуль pam_cracklib по умолчанию PAM обеспечивает надёжность при проверке паролей. Пароль не проходит валидацию в нём, если существуют следующие условия:

  • Палиндром - Является ли новый пароль палиндромом старого?
  • Изменена раскладка - Является ли новый пароль копией старый только с изменением регистра клавиатуры?
  • Похож - Является ли новый пароль слишком похож на старый?
  • Простой - Проверяется, что новый пароль слишком мал.
  • Перевернут - Является ли новый пароль повернутой версией старого пароля?
  • Уже использован - Был ли пароль использован в прошлом? Ранее используемые пароли берутся из файла /etc/security/opasswd.

Как настроить проверки паролей против перебора "по словарю" (через pam_cracklib)

Для начала установим PAM модуль для поддержки cracklib libpam-cracklib.

# yum install libpam-cracklib

Отредактируем файл /etc/pam.d/system-auth, добавим или изменим следующую строку:

password required pam_cracklib.so retry=2 minlen=10 difok=6

где:

  • retry=2 : Восле двух попыток модуль вернет ошибку
  • minlen=10 : Минимальная длина для пароля учетной записи установлена 10 символов.
  • difok=6: Сколько символов можеть быть такими же как в старом пароле. При ошибке будет выведено сообщение – BAD PASSWORD: is too similar to the old one ()
  • Так же можно использовать следующие опции для усложнения пароля:

  • dcredit=N : Цифры

  • ucredit=N : символы верхнего регистра

  • lcredit=N : символы нижнего регистра

  • ocredit=N : Другие символы

Важно! это касается только непривилигированных пользователей (всех коме root)

Как использовать pam_passwdqc - модуль контроля качества паролей PAM

Отредактируем файл /etc/pam.d/system-auth:

# cp /etc/pam.d/system-auth /root/backup/system-auth
# nano /etc/pam.d/system-auth

Найти строку:

password    requisite     pam_cracklib.so try_first_pass retry=3

и заменить её на следующую строку:

password    requisite    pam_passwdqc.so min=disabled,disabled,13,13,12 retry=3

где:

min = N0, N1, N2, N3, N4 - min=disabled,disabled,13,13,12 минимально допустимая длина пароля для различных видов паролей. Ключевое слово disabled может быть использовано, чтобы запретить пароли данного вида, независимо от их длины. Каждое последующее число должно быть не больше, чем предыдущее.

  1. N0 используется для паролей, состоящих только из одного класса символов (цифры, строчные буквы, заглавные буквы и другие символы). Существует также специальный класс для не-ASCII символов, которые не могут быть классифицированы, но предполагаются без цифр.

  2. N1 используется для паролей, состоящих из двух классов символов, которые не отвечают требованиям, предъявляемым к ключевой фразе.

  3. N2 используется в фразах. Секретная фраза должна состоять из достаточных слов (см вариант идентификационной фразы ниже).

  4. N3 и N4 используются для паролей, состоящих из символов из трех и четырех классов символов, соответственно.

  5. При расчете количества классов символов, заглавные буквы, используемые в качестве первого символа и цифр, используемых в качестве последнего символа пароля не учитываются.

  6. В дополнение к достаточно длинным, пароли должны содержать достаточное количество различных символов для классов символов.

retry=3 - количество раз модуль будет запрашивать новый пароль , если пользователь не в состоянии обеспечить достаточно надежный пароль и ввести его в два раза первый раз.

max=N - (max=40) Максимально допустимая длина пароля. Эта опция может быть использовано для того, чтобы запретить пользователям установливать пароли, которые могут быть слишком длинным для некоторых системных служб. Значение 8 обрабатывается особым образом: пароли длиннее 8 символов, не отклоняются, а обрезаются до 8 символов для проверки надёжности (пользователь при этом предупреждается).

passphrase=N - (passphrase=3) Число слов, необходимых для ключевой фразы, или 0, чтобы отключить поддержку фраз.

Смотрите файл справки /usr/share/doc/pam_passwdqc-1.0.2/README и справочной страничке pam_passwdqc остальные параметры конфигурации с описанием.

Заблокировать учётные записи после неудачных попыток

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

Отредактируем файл /etc/pam.d/system-auth:

auth required pam_tally.so onerr=fail deny=3 unlock_time=21600

где:

  • deny=3 – количество попыток авторизации.

  • unlock_time=21600 – повторная возможность авторизации для данного пользователя будет через 21600 секунд (6 часов) после неудачной попытки. Если эта опция используется пользователь будет заблокирован на определенное время через определенное количество неудачных попыток. Заблокированных пользователей может разблокировать администратор используя команду pam_tally --user<username> --reset или pam_tally2 --user<username> --reset.

  • onerr=fail – При возникновении ошибки (например невозможность открыть файл), возвращается PAM_SUCESS если установлено onerr=succeed , в противном случае получаем PAM error code.

По-умолчанию для учёта попыток авторизации используется файл /var/log/faillog.

Для изучения по тематике

Полная исчерпывающая документация Linux-PAM

Описание pam_tally - счётчик попыток авторизации (tallying)

CentOS Linux страница проекта



  • ← сюда
  • туда →

comments powered by Disqus

Опубликовано

06.10.2016

Обновление

05.05.2022

Категории

centos

Тэги

  • centos 2
  • linux 1
  • pam 1

Всегда на связи

  • Блог Синявского - Ничего не переносить на завтра, это тоже проблема с прокастинацией?
  • © Алексей Синявский, по лицензии CC BY-SA если не указано иное.
  • С использованием Pelican. Тема: Elegant от Talha Mansoor