Подскажите, ddos или так должно быть?

Активист

Активист
Команда форума
Подскажите, ddos или так должно быть?

Написал скрипит на щеле, ищит соединения с одно IP больше ста и блокирует атакуешего через файрвол.

Сейчас приходят отчеты.
В них вот это
Код:
tcp        0      0 77.221.151.58:80        90.188.210.5:1291       ESTABLISHED33         11430079   28208/nginx: worker 
tcp        0      0 77.221.151.58:80        195.161.25.36:11890     TIME_WAIT  0          0          -                   
tcp        0      0 77.221.151.58:80        195.161.25.36:11714     TIME_WAIT  0          0          -                   
ttcp        0      0 77.221.151.58:80        81.195.170.50:1064      TIME_WAIT  0          0          -                   
tcp        0      0 77.221.151.58:80        81.195.170.50:4888      TIME_WAIT  0          0          -                   
tcp        0      0 77.221.151.58:80        81.195.170.50:4495      TIME_WAIT  0          0          -                   
tcp        0      0 77.221.151.58:80        81.195.170.50:4841      TIME_WAIT  0          0          -                   
tcp        0      0 77.221.151.58:80        81.195.170.50:1100      TIME_WAIT  0          0          -                   
tcp        0      0 77.221.151.58:80        81.195.170.50:4901      TIME_WAIT  0          0          -                   
tcp        0      0 77.221.151.58:80        81.195.170.50:4345      TIME_WAIT  0          0          -                   
tcp        0      0 77.221.151.58:80        81.195.170.50:1032      TIME_WAIT  0          0          -                   
tcp        0      0 77.221.151.58:80        81.195.170.50:4794      TIME_WAIT  0          0          -                   
tcp        0      0 77.221.151.58:80        81.195.170.50:4426      TIME_WAIT  0          0          -
Таких соединений порядка 130.
Что это? На 80 порту нгинск.
Где-то по 3-7 ипишника в сутки блокирует....

-~{}~ 21.11.08 10:46:

Да, этот скрипт был предложен сотрудниками инфобокса

-~{}~ 21.11.08 10:50:

Сам скрипт тут
http://phpclub.ru/paste/index.php?show=2227
 

whirlwind

TDD infected, paranoid
Сомнительный какой то скрипт. Надо делать на уровне ядра. При досе хорошо по синам фильтровать. Просто ограничивать колво синов с ип в промежуток времени а все остальные режить. Но если это работает и устраивает, то почему бы и нет.

PS. был бы дос, ты бы заметил. Связь с сервером была бы как с марсоходом в лучшем случае. Или в худшем ее не было бы вообще.

-~{}~ 21.11.08 13:31:

ЗЗЫ. кстате, вот это /usr/bin/mail -s "Detected ddos" [email protected] <
/etc/iptables/ddos/message.txt

убери из цикла. Прикинь скока спама будет при досе
 

Krishna

Продался Java
Количество соединений с одного адреса на определенный порт ограничивается правилом фаервола. Писать скрипт - извращение. Ботай ман по фаерволу лучше.
 

boombick

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

Krishna

Продался Java
boombick
Кто тут читать не умеет-то?

У него сейчас: скрипт ищет IP с количеством соединений больше 100 и банит этот IP полностью в фаерволе.

Надо: фаервол не даёт любым IP установить больше N соединений на определенный порт (с одного же адреса)
 

Активист

Активист
Команда форума
Krishna
> Количество соединений с одного адреса на определенный порт
>ограничивается правилом фаервола. Писать скрипт -
>извращение. Ботай ман по фаерволу лучше.

Скрипт запускает по крону раз в минуту.
IP атакуещего сохраняется и больше на него не реагируют (+добавляются правила в файрвол), отсылая инфу.
Плюс в том, что со скриптом блокируются любые соедниения (TCP, UDP, ICMP, любые порты, с любыми флагами SYN,SYN/ASK, FIN и т.п., стейты NEW, ESTABLISHED, CLOSED, FIN), блокируются кривые пакеты (есть такая атака, стейт NEW, но без флага SYN)

Как будет себя вести ограничение на файрволе при SYN атаках - я не знаю.

НА сервере открыто масса портов, пул может быть забит не только на 80 порту, SYN атаку можно сделать и на поднятый на перле бекдор через уведенный FTP.

ДА, почему именно скрипт:
Серверная ОС - debian etch, в репозитории две версии ядра, при загрузки первой версии ядра - iptables ВООБЩЕ НЕ знает что такое iplimit и connlimit. A при загрузки новой версии 2.6.23 iplimit'a в ядре нет, но есть connlimit. НО мля при попытки его использовать в лог кернела выдается
ip_tables: limit not match: 16 != 32
, iptables зло ipfw рулит))

Лечение - пересборка ядра и применения патча от netfilter - я не шахид пересобирать ядро на рабочем сервере где 30 сайтов 250 ящиков, примeнять непонятные патчи, да еще, не зная, какое железо, поскольку сервак арендован да еще нет физического доступа к нему....

После беседы с тех поддержкой, порекомендовали сие творение, т.к. затычка довольно не плохая и себя, говорят, оправдывает.

> убери из цикла. Прикинь скока спама будет при досе
Да не страшно, клиент как-то один спам слать стал , пришло 4500 писем на пост мастер о том, что нет таких ящиков, я привык.

dr-sm
По логам тишина, что он там запрашивает - не понятно, по /server-status в апаче тоже тишина, пика запросов/сек нет, а вот соединения - есть....
MUNIN больших пиков в соединениях не фиксирует.

-~{}~ 21.11.08 19:08:

Да, почему задумался и ковыряюсь, в стате мунина в графике соединений, увидел:

Между 16 и 17 ноября количество активных соединений (ESTABLISHED) было около трех-четырех тысяч , когда среднее их пиковое количество (обычно) не превышает 150-250.
В это время я за сервером не следил....

-~{}~ 22.11.08 19:45:

Слушайте, вот это как я понимаю, реальная SYN атака?
http://phpclub.ru/paste/index.php?show=2231

Кому я так насолил))
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Я понимаю не все, но сомнения у меня, так сказать, смутные.

1. почему бан идет на соединения с TIME_WAIT статусом?
Сотня TIME_WAIT (т.е. бывших) соединений может остаться на сайте с кучей картинок/css/js/fash и с редиректами.

2. Если бы это был DDOS - сервер бы лежал, а, блин, 3-4 тысячи соединений за день ...
Мож лучше в фолаут 3й поиграть или мощную мелодрамму посмотреть? Там лучше темы попереживать есть.

3. Сколько именно SYN-соединений всего?
Сколько отклонено?
Например, для работы с торрентом всегда лимит повышаешь до 1000 минимум - и это для нормальной работы.
Сколько с других IP?
Вот уж интересная DDOS SYN-атака с одного ip.
Кстати, тут, вроде, был пункт правил, в котором писали, что сначала надо сходить в гугл, а потом писать?
http://www.securitylab.ru/analytics/216320.php


-~{}~ 23.11.08 10:58:

Хе-хе
/etc/init.d/nginx restart
/etc/init.d/apache2 restart
Вот оно как тебя класть надо! 100 проксей - 100 перегрузок апача! :))))
 
Сверху