Обзор #
В этой статье объясняется, как перенести распространенное правило iRule для F5 BIG-IP, используемое для вставки заголовков безопасности HTTP, в RELIANOID с использованием встроенных функций HTTP/S-фермы.
Следующее правило iRule внедряет несколько заголовков безопасности HTTP-ответа:
когда HTTP_RESPONSE_RELEASE { если {!([ HTTP::header exists "X-XSS-Protection"])} { HTTP::header insert "X-XSS-Protection" "1; mode=block" } если { !([ HTTP::header exists "Strict-Transport-Security" ])} { HTTP::header insert "Strict-Transport-Security" "max-age=63072000; includeSubDomains; preload" } если { !([ HTTP::header exists "content-security-policy" ])} { HTTP::header insert "content-security-policy" "frame-ancestors 'none'" } если {!([HTTP::header exists "X-Content-Type-Options" ])} { HTTP::header insert "X-Content-Type-Options" nosniff } }
In RELIANOIDЭти элементы управления безопасностью можно настроить непосредственно через веб-интерфейс без необходимости написания скриптов на языке TCL.
Включение HSTS (строгой транспортной безопасности) #
HSTS заставляет браузеры использовать только HTTPS-соединения. Преимущества включают в себя:
- Предотвращение атак с использованием перехвата SSL-трафика
- Обеспечение шифрования коммуникаций
- Повышение безопасности передачи данных на стороне браузера.
Следующий раздел iRule:
HTTP::header insert "Strict-Transport-Security" "max-age=63072000; includeSubDomains; preload"
Перенос возможен непосредственно через веб-интерфейс.
Перейдите по пути: Фермы > Ферма HTTP/S > Службы
Тогда:
- Выберите необходимую службу HTTP/S.
- Включите переключатель STS
Это автоматически внедряет Strict-Transport-Security в заголовок HTTPS-ответа.
Настройка заголовка безопасности X-XSS-Protection #
Включает фильтрацию XSS-атак в устаревших браузерах. Хотя современные браузеры в большей степени полагаются на CSP, этот заголовок по-прежнему полезен для обеспечения совместимости.
Перейдите к: Фермы > Ферма HTTP/S > Глобальные > Расширенные > ЗаголовкиЗатем: Нажмите Create rule. Выбирать:
Тип Response: Add header
Заголовок: X-XSS-Protection
Значение: 1; mode=block
Настройка заголовка безопасности Content-Security-Policy #
Управляет способом встраивания и загрузки контента. Преимущества:
- Предотвращает кликджекинг
- Ограничивает несанкционированное размещение в фреймах.
- Повышает уровень безопасности браузера.
Перейдите к: Фермы > Ферма HTTP/S > Глобальные > Расширенные > ЗаголовкиЗатем: Нажмите Create rule. Выбирать:
Тип Response: Add header
Заголовок: Content-Security-Policy
Значение: frame-ancestors 'none'
Настройка заголовка безопасности X-Content-Type-Options #
Предотвращает перехват MIME-кодов браузерами. Преимущества:
- Предотвращает интерпретацию вредоносного контента.
- Уменьшает количество возможных векторов внедрения скриптов.
Перейдите к: Фермы > Ферма HTTP/S > Глобальные > Расширенные > ЗаголовкиЗатем: Нажмите Create rule. Выбирать:
Тип Response: Add header
Заголовок: X-Content-Type-Options
Значение: nosniff
Проверка #
После применения конфигурации проверьте заголовки ответа, используя:
curl -I https://
Ожидаемый результат:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload X-XSS-Protection: 1; mode=block Content-Security-Policy: frame-ancestors 'none' X-Content-Type-Options: nosniff
Диагностика неисправностей #
Заголовки не отображаются #
Убедитесь, что:
- Правила применяются к соответствующей ферме.
- HTTPS включен для HSTS
- Правила заголовка настроены следующим образом: Режимы секции мощности условиями,
- Конфигурация фермы применена/перезагружена.
Дублирующиеся заголовки #
Если бэкэнд-приложение уже внедряет заголовки, могут появиться дубликаты. Рекомендация:
- Решите, следует ли управлять заголовками серверным приложением или... RELIANOID конфигурация фермы
- Избегайте использования одних и тех же заголовков в обоих местах.
HSTS не работает #
Убедитесь, что:
- Клиенты подключаются через HTTPS.
- Установлены действительные SSL-сертификаты
- Браузеры не проводят тестирование по протоколу HTTP.
Заголовки HSTS игнорируются в соединениях, не использующих протокол TLS.
Резюме #
Правила iRules от F5, используемые для вставки заголовков безопасности HTTP, можно перенести на RELIANOID Использование встроенных функций HTTP/S-фермы без скриптов TCL.
Такой подход упрощает администрирование, сохраняя при этом эквивалентную функциональность безопасности.