Алгоритм обработки трафика
В данной статье описан алгоритм обработки трафика (packet flow), представленный на схеме ниже. В зависимости от типа трафика и режима работы UserGate, порядок обработки может отличаться. В общем случае рассмотрим:
В общем случае путь прохождения пакета выглядит следующим образом: Трафик DNAT и Port ForwardingПосле поступления на интерфейс UserGate пакет попадает под правила зоны – в блок DoS, Spoofing. На этом этапе производится базовая проверка трафика (например, на наличие атак). Уже на этом этапе может произойти отбрасывание пакета, например, по причине детектирования SYN-флуда, наличия аномалий трафика TCP, UDP или ICMP. ПримечаниеЗона – это логическая среда, объединяющая интерфейсы устройства под едиными для всех правилами.
ПримечаниеНастройка защиты от DoS-атак на зоне является «грубой», т.к. в свойствах зоны настраивается только параметры защиты зоны от сетевого флуда (порог уведомлений/отбрасывания пакетов, агрегирование) и защита от IP-спуфинга. «Гибкая» настройка – с указанием сервисов и адресов, производится с помощью правил защиты DoS.
Если пакет не был отброшен на предыдущем этапе, то далее он проходит блок Fast Path, который позволяет пропустить через все проверки и блоки только первые пакеты сессии. В дальнейшем если пакеты по какой-то причине не требуют проверки и специальной обработки, модуль FastPath, формирует правило, которое перенаправляет пакет напрямую с входного интерфейса на выходной. При этом с такими пакетами выполняются все необходимые для доставки получаетелю преобразования(DNAT, PortForwarding и т.д.) ПримечаниеФункция FastPath активирована по умолчанию. Сброс правил модуля осуществляется одновременно со сбросом сессий в межсетевом экране. Для этого на странице Политики сети ➜ Межсетевой экран доступна кнопка Принудительно применить. Функция Fast Path выключается автоматически, при записи трафика или при включении журналирования правил межсетевого экрана. Под обработку модуля не попадают фрагментированные пакеты и пакеты предназначенные для L7/IDPS инспектирования.
ПримечаниеДля получения статуса модуля FastPath можно использовать команду CLI: device config -get fastpath
Отключить функцию можно командой device config -set fastpath false Пакет не попавший под правила FastPath, следует дальше и попадает в блок Gateways, PBR, в котором помечается (маркируется) для дальнейшего использования в правилах маршрутизации. Затем в блоке DNAT, Port Forwarding происходит обработка и подмена адреса назначения (источника в случае SNAT и порта в случае Port Forwarding), после которой пакет проходит далее, в блок с условным названием CHECK. Трафик DNAT и Port Forwarding подчиняется созданным правилам фильтрации межсетевого экрана. Анализ трафика начинается на этапе установления TCP-соединения с портами назначения 80 и 443. UserGate анализирует весь TCP-трафик, но его перехват осуществляет на финальной стадии установления надёжного TCP-соединения, т.е. на последнем этапе «трёхстороннего рукопожатия» (three-way handshake). Таким образом, первые пакеты пройдут путь до блока Firewall и будут отброшены в случае наличия запрещающего правила, под условия которого подходят эти пакеты. ПримечаниеПравила межсетевого экрана, созданные по умолчанию (Default Block), не применяются к трафику DNAT и Port Forwarding.
Обработка трафика DNAT и Port Forwarding проходит следующим образом:
В случае соответствия условиям блокирующего правила контентной фильтрации трафик будет заблокирован, а пользователю вернётся страница блокировки. Случаи возврата пользователю страницы блокировки рассмотрены в разделе Отображение страницы блокировки. ПримечаниеРезультатом блокирующих правил контентной фильтрации является отображение страницы блокировки на пользовательский запрос ресурса. Блокирующие правила межсетевого экрана не возвращают страницу блокировки.
В противном случае трафик будет перенаправлен в блок Routing. В блоке Routing происходит проверка всех записей подключённых сетей, проверка доступности шлюзов, проверка записей (статических и динамических) виртуальных маршрутизаторов. Далее пакет попадет в блок L7, IDPS, в котором проверяются используемые приложения, а также работает система обнаружения и предотвращения вторжений. В блоке Firewall пакеты обрабатываются только в случае наличия правил, созданных администратором. Затем пакет проходит через блок Shaper (настройка пропускной способности), попадает в блок NAT (настройка правил NAT, DNAT, Policy-based routing, Port Forwarding и Network Mapping) и передаётся на выходной интерфейс. Режим Explicit ProxyПоступая на интерфейс, пакет проходит проверку соответствия правилам зоны в блоке DoS, Spoofing. Далее пакет обрабатывается в блоке Gateways, PBR, в котором помечается (маркируется) для дальнейшего использования в правилах маршрутизации. Затем пакет без изменений проходит в блок с условным названием CHECK. В блоке CHECK весь трафик будет проходить проверку соответствия условиям правил инспектирования, контентной фильтрации, а также принадлежности сервисам ICAP, reverse-прокси, веб-портала, АСУ ТП и защиты почтового трафика. Проверка осуществляется путём поэтапного анализа трафика в соответствие с параметрами алгоритма блока CHECK. В случае работы в режиме Explicit Proxy в момент запроса клиентом внешнего ресурса формируется 2 TCP-сессии:
ПримечаниеДля использования UserGate режиме Explicit Proxy необходимо на зоне разрешить сервис HTTP(s)-прокси, иначе пакет будет отброшен.
Далее представлен алгоритм сопоставления трафика политикам UserGate при работе в режиме Explicit Proxy. Сопоставление происходит в блоке CHECK.
При работе в Explicit Proxy Mode, первое сообщение, которое UserGate получает от клиента – HTTP Connect, из которого можно извлечь информацию о зонах, адресах источника/назначения, пользователе. Если по таким параметрам, блокировка не происходит, то следующий пакет, который ожидает UserGate – это пакет Client Hello, с которым становится доступна идентификация по имени сервера (SNI). На основании SNI доступна фильтрация по доменам и категориям сайтов. Если настроено инспектирование SSL, то на этом же этапе происходит проверка сертификата (корректность сертификата, срок действия и т.д.). Настройка правил инспектирования доступна по зонам, адресам, пользователям, категориям URL, доменам. Если на данном этапе блокировка не произошла, то далее UserGate получает от пользователя HTTP Request (GET, PUT и т.д.), из которого можно получить информацию о реферере, URL, Useragent браузера, методе HTTP. Соответственно, эти же параметры могут быть использованы в качестве параметров фильтрации при настройке политик. На этом этапе доступна работа с URL. Поэтому, если трафик не расшифровывается, то доступна только фильтрация по доменным именам. При получении ответа от сервера (HTTP Response) доступна информация о типе контента (содержится в заголовке HTTP Response) и тело сообщения. Соответственно, на данном этапе доступна фильтрация по типу контента, проверка морфологии, а также работает потоковый антивирус UserGate. После обработки в блоке CHECK трафик будет направлен в блок лицензирования трафика (License); трафик сервисов reverse-прокси, веб-портала и защиты почтового трафика не проходят блок License, а сразу переходят в блок Routing, где происходит проверка записей подключённых сетей, доступности шлюзов, записей виртуальных маршрутизаторов. Далее пакет попадет в блоки L7, IDPS (проверка используемых приложений, также работает система обнаружения и предотвращения вторжений), Firewall, Shaper (настройка пропускной способности), NAT (настройка правил NAT, DNAT, Policy-based routing, Port Forwarding и Network Mapping) и передаётся на выходной интерфейс. Режим Transparent ProxyПоступая на интерфейс, пакет проходит проверку соответствия правилам зоны в блоке DoS, Spoofing. Далее пакет обрабатывается в блоке Gateways, PBR, в котором помечается (маркируется) для дальнейшего использования в правилах маршрутизации. Затем пакет без изменений проходит в блок с условным названием CHECK. В режиме Transparent Proxy UserGate является посредником между клиентом и конечным сервером, выполняющим обработку и перехват трафика в соответствии с настроенными на UserGate политиками. В случае использования Transparent Proxy Mode, по умолчанию, UserGate будет анализировать TCP-пакеты, отправляемые по портам 80 и 443. В Transparent Proxy Mode обработка в блоке CHECK происходит по следующей схеме:
UserGate анализирует весь TCP-трафик, но его перехват модулем Local Process осуществляется на финальной стадии установления надёжного TCP-соединения, т.е. на последнем этапе «трёхстороннего рукопожатия» (three-way handshake). ПримечаниеВ случае отсутствия разрешающих клиентских правил все пакеты будут отброшены правилом межсетевого экрана Default Block, созданным по умолчанию.
После получения сообщения Client Hello, содержащего SNI, доступна фильтрация по доменам и категориям сайтов. Если настроено инспектирование SSL, то на этом же этапе происходит проверка сертификата (корректность сертификата, срок действия и т.д.). Настройка правил инспектирования доступна по зонам, адресам, пользователям, категориям URL, доменам. Если на данном этапе блокировка не произошла, то далее UserGate получает от пользователя HTTP Request (GET, PUT и т.д.), из которого можно получить информацию о реферере, URL, Useragent браузера, методе HTTP. Соответственно, эти же параметры могут быть использованы в качестве параметров фильтрации при настройке политик. На этом этапе доступна работа с URL. Поэтому, если трафик не расшифровывается, то доступна только фильтрация по доменным именам. При получении ответа от сервера (HTTP Response) доступна информация о типе контента (содержится в заголовке HTTP Response) и тело сообщения. Соответственно, на данном этапе доступна фильтрация по типу контента, проверка морфологии, а также работает потоковый антивирус UserGate. Если после проверки соответствия политикам UserGate трафик не был заблокирован, то он будет передан в блоки License (лицензирование трафика), Routing (проверка записей подключённых сетей, доступности шлюзов, записей виртуальных маршрутизаторов), L7, IDPS (проверка используемых приложений, также работает система обнаружения и предотвращения вторжений), Firewall, Shaper (настройка пропускной способности), NAT (настройка правил NAT, DNAT, Policy-based routing, Port Forwarding и Network Mapping) и передаётся на выходной интерфейс. Т.к. в Transparent Proxy Mode из всего потока в обработку попадает только трафик, удовлетворяющий условиям политик, настроенных на UserGate, то Transparent Proxy Mode является более производительным при большом потоке веб-трафика по отношению к Explicit Proxy Mode. |