Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 09.07.2009, 18:02   #1
Мастер
 
Аватар для Hanapi
 
Регистрация: 05.06.2008
Адрес: Somali
Сообщений: 648
Вес репутации: 232
Hanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущее
По умолчанию DDoS - HTTP GET - как защитится?

Сабж.

Имеется: серв на FreeBSD 5.0 (очень древний серв), на котором крутится WWW сервер для одного сайта.

Со вчерашнего дня бомбят, никакие средства не помогают.. В минуту сыплется до миллиона запросов, от чего старенькая машинка дохнет как муха - апач грузит ресурсы, переполнение буфера - и бац, р****. Все запросы идут на ОДНУ страницу, следовательно фильтр этой страницы (но не средствами апача) спасет остальной сайт.

Пока ничего лучшего чем закрыть в ipfw 80 порт не нашел (сначала фильтр стоял на головной Cisco 7206, но потом решил не вмешивать роутер в такую мелочь),но это тоже не выход - сайт недоступен извне, что малость неприятно...

Ну, кто у нас тут SYS-гуру? облазил полинета, но так и не смог найти приемлемого решения..
__________________
хостинг с root доступом
помог? отблагодари!
Hanapi вне форума   Ответить с цитированием
Старый 09.07.2009, 18:06   #2
Специалист
 
Аватар для apple
 
Регистрация: 15.07.2007
Адрес: Беларусь, но скоро будет РФ :)
Сообщений: 232
Вес репутации: 212
apple - как роза среди колючекapple - как роза среди колючекapple - как роза среди колючекapple - как роза среди колючек
По умолчанию

Обычный редирект иногда выручает, если бот глупый.
__________________
Получи хостинг и .RU за минуту! Включи сейчас, плати потом! Полностью автоматизированный хостинг. Составьте сами Тарифный план!
Каб любить Беларусь нашу милую... требо в росных краях побывать...
apple вне форума   Ответить с цитированием
Старый 09.07.2009, 22:51   #3
Специалист
 
Аватар для Ulf
 
Регистрация: 05.05.2008
Адрес: Инопланетянин Я. Пиу пиу...
Сообщений: 266
Вес репутации: 202
Ulf - весьма и весьма положительная личностьUlf - весьма и весьма положительная личностьUlf - весьма и весьма положительная личность
Отправить сообщение для Ulf с помощью ICQ
По умолчанию

А лог запросов можно? Есть какая-то аналогия у них?


Как минимум:
Цитата:
allow tcp from not me to me dst-port 80 setup limit src-addr 10
allow tcp from any to any established
allow ip from any to any frag
allow icmp from any to any icmptypes 0,3,4,8,11,12
deny icmp from any to any
Что стоит? Nginx+Apache? Если на одну страницу, так сходу, жесткое решение:
1. Добавляем таблицу:
allow ip from table(1) to me in via парам-пам-пам(сетевуха инета...)
2. После неё:
deny tcp from table(2) to me dst-port 80 in via парам-пам-пам
3. Идем в логи и грепает все обращения к странице
Например лог nginx:
Цитата:
91.205.208.18 - - [09/Jul/2009:22:55:38 +0400] "GET /СТРАНИЦА.htm HTTP/1.1" 200 2842 "http://xxxxx/index.html" "Opera/9.64 (Windows NT 5.1; U; MRA 5.5 (build 02746); ru) Presto/2.1.1" XXXxxxxx.ru
Заходим в папку с логами и :
Цитата:
cat access.log | grep СТРАНИЦА.htm | awk {'print $1'} | uniq -c | awk {'print $2'} | xargs -L 1 -J % ipfw table 2 add %
Ну это ничего не зная что у Вас там происходит Тупо баним все кто пришел на эту страничку.

Последний раз редактировалось Ulf; 09.07.2009 в 22:59. Причина: дополнение...
Ulf вне форума   Ответить с цитированием
Старый 10.07.2009, 14:20   #4
Эксперт
 
Аватар для seocore
 
Регистрация: 18.06.2007
Адрес: Картофель
Сообщений: 2,417
Вес репутации: 356
seocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Hanapi Посмотреть сообщение
Со вчерашнего дня бомбят, никакие средства не помогают.. В минуту сыплется до миллиона запросов, от чего старенькая машинка дохнет как муха - апач грузит ресурсы
в FreeBSD не силен, так что порекомендую тоже, что рекомендовали выше, т.е. на index.html располагаем простой кодированный javascript-редирект, который формирует некую структуру вида /real_index.php?code= md5($айпи_адрес машины + соль)...

и в real_index.php просто делаем повторную сборку хеша + сравнение, если сравнение не проходит = наносим в БАН лист файрвола
seocore вне форума   Ответить с цитированием
Старый 12.07.2009, 11:56   #5
Мастер
 
Аватар для Hanapi
 
Регистрация: 05.06.2008
Адрес: Somali
Сообщений: 648
Вес репутации: 232
Hanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущее
По умолчанию

спасибо всем кто отписался

Цитата:
Сообщение от apple Посмотреть сообщение
Обычный редирект иногда выручает, если бот глупый.
не наш случай - серв дохнет просто от количества обращений, даже удаление страницы не спасает, ибо серв просто не успевает получать и обрабатывать запросы (более 10000 запросов в секунду, более 1000000000 в сутки)

Цитата:
Сообщение от Ulf Посмотреть сообщение
А лог запросов можно? Есть какая-то аналогия у них?
Вы все угадали и без логов Запрос идет на одну страницу в разных вариациях, так что сгруппировать ботов можно

