TFTP ALG
Das Trivial File Transfer Protocol (TFTP) ALG verarbeitet TFTP-Pakete, die die Anforderung an den UDP-Zielport 69 initiieren, und öffnet ein Gatter, um Rückgabepakete aus der Rückwärtsrichtung an den Port zu ermöglichen, der die Anforderung sendet. Für die Unterstützung von Stateful-Firewall- und NAT-Services müssen Sie das TFTP-ALG für den UDP-Zielport 69 konfigurieren.
Verwenden Sie Funktionen entdecken, um die Plattform- und Releaseunterstützung für bestimmte Funktionen zu bestätigen.
Lesen Sie den Abschnitt Plattformspezifisches TFTP-ALG-Verhalten , um Hinweise zu Ihrer Plattform zu erhalten.
Grundlegendes zum TFTP-ALG
- Überblick
- TFTP-Pakete
- TFTP-Sitzung
- Grundlegendes zur TFTP-ALG-Konversation
- Grundlegendes zur IPv6-Unterstützung für das TFTP-ALG
Überblick
Trivial File Transfer Protocol (TFTP) ist ein einfaches Protokoll, das für die Übertragung von Dateien verwendet wird (RFC 1350). TFTP wird auf UDP aufgesetzt, wobei der Zielport 69 der bekannte Port ist. Das TFTP-Gateway auf Anwendungsebene (ALG) verarbeitet TFTP-Pakete, die die Anforderung initiieren, und erstellt Pinholes, um Rückmeldungen von Paketen aus umgekehrter Richtung zu ermöglichen.
Bei der Flussverarbeitung gibt es zwei Sitzungen für eine TFTP-Konversation, eine ist die TFTP-Kontrollsitzung, die durch ein Leseanforderungspaket (RRQ) oder ein Schreibanforderungspaket (WRQ) erstellt wird. Die andere ist die TFTP-Datensitzung, die durch ein DATA-Paket (für RRQ) oder ein Bestätigungspaket (ACK) (für WRQ) erstellt wird.
In einer Junos OS-Firewall wird die TFTP-Kontrollsitzung über die Anwendungsrichtlinie junos-tftp zugelassen. Die Datensitzung wird durch das offene TFTP-ALG-Pinhole von einem beliebigen Port des Servers zur TID (Port) des Clients zugelassen, wenn das Steuersitzungspaket empfangen wird. Es ist keine NAT-Übersetzung erforderlich, da die NAT-Übersetzung bereits durchgeführt wurde und die Informationen aus der Sitzungsdatenstruktur verfügbar sind.
TFTP-Pakete
Jede Übertragung beginnt mit einer Aufforderung, eine Datei zu lesen oder zu schreiben. Ein Datenpaket von weniger als 512 Byte signalisiert die Beendigung einer Übertragung.
TFTP unterstützt fünf Arten von Paketen:
Leseanforderung (RRQ)
Schreibanforderung (WRQ)
Daten (DATEN)
Danksagung (ACK)
Fehler (ERROR)
TFTP-Sitzung
Das TFTP-ALG basiert auf UDP, einem zustandslosen Transportprotokoll. In einer Firewall fungiert das TFTP-ALG als UDP-Sitzung mit Timeout. Wenn keine Paketaktualisierungssitzung vorhanden ist, wird die Sitzung nach einer Zeitüberschreitung beendet. Obwohl der TFTP-Client und -Server die Beendigung einer TFTP-Konversation festlegen, sind sie sich der Sitzung in Fireware manchmal nicht bewusst. Daher könnten Client und Server in diesem Szenario eine neue TFTP-Konversation anfordern.
Die TFTP-ALG-Sitzung kann auf eine der folgenden Arten fortgesetzt werden:
Wenn die TFTP-Steuerungssitzung eine Zeitüberschreitung erreicht, wird die Sitzung nicht beendet, wenn die Datensitzung noch aktiv ist.
Eine TFTP-Sitzung kann durch die
clear security flow session all
CLI-Befehle beendetclear specific session
oder beschädigt werden, unabhängig davon, ob die Datensitzung ausgeführt wird oder nicht.Wenn eine neue TFTP-Sitzungsanforderung eintrifft und die vorhandene Sitzung erreicht, öffnet das TFTP-ALG die Lochblende für die neue Anfrage erneut.
Wenn das Pinhole bereits vorhanden ist, öffnet das TFTP-ALG das Pinhole nicht wieder und es gibt keinen Paketverlust.
Das TFTP-ALG verwirft keine Pakete.
Grundlegendes zur TFTP-ALG-Konversation
Standardmäßig lauschen TFTP-Server auf Port 69 auf eingehende Anforderungen von TFTP-Clients. Ein TFTP-Client wählt seinen TID-Port (Source Tunnel Identifier) aus und sendet seine erste Anforderung an den Server. Als Antwort verwendet der Server die TID, die als Quellport ausgewählt wurde, und sendet eine Antwort an die TID des Clients als Zielport. Die beiden TID-Ports werden dann für den Rest der Datenübertragung verwendet.
Read file conversation steps:
Host A (Client) sendet ein RRQ-Paket an Host B (Server) mit der TID von A als Quelle und Port 69 als Ziel.
Host B (Server) sendet ein DATA-Paket an Host A (Client) mit der TID von B als Quelle und der TID von A als Ziel.
Host A (Client) sendet ein ACK-Paket an Host B (Server) mit der TID von A als Quelle und der TID von B als Ziel.
Die Konversation mit DATA und ACK-Paketen wird fortgesetzt, bis die Dateidatenübertragung abgeschlossen ist.
Write file conversation steps:
Host A (Client) sendet ein WRQ-Paket an Host B (Server) mit der TID von A als Quelle und Port 69 als Ziel.
Host B (Server) sendet ein ACK-Paket an Host A (Client) mit der TID von B als Quelle und der TID von A als Ziel.
Host A (Client) sendet ein DATA-Paket an Host B (Server) mit der TID von A als Quelle und der TID von B als Ziel.
Host B (Server) sendet ein ACK-Paket an Host A (Client) mit der TID von B als Quelle und der TID von A als Ziel.
Grundlegendes zur IPv6-Unterstützung für das TFTP-ALG
Das Trivial File Transfer Protocol (TFTP) Anwendungsebene Gateway (ALG) wurde erweitert, um IPv6- und IPv4-TFTP-Konversationen zu unterstützen, die IPv6- und IPv4-Adressen sowohl für die Quell-IP-Adresse als auch für die Ziel-IP-Adresse haben.
TFTP ALG verarbeitet Pakete, die die Routing-Anforderung initiieren und Pinholes erzeugen, um Rückgabepakete von der umgekehrten Richtung an den Port zu ermöglichen, der die Anforderung gesendet hat.
Die Datensitzung wird durch das erste Paket vom Client zum Server eingerichtet. TFTP ALG überwacht das erste Paket und öffnet ein Pinhole von einem beliebigen Port des Servers zum Client. Dieser Prozess trägt dazu bei, dass die vom Server zurückgegebenen Pakete und die nachfolgenden Datenpakete durchgelassen werden.
Beispiel: Konfigurieren des TFTP-ALG
Das TFTP-ALG verarbeitet TFTP-Pakete, die die Anforderung initiieren, und öffnet ein Gatter, um Rückgabepakete von der umgekehrten Richtung an den Port zu ermöglichen, der die Anforderung sendet.
In diesem Beispiel wird gezeigt, wie die TFTP-ALG so konfiguriert wird, dass TFTP-Datenverkehr mit einem Quell-NAT-Pool auf Geräten von Juniper Networks weitergeleitet wird.
Anforderungen
Konfigurieren Sie Proxy-ARP für alle IP-Adressen im Quell-NAT-Pool.
Machen Sie sich mit den grundlegenden Konzepten von TFTP ALG vertraut. Weitere Informationen finden Sie unter Grundlegendes zum TFTP-ALG.
Überblick
In diesem Beispiel ist die TFTP-ALG so konfiguriert, dass sie den TFTP-Datenverkehr überwacht und zulässt und Dateien zwischen dem Client und dem Server überträgt, die sich auf gegenüberliegenden Seiten eines Juniper Networks-Geräts befinden.
Konfiguration
Konfigurieren eines NAT-Quellpools, eines Regelsatzes und einer Richtlinie
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 erforderlich sind, um Ihrer Netzwerkkonfiguration zu entsprechen, kopieren Sie die Befehle, fügen Sie sie in die CLI auf der Hierarchieebene ein, und wechseln Sie commit
dann aus dem [edit]
Konfigurationsmodus.
set security nat source pool pool1 address 10.10.10.1/32 to 10.10.10.10/32 set security zones security-zone green address-book address sa1 1.1.1.0/24 set security zones security-zone red address-book address da1 2.2.2.0/24 set security nat source rule-set rs1 from zone green set security nat source rule-set rs1 to zone red set security nat source rule-set rs1 rule r1 match source-address 1.1.1.0/24 set security nat source rule-set rs1 rule r1 match destination-address 2.2.2.0/24 set security nat source rule-set rs1 rule r1 then source-nat pool pool1
set security policy from-zone green to-zone red policy pol1 match destination-address da1 set security policy from-zone green to-zone red policy pol1 match source-address sa1 set security policy from-zone green to-zone red policy pol1 match application junos-tftp set security policy from-zone green to-zone red policy pol1 then permit
Wenn Sie sich über die IP-Adresse des TFTP-Clients und -Servers nicht sicher sind, können Sie "da1" und "sa1" durch "any" ersetzen.
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Anweisungen hierzu finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.
So konfigurieren Sie einen Quell-NAT-Pool:
Erstellen Sie einen NAT-Quellpool.
[edit security] user@host# set nat source pool pool1 address 10.10.10.1/32 to 10.10.10.10/32
Konfigurieren Sie Adressbucheinträge für die Sicherheitszone.
[edit security zones security-zone] user@host# set green address-book address sa1 1.1.1.0/24 user@host# set red address-book address da1 2.2.2.0/24
Erstellen Sie einen NAT-Quellregelsatz.
[edit security nat source rule-set rs1] user@host# set from zone green user@host# set to zone red user@host# set rule r1 match source-address 1.1.1.0/24 user@host# set rule r1 match destination-address 2.2.2.0/24 user@host# set rule r1 then source-nat pool pool1
Konfigurieren einer Richtlinie
[edit security policies from-zone green to-zone red policy pol1] user@host# set match source-address sa1 user@host# set match destination-address da1 user@host# set match application junos-tftp user@host# set then permit
Befund
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die show security nat
Befehle und show security policies
eingeben. Wenn in der Ausgabe nicht die beabsichtigte Konfiguration angezeigt wird, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
[edit] user@host# show security nat source { pool pool1 { address { 10.10.10.1/32 to 10.10.10.10/32; } } rule-set rs1 { from zone green; to zone red; rule r1 { match { source-address 1.1.1.0/24; destination-address 2.2.2.0/24; } then { source-nat { pool { pool1; } } } } }
[edit] user@host# show security policies from-zone green to-zone red {policy pol1 { policy pol1 { match { source-address sa1; destination-address da1; application [junos-tftp]; } then { permit; } } } default-policy { permit-all; }
Wenn Sie mit der Konfiguration des Geräts fertig sind, wechseln commit
Sie aus dem Konfigurationsmodus.
Verifizierung
Vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.
Überprüfen des NAT-Quellpools und des Regelsatzes
Zweck
Stellen Sie sicher, dass der NAT-Quellpool und der Regelsatz, die zur Unterstützung der TFTP-ALG verwendet werden, ordnungsgemäß funktionieren.
Aktion
Geben Sie im Betriebsmodus den show security nat static rule r1
Befehl ein.
Überprüfen von TFTP ALG
Zweck
Stellen Sie sicher, dass die TFTP-ALG aktiviert ist.
Aktion
Geben Sie im Betriebsmodus den show security alg status
Befehl ein.
user@host> show security alg status DNS : Enabled FTP : Enabled H323 : Enabled TFTP : Enabled
Bedeutung
Die Ausgabe zeigt den TFTP-ALG-Status wie folgt an:
Aktiviert: Zeigt an, dass das TFTP-ALG aktiviert ist.
Deaktiviert: Zeigt an, dass das TFTP-ALG deaktiviert ist.
Plattformspezifisches TFTP-ALG-Verhalten
Verwenden Sie Funktionen entdecken, um die Plattform- und Releaseunterstützung für bestimmte Funktionen zu bestätigen.
Verwenden Sie die folgende Tabelle, um plattformspezifische Verhaltensweisen für Ihre Plattform zu überprüfen:
Bahnsteig |
Unterschied |
---|---|
SRX-Serie |
|