Данный модуль предназначен для отслеживания частоты событий, таких как неудачные попытки аутентификации, и для автоматической блокировки IP-адресов связанных с этими событиями.
<module-BanIP> <log-level>N</log-level> <pool include-trusted="Yes|No"> <name>string</name> <filter> <addr>...</addr> ... </filter> <trigger-limit>N</trigger-limit> <time-window>time</time-window> <events-max>N</events-max> <ban-limit>N</ban-limit> <ban-time1>timeout</ban-time1> <ban-repeat-time>timeout</ban-repeat-time> <ban-time2>timeout</ban-time2> </pool> ... <on-ban>command</on-ban> </module-BanIP>
Пул привязывается к различным модулям и выполняет две
функции: отслеживает события, такие как неудачные попытки
аутентификации, и блокирует подключения с IP-адресов для которых
частота событий превысила установленный максимум. Необязательный
атрибут include-trusted указывает,
должны ли контролироваться данным пулом доверенные адреса
(по-умолчанию: no). Все дочерние узлы кроме
name необязательны и имеют значения
по-умолчанию. Максимальное количество пулов - 8.
Имя пула. Этот узел является обязательным и используется для
привязки к модулям сервера. В конфигурациях соответствующих
модулей имя пула указывается в узлах banip-pool.
Необязательный узел ACL
позволяющий указывать какие адреса IP клиентов будут
контролироваться данным пулом. Адреса соответствующие узлу addr с атрибутом type имеющим значение deny будут игнорироваться. Если список не
указан, либо адрес не соответствует ни одному узлу addr, он будет контролироваться.
Максимальное количество адресов частота событий для которых
отслеживается одновременно. По-умолчанию:
5000.
Период времени за который
должно произойти более events-max
событий для помещения адреса в список заблокированных.
По-умолчанию: 3 min.
Максимально допустимое количество событий за период времени
указанный в time-window. При превышении
данного порога адрес будет добавлен в список заблокированных.
По-умолчанию: 3.
Максимальное количество записей в списке заблокированных
адресов. По-умолчанию: 100000.
Интервал времени на который
адрес блокируется в первый раз. Значение 0
означает постоянную блокировку. По-умолчанию: 10
min.
Интервал времени во время
которого пул будет продолжать хранить адрес после окончания
временной блокировки но не будет его блокировать. Если за данный
период адрес снова будет заблокирован (т.е. частота событий
превысит порог установленный events-max
за время time-window), для
продолжительности блокировки будет использовано значение ban-time2. По-умолчанию: 1
hour.
Интервал времени на который
блокируется адрес во второй и последующие разы. Значение
0 означает постоянную блокировку. По-умолчанию:
1 day.
Если задано - команда (внешняя программа) которая будет выполняться при каждом создании и удалении блокировки. Указанная строка будет дополнена следующими аргументами:
Имя пула в кавычках, как в узлах pool/name.
Адрес IP который помещается в список или удаляется из списка заблокированных.
Код операции: 0 - разблокирован администратором, 1 - заблокирован администратором, 4 - время действия временной блокировки закончилось, 5 - заблокирован автоматически, 7 - заблокирован автоматически повторно.
Этот аргумент указывается только если 3й аргумент равен 5 или 7 и только если блокировка временная. Аргумент указывает время окончания действия блокировки в формате: "ГГГГ-ММ-ДД ЧЧ:ММ:СС".
В директории examples
находится скрипт REXX banip.cmd
предназначенный для вызова из модуля BanIP на платформе
OS/2. Скрипт добавляет и
удаляет правила системного брандмауэра для
заблокированных/разблокированных адресов, что позволяет снизить
нагрузку на сервер.