Цитата:
Сообщение от Ulf Посмотреть сообщение
Что стоит? Nginx+Apache? Если на одну страницу, так сходу, жесткое решение:
1. Добавляем таблицу:
allow ip from table(1) to me in via парам-пам-пам(сетевуха инета...)
2. После неё:
deny tcp from table(2) to me dst-port 80 in via парам-пам-пам
3. Идем в логи и грепает все обращения к странице
Все красиво Но зомби-хостов более десятка тысяч, следовательно серв умрет от обработки правил ipfw.. говорю же, машинка старенькая, ресурсов мало, так что такой вариант - не выход..

Цитата:
Сообщение от seocore Посмотреть сообщение
порекомендую тоже, что рекомендовали выше
говорю же, серв просто умрет не успев ничего обработать..


долго пытался найти решение средствами самой фрюхи, но так ничего толкового и не нашел.. Установил кучу софта, модов, но так ни фига ничего и не получилось. В итоге, все равно пришлось писать на киске класс-мапы, которые фильтруют трафик. И то, не все порезалось - остальное порубил с помощью ipfw.. Блин, даже после фильтрации льются миллионы запросов.. И длится это уже полнедели.. Че за ддосеры упрямые
__________________
хостинг с root доступом
помог? отблагодари!
Hanapi вне форума   Ответить с цитированием
Старый 12.07.2009, 14:39   #6
Специалист
 
Аватар для Ulf
 
Регистрация: 05.05.2008
Адрес: Инопланетянин Я. Пиу пиу...
Сообщений: 266
Вес репутации: 202
Ulf - весьма и весьма положительная личностьUlf - весьма и весьма положительная личностьUlf - весьма и весьма положительная личность
Отправить сообщение для Ulf с помощью ICQ
По умолчанию

Hanapi, а вы пробовали работать с таблицами?
На 2x2 ксеоне:
ipfw table 2 list | wc -l
17301

Нет нималейшего лага. Даже упоминания о оном при обработке ipfw.
По опыту - на целике 2.8 была таблица (тоже были тупые запросы, тоже на одну страницу, но там еще и юзер агент был одинаковый и еще уже не помню что) в которой было более 38к записей - лагов я не увидел...
Ulf вне форума   Ответить с цитированием
Старый 13.07.2009, 19:38   #7
Мастер
 
Аватар для Hanapi
 
Регистрация: 05.06.2008
Адрес: Somali
Сообщений: 648
Вес репутации: 232
Hanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущееHanapi - прекрасное будущее
По умолчанию

Ulf,проблема в том, что система настолько древняя, что ipfw не поддерживает таблицы но все равно пришлось прибегнуть к помощи файрволла (киска не все срезает, запросы все таки меняются время от времени).

написал скриптик, который отслеживает текущие соединения, и если видит более N одинаковых соединений - закидывает айпи в файрволл.
Код:
#!/bin/sh
#################################
#                               #
#   Hanapi, 07.2009             #
#   Anti-DDoS                   #
#                               #
#################################

#конф файл ipfw
IPFW_CONF="/etc/firewall.conf"
#количество соединений, при достижении которого IP блокируется
MAX_CONNECTIONS=15
#номер правила, куда будут записываться все блокируемые IP
RULE_NUM=22
#создаем список текущих соединений количеством больше  MAX_CONNECTIONS
IP_LIST=`/usr/bin/netstat -nbp tcp | awk '{split($5,adrp,"."); if (adrp[4]>0) print adrp[1]"."adrp[2]"."adrp[3]"."adrp[4]}' | uniq -c | awk '$1>=15 {print $2}' | uniq` >/dev/null
#не смог прикрутить переменную MAX_CONNECTIONS в тело awk - кто поможет?
#создаем список IP уже занесенных в файрволл
CURRENT_IP_LIST=`/sbin/ipfw -c list ${RULE_NUM} | awk '{print $5}'` >/dev/null
for IP in $IP_LIST; do
    IS_BANNED=0
    for CURRENT_IP in $CURRENT_IP_LIST; do
        if [ "$IP" = "$CURRENT_IP" ]; then
            IS_BANNED=1
        fi
    done
    if [ "$IS_BANNED" = 1 ]; then
        echo "$IP already added.."
    else
        #блокируем IP
        /sbin/ipfw add ${RULE_NUM} deny ip from ${IP} to any > /dev/null
        #добавляем строку в конф файл, чтобы не потерять правило при перезагрузке сервера
        /bin/echo "add ${RULE_NUM} deny ip from ${IP} to any" >> ${IPFW_CONF}
        echo "$IP banned!"
        #рестартуем апач, чтобы сбросить текущие соединения 
        /usr/sbin/apachectl restart>/dev/null
    fi
done
exit 1
Добавлено через 31 секунду
может кому пригодиться..
__________________
хостинг с root доступом
помог? отблагодари!

Последний раз редактировалось Hanapi; 13.07.2009 в 19:38. Причина: Добавлено сообщение
Hanapi вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
http:// или http://www, в чем разница? Степаныч Вопросы от новичков 18 30.06.2009 07:36
Важно ли добавлять сайт с http://www. или http:// vetmedical Вопросы по работе системы 5 30.03.2009 16:03
DDOS anhydrous Вопросы по работе системы 58 28.11.2008 00:20
DDoS или защита? boolevar Ошибки при работе с системой 24 30.10.2008 15:02
DDOS-атака Maxims Вопросы от новичков 7 29.06.2008 12:32


Часовой пояс GMT +3, время: 20:44.