<module-BanIP>
Пред. | Глава 3. Конфигурация. | След.

## <module-BanIP>

Данный модуль предназначен для отслеживания частоты событий, таких как неудачные попытки аутентификации, и для автоматической блокировки 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>

pool

  Пул привязывается к различным модулям и выполняет две функции: отслеживает события, такие как неудачные попытки аутентификации, и блокирует подключения с IP-адресов для которых частота событий превысила установленный максимум. Необязательный атрибут `include-trusted` указывает, должны ли контролироваться данным пулом доверенные адреса (по-умолчанию: `no`). Все дочерние узлы кроме `name` необязательны и имеют значения по-умолчанию. Максимальное количество пулов - 8.

pool/name

  Имя пула. Этот узел является обязательным и используется для привязки к модулям сервера. В конфигурациях соответствующих модулей имя пула указывается в узлах `banip-pool`.

pool/filter

  Необязательный узел ACL позволяющий указывать какие адреса IP клиентов будут контролироваться данным пулом. Адреса соответствующие узлу `addr` с атрибутом `type` имеющим значение `deny` будут игнорироваться. Если список не указан, либо адрес не соответствует ни одному узлу `addr`, он будет контролироваться.

pool/trigger-limit

  Максимальное количество адресов частота событий для которых отслеживается одновременно. По-умолчанию: `5000`.

pool/time-window

  Период времени за который должно произойти более `events-max` событий для помещения адреса в список заблокированных. По-умолчанию: `3 min`.

pool/events-max

  Максимально допустимое количество событий за период времени указанный в `time-window`. При превышении данного порога адрес будет добавлен в список заблокированных. По-умолчанию: `3`.

pool/ban-limit

  Максимальное количество записей в списке заблокированных адресов. По-умолчанию: `100000`.

pool/ban-time1

  Интервал времени на который адрес блокируется в первый раз. Значение `0` означает постоянную блокировку. По-умолчанию: `10 min`.

pool/ban-repeat-time

  Интервал времени во время которого пул будет продолжать хранить адрес после окончания временной блокировки но не будет его блокировать. Если за данный период адрес снова будет заблокирован (т.е. частота событий превысит порог установленный `events-max` за время `time-window`), для продолжительности блокировки будет использовано значение `ban-time2`. По-умолчанию: `1 hour`.

pool/ban-time2

  Интервал времени на который блокируется адрес во второй и последующие разы. Значение `0` означает постоянную блокировку. По-умолчанию: `1 day`.

on-ban

  Если задано - команда (внешняя программа) которая будет выполняться при каждом создании и удалении блокировки. Указанная строка будет дополнена следующими аргументами:

  1. Имя пула в кавычках, как в узлах `pool`/`name`.

  2. Адрес IP который помещается в список или удаляется из списка заблокированных.

  3. Код операции: 0 - разблокирован администратором, 1 - заблокирован администратором, 4 - время действия временной блокировки закончилось, 5 - заблокирован автоматически, 7 - заблокирован автоматически повторно.

  4. Этот аргумент указывается только если 3й аргумент равен 5 или 7 и только если блокировка временная. Аргумент указывает время окончания действия блокировки в формате: "ГГГГ-ММ-ДД ЧЧ:ММ:СС".

  В директории `examples` находится скрипт REXX `banip.cmd` предназначенный для вызова из модуля BanIP на платформе `OS/2`. Скрипт добавляет и удаляет правила системного брандмауэра для заблокированных/разблокированных адресов, что позволяет снизить нагрузку на сервер.

Пред. | Наверх | След.
<module-poppassd> | Начало | <module-SMTPWeasel>