This is a mirror of official site: http://jasper-net.blogspot.com/

Защита от DDOS атаки подручными средствами. Получение доступа к своему серверу

| Monday, September 19, 2011
За последнее время, наш сайт часто подвергается достаточно мощным DDOS атакам, к слову последняя атака была самой крупной за последнее время, размер ботнета по нашим оценкам — около 10 тысяч машин, мощность — 100 Mbits/s.

Атаку заметила даже Лаборатория Касперского, и предложила свою помощь в отражении, за что им спасибо. Правда к тому времени мы самостоятельно нашли решение, которое блокирует атаку. Собственно про это решение и пойдет речь.

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

Атака была типа HTTP Flood. Система на которой у нас работает сайт — Apache под Linux. Мы написали несколько скриптов, которые будут приведены в тексте статьи. В принципе аналогичный подход можно применять и для Windows/IIS.

Попытаюсь рассказать, какие основные шаги мы сделали для отражения атаки, и какие проблемы возникали по ходу:

Получение доступа к своему серверу

Из за высокой нагрузки, вызванной атакой, подключение к серверу становится невозможным. Выход — перезагрузка, плюс хорошая реакция, чтобы попытаться подключится к перезагруженной машине, и отключить сервис, на который производится атака, и провести анализ атаки. Но при мощной атаке, даже после перезагрузки, подключение очень проблематично. Иногда приходилось перезагружать сервер по нескольку раз, пока удавалось залогинится в систему.

После того как получилось зайти в систему, и выключить апач (service httpd stop) нужно убрать запуск апача при старте системы. Это даст возможность получить доступ к машине с помощью перезагрузки, если что-либо пойдет не так. Делается это с помощью команды:

# chkconfig httpd off

Решение не идеальное, но для начала пойдет.

Автоматическая блокировка атакуемого сервиса при высокой загрузке системы

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

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

Собственно был написан универсальный скрипт который делает задуманное. Вызов скрипта следующий:

# blockOnHighLoad.sh turnOn80Port 5 turnOff80Port


Read more: Habrahabr.ru
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=http://habrahabr.ru/blogs/infosecurity/128526/

Posted via email from Jasper-net

0 comments: