KB ID 0001113
Problema
Cisco DNS doctoring è un processo che intercetta un pacchetto di risposta DNS quando ritorna nella rete e cambia l’indirizzo IP nella risposta.
Perché vorresti farlo? Beh, diciamo che hai un server web sulla tua rete, e il suo IP pubblico è 111.111.111.111, e sulla tua LAN il suo indirizzo IP interno è 192.168.1.100, il suo nome DNS pubblico, (o URL) è www.yoursite.com. Quando un utente digita www.yoursite.com nel loro browser, DNS risponderà con l’IP pubblico di 111.111.111.111, e non l’indirizzo IP che è sulla tua LAN (192.168.1.100). Il client non può inviare il traffico dal firewall, “tornante” anche se 180 gradi e inviare nuovamente il traffico. Quindi fallisce. Quello che fa DNS è cercare pacchetti di risposta DNS che hanno 111.111.111.111 in loro e cambia dinamicamente l’ip nel pacchetto a 192.168.1.100.
Ci sono dei prerequisiti? Solo che il server DNS che invia la risposta invia la risposta tramite l’ASA, cioè se si dispone di un proprio server DNS in loco che serve la richiesta (senza una ricerca in avanti o un suggerimento di root). quindi la risposta DNS non va attraverso l’ASA, quindi non può medicarla. Ciò accade se il sito Web pubblico e il dominio interno hanno lo stesso nome o se il server DNS è autorevole per un dominio con un indirizzo IP esterno alla rete. Per risolvere questo problema la soluzione migliore è impostare ‘Split DNS’
Windows Impostazione di Split DNS
Come impostare DNS Doctoring
Se leggi il preambolo sai che la risposta DNS deve andare attraverso il firewall e l’IP pubblico che viene risolto deve essere sulla tua rete. Questo può essere un host sulla tua rete con un IP pubblico o un host nella tua DMZ che ha un IP pubblico (entrambi gli esempi sono mostrati di seguito).
Ci vuole più tempo per spiegare cos’è il DNS doctoring, piuttosto che per configurarlo effettivamente. In sostanza è sufficiente aggiungere la parola chiave ‘ dns ‘ alla fine dell’istruzione nat statica per l’host interno al suo indirizzo pubblico.
Opzione 1 – DNS Doctoring per un host sulla tua LAN
Questo è semplicemente un nat statico one-to-one con la parola chiave dns aggiunta su di esso, quindi usando l’esempio sopra (a sinistra), diamo un’occhiata ai nostri NAT.
Petes-ASA# show run nat!object network obj_any nat (inside,outside) dynamic interfaceobject network Obj-Static-128.65.98.44 nat (inside,outside) static 128.65.98.44
Potresti avere molto più output, ma questo mi dice che c’è un NAT dinamico per tutto il traffico di rete (PAT tutto all’interfaccia esterna in modo dinamico). E una traduzione statica per il tuo host interno, è quella a cui dobbiamo aggiungere la parola chiave dns.
Petes-ASA# configure terminal Petes-ASA(config)# object network Obj-Static-128.65.98.44Petes-ASA(config-network-object)# nat (inside,outside) static 128.65.98.44 dnsPetes-ASA(config-network-object)# exitPetes-ASA(config)# write memBuilding configuration...Cryptochecksum: de650019 1f1583f7 70121512 e1d093e8 15724 bytes copied in 3.430 secs (5241 bytes/sec)Petes-ASA(config)#
Come posso impostare il Doctoring DNS nell’ASDM?
Test DNS Doctoring
Ecco un esempio di ciò che è successo prima di impostare DNS doctoring, (o dove DNS doctoring non funziona).
E una volta configurato fai lo stesso e nota la differenza;
Opzione 2 – Host nella DMZ
Il processo è identico a sopra solo gli stami NAT sono diversi, cioè
Nota: presumo che l’host dell’oggetto esista già, in caso CONTRARIO aggiungi la riga in BLU.
Petes-ASA# configure terminal Petes-ASA(config)# object network Obj-Static-128.65.98.44Petes-ASA(config)# host 172.16.1.1Petes-ASA(config-network-object)# nat (DMZ,outside) static 128.65.98.44 dns
Opzione 3-Split DNS
Windows-Impostazione di Split DNS