Fail2ban + squid

И так, Fail2ban это програмьа, которая парсит системные логи на наличие ошибок аутентификации и т.д. и по заданным правилам банит атакующий IP.

Недавно мне понадобилось защитить мой squid от атак из внешней сети. Но тут я обнаружил что в стандартной поставке настроек для Squid нету. Пришлось немного поковыряться, и оно было создано. Выкладываю тут может кому то понадобится.

Настройка:

*** Создаем новый конфиг правил для squid:

Код: [Выделить]

cd /etc/fail2ban/filter.d
touch squid.conf

*** Добавляем в squid.conf следующие строки:

Код: [Выделить]

# Fail2Ban configuration file
#
# Author: Dmitry Kor. <admin@itmages.ru>
#
# $Revision: 658 $
#

[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 "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values: TEXT
#
failregex = ^.* <HOST> TCP_DENIED/403 .*$

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

*** Затем открываем /etc/fail2ban/jail.d/defaults-debian.conf и добавляем следующую секцию, к примеру за секцию [ssh]:

Код: [Выделить]

[squid]

enabled = true
port    = 3128
filter  = squid
logpath  = /var/log/squid/access.log
maxretry = 3
bantime = 24h

 *** Перезагружаем наш монитор:

Код: [Выделить]

# /etc/init.d/fail2ban restart

либо

Код: [Выделить]

# systemctl restart fail2ban

Результат:
После успешной настройки я попытался подолбиться на свой прокси. В логах сервера появилось следующее:

Лог squid (access.log)

Код: [Выделить]

1254656229.875      8 89.<>.209 TCP_DENIED/403 1394 GET http://ya.ru/ - NONE/- text/html
1254656230.157      5 89.<>.209 TCP_DENIED/403 1416 GET http://ya.ru/favicon.ico - NONE/- text/html
1254656233.155      8 89.<>.209 TCP_DENIED/403 1416 GET http://ya.ru/favicon.ico - NONE/- text/html

Лог fail2ban (fail2ban.log)

Код: [Выделить]

2009-10-04 06:37:14,135 fail2ban.actions: WARNING [squid] Ban 89.<>.209

Что нам и требовалось получить.

:)

Белый список IP в Fail2Ban, разблокировка IP-адресов

Чтобы разблокировать IP, который попал в блокировку fail2ban, используйте команду:

# fail2ban-client set SECTION unbanip IP — где SECTION название секции в конфигурационном файле, по правилам которого был заблокирован ваш IP адрес. Например:

# fail2ban-client set apache-noscript unbanip 185.*.*.*

Вы можете добавить определенные IP адреса в исключения fail2ban (белый список). Для этого в конфигурационном файле jail.conf внесите IP в строку:

ignoreip =185.*.*.*

Добавить комментарий