In diesem Dokument werden die Schritte erläutert, die Benutzer außerhalb Ihres Netzwerks für den Zugriff auf FTP- und TFTP-Services in Ihrem DMZ-Netzwerk benötigen.
File Transfer Protocol (FTP)
Es gibt zwei Arten von FTP:
Aktiver Modus
Passiver Modus
Im aktiven FTP-Modus stellt der Client eine Verbindung zwischen einem zufälligen, nicht privilegierten Port (N>1023) und dem Befehlsport (21) des FTP-Servers her. Anschließend überwacht der Client Port N+1 und sendet den FTP-Befehlsanschluss N+1 an den FTP-Server. Der Server stellt dann über seinen lokalen Datenport, Port 20, eine Verbindung zu den angegebenen Datenports des Clients her.
Im passiven FTP-Modus initiiert der Client beide Verbindungen zum Server, wodurch das Problem einer Firewall gelöst wird, die die eingehende Datenport-Verbindung zum Client vom Server filtert. Wenn eine FTP-Verbindung geöffnet wird, öffnet der Client lokal zwei zufällige nicht privilegierte Ports (N>1023 und N+1). Der erste Port kontaktiert den Server an Port 21. Anstatt dann einen Port-Befehl auszugeben und dem Server die Verbindung zum Datenport zu ermöglichen, gibt der Client den PASV-Befehl aus. Dies führt dazu, dass der Server einen zufälligen nicht privilegierten Port (P>1023) öffnet und den Befehl port P zurück an den Client sendet. Der Client initiiert dann die Verbindung von Port N+1 mit Port P am Server, um Daten zu übertragen. Ohne die Konfiguration des Inspektionsbefehls auf der Security Appliance funktioniert der FTP-Datenverkehr von internen Benutzern, die in den ausgehenden Datenverkehr geleitet werden, nur im passiven Modus. Außerdem wird Benutzern außerhalb des FTP-Servers der Zugriff verweigert.
Siehe PIX/ASA 7.x: Aktivieren Sie das Konfigurationsbeispiel für FTP/TFTP-Services für die gleiche Konfiguration auf der Cisco Adaptive Security Appliance (ASA) mit Version 8.2 und früher.
Trivial File Transfer Protocol (TFTP)
TFTP, wie in RFC 1350 beschrieben, ist ein einfaches Protokoll zum Lesen und Schreiben von Dateien zwischen einem TFTP-Server und einem Client. TFTP verwendet UDP-Port 69.
Stellen Sie sicher, dass Sie diese Anforderungen erfüllen, bevor Sie versuchen, diese Konfiguration durchzuführen:
Es besteht eine grundlegende Kommunikation zwischen den erforderlichen Schnittstellen.
Sie haben einen konfigurierten FTP-Server im DMZ-Netzwerk konfiguriert.
Die Informationen in diesem Dokument basieren auf den folgenden Software- und Hardwareversionen:
Adaptive Security Appliance der Serie ASA 5500 mit 8.4(1) Software-Image
Windows 2003 Server, der FTP-Dienste ausführt
Windows 2003 Server, der TFTP-Dienste ausführt
Client-PC außerhalb des Netzwerks
Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.
In diesem Dokument wird die folgende Netzwerkeinrichtung verwendet:
Hinweis: Die in dieser Konfiguration verwendeten IP-Adressierungsschemata sind im Internet nicht rechtlich routbar. Es handelt sich um RFC 1918-Adressen, die in einer Laborumgebung verwendet wurden.
Diese Konfiguration kann auch mit Cisco Adaptive Security Appliance 8.3 oder höher verwendet werden.
Weitere Informationen zu Dokumentkonventionen finden Sie in den Cisco Technical Tips Conventions (Technische Tipps zu Konventionen von Cisco).
Die Security Appliance unterstützt die Anwendungsprüfung über die Adaptive Security Algorithm-Funktion. Mithilfe der Stateful Application Inspection (Stateful-Anwendungsprüfung), die vom Adaptive Security Algorithm verwendet wird, verfolgt die Security Appliance jede Verbindung, die die Firewall passiert, und stellt sicher, dass sie gültig ist. Die Firewall überwacht durch Stateful Inspection auch den Verbindungsstatus, um Informationen zu kompilieren, die in einer Statustabelle gespeichert werden sollen. Bei Verwendung der Statustabelle werden zusätzlich zu vom Administrator definierten Regeln Filterentscheidungen basierend auf dem Kontext festgelegt, der von Paketen festgelegt wurde, die zuvor über die Firewall weitergeleitet wurden. Die Durchführung von Anwendungsinspektionen umfasst folgende Maßnahmen:
Identifizieren Sie den Datenverkehr.
Inspektionen des Datenverkehrs durchführen.
Aktivieren von Überprüfungen an einer Schnittstelle.
Einige Anwendungen erfordern eine besondere Handhabung durch die Cisco Security Appliance-Funktion zur Anwendungsprüfung. Diese Anwendungstypen betten IP-Adressierungsinformationen in das Benutzerdatenpaket ein oder öffnen sekundäre Kanäle an dynamisch zugewiesenen Ports. Die Anwendungsinspektionsfunktion verwendet Network Address Translation (NAT), um den Speicherort integrierter Adressinformationen zu ermitteln.
Neben der Identifizierung eingebetteter Adressinformationen überwacht die Anwendungsinspektionsfunktion Sitzungen, um die Portnummern für sekundäre Kanäle zu ermitteln. Viele Protokolle öffnen sekundäre TCP- oder UDP-Ports, um die Leistung zu verbessern. Die erste Sitzung an einem bekannten Port wird verwendet, um dynamisch zugewiesene Portnummern auszuhandeln. Die Anwendungsinspektionsfunktion überwacht diese Sitzungen, identifiziert die dynamischen Portzuweisungen und ermöglicht den Datenaustausch auf diesen Ports für die Dauer der jeweiligen Sitzungen. Multimedia- und FTP-Anwendungen zeigen dieses Verhalten.
Aufgrund der Verwendung von zwei Ports pro FTP-Sitzung erfordert das FTP-Protokoll eine besondere Handhabung. Wenn das FTP-Protokoll für die Datenübertragung aktiviert ist, werden zwei Ports verwendet: ein Kontrollkanal und ein Datenkanal, der jeweils Port 21 bzw. 20 verwendet. Der Benutzer, der die FTP-Sitzung über den Steuerungskanal initiiert, stellt alle Datenanforderungen über diesen Kanal. Der FTP-Server initiiert dann eine Anforderung, einen Port vom Server-Port 20 zum Computer des Benutzers zu öffnen. FTP verwendet immer Port 20 für die Datenkanalkommunikation. Wenn die FTP-Prüfung auf der Sicherheits-Appliance nicht aktiviert wurde, wird diese Anforderung verworfen, und die FTP-Sitzungen übertragen keine angeforderten Daten. Wenn die FTP-Prüfung auf der Sicherheits-Appliance aktiviert ist, überwacht die Sicherheits-Appliance den Kontrollkanal und versucht, eine Anforderung zum Öffnen des Datenkanals zu erkennen. Das FTP-Protokoll integriert die Datenkanal-Port-Spezifikationen in den Kontrollkanalverkehr, sodass die Security Appliance den Kontrollkanal auf Änderungen an den Datenports überprüfen muss. Wenn die Sicherheits-Appliance eine Anforderung erkennt, erstellt sie vorübergehend eine Öffnung für den Datenkanal-Datenverkehr, der für die Dauer der Sitzung gilt. Auf diese Weise überwacht die FTP-Prüffunktion den Kontrollkanal, identifiziert eine Datenport-Zuweisung und ermöglicht den Datenaustausch auf dem Datenport für die Dauer der Sitzung.
Die Security Appliance prüft standardmäßig Port 21-Verbindungen über die globale Inspection-Klassenzuordnung auf FTP-Datenverkehr. Die Security Appliance erkennt außerdem den Unterschied zwischen einer aktiven und einer passiven FTP-Sitzung. Wenn die FTP-Sitzungen die passive FTP-Datenübertragung unterstützen, erkennt die Security Appliance mit dem Befehl inspect ftp die Datenport-Anfrage des Benutzers und öffnet einen neuen Datenport größer als 1023.
Die FTP-Anwendungsinspektion überprüft FTP-Sitzungen und führt vier Aufgaben aus:
Bereitet eine dynamische sekundäre Datenverbindung vor
Verfolgt die FTP-Befehlsantwort-Sequenz
Generiert einen Prüfpfad
Übersetzt die eingebettete IP-Adresse mithilfe von NAT
Die FTP-Anwendungsinspektion bereitet sekundäre Kanäle für die FTP-Datenübertragung vor. Die Kanäle werden als Reaktion auf einen Datei-Upload, einen Datei-Download oder eine Verzeichnislistenveranstaltung zugewiesen und müssen vorverhandelt werden. Der Port wird über den PORT oder PASV (227)-Befehl ausgehandelt.
Die TFTP-Prüfung ist standardmäßig aktiviert.
Die Sicherheits-Appliance prüft den TFTP-Datenverkehr und erstellt bei Bedarf dynamisch Verbindungen und Übersetzungen, um die Dateiübertragung zwischen einem TFTP-Client und Server zu ermöglichen. Die Prüfungs-Engine überprüft insbesondere TFTP-Leseanfragen (RRQ), Schreibanfragen (WRQ) und Fehlerbenachrichtigungen (ERROR).
Ein dynamischer sekundärer Kanal und ggf. eine PAT-Übersetzung werden bei Erhalt eines gültigen RRQ oder WRQ zugewiesen. Dieser sekundäre Kanal wird anschließend vom TFTP für die Dateiübertragung oder Fehlerbenachrichtigung verwendet.
Nur der TFTP-Server kann Datenverkehr über den sekundären Kanal initiieren, und es kann maximal ein unvollständiger sekundärer Kanal zwischen dem TFTP-Client und dem Server vorhanden sein. Eine Fehlerbenachrichtigung vom Server schließt den sekundären Kanal.
Die TFTP-Prüfung muss aktiviert werden, wenn TFTP-Datenverkehr mit einer statischen PAT umgeleitet wird.
Standardmäßig enthält die Konfiguration eine Richtlinie, die dem gesamten standardmäßigen Anwendungsinspektionsverkehr entspricht und die Überprüfung auf den Datenverkehr an allen Schnittstellen anwendet (eine globale Richtlinie). Der Standarddatenverkehr für die Anwendungsüberprüfung umfasst den Datenverkehr zu den Standardports für jedes Protokoll. Sie können nur eine globale Richtlinie anwenden. Wenn Sie also beispielsweise die globale Richtlinie ändern möchten, um Prüfungen auf nicht standardmäßige Ports anzuwenden oder um standardmäßig nicht aktivierte Überprüfungen hinzuzufügen, müssen Sie die Standardrichtlinie entweder bearbeiten oder deaktivieren und eine neue Richtlinie anwenden. Eine Liste aller Standard-Ports finden Sie in der Standard-Überprüfungsrichtlinie.
Geben Sie den Befehl policy-map global_policy ein.
ASA(config)#policy-map global_policy
Geben Sie den Befehl class invice_default ein.
ASA(config-pmap)#class inspection_default
Geben Sie den Befehl inspect FTP (FTP überprüfen) ein.
ASA(config-pmap-c)#inspect FTP
Es gibt eine Option, den Befehl inspect FTP strict zu verwenden. Dieser Befehl erhöht die Sicherheit geschützter Netzwerke, indem verhindert wird, dass ein Webbrowser eingebettete Befehle in FTP-Anfragen sendet.
Nachdem Sie die strenge Option für eine Schnittstelle aktiviert haben, erzwingt die FTP-Prüfung dieses Verhalten:
Ein FTP-Befehl muss bestätigt werden, bevor die Sicherheits-Appliance einen neuen Befehl zulässt.
Die Sicherheits-Appliance verwirft eine Verbindung, die eingebettete Befehle sendet.
Die Befehle 227 und PORT werden überprüft, um sicherzustellen, dass sie nicht in einer Fehlerzeichenfolge angezeigt werden.
Warnung: Die Verwendung der Option strict kann zum Ausfall von FTP-Clients führen, die nicht streng mit FTP-RFCs kompatibel sind. Weitere Informationen zur Verwendung der strict-Option finden Sie unter Verwenden der strikten Option.
Gerätename 1 |
---|
ASA(config)#show running-config ASA Version 8.4(1) ! hostname ASA domain-name corp.com enable password WwXYvtKrnjXqGbu1 encrypted names ! interface Ethernet0/0 nameif Outside security-level 0 ip address 192.168.1.2 255.255.255.0 ! interface Ethernet0/1 nameif Inside security-level 100 ip address 10.1.1.1 255.255.255.0 ! interface Ethernet0/2 nameif DMZ security-level 50 ip address 172.16.1.12 255.255.255.0 ! interface Ethernet0/3 no nameif no security-level no ip address ! interface Management0/0 no nameif no security-level no ip address ! !--- Output is suppressed. !--- Permit inbound FTP control traffic. access-list 100 extended permit tcp any host 192.168.1.5 eq ftp !--- Permit inbound FTP data traffic. access-list 100 extended permit tcp any host 192.168.1.5 eq ftp-data ! !--- Object groups are created to define the hosts. object network DMZ host 172.16.1.5 object network DMZ-out host 192.168.1.5 !--- Configure manual NAT nat (DMZ,outside) source static DMZ DMZ-out access-group 100 in interface outside class-map inspection_default match default-inspection-traffic ! ! policy-map type inspect dns preset_dns_map parameters message-length maximum 512 policy-map global_policy class inspection_default inspect dns preset_dns_map inspect ftp inspect h323 h225 inspect h323 ras inspect netbios inspect rsh inspect rtsp inspect skinny inspect esmtp inspect sqlnet inspect sunrpc inspect tftp inspect sip inspect xdmcp ! !--- This command tells the device to !--- use the "global_policy" policy-map on all interfaces. service-policy global_policy global prompt hostname context Cryptochecksum:4b2f54134e685d11b274ee159e5ed009 : end ASA(config)# |
Sie können die FTP Protocol Inspection für nicht standardmäßige TCP-Ports mit folgenden Konfigurationslinien konfigurieren (XXXX durch neue Portnummer ersetzen):
access-list ftp-list extended permit tcp any any eq XXXX ! class-map ftp-class match access-list ftp-list ! policy-map global_policy class ftp-class inspect ftp
Standardmäßig enthält die Konfiguration eine Richtlinie, die dem gesamten standardmäßigen Anwendungsinspektionsverkehr entspricht und die Überprüfung auf den Datenverkehr an allen Schnittstellen anwendet (eine globale Richtlinie). Der Standarddatenverkehr für die Anwendungsüberprüfung umfasst den Datenverkehr zu den Standardports für jedes Protokoll. Sie können nur eine globale Richtlinie anwenden. Wenn Sie die globale Richtlinie beispielsweise ändern möchten, um Prüfungen auf nicht standardmäßige Ports anzuwenden oder um standardmäßig nicht aktivierte Überprüfungen hinzuzufügen, müssen Sie die Standardrichtlinie entweder bearbeiten oder deaktivieren und eine neue Richtlinie anwenden. Eine Liste aller Standard-Ports finden Sie in der Standard-Überprüfungsrichtlinie.
Geben Sie den Befehl policy-map global_policy ein.
ASA(config)#policy-map global_policy
Geben Sie den Befehl class invice_default ein.
ASA(config-pmap)#class inspection_default
Geben Sie den Befehl inspect TFTP (TFTP überprüfen) ein.
ASA(config-pmap-c)#inspect TFTP
Gerätename 1 |
---|
ASA(config)#show running-config ASA Version 8.4(1) ! hostname ASA domain-name corp.com enable password WwXYvtKrnjXqGbu1 encrypted names ! interface Ethernet0/0 nameif Outside security-level 0 ip address 192.168.1.2 255.255.255.0 ! interface Ethernet0/1 nameif Inside security-level 100 ip address 10.1.1.1 255.255.255.0 ! interface Ethernet0/2 nameif DMZ security-level 50 ip address 172.16.1.12 255.255.255.0 ! interface Ethernet0/3 no nameif no security-level no ip address ! interface Management0/0 no nameif no security-level no ip address ! !--- Output is suppressed. !--- Permit inbound TFTP traffic. access-list 100 extended permit udp any host 192.168.1.5 eq tftp ! !--- Object groups are created to define the hosts. object network DMZ host 172.16.1.5 object network DMZ-out host 192.168.1.5 !--- Configure manual NAT nat (DMZ,outside) source static DMZ DMZ-out access-group 100 in interface outside class-map inspection_default match default-inspection-traffic ! ! policy-map type inspect dns preset_dns_map parameters message-length maximum 512 policy-map global_policy class inspection_default inspect dns preset_dns_map inspect ftp inspect h323 h225 inspect h323 ras inspect netbios inspect rsh inspect rtsp inspect skinny inspect esmtp inspect sqlnet inspect sunrpc inspect tftp inspect sip inspect xdmcp ! !--- This command tells the device to !--- use the "global_policy" policy-map on all interfaces. service-policy global_policy global prompt hostname context Cryptochecksum:4b2f54134e685d11b274ee159e5ed009 : end ASA(config)# |
Um sicherzustellen, dass die Konfiguration erfolgreich abgeschlossen wurde, verwenden Sie den Befehl show service-policy. Beschränken Sie die Ausgabe außerdem auf die FTP-Prüfung nur mit dem Befehl show service-policy inspect ftp.
ASA#show service-policy inspect ftp Global Policy: Service-policy: global_policy Class-map: inspection_default Inspect: ftp, packet 0, drop 0, reste-drop 0 ASA#
Für diese Konfiguration sind derzeit keine spezifischen Informationen zur Fehlerbehebung verfügbar.
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
19-Jul-2011 |
Erstveröffentlichung |