Думаю, если не у всех, то у очень многих, у кого есть "белый" IP адрес встречались с ситауцией, когда роботы пытаются брутить ssh.
Есть различные решения чтобы избежать этого - кто-то перевешивает ssh на верхний диапазо портов, кто-то включает аутентификацию по ключу.
Но что делать тогда, когда перевешивать порт не хочется, а флешка с ключами не всегда под рукой? Для этого есть замечательная утилита, которая называется sshguard, которая есть в портах FreeBSD и замечательно умеет работать с наиболее популярными файрволами в этой системе.
Из файрволов автор предпочитает pf, поетому именно на его примере покажем как организовать работу sshguard.
Данная статья предполагает, что читатель имеет базовые знания о системе FreeBSD и знаком с файрволом pf.
Для начала поставим этот самый sshguard:
# cd /usr/ports/security/sshguard-pf/
# make install clean
В своём любимом редакторе редактируем файл конфигурации pf (по умолчанию - /etc/pf.conf) и добавляем в него следующие строки:
table persist
block in log quick on $ext_if from to any port ssh
Далее, в файле /etc/syslog.conf раскомментируем (или добавим, если нет) строчку
auth.info;authpriv.info |exec /usr/local/sbin/sshguard
Перезапускаем syslogd и pf, дожидаемя наших "любимых" роботов, смотрим в auth.log:
Jun 16 00:32:07 sshd[80978]: Did not receive identification string from 61.40.120.3
Jun 16 00:34:44 sshd[81018]: Invalid user fluffy from 61.40.120.3
Jun 16 00:34:47 sshd[81020]: Invalid user admin from 61.40.120.3
Jun 16 00:34:50 sshd[81022]: Invalid user test from 61.40.120.3
Jun 16 00:34:50 sshguard[80833]: Blocking 61.40.120.3: 4 failures over 163 seconds.
Jun 16 00:42:30 sshguard[80833]: Releasing 61.40.120.3 after 460 seconds.
Jun 16 07:40:52 sshd[83868]: Did not receive identification string from 217.168.83.150
Jun 16 07:47:21 sshd[83912]: Invalid user unknown from 217.168.83.150
Jun 16 07:47:21 sshd[83914]: Invalid user live from 217.168.83.150
Jun 16 07:47:22 sshd[83916]: Invalid user cisco from 217.168.83.150
Jun 16 07:47:22 sshguard[80833]: Blocking 217.168.83.150: 4 failures over 390 seconds.
Jun 16 07:54:51 sshguard[80833]: Releasing 217.168.83.150 after 449 seconds.
Как видно из лог-файла, sshguard по умолчанию блокирует попытки соединения после 4й неудачной попытки аутентификации. Будьте отсорожны, не попадидесь на этом!
Более подробную информацю можно узнать из man-страницы sshguard.
Комментируйте, критикуйте.