ставим программку sshguard.
Принцип работы программы программы следующий: sshguard парсит лог файл регистраций в системе, если обнаруживает аномальное количество неудачных подключений с определенного IP, помечает адрес как нарушителя и добавляет в IPFW блокирующее правило на определенный промежуток времени, по умолчанию, время блокировки, 7 минут. Если в дальнейшем, данный IP вновь обратит на себя внимание sshguard своим неадекватным поведением, снова будет создано блокирующее правило в IPFW, но срок будет 2*7. Схема расчета времени блокировки следующая: 7 минут, 2*7 минут, 2*2*7 минут ..... 2^(n-1)*7 минут. В дальнейшем, после определенного количества рецидивов, указанного в опции -b, IP может будет помещен с черный список на постоянной основе.
Итак, ставим её из портов
Код:
# cd /usr/ports/security/sshguard-ipfw
# make install clean
Открываем /etc/syslog.conf и добавляем в конец файла сл. строчку
(эта строчка определяет основные настройки программы, в самом низу я перечислю описание параметров)
Код:
auth.info;authpriv.info|exec /usr/local/sbin/sshguard
Перезапускаем syslogd
Код:
/etc/rc.d/syslogd restart
Или же добавить эту строчку
Код:
auth.info;authpriv.info|exec /usr/local/sbin/sshguard-a 3 -b 10:/var/db/sshguard/blacklist -w /var/db/sshguard/whitelist
Всё, можно пользоваться
PS: Основные опции:
-a Количество неудачных попыток ввода пароля, после которых адрес блокируется, в нашем случае 3.
-b номер:/path/to/blacklist. Задает файл черного списка адресов и количество блокировок, после которого IP адрес будет помещен в этот список.
-w адрес/хост/блок/файл
Данная опция определяет белый список адресов. Может принимать IP адрес IP4 или IP6, доменное имя хоста или блок IP адресов в формате
10.20.30.0/24. Кроме того можно прописать путь до файла, содержащего все вышеперечисленное в виде списка. Что-бы указать несколько адресов,
хостов или блоков, данную нужно использовать повторно, то есть -w 1.2.3.4 -w 5.6.7.8 -w microsoft.com. Мы прописали путь до файла.
-p секунды
Время блокировки адреса атакующего. По умолчанию 420 секунд ( 7 минут )
-s секунд
Реабилитировать адрес после указанного количества секунд. По умолчанию 20*60 ( 20 минут). Грубо говоря, если попытки атаки с одного IP
предпринимаются раз в 20 минут, в черный список он не попадет никогда.