La ricorsione del DNS non è sicura, ma è necessaria per le applicazioni interne?


16

Nella gestione di un Windows Server 2008, il server ospita DNS (è nameserver) per alcuni domini, oltre a ospitare alcune applicazioni accessibili al pubblico.

Una scansione di sicurezza ha indicato che la configurazione DNS non è sicura, poiché consente query ricorsive.

È stata tentata la disabilitazione delle query ricorsive, ma si sono verificati diversi problemi (le e-mail inviate dalle app locali non sono state recapitate e un'app in esecuzione localmente che si collega a un sito di terze parti non è stata in grado di risolvere il nome di dominio per la connessione, ecc.). Quindi sembra che le richieste DNS che hanno origine sul server stesso si basano su query ricorsive per funzionare.

Esiste un modo per disabilitare le query ricorsive da parte del DNS ospitato sul server pur consentendo il funzionamento delle query DNS originate sul server? Mi chiedo se siamo in grado di disabilitare le query ricorsive sul server DNS locale e impostare il DNS in uscita nelle impostazioni di rete su qualcosa di esterno (come 8.8.8.8), in modo che le query DNS in uscita vadano prima lì e il DNS di questo server finirà solo essere interrogato per i domini che ospita effettivamente localmente.

Grazie per il tuo tempo!

Risposte:


11

È una buona idea non fornire funzionalità di ricerca ricorsiva all'intera Internet, quindi configurare il server DNS per rispondere solo alle domande per le quali è autorevole è una buona cosa TM .

In superficie sembra che la conclusione che hai raggiunto nella tua ultimo paragrafo è una buona: Configurare le impostazioni TCP propria del server / IP per utilizzare un server DNS che è autorizzato a fornire ricerche ricorsive. Il processo Server DNS non utilizza i server DNS configurati nelle impostazioni TCP / IP sulla scheda NIC del computer server per nulla di particolare. Piuttosto, inoltra le richieste (o utilizza i suggerimenti di root) in base alla configurazione del server DNS.

Quando le applicazioni in esecuzione sul server tentano di eseguire una query per domini, il server DNS in esecuzione su quella macchina è autorevole per la richiesta, in ultima analisi, accederà al processo del server DNS in esecuzione su quella macchina e verrà data risposta alla query.


14

Esiste un modo per disabilitare le query ricorsive da parte del DNS ospitato sul server pur consentendo il funzionamento delle query DNS originate sul server?

Non con il server DNS di Microsoft, non esiste.

Con il server DNS di ISC, BIND, si potrebbero eludere le cose con le viste. Il server DNS di Microsoft non ha tale meccanismo. Quindi, per una determinata istanza del server DNS Microsoft, si deve scegliere se si tratta di un server DNS di contenuto pubblico o di un server DNS proxy locale del sito . Non può ignorare le cose e fingere di essere diversi tipi di server per client DNS diversi.

Il servizio / strumento di test di sicurezza è abbastanza giusto. Si è migliore prassi di non fornire servizio proxy - qualsiasi tipo di servizio di proxy: che si tratti di servizio proxy HTTP, DNS servizio proxy o servizio SMTP Presentazione - al resto di Internet al di fuori del proprio sito. È molto dovrebbe avere server separati : un server DNS di contenuti di pubblicare i vostri dati DNS pubblico, circa i vostri nomi di dominio che sono stati registrati, a tutti su Internet; e un server DNS proxy locale, che svolge il grugnito lavoro di risoluzione delle query per conto dei computer della tua LAN / organizzazione, che è accessibile solo alle macchine della tua organizzazione / sulla tua LAN. Con il server DNS di Microsoft, questo non è particolarmente facile.

Sarebbe particolarmente difficile se la tua macchina fosse anche un controller di dominio. Dichiari che questa macchina è direttamente raggiungibile da tutta Internet. Se tale macchina è un controller di dominio, allora dovresti ripensare la tua organizzazione di rete ora . Esporresti al pubblico moltissimi servizi interni, non solo un servizio DNS proxy. Quindi lavoriamo sulla presunzione che questo non sia un controller di dominio.

Poiché non è un controller di dominio ed è semplicemente un server membro , non è necessario che il client DNS sulla macchina utilizzi il proprio server DNS (o, inizialmente, il server DNS di un altro controller di dominio) come proxy Servizio DNS, questo è il caso dei controller di dominio. In caso contrario, non sarebbe possibile disattivare il servizio DNS proxy sul server DNS della macchina. Fortunatamente, non è un controller di dominio e il suo client DNS può utilizzare qualche altra macchina per il servizio DNS proxy, non se stesso.

Il client DNS sulla macchina del server membro deve comunque utilizzare un server DNS proxy interno . Non puoi semplicemente indirizzarlo verso alcuni server DNS esterni come quelli forniti dal tuo ISP, Google o qualsiasi altra parte che non conosce tutti i dati DNS che Active Directory sta utilizzando sulla tua LAN . Tuttavia, puoi puntare il client DNS della macchina sul server DNS su uno o più controller di dominio. Questo è abbastanza semplice ed è quello che stai facendo, dopotutto, già facendo su tutte le tue stazioni di lavoro sulla tua LAN. Il client DNS sul server membro deve essere semplicemente configurato come i client DNS su tutte le workstation .

Dato che il client DNS della tua macchina non utilizza il server DNS in esecuzione sulla macchina per il servizio DNS proxy, devi semplicemente configurare il server DNS di Microsoft in modo da non fornire a nessuno il servizio DNS proxy di qualsiasi forma.

Ulteriori letture


Scrittura eccellente.
Nic

Apprezzo le informazioni, grazie! Sto lavorando con un'infrastruttura più piccola qui, quindi la soluzione presentata è eccessiva per questo scenario.
ilasno,

Solo una breve nota che questo non è più vero a partire da Server 2016: ora Windows supporta il DNS split-brain , inclusa un'opzione per limitare la ricerca ricorsiva a seconda dell'indirizzo del client. Tuttavia, la configurazione di un server indipendente per le richieste pubbliche è ancora l'opzione più semplice.
Bob,

5

Come ha affermato Evan nella sua risposta, le applicazioni devono utilizzare il componente client DNS sul server, che è completamente indipendente dal componente server DNS. Il componente server DNS può essere configurato per non eseguire la ricorsione, consentendogli di rispondere alle query inviate solo per le zone DNS per le quali è autorevole.

Le applicazioni possono utilizzare i server DNS configurati nelle proprietà TCP / IP della scheda NIC pertinente, che possono essere configurati per utilizzare qualsiasi server DNS che eseguirà la ricorsione (come i server DNS di Google). I server DNS configurati nelle proprietà TCP / IP della scheda NIC pertinente non devono puntare al server DNS in esecuzione sullo stesso server.


0

Di recente ho avuto lo stesso problema e il nostro server DNS veniva utilizzato per attacchi di amplificazione. Ma devo continuare la ricorsione per gli altri nostri server interni.

Se hai un router Cisco, ecco una possibile soluzione. Ho spostato il nostro DNS esterno su un router Cisco 7200VXR e configurato per rispondere solo a zone DNS specifiche. Interrogherà i server DNS interni in modo da non dover inserire tutto in due posizioni.

Ecco uno snippet della configurazione Cisco che ho usato:

ip dns view default
 dns forwarder 192.168.0.xx (internal DNS server)
 domain round-robin

ip dns view-list default
 view default 1
  restrict name-group 1

ip dns name-list 1 permit abc.com
ip dns name-list 1 permit def.com
ip dns name-list 1 permit anyotherdomainthatyouhost.com
ip dns name-list 1 permit 3.2.1.in-addr.arpa (needed for reverse PTR lookups)

interface fastethernet0/0 (the interface where the IP address is that will host DNS)
 ip dns view-group default
 ip address 1.2.3.4 secondary (use the public facing IP you will use to host DNS)

ip dns server

Inoltre, non dimenticare di consentire i pacchetti DNS nel router con un elenco di accesso, ad esempio:

permit udp any host 1.2.3.4 eq domain
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.