Команда linux для запобігання дос-атаки за допомогою netstat та iptables


11

Я хочу скинути більше 200 запитів за ip, щоб запобігти атаці ddos. це команда, яку я використовував для виявлення кількості запитів на ip:

netstat -alpn | grep :80 | awk '{print $5}' |awk -F: '{print $(NF-1)}' |sort | uniq -c | sort -nr

тепер я хочу додати всі IP-адреси, які зробили більше 200 запитів, в IPtables на вхід та вихід DROP.


Як зазначав @dawud, переконайтеся, що ви знаєте, що ви можете лише "пом'якшити", а не реально запобігти атаці DDOS на ваш сервер.
каптан

Відповіді:


12

Ви також можете використовувати iptables для обмеження швидкості вхідних з'єднань. Наприклад, якщо вам не потрібно більше 200 підключень в хвилину від джерела:

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 200 -j DROP


1
Було б чудово також пояснити це.
ffledgling

18

Ви можете створити ipset. Таким чином ви можете додати стільки IP-адрес до набору, скільки вам потрібно, не змінюючи iptablesнабір правил.

ipset -N myset iphash
ipset -A myset 1.1.1.1
ipset -A myset 2.2.2.2

Або, у вашому випадку, використовуйте вихід свого сценарію та прочитайте його з чимось на зразок:

while read a; do ipset -A myset "$a"; done < <(your script here)

І посилайтеся на це у своїх iptablesправилах:

iptables -A INPUT -m set --set myset src -j DROP

Прочитайте довідкову сторінку для отримання більш детальної інформації та опцій.

Існують також інші способи пом'якшити DDOS-атаку, використовуючи iptablesбезпосередньо. Прочитайте iptablesрозділ щодо сторінки connlimitта recentмодулів.


Це геніально, тому що ipsets набагато швидше, ніж такі альтернативи, як хештелі.
isuldor
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.