Конфигурация

Системные настройки

После установки компонента необходимо настроить несколько системных параметров, страницу для CAPTCHA и подготовить окружение для баз данных GeoIP.

1. Системные настройки

Найдите их в разделе "Система" (значок шестеренки) -> "Системные настройки", выбрав пространство имен iskwaf.

Ключ Описание Возможные значения/Действие
iskwaf_iskwaf_captcha_resource_id ID ресурса MODX для отображения страницы CAPTCHA. Создайте новый ресурс MODX (например, с alias captcha-verify), убедитесь, что он не кэшируемый. В поле "Содержимое ресурса" поместите вызов сниппета [[!IskWafCaptcha]]. Укажите ID этого ресурса здесь.
iskwaf_iskwaf_option_log Режим логирования WAF.
  • full: (По умолчанию) Логируются все запросы (сработавшие правила + обычные визиты, включая те, где правила были пропущены из-за сессионной проверки).
  • triggered: Логируются только запросы, вызвавшие срабатывание правила. Опционально может логировать факт пропуска правил из-за сессионной проверки (см. код плагина).
  • off: Логирование отключено (но правила продолжают действовать).
iskwaf_waf_check_mode Режим проверки правил WAF.
  • on_every_request: (По умолчанию) Правила WAF проверяются при каждом запросе.
  • once_per_session: Правила WAF проверяются для пользователя только один раз за сессию. Если проверка пройдена, последующие запросы в той же сессии не проходят полную проверку WAF (но логи посещений могут вестись согласно настройке iskwaf_iskwaf_option_log).
iskwaf_iskwaf_log_retention_days Количество дней хранения записей в логе iskwaf_logs. Старые записи удаляются CRON-скриптом. Число (например, 7, 30). По умолчанию в скрипте: 7.
iskwaf_ip2location_download_token Ваш персональный токен для скачивания баз данных с сайта IP2Location. Получите токен после регистрации на lite.ip2location.com и введите его здесь.
iskwaf_ip_analysis_limit_per_run Максимальное количество новых/устаревших IP для анализа за один запуск CRON-скрипта analyze_ip2location_details.php. Число. По умолчанию в скрипте: 500.
iskwaf_ip_analysis_update_interval Периодичность в днях для обновления информации по IP, уже существующему в таблице деталей. Число. По умолчанию в скрипте: 30.
Автоматическое управление правилами и блокировка по странам
iskwaf_iskwaf_blocked_countries Блокируемые страны Укажите двухбуквенные коды стран (ISO 3166-1 alpha-2) через запятую. Трафик из этих стран будет блокироваться, за исключением доверенных ботов. Пример: CN,RU,KP
iskwaf_iskwaf_auto_allow_as_names Разрешенные имена компаний (AS Name) Имена компаний (ASN), чьи подсети будут автоматически разрешены. Разделитель - вертикальная черта (|). Пример: GOOGLE|Yandex|Microsoft
iskwaf_iskwaf_auto_allow_as_numbers Разрешенные номера AS (ASN) Номера автономных систем (ASN), чьи подсети будут автоматически разрешены. Разделитель - вертикальная черта (|). Пример: AS15169|AS13238
iskwaf_iskwaf_auto_block_as_names Блокируемые имена компаний (AS Name) Имена компаний (ASN), чьи подсети будут автоматически заблокированы. Разделитель - вертикальная черта (|). Пример: DigitalOcean|OVH
iskwaf_iskwaf_auto_block_as_numbers Блокируемые номера AS (ASN) Номера автономных систем (ASN), чьи подсети будут автоматически заблокированы. Разделитель - вертикальная черта (|). Пример: AS14061|AS16276

Страница CAPTCHA

Страница CAPTCHA

Как указано выше, создайте ресурс MODX для отображения CAPTCHA. Он должен быть некэшируемым и содержать вызов сниппета [[!IskWafCaptcha? &tpl=`имя_вашего_чанка_формы`]] (параметр &tpl опционален, по умолчанию `iskWafCaptchaFormTpl`).

3. Настройка GeoIP (IP2Location)

Компонент IskWaf использует базы данных IP2Location LITE для определения геолокации, ASN и другой информации по IP-адресам. Сами файлы баз данных не входят в установочный пакет компонента, а скачиваются с помощью специального CRON-скрипта.

  1. Получите токен: Зарегистрируйтесь на lite.ip2location.com и получите ваш персональный токен для скачивания. Введите его в системную настройку iskwaf_ip2location_download_token.
  2. PHP-библиотека IP2Location:

    Для работы с BIN-файлами баз IP2Location необходима соответствующая PHP-библиотека. Компонент IskWaf использует PHP-файлы библиотеки, которые должны быть размещены в папке core/components/iskwaf/lib/ip2location/src/. Вы можете скачать "IP2Location PHP Module" (для BIN Data File) с официального сайта IP2Location и разместить содержимое его папки `src` по указанному пути.

  3. Директории для баз данных: Убедитесь, что на сервере существуют и доступны для записи PHP следующие директории (относительно core/components/iskwaf/):
    • tmp_db_download/ (для временных файлов при скачивании)
    • geoip_db/ (для хранения распакованных BIN-файлов баз)
  4. Первоначальное скачивание баз: После настройки токена и размещения PHP-библиотеки, запустите CRON-скрипт ip2location_download.php (см. ниже) один раз вручную из командной строки сервера для первоначальной загрузки баз (IP2LOCATION-LITE-DB11.BIN и IP2LOCATION-LITE-ASN.BIN).

Настройка GeoIP (IP2Location)

Компонент IskWaf использует базы данных IP2Location LITE для определения геолокации, ASN и другой информации по IP-адресам. Сами файлы баз данных не входят в установочный пакет компонента, а скачиваются с помощью специального CRON-скрипта.

  1. Получите токен: Зарегистрируйтесь на lite.ip2location.com и получите ваш персональный токен для скачивания. Введите его в системную настройку iskwaf_ip2location_download_token.
  2. PHP-библиотека IP2Location:

    Для работы с BIN-файлами баз IP2Location необходима соответствующая PHP-библиотека. Компонент IskWaf использует PHP-файлы библиотеки, которые должны быть размещены в папке core/components/iskwaf/lib/ip2location/src/. Вы можете скачать "IP2Location PHP Module" (для BIN Data File) с официального сайта IP2Location и разместить содержимое его папки `src` по указанному пути.

  3. Директории для баз данных: Убедитесь, что на сервере существуют и доступны для записи PHP следующие директории (относительно core/components/iskwaf/):
    • tmp_db_download/ (для временных файлов при скачивании)
    • geoip_db/ (для хранения распакованных BIN-файлов баз)
  4. Первоначальное скачивание баз: После настройки токена и размещения PHP-библиотеки, запустите CRON-скрипт ip2location_download.php (см. ниже) один раз вручную из командной строки сервера для первоначальной загрузки баз (IP2LOCATION-LITE-DB11.BIN и IP2LOCATION-LITE-ASN.BIN).

CRON-задачи

CRON-задачи

Для автоматической работы компонента настройте три CRON-задачи:

Скачивание/обновление баз GeoIP (IP2Location):
Анализ IP-адресов, заполнение GeoIP и авто-создание правил:
Очистка старых логов:
Формирования отчетов:

Убедитесь, что пути к PHP-интерпретатору и к скриптам указаны верно для вашего сервера.

Использование (CMP)

Доступ к интерфейсу управления IskWaf осуществляется через главное меню менеджера MODX (обычно в разделе "Пакеты" или "Приложения").