immortalday 01.08.2010 19:39
Security — Парольная политика в Linux
Организация парольной политикиОрганизация парольной политики напрямую зависит от текущей принятой политики по обеспечению безопасности паролей в организации, системный администратор настраивая политику паролей должен следовать установленным стандартам.
Основными моментами в организации парольной политики являются
1) длина пароля
2) сложность
3) срок действия
А также:
Отброс слишком коротких паролей;
Запрещение пароля, совпадающего или очень похожего на предыдущий;
Запрещение пароля, отличающегося от предыдущего только регистром символов (UnixOid, UnIxOiD);
Запрещение «паролей-перевертышей» (старый пароль: unixoid, новый: dioxinu);
Принуждение пользователя включать в пароль символы верхнего регистра, числа и другие знаки.
Количество попыток смены пароля пользователем
Командой для установки пароля пользователя служит passwd.
листинг passwd
1 |
|
Запущенная команда от имени root для задания пароля пользователя выглядит как в листинге
passwd , в котором root меняет пароль для пользователя sirin.
Для смены пароля самим пользователем используется passwd от имени пользователя.
листинг смены пароля пользователем
1 |
<sirin>$ passwd
|
В данном примере показывается что задается смена пароля пользователем, которая требует
ввода текущего пароля пользователя, и ввода нового пароля.
Следует отметить что root может задать любой пароль пользователю.
Установка времени действия пароля через команду passwd
Для установки срока действия пароля используются ключи команды passwd
листинг
1 |
|
Ключи команды passwd обозначают следующее, и доступны только от имени root.
x - количество дней жизни пароля
w - предупреждение пользователя за количество дней
i - количество дней через которое пароль будет блокирована по истечении срока.
Команда приведенная в листинге ограничивает срок действия пароля 3 месяцами с выдачей
предупреждения за 3 дня до окончания срока действия пароля.
По истечения срока действия пароля пользователю будет предложено сменить пароль.
Установка времени действия пароля через настройку login.defs
Срок действия пароля можно установить в /etc/login.defs
Параметр PASS_MAX_DAYS равный 90 установит срок действия пароля на 90 дней,
параметр PASS_MIN_DAYS должен быть 0.
Для блокирования пароля на 30 минут после 6 неудачных попыток в /etc/login.defs следует
установить LOGIN_RETRIES равный 6, и LOGIN_TIMEOUT равный 1800. Значение LOGIN_TIMEOUT устанавливается в секундах.
листинг
1 |
|
Для более детальной информации следует посматреть страницы справки к команде passwd,
использовав команду man passwd.
Установка запрета на смену пароля пользователем
Также можно запретить менять пароль пользователю, это актуально в том случае если пароли
пользователю задаются непосредственно администратом системы. Сделать это можно
выполнив chmod 700 из под пользователя root на исполняемый файл passwd.
листинг
chmod 700 /usr/bin/passwd
Это действие приведет к тому что никто кроме пользователя root не сможет установить или
сменить пароль. Использовать данный подход имеет смысл если в системе не более двух или
трех пользователей.
Блокирование пароля
Можно заблокировать пароль пользователя из под root
passwd -l username блокировка пароля пользователя
passwd -u username разблокирование пароля пользователя
Также можно запретить вход пользователю изменив shell на /sbin/nologin, сделать это можно выполнив chsh от имени root
листинг команды chsh
1 |
|
Настройка безопасности пароля
Безопасность пароля заключается в его сложность. В понятие сложность пароля входит используемое количество символов в пароле, наличие символов верхнего и нижнего регистра, специальных символов.
Учетные данные и пароли в большинстве *nix хранятся в таких файлах, как /etc/passwd, /etc/shadow, /etc/master.passwd. Эти файлы относятся лишь к стандартной аутентификации, которая легко может быть изменена.
Такие программы, как login, su, passwd, в современных системах сами не работают с паролями, а делают запрос к PAM, которая осуществляет всю процедуру аутентификации.
Таким образом для обеспечения безопасности и настройки пароля используется pam_cracklib из состава Linux-PAM. Linux-PAM используется почти всеми современными Linux.
Рассмотрим файл /etc/pam.d/system-auth-ac(может иметь другое имя, взависимости от дстрибутива) на который ссылается содержимое
/etc/pam.d/passwd
листинг файла /etc/pam.d/system-auth-ac
Изучим строку
password requisite pam_cracklib.so try_first_pass retry=4 minlen=8 dcredit=-2 ucredit=-1
ocredit=-1 lcredit=0
В которой параметр retry=4 это количество попыток для смены пароля, длина пароля должна составлять минимум 6 символов, из которых два должны быть числами, один - символом верхнего регистра и еще один — не алфавитным знаком (тире, например).
Описание параметров pam_cracklib.so
minlen - минимально допустимая длина пароля + 1. Кредит в один символ предоставляется для каждого различного класса символов (верхний регистр, нижний регистр, цифра и прочее). То есть при minlen=7 допускается пароль аР9_Х.
dcredit - максимальное разрешенное число использования цифр в пароле. Это помогает предотвращать использование паролей вроде 12345.
ucredit — максимальное разрешенное число использования символов верхнего регистра.
lcredit — максимальное разрешенное число использования символов нижнего регистра.
ocredit — максимальное разрешенное число использования прочих символов.
Также можно добавить параметр remember=4 для pam_unix.so в password sufficient, он определяет что каждый обновлённый пароль должен отличаться от 4-х предыдущих. Параметр try_first_pass указывает что идет проверка на использованный до этого пароль.
Может кому и пригодится.

