Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

FTP ALG

Das Dateiübertragungsprotokoll ist eine weit verbreitete und häufig verwendete Methode zum Austausch von Dateien über IP-Netzwerke. Das FTP ALG überwacht port-, PASV- und 227-Befehle. Bei Bedarf führt es NAT auf der IP, dem Port oder in der Nachrichten- und Toröffnung auf dem Gerät aus.

FTP ALG – Übersicht

Das File Transfer Protocol (FTP) ist eine weit verbreitete und häufig verwendete Methode zum Austausch von Dateien über IP-Netzwerke. Neben der Hauptkontrollverbindung werden auch Datenverbindungen für jede Datenübertragung zwischen dem Client und dem Server hergestellt; und Host, Port und Richtung werden über den Steuerkanal ausgehandelt.

Für den Aktivmodus-FTP scannt der Stateful-Firewall-Service junos OS die Client-zu-Server-Anwendungsdaten auf den PORT-Befehl, der die IP-Adresse und Portnummer, mit der der Server verbunden ist, bereitstellt. Bei FTP im passiven Modus scannt der Stateful Firewall-Service von Junos OS die Client-zu-Server-Anwendungsdaten für den PASV-Befehl und scannt anschließend die Server-zu-Client-Antworten auf die 227-Antwort, die die IP-Adresse und Portnummer enthält, mit der der Client verbunden ist.

FTP stellt die Adressen und Portnummern in ASCII dar. Wenn also Adressen und Ports umgeschrieben werden, kann die TCP-Sequenznummer geändert werden, und danach muss der NAT-Dienst dieses Delta in SEQ- und ACK-Nummern beibehalten, indem er sequenzspezifische NAT auf allen nachfolgenden Paketen ausführt.

Das FTP ALG unterstützt Folgendes:

  • Automatische Zuweisung von Datenports und Firewall-Berechtigungen für dynamische Datenverbindung

  • Überwacht die Steuerungsverbindung sowohl im aktiven als auch im passiven Modus

  • Setzt die Steuerpakete mit den entsprechenden NAT-Adressen und Portinformationen um

  • Network Address Translation, Protocol Translation (NAT-PT)

  • TLS (Transport Layer Security) als Sicherheitsmechanismus

IPv6 FTP ALG für Routing

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 Anfragen und Antworten werden EPRT/EPSV/229-Befehle verwendet. FTP ALG unterstützt bereits EPRT/EPSV/229, jedoch nur für IPv4-Adressen.

In Junos OS Version 10.4 wurden EPRT/EPSV/229-Befehle aktualisiert, um IPv4- und IPv6-Adressen zu unterstützen.

FTP ALG verwendet vorkonfiguriertes Objcache zum Speichern seiner Sitzungscookies. Wenn sowohl IPv4- als auch IPv6-Adressen auf FTP ALG unterstützt werden, wird die Sitzungs-Cookie-Struktur um 256 Bits (32 Bytes) erweitert, um die IPv6-Adresse zu speichern.

FTP ALG-Unterstützung für IPv6

Das FTP ALG überwacht Befehle und Reaktionen auf dem FTP-Steuerungskanal auf syntaktische Korrektheit und öffnet entsprechende Pinholes, um die Einrichtung von Datenkanalverbindungen zu ermöglichen. In Junos OS Version 10.4 unterstützte das FTP ALG nur IPv4-Routing, IPv6-Routing und nur DEN NAT-Modus. In Junos OS Version 11.2 und höher unterstützt das FTP ALG auch die Modi IPv6 NAT und NAT-PT.

Verständnis von FTP-Befehlen

Das FTP ALG überwacht Befehle und Reaktionen auf dem FTP-Steuerungskanal auf syntaktische Korrektheit und öffnet entsprechende Pinholes, um die Einrichtung von Datenkanalverbindungen zu ermöglichen. In Junos OS Version 10.4 unterstützte das FTP ALG das IPv4-Routing und den NAT-Modus sowie nur den IPv6-Routingmodus. In Junos OS Version 11.2 und höher unterstützt das FTP ALG auch die Modi IPv6 NAT und NAT-PT.

PORT-Befehl

Der PORT-Befehl wird im aktiven FTP-Modus verwendet. Der PORT-Befehl gibt die Adresse und die Portnummer an, mit der ein Server verbunden werden soll. Wenn Sie diesen Befehl verwenden, ist das Argument eine Verkettung einer 32-Bit-Internethostadresse und einer 16-Bit-TCP-Portadresse. Die Adressinformationen werden in 8-Bit-Felder unterteilt, und der Wert jedes Feldes wird als Dezimalzahl (in Zeichenfolgendarstellung) übertragen. Die Felder sind durch Kommas getrennt.

Im Folgenden ist ein Beispiel-PORT-Befehl aufgeführt, wobei h1 die höchste 8-Bit-Adresse des Internethosts ist:

PORT h1,h2,h3,h4,p1,p2

PASV-Befehl

Der PASV-Befehl fordert einen Server auf, einen Datenport abzuhören, der nicht der Standarddatenport des Servers ist, und auf eine Verbindung zu warten, anstatt eine andere Verbindung zu initiieren. Die Antwort auf den PASV-Befehl umfasst den Host und die Portadresse, die der Server abhört.

Erweiterte FTP-Befehle

Erweiterte FTP-Befehle bieten eine Methode, mit der FTP die Datenverbindungsendpunktinformationen für andere Netzwerkprotokolle als IPv4 kommunizieren kann. Erweiterte FTP-Befehle sind in RFC 2428 angegeben. In RFC 2428 ersetzen die erweiterten FTP-Befehle EPRT und EPSV jeweils den FTP-Befehlsport und PASV.

