Dit document biedt een voorbeeldconfiguratie voor het uitvoeren van Domain Name System (DNS)-doctoring op de ASA 5500 Series adaptieve security applicatie of PIX 500 Series security applicatie met behulp van statische NAT-verklaringen (Network Address Translation). DNS-doctoring maakt het mogelijk dat het security apparaat DNS A-records herschrijft.
DNS-herschrijven voert twee functies uit:
Vertaalt een publiek adres (het routable of in kaart gebrachte adres) in een DNS antwoord op een privé adres (het echte adres) wanneer de DNS cliënt op een privé interface is.
Vertaalt een privé adres aan een openbaar adres wanneer de DNS cliënt op de openbare interface is.
Opmerking: de configuratie in dit document bevat twee NAT-interfaces, zowel binnen als buiten. Een voorbeeld van DNS-doctoring met statica en drie NAT-interfaces (binnen, buiten en dmz) is PIX/ASA: Voer DNS-doctoring uit met het statische commando en drie NAT-interfaces Configuration Voorbeeld.
Raadpleeg PIX/ASA 7.x NAT- en PAT-verklaringen en gebruik nationale, wereldwijde, statische, geleidende en toegangslijsten voor opdrachten en poortomleiding (doorsturen) op PIX voor meer informatie over het gebruik van NAT op een security applicatie.
DNS-inspectie moet zijn ingeschakeld om DNS-doctoring op het security apparaat uit te voeren. DNS-inspectie is standaard ingeschakeld. Als deze functie is uitgeschakeld, raadpleegt u de sectie DNS-inspectie configureren later in dit document om deze opnieuw in te schakelen. Als DNS-inspectie is ingeschakeld, voert het beveiligingstoestel de volgende taken uit:
Vertaalt het DNS-record op basis van de voltooide configuratie met behulp van de statische en NAT-opdrachten (DNS-herschrijven). De vertaling is alleen van toepassing op de A-record in het DNS antwoord. Daarom worden omgekeerde lookups, die om het PTR-record vragen, niet beïnvloed door DNS-herschrijven.
Opmerking: DNS-herschrijven is niet compatibel met statische poortadresomzetting (PAT) omdat meerdere PAT-regels van toepassing zijn voor elke A-record en de PAT-regel die moet worden gebruikt dubbelzinnig is.
Draait de maximale lengte van het DNS-bericht af (de standaardinstelling is 512 bytes en de maximale lengte is 65535 bytes). De herassemblage wordt uitgevoerd zonodig om te verifiëren dat de pakketlengte minder is dan de maximum gevormde lengte. Het pakket wordt losgelaten als het de maximumlengte overschrijdt.
Opmerking: als u de opdracht Dns inspecteren zonder de optie met de maximale lengte uitgeeft, wordt de grootte van het DNS-pakket niet gecontroleerd.
Dwingt een domeinnaamlengte van 255 bytes en een labellengte van 63 bytes af.
Verifieert de integriteit van de domeinnaam waarnaar door de aanwijzer wordt verwezen als compressiepunten worden aangetroffen in het DNS-bericht.
Controleert om te zien of een lijn van de compressiewijzer bestaat.
De informatie in dit document is gebaseerd op ASA 5500 Series security applicatie, versie 7.2(1).
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u de potentiële impact van elke opdracht begrijpen.
Deze configuratie kan ook worden gebruikt met de Cisco PIX 500 Series security applicatie, versie 6.2 of hoger.
Opmerking: de configuratie van Cisco Adaptive Security Device Manager (ASDM) is alleen van toepassing op versie 7.x.
In een typische DNS-uitwisseling stuurt een client een URL of hostnaam naar een DNS-server om het IP-adres van die host te bepalen. De DNS server ontvangt het verzoek, kijkt omhoog de naam-aan-IP-adresafbeelding voor die gastheer, en verstrekt dan het A-verslag met het IP adres aan de cliënt. Terwijl deze procedure in vele situaties goed werkt, kunnen er problemen optreden. Deze problemen kunnen zich voordoen wanneer de client en de host die de client probeert te bereiken zich allebei op hetzelfde privénetwerk achter NAT bevinden, maar de DNS-server die door de client wordt gebruikt zich op een ander publiek netwerk bevindt.
In dit scenario bevinden de client en de WWW-server die de client probeert te bereiken zich beide op de binneninterface van de ASA. Dynamisch PAT is ingesteld om de client toegang tot internet te geven. Statische NAT met een toegangslijst is geconfigureerd om de server toegang tot het internet te geven en om internethosts toegang te geven tot de WWW-server.
Dit diagram is een voorbeeld van deze situatie. In dit geval, de client op 192.168.100.2 wil de URL van server.voorbeeld.com gebruiken om toegang te krijgen tot de WWW-server op 192.168.100.10. DNS-services voor de client worden geleverd door de externe DNS-server op 172.22.1.161. Omdat de DNS-server zich op een ander openbaar netwerk bevindt, kent deze het privé IP-adres van de WWW-server niet. In plaats daarvan, kent het de server WWW in kaart gebracht adres van 172.20.1.10. Aldus, bevat de DNS server de IP-adres-aan-naam afbeelding van server.example.com aan 172.20.1.10.
Zonder DNS-doctoring of een andere oplossing die in deze situatie is ingeschakeld, kan de client, als hij een DNS-verzoek voor het IP-adres van server.example.com verstuurt, geen toegang krijgen tot de WWW-server. Dit komt doordat de client een A-record ontvangt dat de toegewezen openbare adres bevat: 172.20.1.10 van de WWW-server. Wanneer de client probeert toegang te krijgen tot dit IP-adres, worden de pakketten door het beveiligingsapparaat verlaagd omdat pakketomleiding op dezelfde interface niet mogelijk is. Dit is hoe het NAT-gedeelte van de configuratie eruit ziet als DNS-doctoring niet is ingeschakeld:
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.
Dit is hoe de configuratie eruit ziet in de ASDM wanneer DNS-doctoring niet is ingeschakeld:
Hier is een pakketopname van de gebeurtenissen wanneer DNS-doctoring niet is ingeschakeld:
De client verzendt de DNS-query.
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 wordt op de DNS-query uitgevoerd door de ASA en de query wordt doorgestuurd. Merk op dat het bronadres van het pakket is veranderd in de buiteninterface van de ASA.
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)
De DNS server antwoordt met het toegewezen adres van de WWW server.
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
ASA maakt de vertaling van het bestemmingsadres van de DNS reactie ongedaan en verstuurt het pakket naar de client. Let op dat zonder DNS-doctoring ingeschakeld, de Addr in het antwoord nog steeds het toegewezen adres van de WWW-server is.
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
Op dit punt probeert de client toegang te krijgen tot de WWW-server op 172.20.1.10. De ASA maakt een verbindingselement voor deze communicatie. Maar omdat er geen verkeer van binnen naar buiten kan stromen, zijn de aansluitingstijden naar buiten. De ASA-logboeken tonen dit:
%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
DNS-doctoring met het dns-sleutelwoord geeft het beveiligingstoestel de mogelijkheid om de inhoud van de DNS-serverantwoorden op de client te onderscheppen en te herschrijven. Indien correct geconfigureerd kan het security apparaat de A-record wijzigen om de client toe te staan in een scenario zoals besproken in het gedeelte Probleem: client kan geen verbinding maken met WW-server. In deze situatie, met DNS het dokken toegelaten, herschrijft het veiligheidstoestel het A-verslag om de cliënt aan 192.168.100.10 te leiden, in plaats van 172.20.1.10. DNS-doctoring is ingeschakeld wanneer u het DNS-trefwoord aan een statische NAT-verklaring toevoegt. Dit is hoe het NAT-gedeelte van de configuratie eruitziet als DNS-doctoring is ingeschakeld:
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.
Voltooi de volgende stappen om DNS-doctoring in de ASDM te configureren:
Navigeer naar Configuratie > NAT en kies de statische NAT-regel die moet worden aangepast. Klik op Edit (Bewerken).
Klik op NAT-opties....
Controleer de Translate DNS-antwoorden die overeenkomen met het aanvinkvakje van de vertaalregel.
Klik op OK om het venster NAT-opties te verlaten. Klik op OK om het venster Statische NAT-regel bewerken te verlaten. Klik op Toepassen om uw configuratie naar het security apparaat te sturen.
Hier is een pakketopname van de gebeurtenissen wanneer DNS-doctoring is ingeschakeld:
De client verzendt de DNS-query.
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 wordt op de DNS-query uitgevoerd door de ASA en de query wordt doorgestuurd. Merk op dat het bronadres van het pakket is veranderd in de buiteninterface van de ASA.
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)
De DNS server antwoordt met het toegewezen adres van de WWW server.
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
ASA maakt de vertaling van het bestemmingsadres van de DNS reactie ongedaan en verstuurt het pakket naar de client. Merk op dat met DNS-doctoring ingeschakeld, de Addr in het antwoord wordt herschreven om het echte adres van de WWW-server te zijn.
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.
Op dit punt probeert de client toegang te krijgen tot de WWW-server op 192.168.100.10. De verbinding slaagt. Er wordt geen verkeer op de ASA opgenomen omdat de client en server op hetzelfde subsysteem staan.
Dit is de definitieve configuratie van ASA om DNS-doctoring uit te voeren met het DNS-trefwoord en twee NAT-interfaces.
Laatste ASA 7.2(1) configuratie |
---|
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 |
Waarschuwing: Hairpinning met statische NAT betekent dat al het verkeer tussen de client en de WWW-server via het security apparaat wordt verzonden. Overweeg zorgvuldig de verwachte hoeveelheid verkeer en de mogelijkheden van uw security applicatie voordat u deze oplossing implementeert.
Kapsel is het proces waarbij verkeer wordt teruggestuurd naar dezelfde interface waarop het is aangekomen. Deze functie is geïntroduceerd in security applicatie softwareversie 7.0. Voor versies eerder dan 7.2(1), is vereist dat ten minste één arm van het kapselde verkeer (inkomend of uitgaand) wordt versleuteld. Vanaf 7.2(1) en later is deze eis niet langer van kracht. Zowel het inkomende verkeer als het uitgaande verkeer kan ongecodeerd worden als u 7.2(1) gebruikt.
Hairpinning, in combinatie met een statische NAT-verklaring, kan worden gebruikt om hetzelfde effect als DNS-doctoring te bereiken. Deze methode wijzigt de inhoud van de DNS A-record die van de DNS-server naar de client is teruggestuurd niet. In plaats daarvan, wanneer hairpinning wordt gebruikt, zoals in het scenario dat in dit document wordt besproken, kan de client het adres van 172.20.1.10 gebruiken dat door de DNS server wordt teruggestuurd om verbinding te maken.
Zo ziet het relevante deel van de configuratie eruit als je haarspelden en statische NAT gebruikt om een DNS doctoring effect te bereiken. De opdrachten in vet worden meer in detail uitgelegd aan het eind van deze uitvoer:
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.
Met deze opdracht kan verkeer met hetzelfde beveiligingsniveau door het security apparaat worden getransporteerd. De trefwoorden intra-interface van de vergunning staan dat zelfde-veiligheid-verkeer toe om de zelfde interface in te gaan en te verlaten, zodat wordt het haarspelden toegelaten.
Opmerking: Raadpleeg verkeer met dezelfde beveiliging voor meer informatie over haarspelden en verkeer met dezelfde beveiliging.
mondiaal (binnen) 1 interface-al verkeer dat het security apparaat kruist moet NAT ondergaan. Deze opdracht gebruikt het interne interfaceadres van het security apparaat om verkeer dat de binneninterface binnenkomt in staat te stellen om PAT te ondergaan als het wordt afgekapt naar buiten de binneninterface.
statische (binnen, binnen) 172.20.1.10 192.168.100.10 netmasker 255.255.255.255—Deze statische NAT-ingang maakt een tweede afbeelding van het openbare IP-adres van de WW-server. In tegenstelling tot de eerste statische NAT-ingang wordt het adres 172.20.1.10 nu echter toegewezen aan de binnenkant van de interface van het security apparaat. Hierdoor kan het security apparaat reageren op verzoeken die het ziet voor dit adres in de binnenkant interface. Vervolgens stuurt het deze verzoeken via zichzelf door naar het echte adres van de WWW-server.
Voltooi de volgende stappen om hairpinning te configureren met statische NAT in ASDM:
Navigeer naar Configuration > Interfaces.
Bij de bodem van het venster, controleer het Enable verkeer tussen twee of meer gastheren die aan de zelfde doos van de interfacecontrole worden aangesloten.
Klik op Apply (Toepassen).
Navigeer naar Configuratie > NAT en kies Toevoegen > Statische NAT-regel toevoegen....
Vul de configuratie in voor de nieuwe statische vertaling.
Bevolk het Real Address gebied met de WWW server informatie.
Bevolk het Statische Vertaal gebied met het adres en de interface dat u de server WWW aan wilt in kaart brengen.
In dit geval, wordt de binnenkant interface gekozen om hosts op de binnenkant interface toegang te geven tot de WWW server via het toegewezen adres 172.20.1.10.
Klik op OK om het venster Statische NAT-regel toevoegen te verlaten.
Kies de bestaande dynamische PAT-vertaling en klik op Bewerken.
Kies binnen van de pulldown doos van de Interface.
Klik op Add (Toevoegen).
Kies het keuzerondje met de markering Poortadresomzetting (PAT) met behulp van IP-adres van de interface. Klik op Add (Toevoegen).
Klik op OK om het venster Globale adresgroep toevoegen te verlaten. Klik op OK om het venster Dynamische NAT-regel bewerken te verlaten. Klik op Toepassen om uw configuratie naar het security apparaat te sturen.
Hier is de opeenvolging van gebeurtenissen die plaatsvinden wanneer het haarspelden wordt gevormd. Veronderstel dat de client de DNS-server al heeft bevraagd en een antwoord van 172.20.1.10 heeft ontvangen voor het WWW-serveradres:
De client probeert contact op te nemen met de WWW-server op 172.20.1.10.
%ASA-7-609001: Built local-host inside:192.168.100.2
Het security apparaat ziet het verzoek en erkent dat de WWW server is op 192.168.100.10.
%ASA-7-609001: Built local-host inside:192.168.100.10
Het security apparaat maakt een dynamische PAT-vertaling voor de client. De bron van het cliëntverkeer is nu de binneninterface van het veiligheidstoestel: 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
Het security apparaat maakt een TCP verbinding tussen de client en de WWW server via zichzelf. Neem nota van de in kaart gebrachte adressen van elke gastheer tussen haakjes.
%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)
Met de opdracht Show Xlate op het security apparaat wordt geverifieerd dat het clientverkeer door het security apparaat wordt omgezet.
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)
De opdracht show conn op het security apparaat verifieert dat de verbinding is geslaagd tussen het security apparaat en de WWW server namens de client. Let tussen haakjes op het echte adres van de client.
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
Dit is de definitieve configuratie van de ASA die haarspeling en statische NAT gebruikt om een DNS doctoring effect te bereiken met twee NAT interfaces.
Laatste ASA 7.2(1) configuratie |
---|
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 |
N.B.: Raadpleeg deze video, Hair-pinning op Cisco ASA (alleen geregistreerde klanten) voor meer informatie over verschillende scenario's waarin haar kan worden gebruikt.
Voer deze stappen uit om DNS-inspectie in te schakelen (als deze eerder is uitgeschakeld). In dit voorbeeld wordt DNS-inspectie toegevoegd aan het standaard wereldwijde inspectiebeleid, dat wereldwijd wordt toegepast door een opdracht voor servicebeleid alsof de ASA begon met een standaardconfiguratie. Raadpleeg Modular Policy Framework gebruiken voor meer informatie over servicebeleid en inspectie.
Maak een inspectiebeleidskaart voor DNS.
ciscoasa(config)#policy-map type inspect dns MY_DNS_INSPECT_MAP
Voer in de configuratiemodus beleid-map parameterconfiguratie in om parameters voor de inspectie-engine op te geven.
ciscoasa(config-pmap)#parameters
Specificeer in de configuratiemodus van de parameter policy-map de maximale berichtlengte voor DNS-berichten van 512.
ciscoasa(config-pmap-p)#message-length maximum 512
Afsluiten uit de configuratiemodus van de parameter van het beleid en de configuratiemodus van de beleidskaart.
ciscoasa(config-pmap-p)#exit ciscoasa(config-pmap)#exit
Bevestig dat de inspectiebeleidskaart is opgesteld zoals gewenst.
ciscoasa(config)#show run policy-map type inspect dns ! policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 !
Ga beleid-kaart configuratiewijze voor global_policy in.
ciscoasa(config)#policy-map global_policy ciscoasa(config-pmap)#
Specificeer in de configuratiemodus beleid-map de standaardlaag 3/4 klassenkaart, inspection_default.
ciscoasa(config-pmap)#class inspection_default ciscoasa(config-pmap-c)#
Specificeer in de configuratiemodus van de policy-map-klasse dat DNS moet worden geïnspecteerd met behulp van de in stap 1-3 gemaakte inspectiebeleidskaart.
ciscoasa(config-pmap-c)#inspect dns MY_DNS_INSPECT_MAP
Uitgang uit beleid-kaart klassenconfiguratiewijze en beleid-kaart configuratiewijze.
ciscoasa(config-pmap-c)#exit ciscoasa(config-pmap)#exit
Controleer dat de global_policy-map naar wens is geconfigureerd.
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. !
Controleer of global_policy wereldwijd wordt toegepast door een service-policy.
ciscoasa(config)#show run service-policy service-policy global_policy global
Geef het splitsen-dns bevel in groep-beleid configuratiewijze uit om een lijst van domeinen in te gaan die door de gespleten tunnel moeten worden opgelost. Gebruik de nee formulier van deze opdracht om een lijst te verwijderen.
Wanneer er geen gesplitste tunneling domeinlijsten zijn, erven gebruikers alle bestaande in het standaardgroepsbeleid. Geef de opdracht split-dns none uit om de overerving van domeinlijsten met split tunneling te voorkomen.
Gebruik één ruimte om elk item in de lijst met domeinen te scheiden. Er is geen limiet aan het aantal items, maar de hele string kan niet langer zijn dan 255 karakters. U kunt alleen alfanumerieke tekens, koppeltekens (-) en punten (.) gebruiken. De opdracht geen split-dns verwijdert, indien gebruikt zonder argumenten, alle huidige waarden, die een nulwaarde bevatten die is gemaakt wanneer u de opdracht split-dns none uitgeeft.
Dit voorbeeld laat zien hoe u de domeinen Domain1, Domain2, Domain3 en Domain4 kunt configureren om door gesplitste tunneling te worden opgelost voor het groepsbeleid met de naam FirstGroup:
hostname(config)#group-policy FirstGroup attributes hostname(config-group-policy)#split-dns value Domain1 Domain2 Domain3 Domain4
Gebruik deze sectie om te controleren of uw configuratie goed werkt.
De Output Interpreter Tool (OIT) (alleen voor geregistreerde klanten) ondersteunt bepaalde opdrachten met show. Gebruik de OIT om een analyse te bekijken van de output van de opdracht show.
Eén methode om te controleren of het security apparaat DNS-records correct herschrijft, is om de pakketten in kwestie op te nemen, zoals besproken in het vorige voorbeeld. Voltooi de volgende stappen om verkeer op de ASA op te nemen:
Maak een toegangslijst voor elke opnameinstantie die u wilt maken.
ACL moet het verkeer specificeren dat u wilt opnemen. In dit voorbeeld zijn twee ACL’s gemaakt.
ACL voor verkeer op de buiteninterface:
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.
ACL voor verkeer op de binneninterface:
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.
De opnameinstantie(s) maken:
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.
Bekijk de opnamen.
Zo ziet het voorbeeld eruit nadat DNS-verkeer is doorgegeven:
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
(Optioneel) Kopieer de opname(en) naar een TFTP-server in pcap-indeling voor analyse in een andere toepassing.
Toepassingen die het pcap-formaat kunnen ontleden, kunnen aanvullende details zoals de naam en het IP-adres in DNS A-records tonen.
ciscoasa#copy /pcap capture:DNSINSIDE tftp ... ciscoasa#copy /pcap capture:DNSOUTSIDE tftp
Deze sectie bevat informatie waarmee u problemen met de configuratie kunt oplossen.
Zorg ervoor dat DNS-inspectie is ingesteld op het security apparaat. Zie de sectie DNS-inspectie configureren.
Als er geen verbinding kan worden gemaakt tussen de client en de WWW-server, kan dit worden veroorzaakt door een NAT-fout. Controleer de logboeken van het security apparaat op berichten die aangeven dat een protocol er niet in is geslaagd om een vertaling te maken met het security apparaat. Als dergelijke berichten verschijnen, verifieer dat NAT voor het gewenste verkeer is gevormd en dat geen adressen onjuist zijn.
%ASA-3-305006: portmap translation creation failed for tcp src inside:192.168.100.2/11000 dst dmz:10.10.10.10/23
Wis de verklarende ingangen, en verwijder en reapplication dan de NAT- verklaringen om deze fout op te lossen.
Het is mogelijk dat u deze foutmelding ontvangt vanwege de DNS-pakketdaling:
%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.
Vergroot de DNS-pakketlengte tussen 512-65535 om dit probleem op te lossen.
Voorbeeld:
ciscoasa(config)#policy-map type inspect dns MY_DNS_INSPECT_MAP ciscoasa(config-pmap)#parameters ciscoasa(config-pmap-p)#message-length maximum <512-65535>
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
1.0 |
29-Sep-2006 |
Eerste vrijgave |