+ 3 -
Хоть и пересказ стандартной политики руководства администратора linux, всё равно плюс. Такие вещи надо напоминать постоянно.
Учетные данные и пароли в большинстве *nix хранятся в таких файлах, как /etc/passwd, /etc/shadow, /etc/master.passwd.
Насколько я помню (где-то читал), что сами пороли вроде как нигде ни хранятся, а хранятся хеши паролей в файле /etc/shadow.
т.е. для тебя, в данном контексте,так принципиально, хранятся ли пароли в открытом виде или их хэши? сути-то это не меняет совершенно.
Может и не меняет, но если бы они хранились в открытом виде, тогда легко было бы их посмотреть, через тот-же LiveCD, что является существенной дырой в безопасности. А так получается взлом только методом перебора пароля или подбор хеша.
PS:> Не стоит так остро реагировать, я лишь уточнил.
PS:> Не стоит так остро реагировать, я лишь уточнил.
Речь тут о другом. и как они хранятся там - это уже отдельная тема. а хранить пароли в открытом виде - это вообще уже моветон полнейший, практически везде уже давно хранятся только хэши паролей.
практически везде уже давно хранятся только хэши паролей
Расскажи про это топиком, а?
Так а что тут рассказывать? про сами хэши или где они используются? %)
м... не сегодня уже. и завтра вряд ли - в ГАИ пойду, документы на получение прав подавать. Но напишу в ближайшее время, постараюсь.
Там и рассказывать то нечего. Есть необратимая хэш-функция. На ее входе нешифрованный пароль, на выходе - хэш-значение этого пароля. Функцией с большой долей вероятности гарантируется, что для разных входных данных их хэш-значения не будут одинаковы. Т.е. чтобы небыло такого, что взяли значения А и B и после применния к ним хэш-функции не получили на выходе хэш-значение С для А и B.
В общем, даже если у тебя украли базу с хэш-значениями паролей, то надо изрядно постараться, чтобы подобрать данные, которые бы на выходе выдавали значение, соответствующее твоим паролям.
В общем, даже если у тебя украли базу с хэш-значениями паролей, то надо изрядно постараться, чтобы подобрать данные, которые бы на выходе выдавали значение, соответствующее твоим паролям.
Ну правда в словах "высокой" математики я рассказать не смогу :). Не математик :)