Перенос настроек фильтрации X-Forwarded-For в правилах iRules F5 на RELIANOID WAF/IPDS

Просмотр категорий

Перенос настроек фильтрации X-Forwarded-For в правилах iRules F5 на RELIANOID WAF/IPDS

4 min read

Обзор #

В этой статье объясняется, как перенести iRule для F5 BIG-IP, используемый для блокировки запросов на основе следующих параметров: X-Forwarded-For HTTP-заголовок в RELIANOID используя встроенный WAF/IPDS (Система предотвращения и обнаружения вторжений) Работает на основе правил ModSecurity/OWASP.

Оригинальное правило iRule проверяет X-Forwarded-For заголовок и возвращает HTTP 410 Gone когда найдено совпадение со списком IP-адресов.

Оригинальное правило F5 iRule #

когда HTTP_REQUEST { если { [HTTP::header values ​​"X-Forwarded-For"] содержит "31.192.108.123" || [HTTP::header values ​​"X-Forwarded-For"] содержит "65.103.109.21" || [HTTP::header values ​​"X-Forwarded-For"] содержит "193.90.12.87" || [HTTP::header values ​​"X-Forwarded-For"] содержит "208.100.0.117" || [HTTP::header values ​​"X-Forwarded-For"] содержит "100.113.150.102" || [HTTP::header values ​​"X-Forwarded-For"] содержит "176.10.99.200" || [HTTP::header values ​​"X-Forwarded-For"] содержит "163.172.143.114" || [HTTP::header values ​​"X-Forwarded-For"] содержит "163.172.209.46" || [HTTP::header values ​​"X-Forwarded-For"] содержит "188.138.9.49" || [HTTP::header values ​​"X-Forwarded-For"] содержит "217.23.13.129" || [HTTP::header values ​​"X-Forwarded-For"] содержит "162.247.72.27" || [HTTP::header values ​​"X-Forwarded-For"] содержит "194.67.208.57" || [HTTP::header values ​​"X-Forwarded-For"] contains "41.216.186.114" } { HTTP::respond 410 } }

RELIANOID Миграционный подход #

In RELIANOIDЭту логику можно реализовать следующим образом:

  • Модуль WAF/IPDS
  • Пользовательские правила ModSecurity/OWASP
  • файл соответствия внешнего IP-адреса

Этот подход более масштабируем и проще в обслуживании, чем встраивание множественных сравнений IP-адресов в скрипт.

Рекомендованные RELIANOID Архитектура #

Для миграции используются следующие методы:

  • Проверка заголовка HTTP X-Forwarded-For
  • Внешний файл черного списка, содержащий IP-адреса
  • Динамическое сопоставление IP-адресов с использованием операторов набора правил ModSecurity/OWASP.

Преимущества:

  • Упрощенное управление IP-адресами
  • Централизованный черный список
  • Нет необходимости редактировать правила при каждом изменении IP-адреса.
  • Лучшая масштабируемость

Настройка правил WAF #

Следующее правило ModSecurity/OWASP можно настроить в режиме Raw Mode внутри модуля WAF/IPDS.

SecRule REQUEST_HEADERS:X-Forwarded-For "@ipMatchFromFile /usr/local/relianoid/config/ipds/waf/sets/xff_blacklist.data" "\ id:1001,\ msg:'Custom Match',\ phase:1,\ deny,\ nolog"

Как работает правило #

Это правило выполняет следующие действия:
REQUEST_HEADERS:X-Forwarded-For: Считывает HTTP-заголовок X-Forwarded-For
@ipMatchFromFile: Сравнивает значение заголовка с внешним файлом.
xff_blacklist.txtСодержит список заблокированных IP-адресов.
phase:1Выполняется во время обработки заголовка запроса.
denyБлокирует соответствующие запросы
nologОтключает ведение журнала для соответствующих запросов.

Настройка файла черного списка #

Создайте файл черного списка:

/usr/local/relianoid/config/ipds/waf/sets/xff_blacklist.data

Пример содержания:

