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.