Показать сообщение отдельно
Старый 01.12.2011, 20:18   #1
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Сообщение Хронология атаки 1 декабря

Встал с кровати, прямо в трусах уселся за стол, ткнув кнопку "Пауэр" моего Термалтейка.
Винда завелась быстро. Открыв асечку, я обнаружил месседж от Тадеуса: булка под тазом
Как так? Ну, давай проверим. И правда под тазом.
Оповестил Джокера, полез в access-лог. В access-логе какая-то хреновня: всё завалено сообщениями

::1 - - [30/Nov/2011:10:15:05 +0100] "GET / HTTP/1.0" 200 1 "-" "Apache/2.2.3 (Linux/SUSE) (internal dummy connection)"

Нормальное явление, но не по 100 же раз в секунду?

Схренали? Первая мысль: кто-то менял что-то в настройках?
Может, думаю, Саб или Джимон чего сделали и не заметили. Стал гуглить как решать проблему. Ничего дельного не нашёл, только костыль в виде RewriteRul'а для localhost'а. Чтоб хоть не генерил страницу заново с кучей MySQL-запросов. Ну что ж, воткнул его, надеясь, что это поможет.
Не помогло, булка всё так же висит.
Реврайтнул вообще всех на blank.html.
Открывается. Адово лагает, но всё же грузит.
Почему этот баг начался именно сейчас? Конфиги же не могли сами собой поменяться! Я уже давненько не лазил в SSH, Джокер тоже. Ну что ж, посмотрим.

find /etc/ -type f -mtime -2


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

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

На Серверфолте нашёл, что в Апаче [некоторой версии] был такой баг. Но у нас [другая версия].

Неужели реал дедос? Тем временем в акцесс-логе творятся интересные вещи: куча разных IP со скоростью мильён в сикунду дают запросы на главную. Рефералы - всякие download.ru, rbc.ru, anekdot.ru, lenta.ru и прочие популярные у хомяков сайты. Видимо, рассчитано на то, что админ не захочет бананить таких-то рефералов. Но мы с вами - не хомячковый сайт!
И тут стучится ко мне в асю (заботливо оставленную на главной) товарищ с ником "BooleanHak hakboole" и сообщает, что шутка про Путина от MoKa была не уместна.

Всё ясно. Дедос. Оплаченный сами-поняли-кем. Хренок тот из аси быстро свалил и более туда не возвращался.

Тем временем Джокер нарыл кое-какую годную инфу по защите от дедоса. Я же попробовал забанить в htaccess'е особо ретивых вручную (ip было не так много).

Засранцы получали своё 403, но давили мясом: даже выдача 403 занимает время. Нужно бить глубже.

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

Плюнув на всё, я решил писать скрипт сам. То поднимая, то опуская Апач, я "ловил" их ip в список и тестил скрипт. А дедос суровый: пока поднят Апач, тормозит даже SSH и vim!

Но в неравной борьбе скрипт всё же был написан и отлажен.
Первая партия подлецов укатила в синюю даль вместе с надписью "Zobanil!!".

Затем скрипт был окончательно допилен и выставлен на крон. С этого момента бан негодяев происходит автоматически.

Победа за нами!
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Эти 42 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
.Squid (01.12.2011), Артем Валерьевич (03.12.2011), Android (02.12.2011), ARA (01.12.2011), AVL (01.12.2011), baton4ik (01.12.2011), BlackDragon (01.12.2011), cahekp (02.12.2011), den (01.12.2011), dsd (02.12.2011), falcon (02.12.2011), FireOwl (01.12.2011), Gector (01.12.2011), H@NON (01.12.2011), Harter (02.12.2011), HolyDel (01.12.2011), Hurrit (01.12.2011), IgorOK (01.12.2011), jfkkk (01.12.2011), Lestar (02.12.2011), Lowlet (01.12.2011), Markova (01.12.2011), mauNgerS (01.12.2011), Maxus (01.12.2011), moka (01.12.2011), mr.DIMAS (01.12.2011), Mr_F_ (01.12.2011), m_512 (01.12.2011), Nerd (01.12.2011), Nex (01.12.2011), nil0q (02.12.2011), Nuprahtor (01.12.2011), pax (01.12.2011), Randomize (02.12.2011), Reizel (02.12.2011), Reks888 (01.12.2011), SBJoker (01.12.2011), Spy4433 (01.12.2011), St_AnGer (01.12.2011), Tadeus (02.12.2011), Taugeshtu (02.12.2011), ViNT (01.12.2011)