Некоторое время назад начали приходить сообщения мониторилки о том, что сервис ssh недоступен на одном из серверов. И он таки был недоступен, потом поднялся сам.
Как показал просмотр логов – по ssh активно шел перебор паролей.
Я решил блочить нарушителей, а не перевесить ssh на другой порт.
Под FreeBSD
У меня все это получилось по прочтении стаьи Лисяры. Немножко подправил его шаги, но совсем незначительно.
make install clean
echo "auth.info;authpriv.info |exec /usr/local/sbin/sshit" >> /etc/syslog.conf
Теперь все попытки входа будут фильтроваться через sshit. Осталось подправить его конфиг /usr/local/etc/sshit.conf:
FIREWALL_TYPE = ipfw2
Так как sshit парсит строчки лога регулярными выражениями, а syslogd имеет нехорошую привычку сокращать в строки вида:
Чтоб такие сокращения убрать, надо в /etc/rc.conf найти/зменить/добавить в
ключик -c, а лучше -cc:
А также в /etc/rc.firewall дописать создание/опустошение таблицы, в которую будут добавляться нарушители:
(у меня это в строке сразу над ${fwcmd} add 65000 pass all from any to any).
Вообще оно должно быть до правила разрешающего все (если такое есть).
Теперь рестарить все нужные сервисы:
/etc/rc.d/sshd restart
и все нарушители будут блочиться файрволом в таблице 0 (ipfw table 0 list). Через некоторое время (вроде бы как 5 минут) они будут разблокированы.
Для Linux
Тут все оказалось проще и веселее.
Вариант №1 – через iptables.
Всего две команды:
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP
Но у этого способа есть минус. Он не знает, чем все закончилось. Если за 60 секунд было 8 подключений – IP блокируется.
Способ №2 – посредством fail2ban.
Устанавливаем:
И даже править ничего не надо. Ну… почти ничего. В логе встречается строка “last message repeated N times”, которая все портит. И в sysklogd нехватает возможности это исправить. syslog-ng вроде бы такого не делает, и пишет во все те же логи. Вот я его себе и установил сразу.
В /etc/fail2ban можно найти конфиги, которыми можно настроить его и на ftp, и на ssh, и на несколько других сервисов.
Реально не знал про fail2ban – пойду пробывать.
интернет бизнес
January 7th, 2008
Наверное имелось ввиду to me 22 ?
anycolor
January 7th, 2008
да fail2ban очень интересная прога
гибкая и тд и тп. сам ею давно пользуюсь
кроме ссх она умееь и другие вещи проверять кстати
DeViL
January 7th, 2008
anycolor
нет, именно to my 22
dm
January 7th, 2008
my – это вся сетка, а me это айпишки сервака логичнее конечно me, но это смаря какие правила перед этим стоят
snake851
January 8th, 2008
и лучше не юзать в ядре IPFEREWALL_DEFAULT_TO_ACCEPT или как оно та, что делает файрвол типа: “запреьить это, а все разрешить”, лучше разрешать конкретное а остальное все лочить
snake851
January 8th, 2008