EPRT-Befehl

Der EPRT-Befehl ermöglicht die Spezifikation einer erweiterten Adresse für die Datenverbindung. Die erweiterte Adresse muss aus dem Netzwerkprotokoll sowie den Netzwerk- und Übertragungsadressen bestehen.

Das Format von EPRT lautet:

EPRT<space><d><net-prt><d><net-addr><d><tcp-port><d>

Parameter

Beschreibung

net-prt

Eine von IANA definierte Adressfamilienummer.

Net-Addr

Eine protokollspezifische Zeichenfolge der Netzwerkadresse.

TCP-Port

Eine TCP-Portnummer, auf der der Host die Datenverbindung abhört.

Trennzeichen

Das Trennzeichen muss eines der ASCII-Zeichen im Bereich 33 bis 126 einschließlich sein. Das Zeichen "|" (ASCII 124) wird empfohlen.

Der folgende Befehl zeigt, wie der Server angeben soll, der eine IPv4-Adresse zum Öffnen einer Datenverbindung zum Host 132.235.1.2 auf TCP-Port 6275 verwendet:

EPRT |1|132.235.1.2|6275|

Der folgende Befehl zeigt, wie der Server angeben soll, der ein IPv6-Netzwerkprotokoll und eine Netzwerkadresse zum Öffnen einer TCP-Datenverbindung am Port 5282 verwendet:

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 Pinhole.

EPSV-Modus

Der EPSV-Befehl fordert, dass ein Server einen Datenport abhört und auf eine Verbindung wartet. Die Antwort auf diesen Befehl enthält nur die TCP-Portnummer der Abhörenverbindung.

Eine Beispielantwortzeichenfolge lautet wie folgt:

Hinweis:

Der Antwortcode für die Eingabe des passiven Modus mit einer erweiterten Adresse muss 229 sein. Sie sollten den TCP-Port in 229 Payloads extrahieren und ihn zum Öffnen des Pinholes verwenden.

Beispiel: Konfigurieren des FTP-ALG

In diesem Beispiel wird die Konfiguration von NAT-PT für FTP ALG dargestellt.

Anforderungen

Bevor Sie beginnen:

  • Konfigurieren Sie Proxy-ARP für alle IP-Adressen im Quell-NAT-Pool.

  • Verstehen Sie die Konzepte hinter ALG für FTP. Siehe FTP ALG Übersicht.

Übersicht

In diesem Beispiel ist die ALG für FTP so konfiguriert, dass der FTP-Datenverkehr zwischen den Clients und dem Server auf der gegenüberliegenden Seite eines Geräts von Juniper Networks ausgetauscht wird.

In diesem Beispiel wird die Konfiguration von NAT-PT für FTP ALG dargestellt.

Konfiguration

Konfigurieren eines NAT-Quellpools, eines statischen NAT-Pools und eines Regelsatzes

CLI-Schnellkonfiguration

Um diesen Abschnitt des Beispiels schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für die Netzwerkkonfiguration erforderlich sind, kopieren Und fügen Sie die Befehle auf Hierarchieebene in die [edit] CLI ein und geben Sie dann aus dem Konfigurationsmodus ein commit .

Schritt-für-Schritt-Verfahren

Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Anweisungen dazu finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.

So konfigurieren Sie einen Quell-NAT-Pool:

  1. Erstellen Sie einen Quell-NAT-, statischen NAT- und Schnittstellen-NAT-Regelsatz.

  2. Verknüpfen Sie die NAT-PT-Anwendung mithilfe einer Richtlinie.

Ergebnisse

Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den show security nat Befehl eingeben. Wenn die Ausgabe die beabsichtigte Konfiguration nicht anzeigt, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.

Wenn Sie die Konfiguration des Geräts durchgeführt haben, geben Sie aus dem Konfigurationsmodus ein commit .

Konfigurieren der FTP ALG-Sicherheitserweiterung

Zweck

Festlegen der Security Alg FTP-Erweiterung

Aktion

Geben Sie im Konfigurationsmodus den folgenden Befehl ein.

Überprüfung

Um zu bestätigen, dass die Konfiguration ordnungsgemäß funktioniert, führen Sie folgende Aufgaben aus:

Überprüfen des NAT-Quellpools, NAT Statischer Pool-Regelsatz

Zweck

Vergewissern Sie sich, dass der NAT-Quellpool und der Regelsatz zur Unterstützung des FTP-ALG ordnungsgemäß funktionieren.

Aktion

Geben Sie im Betriebsmodus den show configuration security nat Befehl ein.

Überprüfen von FTP-ALGs

Zweck

Überprüfen Sie, ob FTP ALG aktiviert ist.

Aktion

Geben Sie im Betriebsmodus den show security alg status Befehl ein.

Bedeutung

Die Ausgabe zeigt den FTP ALG-Status wie folgt an:

  • Aktiviert– Zeigt an, dass FTP ALG aktiviert ist.

  • Deaktiviert – Zeigt an, dass FTP ALG deaktiviert ist.

Hinweis:

Die FTP-ALG ist standardmäßig aktiviert.

Versionsverlaufstabelle
Release
Beschreibung
11.2
In Junos OS Version 11.2 und höher unterstützt das FTP ALG auch die Modi IPv6 NAT und NAT-PT.
10.4
In Junos OS Version 10.4 wurden EPRT/EPSV/229-Befehle aktualisiert, um IPv4- und IPv6-Adressen zu unterstützen.
10.4
In Junos OS Version 10.4 unterstützte das FTP ALG nur IPv4-Routing, IPv6-Routing und nur DEN NAT-Modus.