31.192.108.123
65.103.109.21
193.90.12.87
208.100.0.117
100.113.150.102
176.10.99.200
163.172.143.114
163.172.209.46
188.138.9.49
217.23.13.129
162.247.72.27
194.67.208.57
41.216.186.114

Настройте правило через веб-интерфейс. #

Создайте список IP-адресов. #

Создайте новый файл данных WAF в соответствующем разделе. IPDS > WAF > Файлы включая содержимое списка IP-адресов:

файл данных черного списка relanoid ipds waf

Создайте условие правила #

Создайте новый набор правил WAF в соответствующем разделе. IPDS > WAF > Наборы правил включая условие совпадения IP-адреса:

relanoid ipds waf xff blacklist rule farm enable

Включите правило в ферме. #

Включите набор правил и назначьте его необходимым фермам.

relanoid ipds waf xff blacklist rule farm enable

Важное оперативное примечание #

Любые изменения файла черного списка требуют:

  • Отмена правила WAF
  • Снова запускаем правило WAF.

Это перезагрузит правило и применит обновленный список IP-адресов. Это повлияет только на правила WAF, проверенные в затронутых фермах, и не затронет фактический трафик, проходящий через балансировщик нагрузки.

Валидация и тестирование #

Для проверки работы правила можно использовать следующую команду:

curl -k -H "X-Forwarded-For: IP_ADDRESS" https://LB_VIP -v

Пример:

curl -k -H "X-Forwarded-For: 31.192.108.123" https://192.168.1.100 -v

ожидаемый результат #

Когда IP-адрес соответствует черному списку:

  • Запрос отклонен WAF.
  • Возвращается ответ с ошибкой HTTP.

Дополнительное улучшение: возврат HTTP 410. #

Исходное правило F5 iRule возвращает следующее:

HTTP 410 Gone

По умолчанию правила ModSecurity/OWASP запрещают действия, возвращающие HTTP-запросы. 403 Forbidden.

Если требуется точное соответствие поведения, правило можно усовершенствовать, чтобы оно возвращало... 410.

Пример:

SecRule REQUEST_HEADERS:X-Forwarded-For "@ipMatchFromFile /usr/local/relianoid/config/ipds/waf/xff_blacklist.txt" "\ id:1001,\ msg:'Custom Match',\ phase:1,\ deny,\ status:410,\ nolog"

Диагностика неисправностей #

Правило не срабатывает #

Убедитесь, что:

  • WAF/IPDS включен на ферме.
  • Правило загружено корректно.
  • Заголовок присутствует в запросе.
  • Правило перезапущено после внесения изменений в файл.

Запросы не заблокированы #

Проверьте:

  • Форматирование IP-адреса внутри файла
  • Нет лишних пробелов или скрытых символов.
  • Исправьте права доступа к файлу.

Отсутствует заголовок #

Некоторые вышестоящие прокси-серверы могут не отправлять данные. X-Forwarded-ForПодтвердите с помощью:

curl -k -H "X-Forwarded-For: 1.2.3.4" https://LB_VIP -v

Ведение журналов необходимо для устранения неполадок. #

Временно удалить:

нолог

Это позволяет вести журналы правил ModSecurity/OWASP в целях отладки.

Лучшие практики #

  • Централизованное ведение файлов черного списка
  • Используйте автоматизацию для обновления черных списков.
  • Периодически проверяйте заблокированные IP-адреса.
  • Защитите файлы правил WAF, предоставив им соответствующие права доступа.
  • Для обеспечения масштабируемости отдавайте предпочтение внешним файлам, а не жестко закодированным правилам.

Резюме #

F5 iRules выполняет X-Forwarded-For Фильтрацию можно эффективно перенести в RELIANOID с использованием встроенного модуля WAF/IPDS и правил ModSecurity.

Такой подход обеспечивает:

  • Централизованное управление IP-адресами
  • Лучшая масштабируемость
  • Более легкое обслуживание
  • Встроенная интеграция WAF
  • Снижена сложность написания скриптов.

📄 Загрузите этот документ в формате PDF #

    EMAIL: *

    Powered by BetterDocs