Лаборатория Maint, Настройка falil2ban (средство защиты от брутфорсов) )на примере postfix
Maint Laboratory

Лаборатория Maint

 
  Главная     Программы     RPM пакеты     Библиотеки     Документация     Заметки     Услуги     Контакты  

 

Настройка fail2ban

  Fail2ban - это инструмент, который отслеживает в log-файлах попытки обратится к сервисам, таким, как SSH, FTP, SMTP, Apache и другим, и если находит постоянно повторяющиеся неудачные попытки с одного и того же IP-адреса или хоста, fail2ban блокирует дальнейшие попытки с этого IP-адреса/хоста, с помощью правила iptables(ipfw) или host.deny.  Собственно сама установка достаточно проста.


# yum install fail2ban
 

 В каталоге /etc/fail2ban будут размещены все файлы настроек. Стандартное поведение fail2ban настроивается в файле /etc/fail2ban/jail.conf.

Опции конфигурирования:  Я опишу дополнительное правило для мониторинга postfix. Имеющееся в комплекте правило, мягко говоря, не отвечает реалиям. Если у вас появились в логах записи вида

NOQUEUE: reject: RCPT from gate.bad-host.ru[xxx.xxx.xxx.xxx]: 450 4.1.8 <postmaster@bad-host>: Sender address rejected: Domain not found; from=<postmaster@bad-host> to=<xxxxxxxxx@example.ru> proto=ESMTP helo=<bad-host.ru>

NOQUEUE: reject: RCPT from unknown[xxx.xxx.xxx]: 550 5.1.7 <remote-bad@bad-host.com>: Sender address rejected: undeliverable address: host xxx.xxx.com[xxx.xxx.xxx.xxx] said: 550 remote-bad@bad-host.com unknown user account (in reply to RCPT TO command); from=<remote-bad@bad-host.com> to=<xxxxx@example.ru> proto=ESMTP helo=<HPDGNXGB>

и они заполнили уже весь лог-файл, значит ищутся адресаты на вашем сервере, которым можно отправить спам.
 В файле jail.conf создаем новое правило

[postfix-spam]
enabled = true
filter = postfix-spam
action = iptables[name=postfix_spam, port=smtp, protocol=tcp]
            sendmail[name=Postfix-spam, dest=root@localhost, sender=fail2ban@localhost]
logpath = /var/log/maillog
bantime = 600

Первая строка - это просто придуманное вами имя. Следует обратить внимание на опцию action. Она включает 2 правила, первое (iptables) - блокировка, второе (sendmail) - отправка сообщения о прозведенном действии.
Опишу правило iptables. Опишу правило sendmail. Теперь приведу мой пример фильтра

# Fail2Ban configuration file
[Definition]
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P[\w\-.^_]+)
# Values: TEXT
#

failregex = reject: RCPT from (.*)\[<HOST>\]: 550
            reject: RCPT from (.*)\[<HOST>\]: 450
            reject: RCPT from (.*)\[<HOST>\]: 554

# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =

Отлаживать фильтры на вашем log-файле можно командой grep с параметром -E, поставив вместо <HOST>, .* или командой fail2ban-regex.
Вы также можете проверить свой файервол, чтобы посмотреть, заблокированы ли какие-либо хосты. Для этого просто запустите: iptables -L

 Второй способ реакции, кроме iptables(ipfw) это action=hostdeny. Он достаточно простой, только вместо работы с iptables (ipfw) идет заполнение файла /etc/host.deny. В качестве параметра, в квадратных скобках, можно указать нестандартное расположение файла запрещенных хостов.
 Поставив, достаточно простое средство, fail2ban вы увидите значительное сокращение log-файлов.
  И последнее, может раздражать приход на почту сообщений от fali2ban. Для начала, можно отфильтровать их средствами procmail или настроить любого почтового клиента для разброса по ящикам, изредка их просматривая, как log-файлы. В последствии можно сократить выдачу, указав в файле fail2ban.conf loglevel=ERROR.

© Елохин И.Ю. (Maint Laboratory)

Далее материал по теме: "Защита от сканнеров безопасности" >>>