Для защиты от подбора пароля к серверу существует прекрасная утилита sshguard, которая может работать в паре с рядом фаерволов на FreeBSD (sshguard-ipfw, sshguard-ipfilter, sshguard-pf). В моём случае используется PF.
Устанавливаем из портов
cd /usr/ports/security/sshguard-pf/ make -DBATCH install clean
Добавляем в /etc/syslog.conf строку
auth.info;authpriv.info |exec /usr/local/sbin/sshguard -a 3 -b 10:/etc/sshguard-black -w /etc/sshguard-white
Здесь
/etc/sshguard-black — файл со списком перманентно блокируемых адресов
/etc/sshguard-white — файл с адресами, с которых разрешено неограниченное количество попыток подключения
a — количество попыток
Перезагружаем syslogd
# /etc/rc.d/syslogd restart Stopping syslogd. Starting syslogd.
Теперь создаём таблицу в PF и блокируем доступ всем, кто в неё попал
Для этого вносим в /etc/pf.conf строки
table sshguard persist block in quick proto tcp from sshguard to any port 22 label "ssh bruteforce"
Применим изменения командой
pfctl -f /etc/pf.conf
Добавляем в /etc/rc.conf
# SSH Guard sshguard_enable="YES"
И запускаем
# /usr/local/etc/rc.d/sshguard start
Через время в логах появятся записи вроде
Nov 6 09:07:55 router sshguard[73880]: blacklist: added 197.45.24.84 Nov 6 09:07:55 router sshguard[73880]: 197.45.24.84: blocking forever (3 attacks in 1771 secs, after 1 abuses over 1771 secs) Nov 6 10:35:17 router sshguard[73880]: blacklist: added 119.249.54.75 Nov 6 10:35:17 router sshguard[73880]: 119.249.54.75: blocking forever (3 attacks in 1640 secs, after 1 abuses over 1640 secs) Nov 6 13:36:57 router sshguard[73880]: blacklist: added 46.101.101.15 Nov 6 13:36:57 router sshguard[73880]: 46.101.101.15: blocking forever (3 attacks in 140 secs, after 1 abuses over 140 secs) Nov 6 14:35:14 router sshguard[73880]: blacklist: added 147.230.77.103 Nov 6 14:35:14 router sshguard[73880]: 147.230.77.103: blocking forever (3 attacks in 34 secs, after 1 abuses over 34 secs) Nov 6 16:35:59 router sshguard[73880]: blacklist: added 202.78.200.153 Nov 6 16:35:59 router sshguard[73880]: 202.78.200.153: blocking forever (3 attacks in 130 secs, after 1 abuses over 130 secs) Nov 6 20:04:43 router sshguard[763]: blacklist: added 118.97.147.28 Nov 6 20:04:43 router sshguard[763]: 118.97.147.28: blocking forever (3 attacks in 10 secs, after 1 abuses over 10 secs)
Кроме того можно просмотреть кто попал в табличку
# pfctl -t sshguard -T show ... 118.97.147.28 119.249.54.75 121.18.238.98 121.18.238.109 138.68.43.31 139.59.243.171 139.196.104.201 147.230.77.103 162.243.11.199 182.255.0.4 182.255.0.5 182.255.0.6 185.110.132.202 ...
На продакшине всего ничего засранцев поймал 🙂
# pfctl -t sshguard -T show | wc -l 706
Удачных вам блокировок и берегите сервера от взломов