FreeBSD: Защита ssh от взлома с помощью sshit


О программе sshit я узнал из очень полезного и известного сайта по FreeBSD
http://www.lissyara.su. До этого я уже знал про "простукивание портов", умел
и успешно применял замены стандарных портов на нестандартные, но о таком простом и
изящном решении для защиты ssh канала не догадывался. А ведь именно благорадя этой
скромной програмке можно отсеять 90% совершенно глупых атак малолетних студентов-
пэтэушников. Но, как говорят, дуракам везет и бояться нужно именно дураков. Когда
систему будет ломать профессионал - он будет точно знать зачем и как это сделать,
и от него во FreeBSD предусмотрены более сильные средства защиты.

В чем смысл sshit? Смысл в том, что эта программа ограничивает число неправильных
подключений по 22 порту и блокирует IP-взломщика на указанное время. Блокировка
достигается путем включения соответствующего правила в pf/ipfw, т.е. фаервол перед
эти должен быть включен и настроен. Ставим:

# cd /usr/ports/security/sshit
# make install && make clean

Все что требуется для настройки - открыть файл /etc/syslog.conf и добавить строку:

auth.info;authpriv.info                |exec /usr/local/sbin/sshit

Если вы посмотрите внимательно - там уже есть похожая строка - вот сразу после нее
и добавляется новая. Далее обязательно смотрим конфиг программы: /usr/local/etc/sshit.conf
Находим там полезное - у меня стоит ipfw, а программа по умолчанию работает с pf. Меняем:

FIREWALL_TYPE = ipfw2

Далее, откроем /etc/rc.firewall (если вы конечно, его используете) и после строки,
открывающей доступ по loopback-интерфейсу, добавляем:

setup_loopback
# sshit 
${FwCMD} add deny not icmp from "table(0)" to me

Рестартуем два сервиса и наслаждаемся:

# /etc/rc.d/ipfw restart
# /etc/rc.d/syslogd restart