13 ноября 2012 г.

Политика использования паролей в Linux

"... всякий админ терпеть не может программистов за их безалаберность в отношении безопасности систем и кода; всякий програмер не меньше ненавидит админов за их параноидальные замашки в отношении той же безопасности..."
(с) народно-айтишная мудрость.

- Тебе не кажется подозрительным, что ты зашел на сервер в 5:32 утра?
- Я не заходил! Я спал... И вообще-то ночью люди спят!
- А какой был у тебя пароль на этоит сервер, тот что я тебе давал, rmQX0Nw3?

- Нет, я такой пароль запомнить не смог, потому поменял на другой!
- И какой-же он у тебя сейчас?
- Секурный, очень: 1q2w3e4r
- А попробуй сейчас войти по ssh и сообщи мне как успехи. ок?
- Не заходит, пишет Access denied, а почему так?
- Потому, Шарик, что ты балбес!...


(из общения админа и программиста какой-нить конторки)

Знакомо? Ещё нет? Ну, тогда лучше, чтобы такая ситуация и не произошла.
Как избавится? Вот простой рецепт, приготовить может каждый имея системные средства.
  1. Меняем простецкие требования по умолчанию для паролей в linux. Для етого правим файлик /etc/pam.d/system-auth где имеется строка вида:
    password    requisite     pam_cracklib.so try_first_pass retry=3
    и добавляем к ней некоторые правила по сложности пароля, а именно:
    password    requisite     pam_cracklib.so try_first_pass retry=3 minlength=10 lcredit=1 ucredit=1 dcredit=1 difok=4
    что добавили:
    - minlength=10 - ну тут понятно.
    - lcredit=1 (lower case) - минимальное к-во строчных букв в пароле
    - ucredit=1 (upper case) - минимальное к-во заглавных букв в пароле
    - dcredit=1 (digits) - - минимальное к-во цифр в пароле
    - difok=4 - минимальное отличное от старых к-во символов, которые необходимо сменить при изменении пароля на новый.
    (подробнее http://linux.die.net/man/8/pam_cracklib)
    Тоесть мы, таким образом заставим пользователей создавать пароли не менее 10 символов в длинну, с минимум одной строчной, одной заглавной буквами и одной цифрой.
  2. Заставляем нерадивых пользователей системы сменить пароль при следующем логине. Для это есть утилита chage в стандартном дистрибутиве linux (подробнее: http://linux.die.net/man/1/chage)
    chage -M 0 -d <yesterday-YYYY-MM-DD> <user-login>
    для желающих автоматизировать процесс, как домашнее задание - написание скрипта, который будет находить пользователей (c uid >= 500) и применять к ним эту команду
 Ну и конечно же необходимо поставить какую-то софтинку для отлова и блокирования злосных брутфорсеров, к примеру, - denyhosts (http://denyhosts.sourceforge.net/) для того, чтобы не сильно досаждали и не смоли подобрать какие-то словарные пароли в стиле 1q2w3e4r .
Берегите свои системы, свои данные и свои нервы! Успехов.

Комментариев нет:

Отправить комментарий