Шлюз уровня приложения
Шлюз уровня приложения ( ALG , также известный как шлюз уровня приложения , шлюз приложения , прокси-сервер приложения или прокси-сервер уровня приложения ) — это компонент безопасности, который дополняет брандмауэр или NAT, используемый в мобильной сети . [1] [2] Он позволяет настраиваемые фильтры прохождения NAT подключать к шлюзу для поддержки трансляции адресов и портов для определенных протоколов «управления/данных» прикладного уровня, таких как FTP , BitTorrent , SIP , RTSP , передача файлов в приложениях обмена мгновенными сообщениями . Чтобы эти протоколы работали через NAT или брандмауэр, либо приложение должно знать о комбинации адреса/номера порта, которая разрешает входящие пакеты, либо NAT должен отслеживать управляющий трафик и открывать сопоставления портов ( отверстия брандмауэра динамически ). по мере необходимости. Таким образом, законные данные приложения могут проходить через проверки безопасности брандмауэра или NAT, которые в противном случае ограничили бы трафик из-за несоответствия его ограниченным критериям фильтрации.
Функции
[ редактировать ]ALG может выполнять следующие функции:
- позволяя клиентским приложениям использовать динамические эфемерные порты TCP/UDP для связи с известными портами, используемыми серверными приложениями, даже если конфигурация брандмауэра может разрешать только ограниченное количество известных портов. В отсутствие ALG либо порты будут заблокированы, либо сетевому администратору придется явно открыть большое количество портов в брандмауэре, что сделает сеть уязвимой для атак на эти порты.
- преобразование информации об адресе сетевого уровня , находящейся внутри полезных данных приложения, между адресами, приемлемыми для хостов по обе стороны брандмауэра/NAT. Этот аспект вводит термин «шлюз» для ALG.
- распознавание команд, специфичных для приложения, и предоставление детального контроля безопасности над ними
- синхронизация между несколькими потоками/сеансами данных между двумя хостами, обменивающимися данными. Например, приложение FTP может использовать отдельные соединения для передачи команд управления и для обмена данными между клиентом и удаленным сервером. Во время передачи больших файлов управляющее соединение может оставаться бездействующим. ALG может предотвратить истечение времени ожидания управляющего соединения сетевыми устройствами до завершения длительной передачи файлов. [3]
Глубокая проверка всех пакетов, обрабатываемых ALG в данной сети, делает эту функцию возможной. ALG понимает протокол, используемый конкретными приложениями, которые он поддерживает.
Например, для протокола инициации сеанса (SIP) двустороннего пользовательского агента ( B2BUA ) ALG может разрешить обход брандмауэра с помощью SIP. Если брандмауэр завершает трафик SIP на ALG, то ответственность за разрешение сеансов SIP переходит к ALG, а не к брандмауэру. ALG может решить еще одну серьезную проблему SIP: обход NAT . По сути, NAT со встроенным ALG может перезаписывать информацию в сообщениях SIP и сохранять привязки адресов до завершения сеанса. SIP ALG также будет обрабатывать SDP в теле сообщений SIP (который повсеместно используется в VoIP для настройки конечных точек мультимедиа), поскольку SDP также содержит буквальные IP-адреса и порты, которые необходимо транслировать.
SIP ALG на некотором оборудовании часто мешает работе других технологий, пытающихся решить ту же проблему, и различные провайдеры рекомендуют его отключать. [4] [5] [6]
ALG очень похож на прокси-сервер , поскольку он находится между клиентом и реальным сервером, облегчая обмен. Кажется, существует отраслевое соглашение, согласно которому ALG выполняет свою работу без настройки приложения для его использования, перехватывая сообщения. С другой стороны, прокси-сервер обычно необходимо настроить в клиентском приложении. Тогда клиент явно узнает о прокси-сервере и подключается к нему, а не к реальному серверу.
Microsoft Windows
[ редактировать ]Служба шлюза уровня приложений общий в Microsoft Windows обеспечивает поддержку сторонних плагинов, которые позволяют сетевым протоколам проходить через брандмауэр Windows и работать за ним, а также доступ к подключению к Интернету . [ нужна ссылка ] Плагины ALG могут открывать порты и изменять данные, встроенные в пакеты, такие как порты и IP-адреса . Windows Server 2003 также включает подключаемый модуль FTP ALG. Плагин ALG FTP предназначен для поддержки активных сеансов FTP через механизм NAT в Windows. Для этого плагин ALG FTP перенаправляет весь трафик, проходящий через NAT и предназначенный для порта 21 (порт управления FTP), на частный прослушиваемый порт в диапазоне 3000–5000 на адаптере обратной связи Microsoft . Затем плагин ALG FTP отслеживает/обновляет трафик на канале управления FTP, чтобы плагин FTP мог передавать сопоставления портов через NAT для каналов данных FTP.
Линукс
[ редактировать ]ядра Linux Платформа Netfilter , которая реализует NAT в Linux, имеет функции и модули для нескольких NAT ALG:
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ RFC 2663, раздел 2.9 - ALG: официальное определение
- ^ «Что такое шлюз приложений?» . 26 июня 2001 г.
- ^ Протокол передачи файлов (FTP) и маршрутизатор брандмауэра /трансляции сетевых адресов (NAT)/маршрутизатор балансировки нагрузки.
- ^ «Почему SIP ALG является проблемой?» .
- ^ «Что такое SIP ALG и должен ли он быть включен или выключен?» .
- ^ «SIP ALG и почему его следует отключить на большинстве маршрутизаторов | VoiceHost — британский VoIP-провайдер» .