Jump to content
Калькуляторы

ddos dns

что то уже утомляют атаки на dns .

 

0) начало мая , куча запросов с ответом NXDOMAIN ,прописываю RRL для NXDOMAIN полет нормальный

 

 

1 июля 2015 , context switch вырос с 10K до 700к , причем conntrack не более 15K post-75700-097581500 1438943165_thumb.png

 

1) прописал RRL (bind) + iptables drop результат есть, но система тормозит жутко cpu load 100 %

2) прописываю /proc/sys/net/core/somaxconn c 128 до 20000 , тормоза пропали (есть еще параметры, но помоему это основной http://rusua.org.ua/2013/01/07/411/)

3) остались временные скачки context switch до 100К-200K (летит разная хрень вроде dfdf.0Dlink или agrofirma-pc.TendaAP ) а также очень много рекурсивных запросов и мой логи копятся с записями NODATA , REFUSED , NXDOMAIN

4) перечитываю доку по RRL и меняю на slip 10 http://www.guug.de/veranstaltungen/ffg2013/talks/DNS_Rate_Limiting__Matthijs_Mekking.pdf

5) появились траблы у клиентов

5.1) задумался о ddos сервисе, зарегился на qrator.net и отслеживаю ботов в своей сети (бесплано) post-75700-020426200 1438943159_thumb.png

5.2) подумал о переводе самостоятельно держать зоны в пользу услуги "хостинг для домена" на nic.ru

6) запустил два dns один для рекурсии unbound , другой для зон isc-bind (подумываю про RPZ для зон вида .DLINK)

на одной машине

7) прописал в fail2ban для query-errors.log

failregex = %(__line_prefix)sclient <HOST>#.+: .*\REFUSED

%(__line_prefix)sclient <HOST>#.+: .*\NODATA

%(__line_prefix)sclient <HOST>#.+: .*\NXDOMAIN

 

жить стало лучше ,

P.S. может сумбурно, так что сори , перепишу

P.S.S. bcp 38.

Edited by yazero

Share this post


Link to post
Share on other sites

rate-limit в isc-bind выставлен?

Дампов траффика не вижу.

Share this post


Link to post
Share on other sites

Зачем вы используете bind? и что скрывается под " iptables drop" ?

Share this post


Link to post
Share on other sites

rate-limit {

window 15;

slip 10;

// referrals-per-second 5;

responses-per-second 50;

nxdomains-per-second 1;

// all-per-second 20;

errors-per-second 1;

nodata-per-second 1;

qps-scale 250;

// refferals-per-second 5;

ipv4-prefix-length 32;

log-only no;

min-table-size 20000;

max-table-size 100000;

// exempt-clients {91.197.77.250;91.197.76.253;91.197;};

 

};

Share this post


Link to post
Share on other sites

Зачем вы используете bind? и что скрывается под " iptables drop" ?

изначально как кеширующий dns для своих абонентов которых около 1500 (есть парочка крупных у которых по 2000 машин ), сейчас в основном записи ptr клиентов + свой домен

за iptables drop скрывается блокировка абонентов у которых открыты рекурсивные запросы (сейчас закрыто на пограничном роутере ), отправляющие PTR запросы серых сетей и т.п.

Edited by yazero

Share this post


Link to post
Share on other sites

...

responses-per-second 50;

...

 

Вы издеваетесь? Понижайте до 10, а то и до 5.

Потом анализируйте логи и передавайте провинившихся в firewall.

Не забудьте добавить в белые списки ip клиентов-юзеров.

Share this post


Link to post
Share on other sites

res-pre-sec 5 если использорвать как сервер зон, то да. я сейчас его возвращаю как кеширующий, и за 1 ip сидят 30 абонентов(и у каждого по 1-4 устройства) ?

 

есть смысл ? или оставить unbound

Share this post


Link to post
Share on other sites

res-pre-sec 5 если использорвать как сервер зон, то да. я сейчас его возвращаю как кеширующий, и за 1 ip сидят 30 абонентов(и у каждого по 1-4 устройства) ?

 

Читайте мануал от ISC.

 

Basically, responses-per-second is the number of identical replies that can be sent to one single destination, per second. The definitions are tricky.

 

Если у ваших клиентов куча идентичных запросов, то варианты:

1) клиенты - участники DDoS

2) к клиентам не доходят ответы от ДНС сервера.

Share this post


Link to post
Share on other sites

А Вы вообще не смотрели что это за трафик (запросы) и откуда они исходят ? А то может пора выключить уже наконец рекурсивный ресолвер на рутере, и забыть о проблеме ? Не, я конечно знаю несколько человек которые по любому недомоганию пьют антибиотоки, но мне кажется это скорее путь не к выздоровлению, а в могилу. Если запросы исходят откудато то не лучше ли заткнуть там?

Share this post


Link to post
Share on other sites

А Вы вообще не смотрели что это за трафик (запросы) и откуда они исходят ? А то может пора выключить уже наконец рекурсивный ресолвер на рутере, и забыть о проблеме ? Не, я конечно знаю несколько человек которые по любому недомоганию пьют антибиотоки, но мне кажется это скорее путь не к выздоровлению, а в могилу. Если запросы исходят откудато то не лучше ли заткнуть там?

 

