Конфигурация
Системные настройки
После установки компонента необходимо настроить несколько системных параметров, страницу для CAPTCHA и подготовить окружение для баз данных GeoIP.
1. Системные настройки
Найдите их в разделе "Система" (значок шестеренки) -> "Системные настройки", выбрав пространство имен iskwaf.
| Ключ | Описание | Возможные значения/Действие |
|---|---|---|
iskwaf_iskwaf_captcha_resource_id |
ID ресурса MODX для отображения страницы CAPTCHA. | Создайте новый ресурс MODX (например, с alias captcha-verify), убедитесь, что он не кэшируемый. В поле "Содержимое ресурса" поместите вызов сниппета [[!IskWafCaptcha]]. Укажите ID этого ресурса здесь. |
iskwaf_iskwaf_option_log |
Режим логирования WAF. |
|
iskwaf_waf_check_mode |
Режим проверки правил WAF. |
|
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-скрипта.
- Получите токен: Зарегистрируйтесь на lite.ip2location.com и получите ваш персональный токен для скачивания. Введите его в системную настройку
iskwaf_ip2location_download_token. - PHP-библиотека IP2Location:
Для работы с BIN-файлами баз IP2Location необходима соответствующая PHP-библиотека. Компонент IskWaf использует PHP-файлы библиотеки, которые должны быть размещены в папке
core/components/iskwaf/lib/ip2location/src/. Вы можете скачать "IP2Location PHP Module" (для BIN Data File) с официального сайта IP2Location и разместить содержимое его папки `src` по указанному пути. - Директории для баз данных: Убедитесь, что на сервере существуют и доступны для записи PHP следующие директории (относительно
core/components/iskwaf/):tmp_db_download/(для временных файлов при скачивании)geoip_db/(для хранения распакованных BIN-файлов баз)
- Первоначальное скачивание баз: После настройки токена и размещения PHP-библиотеки, запустите CRON-скрипт
ip2location_download.php(см. ниже) один раз вручную из командной строки сервера для первоначальной загрузки баз (IP2LOCATION-LITE-DB11.BINиIP2LOCATION-LITE-ASN.BIN).
Настройка GeoIP (IP2Location)
Компонент IskWaf использует базы данных IP2Location LITE для определения геолокации, ASN и другой информации по IP-адресам. Сами файлы баз данных не входят в установочный пакет компонента, а скачиваются с помощью специального CRON-скрипта.
- Получите токен: Зарегистрируйтесь на lite.ip2location.com и получите ваш персональный токен для скачивания. Введите его в системную настройку
iskwaf_ip2location_download_token. - PHP-библиотека IP2Location:
Для работы с BIN-файлами баз IP2Location необходима соответствующая PHP-библиотека. Компонент IskWaf использует PHP-файлы библиотеки, которые должны быть размещены в папке
core/components/iskwaf/lib/ip2location/src/. Вы можете скачать "IP2Location PHP Module" (для BIN Data File) с официального сайта IP2Location и разместить содержимое его папки `src` по указанному пути. - Директории для баз данных: Убедитесь, что на сервере существуют и доступны для записи PHP следующие директории (относительно
core/components/iskwaf/):tmp_db_download/(для временных файлов при скачивании)geoip_db/(для хранения распакованных BIN-файлов баз)
- Первоначальное скачивание баз: После настройки токена и размещения PHP-библиотеки, запустите CRON-скрипт
ip2location_download.php(см. ниже) один раз вручную из командной строки сервера для первоначальной загрузки баз (IP2LOCATION-LITE-DB11.BINиIP2LOCATION-LITE-ASN.BIN).
CRON-задачи
CRON-задачи
Для автоматической работы компонента настройте три CRON-задачи:
- Скрипт:
core/components/iskwaf/elements/cron/ip2location_download.php - Периодичность: Рекомендуется раз в месяц (например, 1-го числа каждого месяца).
- Пример команды:
/usr/bin/php /path/to/your/site/core/components/iskwaf/elements/cron/ip2location_download.php
- Скрипт:
core/components/iskwaf/elements/cron/analyze_ip2location_details.php - Периодичность: Рекомендуется раз в 5-15 минут для оперативного создания правил.
- Пример команды:
/usr/bin/php /path/to/your/site/core/components/iskwaf/elements/cron/analyze_ip2location_details.php
- Скрипт:
core/components/iskwaf/elements/cron/clear_log.php - Периодичность: Рекомендуется раз в сутки.
- Пример команды:
/usr/bin/php /path/to/your/site/core/components/iskwaf/elements/cron/clear_log.php
- Скрипт:
core/components/iskwaf/elements/cron/reports_daily.php - Периодичность: Рекомендуется раз в сутки.
- Пример команды:
/usr/bin/php /path/to/your/site/core/components/iskwaf/elements/cron/reports_daily.php
Убедитесь, что пути к PHP-интерпретатору и к скриптам указаны верно для вашего сервера.
Использование (CMP)
Доступ к интерфейсу управления IskWaf осуществляется через главное меню менеджера MODX (обычно в разделе "Пакеты" или "Приложения").
- Вкладка "Логи": Просмотр всех записей лога WAF с поиском. Теперь должны отображаться колонки "Страна" и "Город" для IP-адресов, по которым есть данные.
- Вкладки правил (IP, User-Agent, Referrer, Request URI): Управление правилами.
- Вкладка "Отчет": Просмотр ежедневных сводных отчетов.