Настройка firewall
При использовании защиты в proxy-based режиме StormWall перенаправляет запросы от пользователей на ваш сервер, используя следующие адреса в качестве source ip:
185.121.240.0/22
193.84.78.0/24
103.134.155.0/24
188.0.150.0/24
Актуальный список узлов можно уточнить в личном кабинете StormWall, в разделе Документы → FAQ → Настройка фаервола.
Чтобы избежать атаки по прямому IP-адресу сервиса, ограничьте доступ на уровне межсетевого экрана всем адресам, кроме вышеперечисленных.
Чтобы исключить возможность блокировки IP-адресов и уменьшить количество легитимного трафика, проходящего через фильтрующую сеть, добавьте доверенные IP-адреса.
Сеть фильтрует входящие HTTP-запросы пользователей по 80 порту StormWall IP и принимает SSL-соединения по 443 порту.
Примеры конфигураций и проверка
Настройка на примере конфигурации Linux Netfilter (proxy-based protection)
При настройке firewall учитывайте, что:
обычно в iptables уже есть правила;
для вашего сервиса могут быть свои особенности.
Результат выполнения скрипта зависит от вашей конфигурации. Применение правил без изменений может привести к нежелательным последствиям или не дать результата.
В правилах iptables:
Разрешите входящие пакеты на TCP-порты 80 и 443 с адресов из списка и доверенных IP-адресов.
Запретите доступ к TCP-портам 80 и 443 для остальных адресов функцией DROP.
В зависимости от системы можно использовать только правила iptables для plain HTTP или сочетать их с правилами для iptables с поддержкой модулей conntrack и ipset.
Рекомендуется использовать conntrack и ipset вместе, чтобы уменьшить и ускорить набор правил iptables.
Пример конфигурации IP tables для plain HTTP
#!/bin/shADMIN_IPS="127.0.0.1" # Добавление IP-адресов и подсетей в список доверенных:STORMWALL_NODES="66.110.32.128/3083.234.15.112/3087.245.197.192/30185.94.108.0/24"iptables -N stormwall_ipsfor IP in $ADMIN_IPS $STORMWALL_NODES; doiptables -A stormwall_ips -s $IP -j RETURNdoneiptables -A stormwall_ips -j DROPiptables -A INPUT -p tcp -m multiport --dports 80,443 -j stormwall_ips
Пример конфигурации для IP tables с поддержкой conntrack и ipset
#!/usr/bin/env bashADMIN_IPS="127.0.0.1" # Добавление IP-адресов и подсетей в список доверенных:STORMWALL_NODES="66.110.32.128/3083.234.15.112/3087.245.197.192/30185.94.108.0/24"# Создание доверенного списка адресов:ipset -N trusted_nodes hash:netfor ip in $ADMIN_IPS $STORMWALL_NODES; doipset -A trusted_nodes ${IP}done# Создание правил IP tables:iptables -N stormwalliptables -A stormwall -m set --match-set trusted_nodes src -j ACCEPTiptables -A stormwall -j DROPiptables -I INPUT --state ESTABLISHED,RELATED -j ACCEPTiptables -A INPUT -p tcp -m multiport --dports 80,443 --state NEW -j stormwall
Настройка firewall для VM
Чтобы создать правила firewall для VM:
Войдите в VMware Cloud Director.
На вкладке Edges нажмите на нужный Edge и нажмите Configure Services.
На вкладке Firewall нажмите +.
В строке New Rule заполните поля нового правила и нажмите Save changes.
Настройка firewall для VM на базе OpenStack
Войдите в личный кабинет Cloud.ru с ролью администратора группы или пользователя с правом заказа.
Подробнее — в руководстве пользователя по личному кабинету.
В меню VM, на вкладке Безопасность → Security Groups нажмите Добавить.
Укажите название группы и создайте правила, разрешающие входящий (ingress) трафик для портов 80 и 443 и по протоколу TCP только с IP-адресов фильтрующей сети StormWall.
Должно получиться восемь правил, по четыре на каждый порт.
Создайте разрешающие правила (ingress, TCP) для управляющих портов 9022 (VM на базе Linux) и 9089 (VM на базе Windows®).
После создания Security Group отвяжите автоматически созданную Security Group с названием «default».
Проверка настройки firewall
Чтобы проверить настройку firewall, в утилите командной строки curl с флагом --resolve сделайте запрос на реальный IP-адрес защищаемого сервера (апстрим):
curl -I <имя_домена> --resolve <имя_домена>:80:<IP_адрес_апстрима>
При обращении к апстриму с другого устройства ресурс не возвращает успешный код ответа, например 200, 301 или 302. Успешный ответ означает, что firewall пропускает запросы напрямую на ваш сервис и злоумышленники могут этим воспользоваться.
Ответа на запрос может содержать код 7 Failed to connect.
- Настройка на примере конфигурации Linux Netfilter (proxy-based protection)
- Пример конфигурации IP tables для plain HTTP
- Пример конфигурации для IP tables с поддержкой conntrack и ipset
- Настройка firewall для VM
- Настройка firewall для VM на базе OpenStack
- Проверка настройки firewall