Dieses Dokument enthält eine Beispielkonfiguration für die DNS-Doktorarbeit (Domain Name System) auf der Adaptive Security Appliance der Serie ASA 5500 oder der Security Appliance der Serie PIX 500 unter Verwendung statischer Network Address Translation (NAT)-Anweisungen. Die DNS-Dokumentation ermöglicht der Sicherheitsappliance das Umschreiben von DNS-A-Einträgen.
DNS Rewrite führt zwei Funktionen aus:
Übersetzt eine öffentliche Adresse (die routbare oder zugeordnete Adresse) in einer DNS-Antwort in eine private Adresse (die reale Adresse), wenn sich der DNS-Client auf einer privaten Schnittstelle befindet.
Übersetzt eine private Adresse in eine öffentliche Adresse, wenn sich der DNS-Client auf der öffentlichen Schnittstelle befindet.
Hinweis: Die Konfiguration in diesem Dokument enthält zwei NAT-Schnittstellen (innen und außen). Ein Beispiel für DNS-Doctoring mit statischen Komponenten und drei NAT-Schnittstellen (innen, außen und dmz) finden Sie unter PIX/ASA: Perform DNS Doctoring with the static Command and Three NAT Interfaces Configuration Example.
Weitere Informationen zur Verwendung von NAT auf einer Sicherheits-Appliance finden Sie unter PIX/ASA 7.x NAT and PAT Statements and Using nat, global, static, Conduit, and access-list Commands and Port Redirection (Forwarding) on PIX.
Die DNS-Inspektion muss aktiviert sein, damit DNS-Doctoring auf der Sicherheits-Appliance durchgeführt werden kann. Die DNS-Überprüfung ist standardmäßig aktiviert. Wenn die Funktion deaktiviert wurde, lesen Sie den Abschnitt DNS-Inspektion konfigurieren weiter unten in diesem Dokument, um sie erneut zu aktivieren. Wenn die DNS-Überprüfung aktiviert ist, führt die Sicherheits-Appliance folgende Aufgaben aus:
Übersetzt den DNS-Eintrag anhand der Konfiguration, die mit den Befehlen static und nat abgeschlossen wurde (DNS rewrite). Die Übersetzung gilt nur für den A-Eintrag in der DNS-Antwort. Daher werden Reverse-Lookups, die den PTR-Datensatz anfordern, nicht durch DNS-Rewrite beeinflusst.
Hinweis: DNS Rewrite ist nicht kompatibel mit statischer Port-Adressenumwandlung (PAT), da für jeden A-Datensatz mehrere PAT-Regeln gelten und die zu verwendende PAT-Regel nicht eindeutig ist.
Erzwingt die maximale Länge von DNS-Nachrichten (der Standardwert ist 512 Byte, die maximale Länge beträgt 65535 Byte). Die Reassemblierung wird bei Bedarf durchgeführt, um sicherzustellen, dass die Paketlänge kleiner als die konfigurierte maximale Länge ist. Das Paket wird verworfen, wenn es die maximale Länge überschreitet.
Hinweis: Wenn Sie den Befehl inspect dns ohne die Option für die maximale Länge ausführen, wird die DNS-Paketgröße nicht überprüft.
Erzwingt eine Domain-Namenslänge von 255 Byte und eine Label-Länge von 63 Byte.
Überprüft die Integrität des Domänennamens, auf den der Zeiger verweist, wenn in der DNS-Nachricht Komprimierungspunkte vorhanden sind.
Überprüft, ob eine Komprimierungszeigerschleife vorhanden ist.
Die Informationen in diesem Dokument basieren auf der Security Appliance der Serie ASA 5500, Version 7.2(1).
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netz Live ist, überprüfen Sie, ob Sie die mögliche Auswirkung jedes möglichen Befehls verstehen.
Diese Konfiguration kann auch mit Cisco Security Appliances der Serie PIX 500, Version 6.2 oder höher, verwendet werden.
Hinweis: Die Konfiguration des Cisco Adaptive Security Device Manager (ASDM) ist nur auf Version 7.x anwendbar.
Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).
In einem typischen DNS-Austausch sendet ein Client eine URL oder einen Hostnamen an einen DNS-Server, um die IP-Adresse dieses Hosts zu ermitteln. Der DNS-Server empfängt die Anforderung, sucht nach der Name-zu-IP-Adresse-Zuordnung für diesen Host und stellt dem Client dann den A-Datensatz mit der IP-Adresse zur Verfügung. Obwohl dieses Verfahren in vielen Situationen gut funktioniert, können Probleme auftreten. Diese Probleme können auftreten, wenn sich der Client und der Host, auf den der Client zuzugreifen versucht, im gleichen privaten Netzwerk hinter NAT befinden, der vom Client verwendete DNS-Server sich jedoch in einem anderen öffentlichen Netzwerk befindet.
In diesem Szenario befinden sich der Client und der WWW-Server, den der Client zu erreichen versucht, beide an der internen Schnittstelle der ASA. Die dynamische PAT wird so konfiguriert, dass der Client Zugriff auf das Internet erhält. Die statische NAT mit einer Zugriffsliste wird so konfiguriert, dass der Server auf das Internet zugreifen und Internet-Hosts auf den WWW-Server zugreifen können.
Dieses Diagramm ist ein Beispiel für diese Situation. In diesem Fall möchte der Client unter 192.168.100.2 die URL server.example.com verwenden, um auf den WWW-Server unter 192.168.100.10 zuzugreifen. Die DNS-Dienste für den Client werden vom externen DNS-Server unter 172.22.1.161 bereitgestellt. Da sich der DNS-Server in einem anderen öffentlichen Netzwerk befindet, kennt er die private IP-Adresse des WWW-Servers nicht. Stattdessen kennt es die WWW-Server-Adresse 172.20.1.10. Somit enthält der DNS-Server die Zuordnung von IP-Adresse zu Namen von server.example.com zu 172.20.1.10.
Wenn der Client eine DNS-Anfrage für die IP-Adresse server.example.com sendet, kann er ohne eine in dieser Situation aktivierte DNS-Dokumentation oder andere Lösung nicht auf den WWW-Server zugreifen. Der Grund hierfür ist, dass der Client einen A-Datensatz empfängt, der die zugeordnete öffentliche Adresse 172.20.1.10 des WWW-Servers enthält. Wenn der Client versucht, auf diese IP-Adresse zuzugreifen, verwirft die Sicherheits-Appliance die Pakete, da sie keine Paketumleitung auf derselben Schnittstelle zulässt. Wenn die DNS-Dokumentation nicht aktiviert ist, sieht der NAT-Teil der Konfiguration folgendermaßen aus:
ciscoasa(config)#show running-config : Saved : ASA Version 7.2(1) ! hostname ciscoasa !--- Output suppressed. access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www !--- Output suppressed. global (outside) 1 interface nat (inside) 1 192.168.100.0 255.255.255.0 static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 access-group OUTSIDE in interface outside !--- Output suppressed.
So sieht die Konfiguration im ASDM aus, wenn die DNS-Dokumentation nicht aktiviert ist:
Nachfolgend finden Sie eine Paketerfassung der Ereignisse, wenn die DNS-Dokumentation nicht aktiviert ist:
Der Client sendet die DNS-Abfrage.
No. Time Source Destination Protocol Info 1 0.000000 192.168.100.2 172.22.1.161 DNS Standard query A server.example.com Frame 1 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: Cisco_c8:e4:00 (00:04:c0:c8:e4:00), Dst: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f) Internet Protocol, Src: 192.168.100.2 (192.168.100.2), Dst: 172.22.1.161 (172.22.1.161) User Datagram Protocol, Src Port: 50879 (50879), Dst Port: domain (53) Domain Name System (query) [Response In: 2] Transaction ID: 0x0004 Flags: 0x0100 (Standard query) Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001)
PAT wird für die DNS-Abfrage von der ASA durchgeführt, und die Abfrage wird weitergeleitet. Beachten Sie, dass sich die Quelladresse des Pakets zur externen Schnittstelle der ASA geändert hat.
No. Time Source Destination Protocol Info 1 0.000000 172.20.1.2 172.22.1.161 DNS Standard query A server.example.com Frame 1 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e), Dst: Cisco_01:f1:22 (00:30:94:01:f1:22) Internet Protocol, Src: 172.20.1.2 (172.20.1.2), Dst: 172.22.1.161 (172.22.1.161) User Datagram Protocol, Src Port: 1044 (1044), Dst Port: domain (53) Domain Name System (query) [Response In: 2] Transaction ID: 0x0004 Flags: 0x0100 (Standard query) Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001)
Der DNS-Server antwortet mit der zugeordneten Adresse des WWW-Servers.
No. Time Source Destination Protocol Info 2 0.005005 172.22.1.161 172.20.1.2 DNS Standard query response A 172.20.1.10 Frame 2 (94 bytes on wire, 94 bytes captured) Ethernet II, Src: Cisco_01:f1:22 (00:30:94:01:f1:22), Dst: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e) Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 172.20.1.2 (172.20.1.2) User Datagram Protocol, Src Port: domain (53), Dst Port: 1044 (1044) Domain Name System (response) [Request In: 1] [Time: 0.005005000 seconds] Transaction ID: 0x0004 Flags: 0x8580 (Standard query response, No error) Questions: 1 Answer RRs: 1 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001) Answers server.example.com: type A, class IN, addr 172.20.1.10 Name: server.example.com Type: A (Host address) Class: IN (0x0001) Time to live: 1 hour Data length: 4 Addr: 172.20.1.10
Die ASA macht die Übersetzung der Zieladresse der DNS-Antwort rückgängig und leitet das Paket an den Client weiter. Beachten Sie, dass die Adresse in der Antwort ohne aktivierte DNS-Dokumentation immer noch die zugeordnete Adresse des WWW-Servers ist.
No. Time Source Destination Protocol Info 2 0.005264 172.22.1.161 192.168.100.2 DNS Standard query response A 172.20.1.10 Frame 2 (94 bytes on wire, 94 bytes captured) Ethernet II, Src: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f), Dst: Cisco_c8:e4:00 (00:04:c0:c8:e4:00) Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 192.168.100.2 (192.168.100.2) User Datagram Protocol, Src Port: domain (53), Dst Port: 50879 (50879) Domain Name System (response) [Request In: 1] [Time: 0.005264000 seconds] Transaction ID: 0x0004 Flags: 0x8580 (Standard query response, No error) Questions: 1 Answer RRs: 1 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001) Answers server.example.com: type A, class IN, addr 172.20.1.10 Name: server.example.com Type: A (Host address) Class: IN (0x0001) Time to live: 1 hour Data length: 4 Addr: 172.20.1.10
An diesem Punkt versucht der Client, auf den WWW-Server unter 172.20.1.10 zuzugreifen. Die ASA erstellt einen Verbindungseintrag für diese Kommunikation. Da jedoch kein Datenverkehr von innen nach außen nach innen fließen kann, wird die Verbindung unterbrochen. Die ASA-Protokolle zeigen Folgendes:
%ASA-6-302013: Built outbound TCP connection 54175 for outside:172.20.1.10/80 (172.20.1.10/80) to inside:192.168.100.2/11001 (172.20.1.2/1024) %ASA-6-302014: Teardown TCP connection 54175 for outside:172.20.1.10/80 to inside:192.168.100.2/11001 duration 0:00:30 bytes 0 SYN Timeout
Durch die DNS-Dokumentation mit dem dns-Schlüsselwort kann die Sicherheits-Appliance den Inhalt der DNS-Serverantworten an den Client abfangen und neu schreiben. Bei korrekter Konfiguration kann die Sicherheits-Appliance den A-Datensatz ändern, damit der Client in einem Szenario, wie im Abschnitt Problem: Client Cannot Access WWW Server (Client kann nicht auf WWW-Server zugreifen) beschrieben, eine Verbindung herstellen kann. In dieser Situation schreibt die Sicherheits-Appliance bei aktivierter DNS-Doctoring den A-Eintrag um, um den Client an 192.168.100.10 zu leiten, anstatt an 172.20.1.10. Die DNS-Dokumentation wird aktiviert, wenn Sie das dns-Schlüsselwort zu einer statischen NAT-Anweisung hinzufügen. Der NAT-Teil der Konfiguration sieht folgendermaßen aus, wenn die DNS-Dokumentation aktiviert ist:
ciscoasa(config)#show run : Saved : ASA Version 7.2(1) ! hostname ciscoasa !--- Output suppressed. access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www !--- Output suppressed. global (outside) 1 interface nat (inside) 1 192.168.100.0 255.255.255.0 static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 dns !--- The "dns" keyword is added to instruct the security appliance to modify !--- DNS records related to this entry. access-group OUTSIDE in interface outside !--- Output suppressed.
Führen Sie die folgenden Schritte aus, um die DNS-Dokumentation im ASDM zu konfigurieren:
Navigieren Sie zu Configuration > NAT, und wählen Sie die statische NAT-Regel aus, die geändert werden soll. Klicken Sie auf Bearbeiten.
Klicken Sie auf NAT-Optionen...
Aktivieren Sie das Kontrollkästchen DNS-Antworten übersetzen, die mit der Übersetzungsregel übereinstimmen.
Klicken Sie auf OK, um das Fenster NAT-Optionen zu verlassen. Klicken Sie auf OK, um das Fenster "Edit Static NAT Rule" (Statische NAT-Regel bearbeiten) zu verlassen. Klicken Sie auf Apply, um die Konfiguration an die Sicherheits-Appliance zu senden.
Nachfolgend finden Sie eine Paketerfassung der Ereignisse, wenn die DNS-Dokumentation aktiviert ist:
Der Client sendet die DNS-Abfrage.
No. Time Source Destination Protocol Info 1 0.000000 192.168.100.2 172.22.1.161 DNS Standard query A server.example.com Frame 1 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: Cisco_c8:e4:00 (00:04:c0:c8:e4:00), Dst: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f) Internet Protocol, Src: 192.168.100.2 (192.168.100.2), Dst: 172.22.1.161 (172.22.1.161) User Datagram Protocol, Src Port: 52985 (52985), Dst Port: domain (53) Domain Name System (query) [Response In: 2] Transaction ID: 0x000c Flags: 0x0100 (Standard query) Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001)
PAT wird für die DNS-Abfrage von der ASA durchgeführt, und die Abfrage wird weitergeleitet. Beachten Sie, dass sich die Quelladresse des Pakets zur externen Schnittstelle der ASA geändert hat.
No. Time Source Destination Protocol Info 1 0.000000 172.20.1.2 172.22.1.161 DNS Standard query A server.example.com Frame 1 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e), Dst: Cisco_01:f1:22 (00:30:94:01:f1:22) Internet Protocol, Src: 172.20.1.2 (172.20.1.2), Dst: 172.22.1.161 (172.22.1.161) User Datagram Protocol, Src Port: 1035 (1035), Dst Port: domain (53) Domain Name System (query) [Response In: 2] Transaction ID: 0x000c Flags: 0x0100 (Standard query) Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001)
Der DNS-Server antwortet mit der zugeordneten Adresse des WWW-Servers.
No. Time Source Destination Protocol Info 2 0.000992 172.22.1.161 172.20.1.2 DNS Standard query response A 172.20.1.10 Frame 2 (94 bytes on wire, 94 bytes captured) Ethernet II, Src: Cisco_01:f1:22 (00:30:94:01:f1:22), Dst: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e) Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 172.20.1.2 (172.20.1.2) User Datagram Protocol, Src Port: domain (53), Dst Port: 1035 (1035) Domain Name System (response) [Request In: 1] [Time: 0.000992000 seconds] Transaction ID: 0x000c Flags: 0x8580 (Standard query response, No error) Questions: 1 Answer RRs: 1 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001) Answers server.example.com: type A, class IN, addr 172.20.1.10 Name: server.example.com Type: A (Host address) Class: IN (0x0001) Time to live: 1 hour Data length: 4 Addr: 172.20.1.10
Die ASA macht die Übersetzung der Zieladresse der DNS-Antwort rückgängig und leitet das Paket an den Client weiter. Beachten Sie, dass bei aktivierter DNS-Doktorarbeit die Addr in der Antwort umgeschrieben wird, um die tatsächliche Adresse des WWW-Servers zu sein.
No. Time Source Destination Protocol Info 2 0.001251 172.22.1.161 192.168.100.2 DNS Standard query response A 192.168.100.10 Frame 2 (94 bytes on wire, 94 bytes captured) Ethernet II, Src: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f), Dst: Cisco_c8:e4:00 (00:04:c0:c8:e4:00) Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 192.168.100.2 (192.168.100.2) User Datagram Protocol, Src Port: domain (53), Dst Port: 52985 (52985) Domain Name System (response) [Request In: 1] [Time: 0.001251000 seconds] Transaction ID: 0x000c Flags: 0x8580 (Standard query response, No error) Questions: 1 Answer RRs: 1 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001) Answers server.example.com: type A, class IN, addr 192.168.100.10 Name: server.example.com Type: A (Host address) Class: IN (0x0001) Time to live: 1 hour Data length: 4 Addr: 192.168.100.10 !--- 172.20.1.10 has been rewritten to be 192.168.100.10.
An diesem Punkt versucht der Client, auf den WWW-Server unter 192.168.100.10 zuzugreifen. Die Verbindung wurde erfolgreich hergestellt. Auf der ASA wird kein Datenverkehr erfasst, da sich Client und Server im gleichen Subnetz befinden.
Dies ist die letzte Konfiguration der ASA für die DNS-Dokumentation mit dem dns-Schlüsselwort und zwei NAT-Schnittstellen.
Abschließende ASA 7.2(1)-Konfiguration |
---|
ciscoasa(config)#show running-config : Saved : ASA Version 7.2(1) ! hostname ciscoasa enable password 9jNfZuG3TC5tCVH0 encrypted names dns-guard ! interface Ethernet0/0 nameif outside security-level 0 ip address 172.20.1.2 255.255.255.0 ! interface Ethernet0/1 nameif inside security-level 100 ip address 192.168.100.1 255.255.255.0 ! interface Ethernet0/2 shutdown no nameif no security-level no ip address ! interface Management0/0 shutdown no nameif no security-level no ip address management-only ! passwd 2KFQnbNIdI.2KYOU encrypted ftp mode passive access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www !--- Simple access-list that permits HTTP access to the mapped !--- address of the WWW server. pager lines 24 logging enable logging buffered debugging mtu outside 1500 mtu inside 1500 asdm image disk0:/asdm512-k8.bin no asdm history enable arp timeout 14400 global (outside) 1 interface nat (inside) 1 192.168.100.0 255.255.255.0 static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 dns !--- PAT and static NAT configuration. The DNS keyword instructs !--- the security appliance to rewrite DNS records related to this entry. access-group OUTSIDE in interface outside !--- The Access Control List (ACL) that permits HTTP access !--- to the WWW server is applied to the outside interface. route outside 0.0.0.0 0.0.0.0 172.20.1.1 1 timeout xlate 3:00:00 timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02 timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00 timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00 timeout uauth 0:05:00 absolute username cisco password ffIRPGpDSOJh9YLq encrypted http server enable no snmp-server location no snmp-server contact snmp-server enable traps snmp authentication linkup linkdown coldstart telnet timeout 5 ssh timeout 5 console timeout 0 ! class-map inspection_default match default-inspection-traffic ! ! policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 !--- DNS inspection map. policy-map global_policy class inspection_default inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp inspect dns MY_DNS_INSPECT_MAP !--- DNS inspection is enabled using the configured map. inspect icmp policy-map type inspect dns migrated_dns_map_1 parameters message-length maximum 512 ! service-policy global_policy global prompt hostname context Cryptochecksum:a4a38088109887c3ceb481efab3dcf32 : end |
Achtung: Beim Hairpinning mit statischer NAT wird der gesamte Datenverkehr zwischen dem Client und dem WWW-Server über die Sicherheits-Appliance gesendet. Berücksichtigen Sie vor der Implementierung dieser Lösung sorgfältig das erwartete Datenverkehrsvolumen und die Funktionen Ihrer Security Appliance.
Beim Hairpinning-Verfahren wird der Datenverkehr über dieselbe Schnittstelle zurückgesendet, über die er empfangen wurde. Diese Funktion wurde in Version 7.0 der Security Appliance-Software eingeführt. Bei älteren Versionen als 7.2(1) muss mindestens ein Arm des gehaarten Datenverkehrs (ein- oder ausgehend) verschlüsselt sein. Ab Version 7.2(1) und höher ist diese Anforderung nicht mehr gültig. Bei Verwendung von 7.2(1) ist sowohl der ein- als auch der ausgehende Datenverkehr möglicherweise unverschlüsselt.
Hairpinning kann zusammen mit einer statischen NAT-Anweisung verwendet werden, um dieselbe Wirkung wie die DNS-Dokumentation zu erzielen. Diese Methode ändert nicht den Inhalt des DNS-A-Eintrags, der vom DNS-Server an den Client zurückgegeben wird. Stattdessen kann der Client bei Verwendung von Hairpinning, wie in dem in diesem Dokument beschriebenen Szenario, die Adresse 172.20.1.10 verwenden, die vom DNS-Server zurückgegeben wird, um eine Verbindung herzustellen.
So sieht der relevante Teil der Konfiguration aus, wenn Sie Hairpinning und statische NAT verwenden, um einen DNS-Doctoring-Effekt zu erzielen. Die fettgedruckten Befehle werden am Ende dieser Ausgabe genauer erläutert:
ciscoasa(config)#show run : Saved : ASA Version 7.2(1) ! hostname ciscoasa !--- Output suppressed. same-security-traffic permit intra-interface !--- Enable hairpinning. global (outside) 1 interface !--- Global statement for client access to the Internet. global (inside) 1 interface !--- Global statment for hairpinned client access through !--- the security appliance. nat (inside) 1 192.168.100.0 255.255.255.0 !--- The NAT statement defines which traffic should be natted. !--- The whole inside subnet in this case. static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 !--- Static NAT statement mapping the WWW server's real address to a !--- public address on the outside interface. static (inside,inside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 !--- Static NAT statment mapping requests for the public IP address of !--- the WWW server that appear on the inside interface to the WWW server's !--- real address of 192.168.100.10.
same-security-traffic: Dieser Befehl ermöglicht die Übertragung von Datenverkehr derselben Sicherheitsstufe über die Security Appliance. Die Schlüsselwörter permit intra-interface ermöglichen, dass derselbe Sicherheitsdatenverkehr in dieselbe Schnittstelle eintritt und diese verlässt, sodass Hairpinning aktiviert ist.
Hinweis: Weitere Informationen zum Hairpinning-Verfahren und dem Befehl für den gleichen Sicherheitsdatenverkehr finden Sie unter "Gleiche Sicherheit"-Datenverkehr.
global (inside) 1 interface (Global (innerhalb) 1 Schnittstelle): Der gesamte Datenverkehr, der über die Security Appliance geleitet wird, muss einer NAT unterzogen werden. Dieser Befehl verwendet die interne Schnittstellenadresse der Sicherheits-Appliance, um zu ermöglichen, dass Datenverkehr, der in die interne Schnittstelle eintritt, einer PAT unterzogen wird, wenn er von der internen Schnittstelle wieder ausgekoppelt wird.
static (inside,inside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 - Dieser statische NAT-Eintrag erstellt eine zweite Zuordnung für die öffentliche IP-Adresse des WWW-Servers. Im Gegensatz zum ersten statischen NAT-Eintrag wird die Adresse 172.20.1.10 diesmal jedoch der internen Schnittstelle der Sicherheits-Appliance zugeordnet. Auf diese Weise kann die Sicherheits-Appliance auf Anforderungen reagieren, die sie für diese Adresse auf der internen Schnittstelle erkennt. Diese Anfragen werden dann über sich selbst an die reale Adresse des WWW-Servers umgeleitet.
Gehen Sie wie folgt vor, um die Hairpinning-Funktion mit statischer NAT im ASDM zu konfigurieren:
Navigieren Sie zu Konfiguration > Schnittstellen.
Aktivieren Sie unten im Fenster das Kontrollkästchen Datenverkehr zwischen zwei oder mehr Hosts, die mit derselben Schnittstelle verbunden sind, aktivieren.
Klicken Sie auf Apply (Anwenden).
Navigieren Sie zu Configuration > NAT, und wählen Sie Add > Add Static NAT Rule (Hinzufügen > Statische NAT-Regel hinzufügen) aus.
Geben Sie die Konfiguration für die neue statische Übersetzung ein.
Tragen Sie die Informationen zum WWW-Server in den Bereich Real Address (reale Adresse) ein.
Geben Sie im Bereich Statische Übersetzung die Adresse und die Schnittstelle an, der Sie den WWW-Server zuordnen möchten.
In diesem Fall wird die interne Schnittstelle so gewählt, dass Hosts an der internen Schnittstelle über die zugeordnete Adresse 172.20.1.10 auf den WWW-Server zugreifen können.
Klicken Sie auf OK, um das Fenster "Statische NAT-Regel hinzufügen" zu verlassen.
Wählen Sie die vorhandene dynamische PAT-Übersetzung aus, und klicken Sie auf Bearbeiten.
Wählen Sie inside aus dem Pulldown-Feld Interface aus.
Klicken Sie auf Hinzufügen.
Wählen Sie das Optionsfeld Port Address Translation (PAT) (Port-Adressumwandlung) mithilfe der IP-Adresse der Schnittstelle aus. Klicken Sie auf Hinzufügen.
Klicken Sie auf OK, um das Fenster Globalen Adresspool hinzufügen zu verlassen. Klicken Sie auf OK, um das Fenster "Edit Dynamic NAT Rule" (Dynamische NAT-Regel bearbeiten) zu verlassen. Klicken Sie auf Apply, um die Konfiguration an die Sicherheits-Appliance zu senden.
Nachfolgend finden Sie die Abfolge von Ereignissen, die bei der Konfiguration des Hairpinning-Vorgangs auftreten. Angenommen, der Client hat den DNS-Server bereits abgefragt und die Antwort 172.20.1.10 für die WWW-Serveradresse erhalten:
Der Client versucht, den WWW-Server unter 172.20.1.10 zu kontaktieren.
%ASA-7-609001: Built local-host inside:192.168.100.2
Die Sicherheits-Appliance erkennt die Anforderung und dass sich der WWW-Server unter 192.168.100.10 befindet.
%ASA-7-609001: Built local-host inside:192.168.100.10
Die Sicherheits-Appliance erstellt eine dynamische PAT-Übersetzung für den Client. Die Quelle des Client-Datenverkehrs ist jetzt die interne Schnittstelle der Security Appliance: 192.168.100.1.
%ASA-6-305011: Built dynamic TCP translation from inside:192.168.100.2/11012 to inside:192.168.100.1/1026
Die Sicherheits-Appliance stellt über sich selbst eine TCP-Verbindung zwischen dem Client und dem WWW-Server her. Beachten Sie die zugeordneten Adressen der Hosts in Klammern.
%ASA-6-302013: Built inbound TCP connection 67399 for inside:192.168.100.2/11012 (192.168.100.1/1026) to inside:192.168.100.10/80 (172.20.1.10/80)
Mit dem Befehl show xlate auf der Security Appliance wird überprüft, ob der Client-Datenverkehr über die Security Appliance übertragen wird.
ciscoasa(config)#show xlate 3 in use, 9 most used Global 172.20.1.10 Local 192.168.100.10 Global 172.20.1.10 Local 192.168.100.10 PAT Global 192.168.100.1(1027) Local 192.168.100.2(11013)
Mit dem Befehl show conn auf der Sicherheits-Appliance wird überprüft, ob die Verbindung zwischen der Sicherheits-Appliance und dem WWW-Server im Auftrag des Clients erfolgreich hergestellt wurde. Notieren Sie die tatsächliche Adresse des Clients in Klammern.
ciscoasa#show conn TCP out 192.168.100.1(192.168.100.2):11019 in 192.168.100.10:80 idle 0:00:03 bytes 1120 flags UIOB
Dies ist die letzte Konfiguration der ASA, die Hairpinning und statische NAT verwendet, um einen DNS-Doctoring-Effekt mit zwei NAT-Schnittstellen zu erzielen.
Abschließende ASA 7.2(1)-Konfiguration |
---|
ciscoasa(config-if)#show running-config : Saved : ASA Version 7.2(1) ! hostname ciscoasa enable password 9jNfZuG3TC5tCVH0 encrypted names dns-guard ! interface Ethernet0/0 nameif outside security-level 0 ip address 172.20.1.2 255.255.255.0 ! interface Ethernet0/1 nameif inside security-level 100 ip address 192.168.100.1 255.255.255.0 ! interface Ethernet0/2 shutdown no nameif no security-level no ip address ! interface Management0/0 shutdown no nameif no security-level no ip address management-only ! passwd 2KFQnbNIdI.2KYOU encrypted ftp mode passive same-security-traffic permit intra-interface access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www !--- Simple access-list that permits HTTP access to the mapped !--- address of the WWW server. pager lines 24 logging enable logging buffered debugging mtu outside 1500 mtu inside 1500 asdm image disk0:/asdm512-k8.bin no asdm history enable arp timeout 14400 global (outside) 1 interface !--- Global statement for client access to the Internet. global (inside) 1 interface !--- Global statment for hairpinned client access through !--- the security appliance. nat (inside) 1 192.168.100.0 255.255.255.0 !--- The NAT statement defines which traffic should be natted. !--- The whole inside subnet in this case. static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 !--- Static NAT statement mapping the WWW server's real address to a public !--- address on the outside interface. static (inside,inside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 !--- Static NAT statement mapping requests for the public IP address of the !--- WWW server that appear on the inside interface to the WWW server's real address !--- of 192.168.100.10. access-group OUTSIDE in interface outside !--- The ACL that permits HTTP access to the WWW server is applied !--- to the outside interface. route outside 0.0.0.0 0.0.0.0 172.20.1.1 1 timeout xlate 3:00:00 timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02 timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00 timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00 timeout uauth 0:05:00 absolute username cisco password ffIRPGpDSOJh9YLq encrypted http server enable no snmp-server location no snmp-server contact snmp-server enable traps snmp authentication linkup linkdown coldstart telnet timeout 5 ssh timeout 5 console timeout 0 ! class-map inspection_default match default-inspection-traffic ! ! policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 policy-map global_policy class inspection_default inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp inspect dns MY_DNS_INSPECT_MAP inspect icmp policy-map type inspect dns migrated_dns_map_1 parameters message-length maximum 512 ! service-policy global_policy global prompt hostname context Cryptochecksum:7c9b4e3aff085ba90ee194e079111e1d : end |
Hinweis: In diesem Video, Hair-pinning on Cisco ASA (nur für registrierte Kunden) finden Sie weitere Informationen zu verschiedenen Szenarien, in denen Hair-pinning verwendet werden könnte.
Führen Sie diese Schritte aus, um die DNS-Inspektion zu aktivieren (falls sie zuvor deaktiviert wurde). In diesem Beispiel wird die DNS-Inspektion der globalen Standardinspektionsrichtlinie hinzugefügt, die durch einen Service-Policy-Befehl global angewendet wird, als ob die ASA mit einer Standardkonfiguration begonnen hätte. Weitere Informationen zu Dienstrichtlinien und Prüfungen finden Sie unter Using Modular Policy Framework (Modulares Richtlinien-Framework).
Erstellen Sie eine Prüfrichtlinienübersicht für DNS.
ciscoasa(config)#policy-map type inspect dns MY_DNS_INSPECT_MAP
Wechseln Sie im Policy-Map-Konfigurationsmodus in den Parameterkonfigurationsmodus, um die Parameter für die Prüfungs-Engine anzugeben.
ciscoasa(config-pmap)#parameters
Geben Sie im Konfigurationsmodus für Richtlinienzuordnungsparameter die maximale Nachrichtenlänge für DNS-Nachrichten mit 512 an.
ciscoasa(config-pmap-p)#message-length maximum 512
Beenden Sie den Konfigurationsmodus für Policy-Map-Parameter und den Konfigurationsmodus für Policy-Map.
ciscoasa(config-pmap-p)#exit ciscoasa(config-pmap)#exit
Bestätigen Sie, dass die Prüfrichtlinien-Map wie gewünscht erstellt wurde.
ciscoasa(config)#show run policy-map type inspect dns ! policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 !
Wechseln Sie in den Konfigurationsmodus policy-map für global_policy.
ciscoasa(config)#policy-map global_policy ciscoasa(config-pmap)#
Geben Sie im Richtlinienzuweisungs-Konfigurationsmodus die standardmäßige Layer-3/4-Klassenzuordnung Inspection_Default an.
ciscoasa(config-pmap)#class inspection_default ciscoasa(config-pmap-c)#
Geben Sie im Konfigurationsmodus für Richtlinienzuordnungsklassen an, dass DNS mithilfe der in den Schritten 1-3 erstellten Prüfrichtlinienzuordnung überprüft werden soll.
ciscoasa(config-pmap-c)#inspect dns MY_DNS_INSPECT_MAP
Beenden Sie den Konfigurationsmodus für die Richtlinienzuweisung und den Konfigurationsmodus für die Richtlinienzuweisung.
ciscoasa(config-pmap-c)#exit ciscoasa(config-pmap)#exit
Überprüfen Sie, ob die global_policy-Richtlinienzuordnung wie gewünscht konfiguriert ist.
ciscoasa(config)#show run policy-map ! !--- The configured DNS inspection policy map. policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 policy-map global_policy class inspection_default inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp inspect dns MY_DNS_INSPECT_MAP !--- DNS application inspection enabled. !
Überprüfen Sie, ob die global_policy-Richtlinie durch eine Dienstrichtlinie global angewendet wird.
ciscoasa(config)#show run service-policy service-policy global_policy global
Geben Sie den Befehl split-dns im Konfigurationsmodus für Gruppenrichtlinien ein, um eine Liste der Domänen einzugeben, die durch den Split-Tunnel aufgelöst werden sollen. Verwenden Sie nein um eine Liste zu löschen.
Wenn keine geteilten Tunneling-Domänenlisten vorhanden sind, erben die Benutzer alle in der Standardgruppenrichtlinie vorhandenen Listen. Führen Sie den Befehl split-dns none aus, um die Vererbung von Split-Tunneling-Domänenlisten zu verhindern.
Verwenden Sie ein einzelnes Leerzeichen, um jeden Eintrag in der Liste der Domänen zu trennen. Die Anzahl der Einträge ist unbegrenzt, die gesamte Zeichenfolge darf jedoch maximal 255 Zeichen lang sein. Sie können nur alphanumerische Zeichen, Bindestriche (-) und Punkte (.) verwenden. Wenn der Befehl no split-dns ohne Argumente verwendet wird, löscht er alle aktuellen Werte, einschließlich eines Nullwerts, der beim Ausführen des Befehls split-dns none erstellt wird.
In diesem Beispiel wird veranschaulicht, wie die Domänen Domain1, Domain2, Domain3 und Domain4 so konfiguriert werden, dass sie durch Split-Tunneling für die Gruppenrichtlinie mit dem Namen FirstGroup aufgelöst werden:
hostname(config)#group-policy FirstGroup attributes hostname(config-group-policy)#split-dns value Domain1 Domain2 Domain3 Domain4
Nutzen Sie diesen Abschnitt, um zu überprüfen, ob Ihre Konfiguration ordnungsgemäß funktioniert.
Das Output Interpreter-Tool (OIT) (nur registrierte Kunden) unterstützt bestimmte show-Befehle. Verwenden Sie das OIT, um eine Analyse der show-Befehlsausgabe anzuzeigen.
Eine Möglichkeit, sicherzustellen, dass die Sicherheits-Appliance die DNS-Einträge korrekt umschreibt, besteht darin, die betreffenden Pakete zu erfassen, wie im vorherigen Beispiel beschrieben. Gehen Sie wie folgt vor, um den Datenverkehr auf der ASA zu erfassen:
Erstellen Sie eine Zugriffsliste für jede Erfassungsinstanz, die Sie erstellen möchten.
Die ACL sollte den Datenverkehr angeben, den Sie erfassen möchten. In diesem Beispiel wurden zwei ACLs erstellt.
Die ACL für den Datenverkehr an der externen Schnittstelle:
access-list DNSOUTCAP extended permit ip host 172.22.1.161 host 172.20.1.2 !--- All traffic between the DNS server and the ASA. access-list DNSOUTCAP extended permit ip host 172.20.1.2 host 172.22.1.161 !--- All traffic between the ASA and the DNS server.
Die ACL für den Datenverkehr auf der internen Schnittstelle:
access-list DNSINCAP extended permit ip host 192.168.100.2 host 172.22.1.161 !--- All traffic between the client and the DNS server. access-list DNSINCAP extended permit ip host 172.22.1.161 host 192.168.100.2 !--- All traffic between the DNS server and the client.
Erstellen Sie die Erfassungsinstanz(en):
ciscoasa#capture DNSOUTSIDE access-list DNSOUTCAP interface outside !--- This capture collects traffic on the outside interface that matches !--- the ACL DNSOUTCAP. ciscoasa#capture DNSINSIDE access-list DNSINCAP interface inside !--- This capture collects traffic on the inside interface that matches !--- the ACL DNSINCAP.
Zeigen Sie die Erfassung(en) an.
So sehen die Beispielaufnahmen aus, nachdem ein gewisser DNS-Datenverkehr übertragen wurde:
ciscoasa#show capture DNSOUTSIDE 2 packets captured 1: 14:07:21.347195 172.20.1.2.1025 > 172.22.1.161.53: udp 36 2: 14:07:21.352093 172.22.1.161.53 > 172.20.1.2.1025: udp 93 2 packets shown ciscoasa#show capture DNSINSIDE 2 packets captured 1: 14:07:21.346951 192.168.100.2.57225 > 172.22.1.161.53: udp 36 2: 14:07:21.352124 172.22.1.161.53 > 192.168.100.2.57225: udp 93 2 packets shown
(Optional) Kopieren Sie die Aufzeichnungen auf einen TFTP-Server im pcap-Format, um sie in einer anderen Anwendung zu analysieren.
Anwendungen, die das pcap-Format analysieren können, können zusätzliche Details wie den Namen und die IP-Adresse in DNS A-Datensätzen anzeigen.
ciscoasa#copy /pcap capture:DNSINSIDE tftp ... ciscoasa#copy /pcap capture:DNSOUTSIDE tftp
In diesem Abschnitt finden Sie Informationen zur Behebung von Fehlern in Ihrer Konfiguration.
Stellen Sie sicher, dass die DNS-Inspektion auf der Sicherheits-Appliance konfiguriert ist. Siehe Abschnitt DNS-Inspektion konfigurieren.
Wenn zwischen dem Client und dem WWW-Server keine Verbindung hergestellt werden kann, liegt dies möglicherweise an einer NAT-Fehlkonfiguration. Überprüfen Sie die Protokolle der Sicherheits-Appliance auf Meldungen, die darauf hinweisen, dass ein Protokoll keine Übersetzung über die Sicherheits-Appliance erstellt hat. Wenn solche Meldungen angezeigt werden, stellen Sie sicher, dass NAT für den gewünschten Datenverkehr konfiguriert wurde und keine Adressen falsch sind.
%ASA-3-305006: portmap translation creation failed for tcp src inside:192.168.100.2/11000 dst dmz:10.10.10.10/23
Löschen Sie die Xlate-Einträge, und entfernen Sie dann die NAT-Anweisungen, und wenden Sie sie erneut an, um diesen Fehler zu beheben.
Es ist möglich, dass Sie diese Fehlermeldung aufgrund von DNS-Paketverlust erhalten:
%PIX|ASA-4-410001: UDP DNS request from source_interface:source_address/source_port to dest_interface:dest_address/dest_port; (label length | domain-name length) 52 bytes exceeds remaining packet length of 44 bytes.
Vergrößern Sie die DNS-Paketlänge zwischen 512 und 65535, um dieses Problem zu beheben.
Beispiel:
ciscoasa(config)#policy-map type inspect dns MY_DNS_INSPECT_MAP ciscoasa(config-pmap)#parameters ciscoasa(config-pmap-p)#message-length maximum <512-65535>
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
29-Sep-2006 |
Erstveröffentlichung |