С развитием вычислительных мощностей ускоряются методы взлома паролей. Сейчас тупой перебор пароля "по буквам" оказывается не таким уж "тупым". Большинство систем именно так и взламывают, угадав пароль. Поэтому решил, что необходимо обезопасить свои сервера от такого типа взлома. Не хочу чтобы кто-то случайно подобрал мой пароль ssh. В этом мне помогает Fail2Ban. Если злоумышленник пытается подобрать пароль к серверу, то при 3-ей неудачной попытке его ip добавляется в бан лист на определенное время. И никакие запросы на доступ от него не обрабатываются. Много ли таких? К примеру, у сайта с 2 000 уникальными посетителями в день в "бане" постоянно сидят по 15-20 ip адресов, которые подбирали пароли. Вот
Приглядитесь к ip адресам. У меня есть статистика заражения целых подсетей. Следовательно, кто-то организованно манипулирует, чтобы подобрать мой пароль. А теперь подсчитаем с каким успехом они это делают. Если 200 ip адресов в подсети заражены и пытаются подобрать пароль, а я их блокирую на 3-ей неудачной попытке на 2 часа, то в день они подбирают мне 7200 вариаций пароля. В год это уже более 2.5 миллионов вариаций моего пароля. Но против лома есть приём - умельцы написали к Fail2Ban модуль, который экспоненциально увеличивает время бана в зависимости от количества неудачных попыток. Поэтому самые злостные будут отправляться в бан не на 2 часа, а на 2 года (да-да, до сих пор 1 там сидит).
Но! Взломщики пошли дальше. Они определяют максимальное количество попыток и время бана экспериментально, а потом подстраивают систему так, чтобы остальные ip не попались мне в чёрный список. Поэтому в моём списке не так уж много ip по сравнению с количеством обращений.
Кому лень искать, вот эти команды помогут:
Установка
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install fail2ban
Резервная копия файла настроек (чтобы не испортить оригинал)
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Включаем при старте системы:
chkconfig fail2ban on
Растарт, чтобы применить настройки:
sudo service fail2ban restart
Проверяем кто сидит в бане:
fail2ban-client status sshd
P.S.
Пока писал статью, 4 раза неправильно ввёл свой пароль к серверу. И сидел, не понимая почему соединение обрывается... facepalm!
P.P.S.
Про более подробную настройку Fail2Ban читайте в статье "Fail2Ban настройка".