PAM
В данной статье хотелось бы разместить заметки по поводу усиления PAM с использованием passwdqc и описание базовых возможностей.
Passwdqc используется для усиления парольных политик и является более улучшенной версией устаревшего cracklib.
Все примеры проведены на Debian 7 и Debian 8.
1. Устанавливаем необходимые пакеты:
apt-get install passwdqc libpam-passwdqc
2. После этого заходим в основную директорию с конфигами PAM: cd /etc/pam.d/ и первым делом открываем файл common-password. И пишем в него следующие строчки:
password requisite pam_passwdqc.so min=disabled,24,12,9,8 similar=deny enforce=everyone retry=3 password requisite pam_pwhistory.so use_authtok remember=4 password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512 rounds=10000
Первая строчка задаёт следующие парольные политики для модуля passwdqc:
min=disabled,24,12,9,8 ← Минимальная длинна пароль 8 символов (примечение: пароль обязан включать в себя буквы верхнего и нижнего регистра, цифры и хотя бы один спец. символ и ни в коем случае не должен содержать словарные слова и прочую поеботу, аля: 123qwe. вот такие вот требования у passwdqc), но если символов 9 то тогда можно принебречь одним из тредобаний, см. примечение, ну и соответственно если символов 12, то можно принебречь двумя правилами из примечаний. Ну а если ваш пароль состоит более чем из 24 символов, то тогда это может быть хоть парольная фраза из стишка. (примечание №2 к примечанию №1: только если есть опция obscure)
similar=deny ← Запрещаем использование пароля, похожего на один из уже используемых
enforce=everyone ← Применять данную политику для абсолютно всех пользователей в системе. В том числе и для пользователя root
retry=3 ← Даётся 3 попытки на ввод корректного пароля, после истечения счётчика зафейлит ваши попытки
Вторая строчка относится к настройке политик хранения уже использованных паролей:
use_authtok ← Применить политки криптования из настроек pam_unix (см. примечание)
remember=4 ← Запомнить последние 4 пароля, используется для того что бы ваш пароль не был похож на 4 предыдущих
Примечание: Почему важно добавлять в конфиг настройки pam_pwhistory. Потому как ваши старые пароли хранящиеся в файле /etc/security/opasswd будут захэшированы при помощи стандартного алгоритма MD5 !
Третья строчка:
obscure ← См. примечание №2
sha512 ← Указываем что будем использовать алгоритм SHA512
rounds=10000 ← Выставляем ротацию хэша в 10000 попугаев, оборотов раундов
Далее создаём файл common-auth-ban со следующими строчками:
auth required pam_tally2.so deny=6 onerr=fail unlock_time=1800 account required pam_tally2.so
Где указываем политики блокировки, что при 6-ти неверных попытках ввода пароля, пользователь блокируется сроком на 30 минут.
После этого в файлах: su, sudo,login, passwd, sshd и прочих файлах ваших сервисов (например: ftp или samba) записываем строчку @include common-auth-ban над строчкой common-auth и после этого мы можем банить тех кто пытается сбрутить ваш пароль через ssh, passwd, login, su или другие дсотупные стредства.
Проверка на наличие заблокированных пользователей:
#pam_tally2 ← Вывести список заблокированных пользователй и неудачных попыток захода
#pam_tally2 –reset ← Обнулить счётчик
#pam_tally2 -u mydak –reset ← Обнулить счётчик пользователю mydak
Примеры файлов:
password requisite pam_passwdqc.so min=disabled,24,12,9,8 similar=deny enforce=everyone retry=3 password requisite pam_pwhistory.so use_authtok remember=4 password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512 rounds=10000 password requisite pam_deny.so password required pam_permit.so
auth required pam_tally2.so deny=6 onerr=fail unlock_time=1800 account required pam_tally2.so
@include common-auth-physalis @include common-password
Ну и на последок, по давней традии. PAM - это то что ты настроил и потом забыл