ALG im Überblick
Ein Application Layer Gateway (ALG) ermöglicht es dem Gateway, die Nutzdaten der Anwendungsebene zu analysieren und Entscheidungen zu treffen, ob Datenverkehr zum Anwendungsserver zugelassen oder verweigert werden soll. ALGs unterstützen Anwendungen wie Transfer Protocol (FTP) und verschiedene IP-Protokolle, die die Anwendungs-Layer-Nutzdaten verwenden, um die dynamischen TCP- (Transmission Control Protocol) oder User Datagram Protocol (UDP)-Ports zu kommunizieren, auf denen die Anwendungen Datenverbindungen öffnen.
ALG im Überblick
Ein Application Layer Gateway (ALG) ist eine Softwarekomponente, die für die Verwaltung bestimmter Protokolle wie Session Initiation Protocol (SIP) oder FTP auf Geräten von Juniper Networks ausgelegt ist, auf denen Junos OS ausgeführt wird. Das ALG-Modul ist für die anwendungsorientierte Paketverarbeitung auf Switches verantwortlich.
ALG-Funktionen können entweder durch einen Dienst oder eine Anwendung ausgelöst werden, die in der Sicherheitsrichtlinie konfiguriert ist:
Ein Dienst ist ein Objekt, das ein Anwendungsprotokoll anhand von Layer-4-Informationen (wie Standard- und akzeptierten TCP- und UDP-Portnummern) für einen Anwendungsdienst (wie Telnet, FTP und SMTP) identifiziert.
Eine Anwendung gibt die Layer-7-Anwendung an, die einem Layer-4-Service zuordnet wird.
Ein vordefinierter Service verfügt bereits über eine Zuordnung zu einer Layer-7-Anwendung. Bei benutzerdefinierten Services müssen Sie den Dienst jedoch explizit mit einer Anwendung verknüpfen, insbesondere, wenn die Richtlinie eine ALG anwenden soll.
ALGs für Pakete, die für bekannte Ports bestimmt sind, werden nach Servicetyp ausgelöst. Die ALG fängt und analysiert den angegebenen Datenverkehr, weist Ressourcen zu und definiert dynamische Richtlinien, damit der Datenverkehr sicher durch das Gerät geleitet werden kann:
Wenn ein Paket am Gerät ankommt, leitet das Datenstrommodul das Paket gemäß der in der Richtlinie festgelegten Sicherheitsregel weiter.
Wenn eine Richtlinie gefunden wird, die das Paket zulässt, wird der zugehörige Dienst- oder Anwendungstyp zugewiesen und eine Sitzung für diese Art von Datenverkehr erstellt.
Wenn eine Sitzung für das Paket gefunden wird, ist keine Übereinstimmung der Richtlinienregel erforderlich. Das ALG-Modul wird ausgelöst, wenn für diesen bestimmten Dienst- oder Anwendungstyp die unterstützte ALG-Verarbeitung erforderlich ist.
Die ALG prüft das Paket auch auf eingebettete IP-Adressen und Portinformationen in der Paketnutzlast und führt bei Bedarf die Verarbeitung von Network Address Translation (NAT) durch. Ein Nachrichtenpuffer wird nur zugewiesen, wenn das Paket zur Verarbeitung bereit ist. Der Puffer wird freigesetzt, nachdem das Paket die ALG-Handhabung abgeschlossen hat, einschließlich der Änderung der Payload, der Durchführung von NAT, dem Öffnen eines Pinholes für eine neue Verbindung zwischen einem Client und einem Server, die sich gegenüber einem Gerät von Juniper Networks befinden.
Die maximale Größe des jbuf beträgt 9 Kb. Wenn der Nachrichtenpuffer mehr als 9 KB beträgt, kann die gesamte Nachricht nicht in den ALG-Pakethandler übertragen werden. Dies führt dazu, dass nachfolgende Pakete in der Sitzung die ALG-Verarbeitung umgehen, was zu einem Transaktionsausfall führt. Die ALG-Nachrichtenpufferoptimierung wird verbessert, um den hohen Speicherverbrauch zu reduzieren.
Die ALG öffnet auch ein Tor für die IP-Adresse und Portnummer, um den Datenaustausch für die Steuerungs- und Datensitzungen zu ermöglichen. Die Steuerungssitzung und die Datensitzung können gekoppelt werden, um den gleichen Timeoutwert zu haben, oder sie können unabhängig sein.
ALGs werden auf Gehäuse-Clustern unterstützt.
Siehe auch
Informationen zu benutzerdefinierten ALG-Services
Standardmäßig sind ALGs an vordefinierte Services gebunden. Zum Beispiel ist die FTP-ALG an Junos-ftp, die RTSP-ALG an Junos-rtsp gebunden usw.
Ein vordefinierter Service verfügt bereits über eine Zuordnung zu einer Layer-7-Anwendung. Bei benutzerdefinierten Services müssen Sie den Dienst jedoch explizit mit einer Anwendung verknüpfen, insbesondere, wenn die Richtlinie eine ALG anwenden soll.
Wenn Sie vordefinierte Services auf Ihre Richtlinie anwenden, wird datenverkehr, der dem Dienst entspricht, zur weiteren Verarbeitung an die entsprechende ALG gesendet. Unter bestimmten Umständen müssen Sie jedoch benutzerdefinierte Services definieren, um Folgendes zu erreichen:
Nutzen Sie den ALG-Handler, um speziellen Datenverkehr mit kundenspezifischen Protokollen, Ziel-Ports usw. zu verarbeiten.
Datenverkehr zulassen, aber die ALG-Verarbeitung umgehen, wenn der Datenverkehr mit vordefinierten Services übereinstimmt, die an ALG gebunden sind.
Fügen Sie dem aktuellen ALG-Anwendungssatz weitere Anwendungen hinzu.
Im folgenden Beispiel müssen Sie auf verschiedenen Ebenen in der Konfigurationshierarchie navigieren. Anweisungen dazu finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.
Die drei Verwendungen benutzerdefinierter Services sind unten dargestellt, am Beispiel von MS-RPC ALG:
Utilize the ALG handler to process special traffic:
[edit] user@host# set applications application customer-msrpc application-protocol ms-rpc user@host# set applications application customer-msrpc protocol tcp user@host# set applications application customer-msrpc destination-port 6000
Datenverkehr mit TCP-Zielport 6000 wird zur weiteren Verarbeitung an MS-RPC ALG gesendet.
Permit traffic but bypass ALG processing:
[edit] user@host# set applications application customer-ignore application-protocol ignore user@host# set applications application customer-ignore protocol tcp user@host# set applications application customer-ignore destination-port 135
Alle ALGs werden vom Datenverkehr mit TCP-Zielport 135 ignoriert.
Add more applications to an ALG’s application set–So fügen Sie Anwendungen wie MS-RPC oder Sun RPC-Services hinzu, die auf den Geräten nicht vordefiniert sind:
[edit] user@host# set applications application customer-msrpc application-protocol ms-rpc user@host# set applications application customer-msrpc term t1 protocol tcp user@host# set applications application customer-msrpc term t1 uuid e3514235-4b06-11d1-ab04-00c04fc2dcd2
MS-RPC-Datenverkehr mit TCP, uuid e3514235-4b06-11d1-ab04-00c04fc2dcd2, ist zulässig, wenn custom-msrpc zusammen mit anderen vordefinierten Junos-ms-rpc**-Anwendungen auf die Richtlinie angewendet wird.
Siehe auch
Verstehen der IPv6-DNS-ALG für Routing, NAT und NAT-PT
Domain Name System (DNS) ist der Teil der ALG, der DNS-Datenverkehr verarbeitet, DNS-Abfrage- und Antwortpakete überwacht und die Sitzung schließt, wenn das DNS-Flag anzeigt, dass es sich bei dem Paket um eine Antwortnachricht handelt.
Die DNS-ALG unterstützt IPv4 im Routenmodus für Junos OS Release 10.0 und frühere Versionen. In Junos OS Version 10.4 implementiert diese Funktion IPv6-Unterstützung auf der DNS-ALG für Routing, Network Address Translation (NAT) und Network Address Translation-Protocol Translation (NAT-PT).
Wenn die DNS-ALG eine DNS-Abfrage vom DNS-Client empfängt, wird eine Sicherheitsüberprüfung des DNS-Pakets durchgeführt. Wenn die DNS-ALG eine DNS-Antwort vom DNS-Server erhält, wird eine ähnliche Sicherheitsüberprüfung durchgeführt, und dann schließt die Sitzung für den DNS-Datenverkehr.
IPv6 DNS-ALG-Datenverkehr im NAT-Modus
IPv6-NAT bietet Adressübersetzung zwischen IPv4- und IPv6-adressierten Netzwerkgeräten. Es bietet auch Eine Adressübersetzung zwischen IPv6-Hosts. NAT zwischen IPv6-Hosts erfolgt auf ähnliche Weise und zu ähnlichen Zwecken wie IPv4-NAT.
Wenn der DNS-Datenverkehr im NAT-Modus funktioniert, übersetzt die DNS-ALG die öffentliche Adresse in einer DNS-Antwort auf eine private Adresse, wenn sich der DNS-Client in einem privaten Netzwerk befindet, und übersetzt eine private Adresse auf ähnliche Weise in eine öffentliche Adresse, wenn sich der DNS-Client in einem öffentlichen Netzwerk befindet.
In Junos OS Version 10.4 unterstützt IPv6-NAT:
Quell-NAT-Übersetzungen
Ziel-NAT-Zuordnungen
Statische NAT-Zuordnungen
Die IPv6 DNS ALG NAT unterstützt nur statische NAT-Zuordnung.
IPv6 DNS-ALG-Datenverkehr im NAT-PT-Modus
IPv6 NAT-PT bietet Adresszuweisung und Protokollübersetzung zwischen IPv4- und IPv6-adressierten Netzwerkgeräten. Der Übersetzungsprozess basiert auf der Stateless IP/ICMP Translation (SIIT)-Methode; der Status und der Kontext jeder Kommunikation werden jedoch während der Sitzungsdauer beibehalten. IPv6 NAT-PT unterstützt Internet Control Message Protocol (ICMP), Transmission Control Protocol (TCP) und Udp-Pakete (User Datagram Protocol).
IPv6 NAT-PT unterstützt die folgenden ARTEN von NAT-PT:
Traditionelle NAT-PT
Bidirektionales NAT-PT
Ein DNS-basierter Mechanismus ordnet IPv6-Adressen dynamisch nur IPv4-Servern zu. NAT-PT verwendet die DNS-ALG, um die Übersetzungen transparent zu machen.
So muss beispielsweise ein Unternehmen, das ein internes IPv6-Netzwerk verwendet, in der Lage sein, mit externen IPv4-Servern ohne IPv6-Adressen zu kommunizieren.
Um die dynamische Adressbindung zu unterstützen, sollte für die Namensauflösung ein DNS verwendet werden. Der IPv4-Host sucht den Namen des IPv6-Knotens auf seinem lokalen konfigurierten IPv4-DNS-Server und leitet die Abfrage dann mithilfe von NAT-PT an den IPv6-DNS-Server über das Gerät.
Wenn DNS-Datenverkehr im NAT-PT-Modus funktioniert, übersetzt die DNS-ALG die IP-Adresse in einem DNS-Antwortpaket zwischen der IPv4-Adresse und der IPv6-Adresse, wenn sich der DNS-Client in einem IPv6-Netzwerk und der Server in einem IPv4-Netzwerk befindet und umgekehrt.
Im NAT-PT-Modus wird in der DNS-ALG nur die Übersetzung von IPV4- auf IPV6-Adressen unterstützt. Um den NAT-PT-Modus in einer DNS-ALG zu unterstützen, sollte das NAT-Modul NAT-PT unterstützen.
Wenn die DNS-ALG eine DNS-Abfrage vom DNS-Client empfängt, führt die DNS-ALG folgende Sicherheits- und Vernunftprüfungen an den DNS-Paketen durch:
Erzwingt die maximale DNS-Nachrichtenlänge (standardmäßig 512 Bytes und maximale Länge 8KB)
Erzwingt eine Domain-Name-Länge von 255 Bytes und eine Labellänge von 63 Bytes
Überprüft die Integrität des Domänennamens, auf den der Zeiger verweist, wenn Kompressionszeiger in der DNS-Nachricht gefunden werden
Prüft, ob eine Kompressions-Pointerschleife vorhanden ist
Ähnliche Überprüfungen der Vernunft werden durchgeführt, wenn die DNS-ALG eine DNS-Antwort vom DNS-Server empfängt, wonach die Sitzung für diesen DNS-Datenverkehr geschlossen wird.
Siehe auch
Grundlegendes zur IPv6-Unterstützung in FTP-ALG
Das File Transfer Protocol (FTP) ist der Teil der ALG, der den FTP-Datenverkehr verwaltet. Die PORT/PASV-Anfragen und die entsprechenden 200/227-Antworten in FTP werden verwendet, um den TCP-Port anzukündigen, den der Host für die FTP-Datenverbindung abhört.
Für diese Anforderungen und Antworten werden EPRT/EPSV/229-Befehle verwendet. FTP-ALG unterstützt EPRT/EPSV/229 bereits, aber nur für IPv4-Adressen.
In Junos OS Version 10.4 wurden EPRT/EPSV/229-Befehle aktualisiert, um sowohl IPv4- als auch IPv6-Adressen zu unterstützen.
FTP ALG verwendet einen vorab zugewiesenen Objcache, um seine Sitzungscookies zu speichern. Wenn auf FTP-ALG sowohl IPv4- als auch IPv6-Adressen unterstützt werden, vergrößert sich die Sitzungs-Cookie-Struktur um 256 Bits (32 Bytes), um IPv6-Adresse zu speichern.
FTP-ALG-Unterstützung für IPv6
Die FTP-ALG überwacht Befehle und Antworten auf syntaktische Korrektheit am FTP-Steuerkanal und öffnet entsprechende Pinholes, um Datenkanalverbindungen herzustellen. In Junos OS Version 10.4 unterstützt die FTP-ALG nur IPv4-Routing, IPv6-Routing und DEN NAT-Modus. In Junos OS Version 11.2 und höher unterstützt die FTP-ALG auch die IPv6-NAT- und NAT-PT-Modi.
EPRT-Modus
Der EPRT-Befehl ermöglicht die Spezifikation einer erweiterten Adresse für die Datenverbindung. Die erweiterte Adresse muss aus dem Netzwerkprotokoll sowie aus den Netzwerk- und Transportadressen bestehen.
Das Format von EPRT ist:
EPRT<space><d><net-prt><d><net-addr><d><tcp-port><d>
<net-prt>: Eine von der IANA definierte Adressfamilienummer
<net-addr>: Eine protokollspezifische Zeichenfolge der Netzwerkadresse
<tcp-Port>: Eine TCP-Portnummer
Im Folgenden sind EPRT-Beispielbefehle für IPv6:
EPRT |2|1080:::8:800:200C:417A|5282|
In diesem Modus konzentriert sich FTP-ALG nur auf den EPRT-Befehl; es extrahiert die IPv6-Adresse und den Port aus dem EPRT-Befehl und öffnet das Loch.
EPSV-Modus
Der EPSV-Befehl fordert einen Server auf, an einem Datenport zuzuhören und auf eine Verbindung zu warten. Die Antwort auf diesen Befehl umfasst nur die TCP-Portnummer der Abhörverbindung.
Ein Beispiel für eine Antwortzeichenfolge ist:
Entering Extended Passive Mode (|||6446|)
Der Antwortcode für den Passiven Modus mit einer erweiterten Adresse muss 229 sein. Sie sollten den TCP-Port in 229 Payloads extrahieren und ihn verwenden, um das Pinhole zu öffnen.
Siehe auch
Grundlegendes zur UNTERSTÜTZUNG des TAP-Modus für ALG
Der Tap-Modus (Terminal Access Point) ist ein Standby-Gerät, das den gespiegelten Datenverkehr über den Switch überprüft. Der TAP-Modus hängt nicht vom ALG-aktivierten oder deaktivierten Status ab. Die ALG-Konfiguration bleibt die gleiche wie der Nicht-TAP-Modus.
Wenn Sie ein Gerät der SRX-Serie für den Betrieb im TAP-Modus konfigurieren, generiert das Gerät Sicherheitsprotokollinformationen, um die Informationen über erkannte Bedrohungen, Anwendungsnutzung und Benutzerdetails anzuzeigen. Wenn das Gerät für den Betrieb im TAP-Modus konfiguriert ist, empfängt das Gerät Pakete nur von der konfigurierten TAP-Schnittstelle. Mit Ausnahme der konfigurierten TAP-Schnittstelle werden andere Schnittstellen auf eine normale Schnittstelle konfiguriert, die als Verwaltungsschnittstelle verwendet wird oder mit dem externen Server verbunden ist. Das Gerät der SRX-Serie erstellt einen Sicherheitsbericht oder -protokoll entsprechend dem eingehenden Datenverkehr.
ALG unterstützt die Anwendung z. B. Nutzdaten-NAT und lässt deren Datenverkehr dynamisch zu.
Sie können nur eine TAP-Schnittstelle konfigurieren, wenn Sie das Gerät im TAP-Modus betreiben.
Aktivieren und Deaktivieren von ALG im TAP-Modus
In diesem Thema erfahren Sie, wie Sie den ALG-Status im TAP-Modus aktivieren oder deaktivieren.
Bevor Sie beginnen:
Lesen Sie das Verständnis der UNTERSTÜTZUNG des TAP-Modus für ALG , um die ALG-Unterstützung für den TAP-Modus zu verstehen.
Der Standard-ALG-Status für SRX300-, SRX320-, SRX340-, SRX345-, SRX380- und SRX550M-Geräte lautet wie folgt:
ALG Status: DNS : Enabled FTP : Enabled H323 : Enabled MGCP : Enabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Enabled SCCP : Enabled SIP : Enabled SQL : Disabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled TWAMP : Disabled
Der Standard-ALG-Status für SRX4100-Gerät lautet wie folgt:
ALG Status: DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Disabled SQL : Disabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled TWAMP : Disabled
Verwenden Sie den folgenden Befehl, um die standardmäßig deaktivierte ALG zu aktivieren.
[edit] user@host# set security alg alg-name
Verwenden Sie den folgenden Befehl, um die aktivierte ALG wieder auf den Standardstatus zu ändern.
[edit] user@host# delete security alg alg-name
Verwenden Sie den folgenden Befehl, um standardmäßig aktivierte ALG zu deaktivieren.
[edit] user@host# set security alg alg-name disable
Verwenden Sie den folgenden Befehl, um die deaktivierte ALG wieder auf den Standardstatus zu ändern.
[edit] user@host# delete security alg alg-name disable
Verwenden Sie den folgenden Befehl, um die IKE-ALG zu aktivieren.
[edit] user@host# set security alg ike-esp-nat enable
Verwenden Sie den folgenden Befehl, um die aktivierte IKE-ALG auf den Standardstatus zurück zu ändern.
[edit] user@host# delete security alg ike-esp-nat enable