-для таких(с рекурсией) абонентов сети закрыт 53 порт c наружи. мониторю nmap -sU -sV -p 53 --script 'dns-recursion'

-от многих абонентов сети летят запросы вида 164.34.168.192.in-addr.arpa это летит в blackhole

-писал выше , что летят запросы вида фирма.0DLINK или имякомпа.TENDAAP (я так понимаю RPZ писать)

-с наружи летят запросы type A вида X-22.178.195.reinfokom.ru бесконечно. (на всю подсеть (1500 адресов)

- также часто прилетаю запросы на рекурсивный запрос ()

- ну и разные запросы типа белеберда.rafinad.ru , эти сразу в nxdomain но списка у меня нет. смотрел совпадения на сайте http://www.malwaredomains.com/ у меня их мало, в основном проблема решилась по ним еще в мае.

Share this post


Link to post
Share on other sites

res-pre-sec 5 если использорвать как сервер зон, то да. я сейчас его возвращаю как кеширующий, и за 1 ip сидят 30 абонентов(и у каждого по 1-4 устройства) ?

 

Читайте мануал от ISC.

 

Basically, responses-per-second is the number of identical replies that can be sent to one single destination, per second. The definitions are tricky.

 

Если у ваших клиентов куча идентичных запросов, то варианты:

1) клиенты - участники DDoS

2) к клиентам не доходят ответы от ДНС сервера.

 

 

Вы правы , я не так перевел.

а какой параметр тогда отвечает за всего запросов в секунду с одного ip

и сколько всего может отвечать сервер в секунду (и можно ли разделить рекурсивные от запроса зон)

 

all-per-second

или

qps-scale

 

?

Share this post


Link to post
Share on other sites

 

а какой параметр тогда отвечает за всего запросов в секунду с одного ip

 

all-per-second

 

qps-scale - немного другое.

 

Подробнее тут.

 

и сколько всего может отвечать сервер в секунду (и можно ли разделить рекурсивные от запроса зон)

 

Я видел сервера, которые отвечают 10Kr per sec.

 

Я бы через allow-query разрешил запрашивать PTR всем, рекурсию оставил бы только DMZ и клиентам.

responses-per-second выставил бы районе 10.

 

Потом анализируйте логи и передавайте провинившихся в firewall.

Не забудьте добавить в белые списки ip клиентов-юзеров.

 

P.S. Я бы на вашем месте пропарсил бы логи и сделал бы графики - TOP50 внешних IP, TOP50 внутренних IP, TOP50 внешних доменов, TOP50 PTR IP

И потом бы уже думал, как резать и банить.

Share this post


Link to post
Share on other sites

1 -для таких(с рекурсией) абонентов сети закрыт 53 порт c наружи. мониторю nmap -sU -sV -p 53 --script 'dns-recursion'

2 -от многих абонентов сети летят запросы вида 164.34.168.192.in-addr.arpa это летит в blackhole

3 -писал выше , что летят запросы вида фирма.0DLINK или имякомпа.TENDAAP (я так понимаю RPZ писать)

2 и 3 прямо вот так потоком в секунду c 1 IP ? Да, при 1500 абонентах запросов мождет быть и много, но не с 1 же IP.

 

