PAM В данной статье хотелось бы разместить заметки по поводу усиления PAM с использованием [[http://www.openwall.com/passwdqc/|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 - это то что ты настроил и потом забыл =)