# Application Layer Gateway

Ein Application Layer Gateway oder Application-Level Gateway (kurz ALG) ist ein Gateway in einem Computernetz, das den Datenverkehr auf Anwendungsebene untersucht. Ein ALG schützt das Netz vor unberechtigten Zugriffen und wird in dieser Funktion auch als Application Layer Firewall oder Application-Level Firewall bezeichnet (kurz ALF). Ein weiterer Zweck ist die Ermöglichung einer Konnektivität beim Einsatz von Netzwerkadressübersetzung.

## Funktionsweise

Ein ALG verhält sich ähnlich wie ein Proxy, indem es Daten auf Anwendungsschicht empfängt und an ein Ziel weiterleitet. Das ALG wertet die Nutzdaten des Anwendungsverkehrs aus und kann dadurch besser steuern, welcher Verkehr weitergeleitet wird und welcher nicht. So kann beispielsweise HTTP-Verkehr erlaubt und anderer Verkehr blockiert werden. Ein ALG kann durch die tiefergehende Analyse eine höhere IT-Sicherheit als ein Paketfilter erreichen, erfordert dafür aber mehr Rechenleistung. Ein ALG ist üblicherweise Bestandteil einer Firewall bzw. einem Sicherheitsgateway und unterstützt Stateful Packet Inspection sowie auch Netzwerkadressübersetzung (NAT).
Daneben kann ein ALG auch für NAT Traversal eingesetzt werden, um in einem zustandsorientierten Paketfilter dynamisch die von einer Anwendung benötigten Ports zu öffnen. Das ist beispielsweise erforderlich beim File Transfer Protocol oder Session Initiation Protocol, da diese Protokolle eingehende Verbindungen auf dynamisch gewählten Portnummern erfordern. Durch Auswertung der Signalisierung im Anwendungsverkehr kann das ALG zielgerichtet die benötigten Ports freigeben. Die manuelle Einrichtung von Portweiterleitungen entfällt.

## Web Application Firewall

Eine Web Application Firewall (WAF) ist ein Spezialfall eines Application Layer Gateways bzw. einer Application Layer Firewall, die als Reverse Proxy vor einen Webserver geschaltet wird. Die WAF untersucht den HTTP-Verkehr nach schädlichen Anfragen und blockiert diese, um die Webanwendung zu schützen.

## DNS ALG

Eine weitere Aufgabe des ALGs besteht darin, in einem internen Netzwerk, welches mit NAT arbeitet, darauf zu achten, dass bei Name-Lookups auch eine erreichbare IP-Adresse übermittelt wird. Diese Funktion trägt den Namen DNS ALG. Ist beispielsweise ein internes Netzwerk mit einem DNS-Server über einen Router mit dem Internet verbunden und es kommt eine externe Anfrage für einen Host aus dem internen Netzwerk, so würde der DNS-Server des internen Netzwerkes auch eine interne IP-Adresse angeben. Für den die Adresse anfragenden Client ist der Host über diese Adresse jedoch nicht erreichbar, da sie unter Umständen in einem privaten IP-Adressbereich liegt, welche im Internet nicht geroutet werden. Sendet nun der DNS-Server ein Datenpaket mit der internen IP-Adresse an den anfragenden Client, so ändert das DNS ALG auf dem Router das Datensegment so ab, dass eine aus dem Internet erreichbare Adresse aus dem Adressbereich, welchen auch das NAT verwendet, für den angefragten Host eingetragen ist. Des Weiteren initialisiert das DNS ALG, dass der entsprechende Host für eine bestimmte Zeit auch über die ihm zugewiesene externe Adresse geroutet wird, sowie den dazugehörigen Timer.