Mój serwer DNS przesyła 20 Mb / s, dlaczego?


22

Korzystam z serwera DNS w EC2, który wczoraj przepychał około 20 Mb / s, kiedy sprawdziłem pulpit rozliczeniowy i znalazłem w tym miesiącu 1,86 TB używanych danych. To duży rachunek dla mojego małego laboratorium projektowego. Nigdy wcześniej nie zauważyłem spadku wydajności i nie zawracałem sobie głowy konfigurowaniem progów ruchu, ale teraz to zrobiłem, ponieważ kosztowało mnie to 200 USD + opłat za przepustowość.

Wygląda na to, że ktoś użył mojego serwera DNS w ramach ataku wzmacniającego, ale brakuje mi tego.

Konfiguracja jest poniżej.

// 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; };
};

Biorąc pod uwagę tę konfigurację, NIE powinienem odpowiadać na zapytania dotyczące stref, których nie hostuję lokalnie, prawda? Ten serwer jest SOA dla kilku domen, ale nie służy do wyszukiwania innych moich serwerów (wszyscy rozstrzygają przeciwko OpenDNS lub Google). Jaką dyrektywę tutaj popełniłem, czy o której zapomniałem? Moje logi (63 MB +) są pełne:

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

9
To nie odpowiada na twoje pytanie, ale powinieneś skonfigurować alerty rozliczeniowe docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/…
Tim

Czy można zaakceptować wymuszenie powrotu do protokołu TCP dla wszystkich klientów bez obsługi RFC 7873?
kasperd

1
ograniczenie kursu w BIND
Rui F Ribeiro

@RuiFRibeiro Ograniczenie prędkości na autorytatywnych serwerach DNS może być przydatne. Jednak samo ograniczenie prędkości może być słabym punktem, który można wykorzystać w atakach DoS. Jeśli osoba atakująca zaleje rekursor zapytaniami o domenę hostowaną na autorytatywnym serwerze z ograniczeniem szybkości, uprawnieni użytkownicy tego rekursora mogą nie być w stanie rozwiązać rekordów w atakowanej domenie. Atak ten można złagodzić za pomocą agresywnego użycia NSEC / NSEC3, które nie jest powszechnie stosowane.
kasperd

Odpowiedzi:


19

Nawet jeśli twój serwer jest ustawiony tak, aby odpowiadał tylko na autorytatywne zapytania, tak jak twoje, nadal można go użyć do ataku wzmacniającego - ANYzapytania skierowane przeciwko pierwiastkowi strefy mogą wyzwalać dość ciężką odpowiedź UDP, ponieważ root strefy zwykle ma wiele rekordów, szczególnie z SPF / DKIM / DNSSEC.

Prawdopodobnie dzieje się to w twoim systemie - użyj, tcpdumpaby potwierdzić. Jeśli używają twoich autorytatywnych rekordów w ataku wzmacniającym, najlepszym rozwiązaniem będzie po prostu przejście do nowego adresu IP i mam nadzieję, że nie nadążą, zmień rekordy główne strefy, aby uczynić go mniej skutecznym wektorem wzmocnienia lub zaimplementuj ograniczenie wskaźnika odpowiedzi (jeśli BIND to obsługuje).


Nie pytają jednak o moje strefy ... czy mój serwer nie powinien ich usuwać, zamiast w ogóle odpowiadać?
Russell Anthony

4
@ RussellAnthony W przypadku wpisów dziennika, które widzisz, tak, uważam, że je usuwa - ale dla udanego ruchu związanego z atakami nie zostanie utworzony żaden wpis dziennika, więc pod względem dzienników wykorzystanie przepustowości jest niewidoczne. Jeśli atak nadal trwa (wciąż otrzymujesz nowe wpisy w dzienniku?), Założę się, że ANYobok tych, które nie powiodły się, jest kilka udanych zapytań.
Shane Madden

2
Dodano rate-limit { responses-per-second 1; };i wydaje się, że znacznie zmniejszyło ruch. Nie wiedziałem, że bind może RRL od wewnątrz siebie.
Russell Anthony

1
Jeśli rzeczywiście wysyłali zapytania o wiarygodne rekordy, oznacza to, że muszą znać nazwę domeny. W takim przypadku przeniesienie do nowego adresu IP nie jest tak prawdopodobne, ponieważ mogliby oni znaleźć nowy adres IP tak szybko, jak legalni użytkownicy.
kasperd

6
Upewnij się tylko, że ograniczenie prędkości nie zmienia się w wektor ataku DoS: jeśli atakujący wyczerpie limit odpowiedzi, uzasadnione pamięci podręczne (takie jak OpenDNS i Google) również mogą nie rozpoznać Twojego imienia i nazwiska.
Jonas Schäfer,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.