LINUX.ORG.RU
ФорумAdmin

DDOS по 80 порту, что делать?


0

0

Ну собственно сам вопрос в заголовке, провайдер тупо закрывает порт, но это не решение проблемы, организация сети такая, стоит GW на OpenBSD, а за ним WEB сервер,в правилах на GW вот что:

#WEB

rdr pass on $ext_if proto tcp to port 80 -> 192.168.64.11 port 80

pass in quick on $int_if from 192.168.64.11 to any keep state

Подскажите что делать и как быть?!



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

А проблемма в том что веб-сервер не справляется или канал забивается? Если второе, то решить проблему на уровне софта AFAIK нельзя.

Nao ★★★★★
()

> Подскажите что делать и как быть?!

ничего не делать и никак не быть. мощный DDOS ты сам не отобьешь, этим спецовые конторы занимаются и это больших бабок стоит.

а серьезно, посмотри по логам user agent. часто у ботнетов он отсутствует либо ставится одинаковый. в таком случае ставишь nginx фронтендом и в конфиге nginx просто фильтруешь по юзер-агенту.
еще как вариант (для UA) - попросить провайдера закрыть мировой трафик и открыть UA-IX. у вас там может тоже есть какой-то RU-IX или че-то подобное.

Komintern ★★★★★
()
Ответ на: комментарий от Komintern

если уже вообще ж0па - парсить лог того же nginx и заносить скриптом правила в фаервол. если ботнет не сильно большой - может помочь.

Komintern ★★★★★
()
Ответ на: комментарий от Komintern

стоит бональный apache, а в логах всего три пути обращения, а именно

«GET /e-store/catalog/179/1893//bitrix/wizards/samiko/tabs/templates/.default/style.css

„GET /e-store/catalog/179/1893/ HTTP/1.0“ 200 62695

„GET /e-store/catalog/312/4207/ HTTP/1.0“ 200 59393

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

> стоит бональный apache

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

Komintern ★★★★★
()
Ответ на: комментарий от mcconfig

По порядку:

1. В конфиге Апача прописать mod_rewrite, чтобы эти три страницы (или даже все, если ботнет по User-Agent распознается надежно) подменял на статику, можно даже на пустой файл.

2. Попробовать поменять KeepAlive в конфиге Апача.

3. Ограничить количество одновременных подключений и частоту подключений с одного IP, вот так:

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m connlimit --connlimit-above 50 --connlimit-mask 32 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m connlimit --connlimit-above 250 --connlimit-mask 24 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp -m hashlimit --hashlimit-above 50/second  --hashlimit-mode  srcip  --hashlimit-srcmask 24  --hashlimit-name ddos -j REJECT --reject-with tcp-reset

P.S. В User-Agent'е есть «Indy Library»?

AEP ★★★★★
()

большой ддос?
сколько пак/сек?
тупо флуд на порт или запросы GET к конкретному вхосту апача?

dreamer ★★★★★
()
Ответ на: комментарий от mcconfig

ок, пиши скрипт в три строчки, который по крону парсит лог (последние 1000 строк) и вносит в бан (iptables) ИПы, которые делают эти запросы больше 10-раз например.

dreamer ★★★★★
()
Ответ на: комментарий от mcconfig

что нить типа:

tail -1000 /path/to/apache.log|grep «GET bla-bla»|awk '{print $2}'|sort|uniq|while read ip;do IPTABLES -A INPUT -p tcp -s $ip --dport 80 -j DROP;done

это примитив(нет подсчета частоты запросов от ИПа) но работать будет.

dreamer ★★★★★
()

Про скрипт, парсящий логи уже сказали.

При помощи pf также можно автоматом резать особо наглых, например

table <dosers> persistent
block in quick from <dosers>

Из rdr убираешь pass, добавляешь правило
pass in on внешний_интерфейс proto tcp to 192.168.64.11 port www (max-src-conn 10, max-src-conn-rate 20/60, overload <dosers> flush)

nnz ★★★★
()

Вот такие вот люди админят битрикс-хостенги. Ставят гейт на опенбзде и считают себя мегаЪ, хотя даже с ддосом справиться не могут без подсказок.

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