LINUX.ORG.RU
ФорумAdmin

нужна простейшая защита от ddos

 , ,


1

3

все очень просто - есть постоянно мутирующий ботнет который валит мне на 53ий порт фигню вроде:

    5.9.66.241.http > 91.149.158.47.domain: [no cksum] 10809+ [1au] ANY? isc.org. ar: . OPT UDPsize=4096 OK (36)
19:50:44.266480 IP (tos 0x0, ttl 64, id 7331, offset 0, flags [+], proto UDP (17), length 548)
    91.149.158.47.domain > 5.9.66.241.http: 10809 q: ANY? isc.org. 30/5/13 isc.org. SOA ns-int.isc.org. hostmaster.isc.org. 2013021401 7200 3600 24796800 3600, isc.org. RRSIG, isc.org. RRSIG, isc.org. A 149.20.64.42, isc.org. RRSIG[|domain]
19:50:44.266512 IP (tos 0x0, ttl 64, id 7331, offset 528, flags [+], proto UDP (17), length 548)
    91.149.158.47 > 5.9.66.241: ip-proto-17
19:50:44.266520 IP (tos 0x0, ttl 64, id 7331, offset 1056, flags [+], proto UDP (17), length 548)
    91.149.158.47 > 5.9.66.241: ip-proto-17
19:50:44.266528 IP (tos 0x0, ttl 64, id 7331, offset 1584, flags [+], proto UDP (17), length 548)
    91.149.158.47 > 5.9.66.241: ip-proto-17
19:50:44.266534 IP (tos 0x0, ttl 64, id 7331, offset 2112, flags [+], proto UDP (17), length 548)
    91.149.158.47 > 5.9.66.241: ip-proto-17
19:50:44.266539 IP (tos 0x0, ttl 64, id 7331, offset 2640, flags [+], proto UDP (17), length 548)
    91.149.158.47 > 5.9.66.241: ip-proto-17
19:50:44.266546 IP (tos 0x0, ttl 64, id 7331, offset 3168, flags [+], proto UDP (17), length 548)
    91.149.158.47 > 5.9.66.241: ip-proto-17
19:50:44.266553 IP (tos 0x0, ttl 64, id 7331, offset 3696, flags [none], proto UDP (17), length 275)
    91.149.158.47 > 5.9.66.241: ip-proto-17
19:50:44.332565 IP (tos 0x0, ttl 238, id 17936, offset 0, flags [none], proto UDP (17), length 64)

при этом сама фигня не мутирует абсолютно как минимум с тех пор, как я научился ее смотреть, то есть больше года

внимание вопрос: как бы мне автоматизировать добавление источников фигни в бан-лист на базе iptables? Я понимаю что можно написать скрипт, но так лень если честно, особенно вывод tcpdump парсить или логи iptables. наверняка вопрос уже решен кем-то.

snort и кажется даже psad делают все что угодно, только не это, кроме того, скажу честно - они слишком сложны, мне это кажется оверкиллом.

ddos-deflate - прекрасная штука, но помогает только от tcp, upd потоки netstat за соединения не считает и правильно делает

есть еще вот такого плана штука, но она, кажется, не работает:

iptables -A INPUT -p udp -m state --state NEW -m recent --set --name DDOS --rsource 
iptables -A INPUT -p udp -m state --state NEW -m recent --update --seconds 30 --hitcount 30 --name DDOS --rsource -j DROP

а должна ли?

или, может быть, я вообще упорол в конфиге dns какой-то косяк, из-за которого у меня запросы по кругу ходят? интуитивно есть такая вероятность, потому что столь упорный, бессмысленный и беспощадный DDoS на мой почти домашний сервачок не вкладывается не в какие рамки здравого смысла.

схема как я понял такая: атакующие хосты делают какой-то короткий DNS запрос, в ответ на что мой сервер радостно выстреливает в них что-то большое и совершенно бессмысленное, чем намертво ложит мой совсем не толстый канал. причем сервак находится в беларуси, в результате чего по пирингу я вижу как-будто все нормально, а из россии, например, сервисы не доступны.

причем самое поганое в том, что джаббер и почта у меня на том же серваке, соотвественно мне никто даже сообщить не может, что сервак лежит. дошло до того, что идейный анонимус пишет мне вконтактик, что у нас борда лежит, причем это уже давно.

дистриб - gentoо, т.е. решения из портэжей приветствуются


отключи рекурсию в днс

anonymous ()

посмотри в сторону fail2ban, но если очень много айпи будет, то надо ещё смотреть в сторону ipset

i_gnatenko_brain ★★★★ ()

Если не публичный сервис - поместить сервис на другой порт, использовать port knocking.
И, да, у тебя по логу IP повторяются. Ты уверен, что это именно DDoS?
Даже если это DDoS, и адреса меняются нечасто - сделать правило «не более X запросов в минуту от одного IP».

Kroz ★★★★★ ()
Последнее исправление: Kroz (всего исправлений: 2)

В дампе я увидел 2 варианта.

1. 91.149.158.47 не твой, тогда жалуйся провайдеру, что за фигня творится в вашем сегменте сети.

2. 91.149.158.47 твой, тогда ты не жертва а участник. Настраивай DNS. Банить жертву как-то не этично.

Распространенная схема с использованием сервера DNS:

Шлется запрос на конкретный DNS-сервер, зона для запроса выбирается пожирнее и естественно ANY. Адрес источника поддельный, является адресом жертвы. Вот и все, на кажтые 64 байта запроса, DNS-сервер отправляет жертве десяток килобайт.

lvi ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.