4 -с наружи летят запросы type A вида X-22.178.195.reinfokom.ru бесконечно. (на всю подсеть (1500 адресов)

5 - также часто прилетаю запросы на рекурсивный запрос ()

6 - ну и разные запросы типа белеберда.rafinad.ru , эти сразу в nxdomain но списка у меня нет. смотрел совпадения на сайте http://www.malwaredomains.com/ у меня их мало, в основном проблема решилась по ним еще в мае.

 

reinfokom ваш домен я так понимаю ? а запросы на рафинад идут изнутри или снаружи ? если изнутри, то ктото работает ддосером на ник.ру ?

 

 

5:

прилетает снаружи ? запрос наверное ANY . ? и вы на него раньше отвечали ? Вы работали усилителем трафика, вас запомнили и по старой памяти будут пытать еще дооооолго. вообще по мелочи на рекурсию скинируют постоянно. Если у вас есть зоны, например, с MX на не ваших хостах (ну гугло почта например, не важно), то есть спамеры которые после запроса МХ будут у вас же спрашивать и А записи для отданных мхов, хотя они не ваши. Таких тоже на раскрученных доменах может быть много, но врядли с 1 IP.

 

$ dig -x 195.178.22.11
11.22.178.195.in-addr.arpa. 10800 IN	PTR	11-22.178.195.reinfokom.ru.
$ dig 11-22.178.195.reinfokom.ru.
.... NXDOMAIN,...

 

ну прописав в обратку, что не прописали впрямую ? нагенерите в прямую как обратки. и они будут хотябы кешиться. Вообще есть много сервисов, делающих ресолв туда-сюда. ваши абоненты тужа ходят, и там их ресолвят. (замечено, что если массово идут с разных сторон запросы на один или несколько одинаковых IP (обраток и потом прямых записей), то с вероятностью 90% оттуда шлют спам... это нормальное поведение почтового сервера, ресолвить все входящие)

 

Но все это врядли, кроме 6, валится с отдельных постоянных IP пачками. Вы же пытаетесь зарезать ответы на 1 IP.

Share this post


Link to post
Share on other sites

Рекомендую попробовать dnsdist под это дело.

разделение на unbound и bind было оотличное решение.

 

само решение по настройке isc bind сложное , парсинг логов , acl через iptables , conntrack и netstat . было бы удобно когда сам процесс может управлять запросами.

так что перейду на dnsdist.

Edited by yazero

Share this post


Link to post
Share on other sites

даже сейчас незнаю как сделать top по dns запросам в online.

к примеру в dnstop летит все , даже то что дробается через iptables.

 

акромя ntopng

 

интересует вопрос, можно ли писать два и более ?

 

rrl (один для клиентов мелких)

rrl (второй для ну очень больших)

rrl (для зон)

Edited by yazero

Share this post


Link to post
Share on other sites

ну прописав в обратку, что не прописали впрямую ? нагенерите в прямую как обратки. и они будут хотябы кешиться. Вообще есть много сервисов, делающих ресолв туда-сюда. ваши абоненты тужа ходят, и там их ресолвят. (замечено, что если массово идут с разных сторон запросы на один или несколько одинаковых IP (обраток и потом прямых записей), то с вероятностью 90% оттуда шлют спам... это нормальное поведение почтового сервера, ресолвить все входящие)

 

Но все это врядли, кроме 6, валится с отдельных постоянных IP пачками. Вы же пытаетесь зарезать ответы на 1 IP.

 

по поводу прямой. кто то запрашивает 11-22.178.195.reinfokom.ru. а кто то 11-22-178-195.reinfokom.ru писать псевдиним?

Edited by yazero

Share this post


Link to post
Share on other sites

писать то, что у вас в обратке...

 

dig +short -x 195.178.22.11

11-22.178.195.reinfokom.ru.

Share this post


Link to post
Share on other sites

интересует вопрос, можно ли писать два и более ?

 

rrl (один для клиентов мелких)

rrl (второй для ну очень больших)

rrl (для зон)

 

 

В документации написано - или глобально или _для каждого_ домена

 

Tight but reasonable limits for all domains serviced by this DNS for all but brain-dead DNS clients.

 

 

# named.conf fragmentoptions{...rate-limit { responses-per-second 5; window 5;}...};

 

 

Different limits for each domain name serviced by this authoritative server for reasons best known to the operator.

 

 

# named.conf fragmentoptions {...rate-limit { domain example.com; responses-per-second 5; window 5;}rate-limit { domain example.net; responses-per-second 10;}...}

 

Share this post


Link to post
Share on other sites

1)по поводу bind есть сомнения , попробуйю поставить другую версию. (сейчас стоит 9.10.2-P3)

 

2)сейчас работает dnsdist

вот топ nxdomain и servfail

 

2 276041 192.in-addr.arpa. drop

3 1024 10.in-addr.arpa. drop

6 28211 wpad.Dlink. drop

7 11062 dlv.isc.org. drop

8 98185 wpad. drop

9 5611 siamert.pw. drop

10 8409 mlocate.spotlife.net. drop

11 12113 TendaAP. drop

12 396151 local. drop

13 18639 0.Dlink. drop

14 8301 _TCP. drop

15 11 teredo.ipv6.microsoft.com. qps limit to 1

 

за время работы (4 дня) было обработано 20M запросов , из них teredo 4M это нормально?

 

 

dig +trace teredo.ipv6.microsoft.com @8.8.8.8

teredo.ipv6.microsoft.com. 3600 IN CNAME teredo.ipv6.microsoft.com.nsatc.net.

;; Received 103 bytes from 193.221.113.53#53(ns3.msft.net) in 115 ms

 

я так понял что сервер отключен и вместо него test.ipv6.microsoft.com http://ipv6.br/teredo-sunset-mais-um-passo-na-transicao-para-o-ipv6/

 

3) писал ранее что много arpa запросов, их действительно много , заблокировал(iptables) 3-х своих абонентов, которые создавали около 1M запросов.

Edited by yazero

Share this post


Link to post
Share on other sites

за время работы (4 дня) было обработано 20M запросов , из них teredo 4M это нормально?

 

 

dig +trace teredo.ipv6.microsoft.com @8.8.8.8

teredo.ipv6.microsoft.com. 3600 IN CNAME teredo.ipv6.microsoft.com.nsatc.net.

;; Received 103 bytes from 193.221.113.53#53(ns3.msft.net) in 115 ms

 

я так понял что сервер отключен и вместо него test.ipv6.microsoft.com http://ipv6.br/tered...ao-para-o-ipv6/

 

 

Во-первых, ответ все равно кешированный.

Во-вторых, смотря сколько клиентов.

В-третьих, может этим клиентам выдать белые ipv6?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this