Associa limite di velocità DNS e valori per risposte al secondo e finestra


8

Nel mio nome DNS conf. Del mio server DNS vedo

    rate-limit {
            responses-per-second 5;
            window 5;
    };

Cosa significa veramente? E può causare problemi ai client DNS? È una configurazione troppo stretta?


2
Per quanto riguarda "cosa significa effettivamente", raccomanderei la sezione pertinente del manuale , vedere anche la stessa sezione per la prossima versione 9.10
Håkan Lindqvist,

Risposte:


7

Limita il numero di risposte identiche che un singolo client DNS può ottenere in un secondo. L' window 5opzione consente una raffica di risposte 5 * 5.

"Risposte identiche" e "singolo client DNS" sono termini un po 'non ovvi qui, leggi questo per maggiori informazioni: http://web.archive.org/web/20140209100744/http://ss.vix.su/~ vjs / rl-arm.html .

Generalmente è una buona cosa limitare la velocità - può aiutarti in caso di un attacco DOS un giorno. I valori predefiniti dovrebbero essere OK nella maggior parte dei casi.


La parte su "burst" nel primo paragrafo è sbagliata. windowviene utilizzato solo per controllare l'intervallo di tempo entro il quale vengono tracciate le "risposte identiche" inviate a ciascun "singolo client DNS". Il Manuale di riferimento per l'amministratore di BIND 9 afferma: L'account [RRL del cliente] non può diventare più positivo del limite al secondo o più negativo di windowvolte il limite al secondo. Questo messaggio di Vernon Schryver spiega il comportamento dell'algoritmo in modo più dettagliato.
Kempniu,

11

Si consiglia di leggere il manuale di riferimento dell'amministratore per BIND 9.9 .

Fondamentalmente, responses-per-secondè il numero di risposte identiche che possono essere inviate a una singola destinazione, al secondo. Le definizioni sono difficili.

Una singola destinazione è un blocco di indirizzi di rete, della dimensione configurata in ipv4-prefix-lengtho ipv6-prefix-lengthcome applicabile. Quindi, se ipv4-prefix-lengthè 24, ed entrambi 192.0.2.1e 192.0.2.2stanno interrogando il server DNS, condivideranno questa quota e potranno solo inviare così tante query tra loro due.

Le risposte identiche sono le risposte alle query per un particolare tipo di RR per un particolare nome esistente o per un nome inesistente. Le seguenti query sono tutte distinte:

IN A example.net.
IN A www.example.net.
IN AAAA example.net.
IN A nonexistent.domain.example.net.

Tuttavia, tutte le seguenti query sono identiche (supponendo che nonexistent.domain.example.net.ecc. Rispettino i loro nomi):

IN A nonexistent.domain.example.net.
IN A nonexistent.domain2.example.net.
IN SOA other.nonexistent.domain.example.net.

windowcomplica ancora un po 'le cose. È il numero di secondi per i quali è possibile accumulare quote. Moltiplicare windowe responses-per-seconddare il massimo per cui qualsiasi quota può essere positiva, o in termini più elementari, la capacità di scoppio.

Per fare un esempio generale:

Sei il nameserver autorevole e non ricorrente per example.net.. Immagina che non sia stato visto alcun traffico DNS negli ultimi 10 secondi e che la configurazione nella domanda si applichi a livello globale. I seguenti eventi si verificano in sequenza:

  1. L'host 198.51.100.1 invia 100 query per IN NS example.net.. 25 saranno consentiti e i restanti 75 verranno ignorati.
  2. L'host 198.51.100.1 invia 100 query per IN A nonexistent.example.net.. 25 saranno consentiti e i restanti 75 verranno ignorati.
  3. L'host 198.51.100.1 invia 1 query perché IN MX nonexistent-domain.example.net. verrà ignorato poiché è stato raggiunto il limite per domini inesistenti.
  4. L'host 198.51.100.1 invia 1 query per IN A example.net.. È permesso.
  5. Gli host da 192.0.2.1 a 192.0.2.50 inviano ciascuno una singola query per IN NS example.net.. 25 di loro ricevono risposte e i restanti 25 vengono ignorati; la quota per 198.51.100.0/24 non si applica a questi host, ma condividono la quota per 192.0.2.0/24.
  6. Passa un secondo
  7. Gli host da 192.0.2.26 a 192.0.2.50 ripetono la query IN NS example.net.. 5 di loro ricevono risposte e i restanti 20 vengono ignorati, poiché la quota viene reintegrata solo con 5 query al secondo.

4
iptables -A INPUT -p udp --dport 53 -m recent --set --name dnslimit
iptables -A INPUT -p udp --dport 53 -m recent --update --seconds 60 --hitcount 11 --name dnslimit -j DROP 

IPtables può funzionare altrettanto bene. Mantiene il traffico completamente fuori servizio se viene rilevato un attacco.


eccezionale! Non ho nemmeno pensato a iptables. Ma cosa significa questo in inglese. Posso immaginare ... se alcuni IP inviano 11 o più query DNS li bloccano per 60 secondi, giusto?
Red Cricket,

No, la traduzione è: accetta non più di 11 pacchetti entro un periodo di 60 secondi, elimina tutti gli altri pacchetti.
drcelus,

1
Ho avuto un problema, dopo aver provato ad applicare la tua bella soluzione ho riscontrato un errore del tipo: "iptables: applicazione delle regole del firewall: iptables-restore v1.4.7: -c contatore pacchetti non numerico Errore nella riga: 17" La riga 17 è la prima uno dei tuoi. Dovrei caricare qualche modulo specifico?

la prima riga dovrebbe essere la seguente: iptables -A INPUT -p udp -m udp --dport 53 -m recent --set --name dnslimit --rsource

2
Non direi che "funziona altrettanto bene". Questa velocità limita senza alcuna idea se si tratta effettivamente della stessa query di cui è stato eseguito lo spam o di query diverse, quest'ultima molto probabilmente sarà un traffico legittimo.
Håkan Lindqvist,

0

Non credo sia una buona idea valutare il limite, chiediti: giudichi il limite anche le risposte del server web? Perché pensi che le risposte DNS siano meno importanti delle risposte del server web?
E anche se il limite di velocità, quel 5 req / sec suona molto basso.


2
Ratelimitare le risposte del server web potrebbe essere una cattiva idea in alcuni casi. Ma il DNS è principalmente UDP, che è facilmente falsificato (a differenza di http), quindi la limitazione della velocità è necessaria per evitare che i nameserver vengano utilizzati negli attacchi di amplificazione o riflessione.
Arjarj,

Se non è un risolutore aperto, non penso che sia un buon obiettivo per gli attacchi di riflessione / amplificazione, ma hai ragione. 5 req / sec penso ancora che sia troppo basso.
Sandor Marton,

1
Non specifica se si tratta di un server ricorsivo o autorevole. Per un server autorevole la limitazione della velocità è ancora importante. Inoltre, non sono solo 5 richieste al secondo, sono 5 delle stesse risposte al secondo e persino corrette se si generano risposte diverse. Generalmente l'impostazione 5 richieste al secondo va bene su bind (perché un server legittimo pone anche altre domande in mezzo).
Arjarj,

Ok, ho controllato i documenti e come vedo il limite di velocità è un'impostazione per client e non per server. Avevo l'impressione che il legame sarebbe limitato a un totale se 5req / s. 5 client al secondo è ok.
Sandor Marton,
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.