Блог

Fail2ban

Категория: Инструкции , написано 20.02.2018

Fail2ban - программный пакет, предназначенный для обнаружения и предотвращения попыток вторжения в систему, подключённую к сети.
Для работы Fail2ban необходим установленный и активизированный сетевой экран - firewall (в Linux системах это - iptables)

Установка:

CentOS

yum install fail2ban 

Debian

sudo apt-get install fail2ban 

Настройка конфигурационного файла /etc/fail2ban/jail.conf

Настройки по умолчанию

ignoreip = 127.0.0.1/8    #адреса и сети не подпадающие под правила (перечисляются через пробел)
bantime = 600    #время блокировки в секундах (600 сек. = 10 мин.)
findtime = 600    #хост будет заблокирован если исчерпает отведенные ему попытки за последние findtime в секундах (600 сек. = 10 мин.)
maxretry = 3   # число попыток после которых будет заблокирован адрес.

Теперь находим в этом же файле блок ssh-iptables и приводим к виду:

[ssh-iptables]
enabled  = true   # по умолчанию true (включен)
filter   = sshd      # служба которую нужно мониторить
action   = iptables[name=SSH, port=ssh, protocol=tcp]    # добавляет правило блокировки в iptables
sendmail-whois[name=SSH, dest=support@h1host.ru, sender=alert@h1host.ru]  # отправляет на указанный e-mail информацию о заблокированном адресе с полной расшифровкой whois
logpath  = /var/log/secure  # лог файл который нужно просматривать
maxretry = 3     # число попыток после которых будет заблокирован адрес.

Для отображения в письме подробной информации об ip-адресе необходимо установить whois

yum install jwhois

Запускаем fail2ban и добавляем в автозапуск:

/etc/init.d/fail2ban start

chkconfig fail2ban on
chkconfig --list fail2ban
fail2ban       	0:выкл	1:выкл	2:вкл	3:вкл	4:вкл	5:вкл	6:выкл

В iptables появляется новые правила:

 iptables -L
Chain fail2ban-SSH (1 references)
target     prot opt source               destination  
RETURN     all  --  anywhere             anywhere

При наступлении блокировки отображается новое правило:

REJECT     all  --  srx.hostname.ru        anywhere            reject-with icmp-port-unreachable

Письмо о блокировке:

Hi,
The IP 188.64.. has just been banned by Fail2Ban after
3 attempts against SSH.
Here is more information about 188.64..:
% Abuse contact for '188.64..0 - 188.64..255' is 'abuse@hostname.ru'
inetnum: 188.64..0 - 188.64..255
netname: RU-H1-20090723
descr: H1 LLC
country: RU
org: ORG-HL36-RIPE
...........