Ich verwende einen DNS-Server in EC2 und er hat gestern etwa 20 MBit / s übertragen, als ich mein Abrechnungs-Dashboard überprüfte und in diesem Monat 1,86 TB an verwendeten Daten feststellte. Das ist eine große Rechnung für mein kleines Projektlabor. Ich habe noch nie Leistungseinbußen bemerkt und habe mich vorher nicht darum gekümmert, Datenverkehrsschwellen festzulegen, aber jetzt habe ich mehr als 200 USD an Bandbreitengebühren.
Es scheint, dass jemand meinen DNS-Server als Teil eines Verstärkungsangriffs verwendet hat, aber ich bin ratlos, wie.
Konfig ist unten.
// BBB.BBB.BBB.BBB = ns2.mydomain.com ip address
options {
listen-on port 53 { any; };
// listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-transfer { BBB.BBB.BBB.BBB; };
allow-query-cache { BBB.BBB.BBB.BBB; };
allow-query { any; };
allow-recursion { none; };
empty-zones-enable no;
forwarders { 8.8.8.8; 8.8.4.4; };
fetch-glue no;
recursion no;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "mydomain.com" IN {
type master;
file "zones/mydomain.com";
allow-transfer { BBB.BBB.BBB.BBB; localhost; };
};
Angesichts dieser Konfiguration sollte ich KEINE Fragen zu Zonen beantworten, die ich nicht lokal hoste, oder? Dieser Server ist die SOA für einige wenige Domains, wird aber von meinen anderen Servern nicht zum Nachschlagen verwendet (alle richten sich gegen OpenDNS oder Google). Welche Weisung habe ich hier falsch oder vergesse ich? Meine Logs (63MB +) sind voll davon:
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
quelle
Antworten:
Selbst wenn Ihr Server so eingestellt ist, dass er nur autorisierende Abfragen beantwortet, ist es dennoch möglich, dass er für einen Verstärkungsangriff verwendet wird -
ANY
Abfragen gegen den Stamm einer Zone können eine ziemlich schwere UDP-Antwort auslösen, da der Stamm der Zone dazu neigt, eine zu haben eine Reihe von Datensätzen, insbesondere mit SPF / DKIM / DNSSEC.Dies ist wahrscheinlich, was auf Ihrem System passiert - verwenden Sie
tcpdump
, um zu bestätigen. Wenn sie Ihre autoritativen Datensätze bei einem Amplifikationsangriff verwenden, besteht Ihre beste Möglichkeit darin, einfach auf eine neue IP zu wechseln und zu hoffen, dass sie nicht folgen, Ihre Zonenstammdatensätze zu ändern, um sie zu einem weniger effektiven Amplifikationsvektor zu machen oder zu implementieren Antwortratenbegrenzung (wenn Ihr BIND es unterstützt).quelle
ANY
neben diesen fehlgeschlagenen sicher eine Reihe erfolgreicher Abfragen.rate-limit { responses-per-second 1; };
und es scheint ziemlich viel Verkehr gesunken zu sein. Ich war mir nicht bewusst, dass RRL aus sich selbst heraus gebunden werden konnte.