Шлюз уровня приложения ( ALG , также известный как шлюз уровня приложения , шлюз приложения , прокси-сервер приложения или прокси-сервер уровня приложения ) — это компонент безопасности, который дополняет брандмауэр или NAT, используемые в мобильной сети . [1] [2] Он позволяет подключать настраиваемые фильтры обхода NAT к шлюзу для поддержки преобразования адресов и портов для определенных протоколов «управления/данных» уровня приложения, таких как FTP , BitTorrent , SIP , RTSP , передача файлов в приложениях обмена мгновенными сообщениями . Для того чтобы эти протоколы работали через NAT или брандмауэр, либо приложение должно знать о комбинации адреса/номера порта, которая разрешает входящие пакеты, либо NAT должен отслеживать управляющий трафик и динамически открывать сопоставления портов ( отверстия брандмауэра ) по мере необходимости. Таким образом, легитимные данные приложения могут проходить через проверки безопасности брандмауэра или NAT, которые в противном случае ограничили бы трафик из-за несоответствия его ограниченным критериям фильтрации.
ALG может предлагать следующие функции:
Глубокая проверка всех пакетов, обрабатываемых ALG в заданной сети, делает эту функциональность возможной. ALG понимает протокол, используемый конкретными приложениями, которые он поддерживает.
Например, для протокола SIP Back-to-Back User Agent ( 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 обеспечивает поддержку сторонних плагинов, которые позволяют сетевым протоколам проходить через брандмауэр Windows и работать за ним и общим доступом к подключению Интернета . [ требуется ссылка ] Плагины ALG могут открывать порты и изменять данные, встроенные в пакеты, такие как порты и IP-адреса . Windows Server 2003 также включает плагин ALG FTP. Плагин ALG FTP предназначен для поддержки активных сеансов FTP через механизм NAT в Windows. Для этого плагин ALG FTP перенаправляет весь трафик, проходящий через NAT и предназначенный для порта 21 (порт управления FTP), на частный прослушивающий порт в диапазоне 3000–5000 на адаптере обратной связи Microsoft . Затем плагин ALG FTP отслеживает/обновляет трафик на канале управления FTP, чтобы плагин FTP мог прокладывать сопоставления портов через NAT для каналов данных FTP.
Фреймворк Netfilter ядра Linux , реализующий NAT в Linux, имеет функции и модули для нескольких алгоритмов NAT: