LINUX.ORG.RU

Как побороть ddos эелегантно?


0

0

За прошлые сутки на сервера нашей компании был органрзован
ddos. Решение проблемы было самое тупое: блокировали IP адреса.
Таких набролось несколько тысяч! Может кто-нибудь знает системый способ
борьбы с такого вида атаками ? Ядро 2.4.23 без каких-либо патчей.


Ответ на: комментарий от anonymous

На http. Кстати tcp_syncookies = 1, даже пробовал

iptables -N syn-flood iptables -A INPUT -i $IFACE -p tcp --dport http --syn -j syn-flood iptables -A syn-flood -p tcp --dport http -m limit --limit 20/second --limit-burst 10 -j RETURN iptables -A syn-flood -j DROP

но после этого apache переставал отвечать, похоже все http пакеты дропались :(

tahion
() автор топика
Ответ на: комментарий от tahion

имхо нужен модуль который умеет ограничивать TCP-SYN per ip address. теоретически можно сделать с помошью модулей recent + limit :

iptables -A INPUT -i $inetdev -m recent --name syn-flood --rcheck -j DROP
iptables -A INPUT -i $inetdev -p tcp --syn --dport 80 -j syn-flood

iptables -N syn-flood
iptables -A syn-flood -m limit --limit 10/second -j RETURN
iptables -A syn-flood -m recent --name syn-flood --set -j DROP

Rost ★★★★★
()

>блокировали IP адреса.
Таких набролось несколько тысяч!

Эх дети, дети :)

0. httpd должен стоять на хосте в DMZ ОБЯЗАТЕЛЬНО!!!!
1. На входе должен стоять firewall на базе какой нибудь *BSD,
не обязательно, но желательно, который пробрасывает входящие соединения
2. Научится пользоваться поиском ОБЯЗАТЕЛЬНО !!!!

http://www.opennet.ru/base/sec/synflood_stop.txt.html

>> После атаки апач начинает очень долго отвечать на запрос (что
>> есть естественная реакция). По нетстат висит куча SYN_RECV соединений на 80 порт.
>> Есть-ли какие-то способы облегчить последствия? Предотвратить пока не
>> получается :(

Вроде отмахался. Может кому-то будет интересен опыт

Найдено на http://www.softerra.ru/freeos/12192/print.html
(я увеличил только значение net.ipv4.tcp_max_syn_backlog)

Прописывается в /etc/sysctl.conf
net.ipv4.icmp_ignore_bogus_error_responses=1
net.ipv4.conf.all.log_martians=1
net.ipv4.conf.all.accept_source_route=0
net.ipv4.tcp_syncookies=1
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_keepalive_time=1800
net.ipv4.tcp_window_scaling=0
net.ipv4.tcp_sack=0
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_max_syn_backlog=2048
net.ipv4.conf.all.forwarding=0
net.ipv4.icmp_echo_ignore_broadcasts=1

далее
sysctl -p /etc/sysctl.conf

Sun-ch
()
Ответ на: комментарий от Sun-ch

Это твики tcp стека, они от ddos'a никак не помогают. DMZ спорная вещь так как если завалят фаервол то все сервера ( сайты ) компании перестануть работать в то время как атака идёт на конкретный сервер.

tahion
() автор топика
Ответ на: комментарий от anonymous

Ну и чем это лучше iptables -m limit ? Итог один, пакеты дропаются без
разбора. В результате, отсекается куча запросов нормальных клиентов. Атакующая сторона может только радоваться!

tahion
() автор топика

Здесь Rost привел самый нормальный пример. В его случае атакующие просто атоматом попадают в черный список.

anonymous
()
Ответ на: комментарий от tahion

> так как если завалят фаервол

Как предлагается валить файрволл, представляющий из себя transparent bridge, не имеющий IP?

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