Yvision.kzYvision.kz
kk
Разное
Разное
399 767 постов40 подписчиков
Всяко-разно
0
14:45, 01 сентября 2009

Сказ о том как Арбалет Геннадьевич ДДОС-атаку отбивал

Представим себе такую ситуацию. Вы являетесь счастливым обладателем собственного интернет-ресурса, будь то сайта, блога, форума - в принципе не суть важно. Так вот, в один прекрасный день вам на e-mail приходит письмо от службы поддержки хостинга, так называемого "саппорта", с информацией о блокировке вашего аккаунта по причине слишком большой нагрузки на их сервера. Загрузка CPU зашкаливает под 100%, запросы к MySQL поражают своими объемами (от 1 Gb/час). Подобная ситуация, особенно для новичков веб-мастеринга, как гром среди ясного неба. Возникает паника и многочисленные вопросы: "За что?", "Да кому мой полугодовалый ресурс с посещением до 100 хостов в сутки насолил?", "Что делать?" и так далее.

Blog post image Blog post image

Во-первых, если такое произошло, возьмите себя в руки, успокойтесь и постарайтесь трезво оценить ситуацию. Во вторых, сразу же пишите в саппорт вашего хостера с просьбой прокомментировать причину столь внезапной блокировки. Если служба поддержки подтвердит ddos-атаку, то есть атаку на ваш ресурс с множества зараженных троянами компьютеров из сети Интернет (так называемых "зомби") с целью блокирования доступа посетителям, а также всевозможным поисковым роботам (Яндес, Google, Rambler, Yahoo и др.), тогда уже начинайте предпринимать действия по предотвращению дальнейших осложнений, таких как: недоступность сайта для посетителей, выпадение из индексов ПС, падение доходов от партнерских программ (к примеру, биржа ссылок SAPE, Google ADSense) и т. д.

Итак, начните с того, что откройте файл .htaccess или создайте, если такого нет, в корневой директории вашего сайта. По идее, если вы никогда им не пользовались, то он должен быть пуст либо содержать только закомментированные строки (строки, начинающиеся с символа "#"). В первую очередь вставляем подобный код, я его называю "заглушка" ;)

# Закрываем доступ для всех
Order Deny,Allow
Deny from all

Сохраняем файл .htaccess. После этой операции все ip-адреса будут блокироваться и никто не сможет получить доступ к вашему сайту, в том числе и вы сами. Через пару секунд вы уже заметите по нормализовавшимся графикам производительности в панели управления хостингом либо по растущим файлам www.ваш-сайт-error_log, что .htaccess начал свою работу по отсеиванию всех и вся. Первый этап пройден. Все "щели" заткнули, но вместе с тем оказались "заткнуты" и все "окна". Настала пора переходить к анализу лог-файлов нашего сервера на предмет выборки атакующих ip. В моем случае логи располагались в папке logs в корневой директории хостинга (заметьте, хостинга, а не сайта). Обычно сервер Apache создает два файла логов. Грубо говоря, лог доступа (access) и лог ошибок доступа (error). Скачиваем файл лога доступа (файлик с именем, содержащим название вашего сайта и слово "access"). При открытии видим, огромное количество строк с указанием времени доступа, ip-адреса, операционной системы, версии браузера, в общем, достаточно обширную информацию, которая включает в себя даже ключевые слова по которым на сайт переходили из поисковых систем. Вручную выбирать ip-адреса для нас будет слишком уж муторно, поэтому скачаем программку анализатора логов. Благо есть такая бесплатная и достаточно полно формирующая отчет из лог-файлов. Скачиваем AlterWind Log Analyzer Lite и устанавливаем. Теперь можно загрузить через данную программу лог доступа к вашему сайту и сгенерировать HTML-отчет. На вкладке "Visitors" будут выведен список ip-адресов, пытавшихся получить доступ к вашему ресурсу. Выбирайте те, напротив которых стоит очень много запросов (больше 100) - ддосят скорее всего с них. Не бойтесь по ошибке выбрать обычного посетителя, сейчас вы на войне, и пара невинных жертв не сделает вам погоды для дальнейших посещений. Тем более ip-адреса достаточно часто меняются, так что вы никого не обидите, если на время перекроете им доступ к сайту.

После выборки всех подозрительных ip-адресов открываем опять файл .htaccess и редактируем следующим образом.

Order Allow,Deny
# Сначала разрешаем доступ всем
Allow from all
# НО! Запрещаем доступ со следующих адресов
Deny from xx.xx.xxx.xxx
Deny from xx.xxx.xx.xx
Deny from xxxxx.ru
# Можно задать шаблон для отсеивания ip. Ниже будут заблокированы все домены ниже xx.ru
Deny from .xx.ru

Сохраняем и... в принципе вот и всё. Периодически проверяйте файлы логов доступа на предмет новых атакующих айпишников и добавляйте их к своему списку в .htaccess. Помните, что рано или поздно атаки прекратятся - ведь дело то это достаточно дорогое ;).

P.S. Кстати, чуть не забыл. При выборе ip-адресов не заносите в "черный список" адреса типа .yandex.ru, .yandex.net, .rambler.ru, google – это поисковые роботы, индексирующие ваш сайт.

Источник: моя же статейка на Блоге IT-шника

С уважением, Арбалет Геннадьевич. Вебмастер.

0
309
5