Как стать автором
Обновить

Комментарии 121

Да, заголовок в тему, улыбнула ваша история.
А что будет, когда школьник станет студентом?
DDoS атака станет мощнее :).
школьный? судя по Вашей истории — детсад, ясли.
А может просто админ решил сам себе премию заработать или напомнить о своей важности.
НЛО прилетело и опубликовало эту надпись здесь
Эти люди ему подарили деревянный костюмчик, в котором не удобно «чем-то таким» заниматься? :)
А в правоохранительные органы можно было обратиться?
Можно было бы конечно, но в целях поучить ребенка что атата, нельзя так, а то чуть старше будет, и получит в лучшем случае на суде, если не перепутает ничего и не придут пара амбалов которые ему почки отобьют, и это еще самое безвредное последствие относительно того что может быть.
Такой вариант рассматривался, но все происходило вечером в пятницу ;) Администратор провайдера не дал нам контактные данные абонента, и я его полностью понимаю. Но мы попросили его всю информацию сохранить.

В понедельник, возможно, будет продолжение уже с обращением в правоохранительные органы и передачей IP-адресов всех участвовавших в атаке.
НЛО прилетело и опубликовало эту надпись здесь
Какая удача — первый же IP был организатора.
Тоже обратил на это внимание.
Действительно очень повезло — не торы а напрямую.
DDOS через тор? Месье знает толк)
Знаю-знаю.
Но попробовать через тор никто ведь не мешает ;-)
Необязательно. Это мог быть любой из школьников, который сразу начал отзваниваться остальным
DDoS'или всем классом…
… быстро-быстро нажимая F5 в опере
В опере есть опция «Обновлять каждые...»
Вы что! Это совсем другой уровень!)
У нас был один такой фрукт. Очень обиделся на недельный рид-онли на форуме, пошел куда-то на ксакеп-форумы жаловаться — пришёл с лойкой и зарядил. Все свои 512 кбит.

Долго смеялись над его недоумёнными возгласами в мирце, почему же ничего не падает.
С текущими ценами на интернет, такие герои могут стать опасными. Особенно когда на той стороне не понимают вообще как это все работает.
www.kyivstar.ua/ru/mm/home_internet/tariff/
У меня в Польше в общежитии раздаются интернеты довольно мощные — около 50 мегабит. В ночное время — до 100 мегабит можно выжать.
Литва — домой дают до 300mbit, правда роутер который в комплетке больше 85mbit не тянет…
В Украине многие провайдеры дают 1000, по 20-30 баксов. Хватит меряться.
Беларусь, 128 кб\сек за 5 баксов -(
НЛО прилетело и опубликовало эту надпись здесь
только в основном за 20 — 30к это до 1000 непонятно чего
ну 200-300 Мбит выжимается даже в часы пик, полагаю, этого достаточно. Редкая домашняя машинка вытянет больше, а если поставить сервер, то лавочку, скорее всего, прикроют (хотя за постоянную загрузку в 100 мбит нормально воспринимают)
У меня форум не так, чтоб шибко большой, с одного и того же прова ходят ребята из Москвы разве что — так что можно героев просто гасить, отсекая провайдера.
Это на анлим цены? оО
Ну да, а так как этот оператор цепляет все больше городов, то местным провайдерам приходится с ним конкурировать и это радует +).
Вот например
www.skyinet.org/index.php?dn=info&pa=nov2011
И второй avangarde.prom.ua/price-id59696.html
Мир вход/исход до 100/50 Мбит/сек, 12.5$ в месяц, анлим, Украина :)
Если от сервера получать байт в минуту (на пределе ограничений конфига если они есть), то криво настроенный можно уложить и с 512 кбит
Для защиты от слоу можно просто обрубить Ranges нафиг, вот и всё.
На совсем старых браузерах может вызвать проблемы с докачкой, но в остальном совершенно безвредно.
Вы путаете разные атаки. Для slow lori заголовок Range не нужен. А кардинально проблема решается установкой nginx до/вместо Apache. Ну или костылями разными модулями, ограничивающими количество соединений с одного адреса, минимальную скорость и тп.
У меня как раз nginx+fpm, мне хорошо.

Лимит рпс — тоже хорошо (кстати, под nginx там костыли тащемта не нужны, он умеет это дело из коробки), но иногда создаёт ощутимые проблемы на медленном коннекте или при криво настроенном кешировании у юзера.
От Вашей «защиты» толку мало. С этими строками в .htaccess и без них, Apache все равно обрабатывает запрос и отдает какой-то файл.
Поставьте nginx и уже в нем отсеивайте нехорошие запросы.
Как видите, сработало достаточно хорошо, так что смысл городить огород?
Для более печальных случаев. Хотя, для ещё более печальных случаев, нужен firewall.
и чем же он поможет, лол?
Будет фильтровать вредный трафик, не?
и как же он его вычислит?
Так в нем и нет этого механизма.

1) Слушаем / парсим / интерпретируем вывод tcpdump.
2) Добавляем вредителей в iptables/ipfw
3)…
4) Profit
офигеть. Ты пробовал под мало-мальски серьезной нагрузкой запускать tcpdump на сервере? Логи и те отключают, иначе умирает все.
Повторю вопрос — как будешь выявлять вредоносный трафик?
Так, я понял, тебе нужна инструкция.
Вот первая же ссылка в гугле: dd0s.blogspot.com/2009/10/ddos-tcpdump.html

И да, я конечно могу ошибаться, но мне будет достаточно на пару минут выключить apache что бы серевер перестал обрабатывать запросы. tcpdump продолжит работу без нагрузки на сам сервер.
Мне не нужна, лол ) Без нагрузки, ага. С каждым разом все веселее становится.
Ключевая фраза в твоей, гм, «инструкции»:
идет легкая ddos атака"

там еще этот инструктор предлагает netstat использовать. Это была статья на конкурс вредных советов, что ли? Заняла второе почетное место, после перл-скрипта, анализирующего лог апача?
ок, ну поищите другую статью.
Емае, что по твоему, не используют фаерволы что-ли для защиты от ддоса? Нет способов определить вредный трафик вообще?
Ну ё-маё, не катаются на великах на 500 километров, что ли?
Дак ведь катаются. Или я не понял аналогии? :)
катаются, о том и речь.
а как бы вы решали задачу?
Защиту от мало-мальски серьезного DDoS можно сделать только специализированными средствами. Пионерские методы а-ля htaccess, парсинг лога вебсервера, tcpdump и netstat (чур меня!) применить получится только при пионерском же DDoS'е. Кто победнее — лучше покупать услугу, у того же QRATOR или Kasper'а, кто побогаче — строят собственные системы защиты, плотно взаимодействуя с аплинк-провайдером, размещая средства защиты не на своем конце последней мили, а на толстых каналах провайдера(ов).
Я прошу прощения, а что вот эти вот «спецсредства», разве не включают в себя как один из инструментов «файервол»?
Нет. В SMB-решениях да, но как правило, это второстепенная функция.
Каждый запрос ддосера к htaccess — минус 15 мегабайт из оперативки. Как закончится оперативка, вспомните и прочитайте комментарий выше.
Мне кажется, нужно отдавать текст ошибки со статус-кодом HTTP 503 (Service Unavailable), тогда все это дело выглядеть будет очень естественно. У Вас же отдается текст ошибки, но со статус-кодом HTTP 200 (OK), как будто сервер не нагружен и вообще все хорошо.
Боюсь, читать и анализировать этот код ошибки некому. Кроме того, если бы любой из атакующих удосужился проверить результаты атаки в браузере, он увидел бы полностью работающий сайт. И это сразу же раскрыло бы нашу маленькую хитрость.
Такие вещи на ithappens.ru надо)
> благо, он скопирован у достаточно старой версии оперы.
10.63 — старая версия?
Я на 12.00 давно сижу. Нормальные люди все давно на 11.сгаком
По данным liveinternet, их 2%, 11 версия — 17%. Но 2% это не так уж и мало, в принципе.
студеная былина, боярин.
А можно ещё скриптом в 10 строчек вычитывать из логов айпишники зловредов и добавлять их в iptables. Если, конечно, iptables имеется в наличии :)
Только не в iptables, а прописывать нулевой роут. iptables быстро загнется, если там будет пара тысяч банов.
-j TARPIT + raw/NOTRACK — и никуда не загнётся.
TARPIT — довольно редкая штука. Из моего опыта на очень многих серверах его просто нет.
Да он нужен просто чтоб чуть срезать скорость роста атаки. Если его нет — никакой проблемы.
Как я ответил в привате вопрошавшему, «забивается» не iptables, а conntrack.
Поэтому либо raw таблица и резать сразу в raw/PREROUTING (прямо по IP, без порта); либо просто выгрузить conntrack из ядра, чтобы фильтрация шла stateless. Она летает и с сотнями тысяч правил справляется вполне бойко.
Помню, сколько-то лет назад был патч на iptables, меняющий логику работы с цепочек на матрицу, так там оно работало с сотнями тысяч правил на довольно дохлом железе. Правда, возможности чуть более куцые были. Где он сейчас и живёт ли еще — не знаю… Для меня хватает стандартной поставки дебиана + tarpit когда не влом скомпилять через m-a
мы используем iptables+ipset, 30К банов, полёт нормальный.
когда вся эта радость была в iptables было жутко, да.
Кстати, и в абъюз вебмани можно было послать…
А на кого жаловаться? Номер кошелька они же не светили.
мда. ну тогда только через милицию — если сб вебмани позволит провернуть.
Надо было «меченые» ваучеры передавать, ну и задержать при получении с ОМОНом как всё положено.
</sci-fi>
Такое впечатление складывается, что куча одноклассников засели вечером за компом, открыли страницу и жамкали F5.
Смущает что одноклассники подельники с разных городов.

оно так и было?
Я проверил whois-ом несколько случайных IP-адресов атакующих, были люди из Киева, Донецка и Полтавы.
НЛО прилетело и опубликовало эту надпись здесь
А то что одинаковый «user agent» не смущает, да?
Клан Оперы 9.80
Это 10.63.
Если так, то атака скорее всего велась через пользователей какой-то непопулярной говносборки венды с бэкдором/Rадмином дефолтным паролем наружу (может кто помнит Radmin рейд?)… Так что абонент возможно и не виновен.
Они сейчас горды как никогда -и атака удалась (типа), и на хабр попали, и ошибки им показали.
Через месяц снова начнут.

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

А школьники — смесь достаточно гремучая. Мозгов 10-11 класника чтоб запустить такую ддос вполне достаточно, А вот чтоб осознать юридические последствия — не всегда
Поверьте, некоторые индивидумы 10-11 класса могут запустить и нечто побольше. Но тем кто умеет, такое как правило и не нужно.
*представил гоблинов снаряжающих суперпушку*
О, как внезапно кончился диван!.. [x]
Решение с mod_rewrite не решение. На обработку regex запроса тратится время.
Как уже выше советовали, лучше nginx иметь.
Ну, во-первых, на написание регэкспа потребовалось времени гораздо меньше, чем ушло бы на установку и настройку nginex.

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

В-третьих, этого простого решения хватило с головой.

В-четвертых, если бы атака была организована по уму, то настройкой nginex дело не ограничилось бы.
mod_rewrite не везде включен ) много где, но не везде. И не везде включен .htaccess.
Хостинг без nginx, на чистом apache? Уходить надо оттуда, уходить. Иначе сайтик с сотней картиночек сервер положит.
Не впадайте в крайности. Как же люди без нгинкса обходились-то, пока это не было так модно?
Если честно, не прадставляю. Вроде как lighthttp использовали.
О, я не имею в виду удалять апач. Я имею в виду то, что проксировать надо, это абсолютно прозрачно и очень сильно повышает производительность.
Она картинка — 15 мегабайт.
Десять пользователей по 10 картинок — 1500 мегабайт, и всё.
Кагбе критично не только количество занимаемой памяти, но и время, на которое она занята. 15 мегабайт на 0.1с и на час — разные вещи. Я сам использую нгинкс+апач, но сознаю, что далеко не всегда это действительно необходимо.
Отчет зачем это нужно кроется под боком)
Допустим, Вы кодите на локалке — всё нормально.
Отправляете в интернет, обновляете — всё нормально. Скорее всё у Вас быстрый интернет, и всё нормально. Запускаем сайт, какой-нибудь пользователь с ADSL ищет информацию в яндексе, открывает в фоновых вкладках 10 сайтов, которые постепенно загружаются.
Так вот, если сайт целиком со всем картинками загружается в течении минуты (а это вполне возможно), то всю минуту будет использоваться 15-30 мегабайт. Лично у меня рамблер загружается целиком за 25 секунд (в кеше нет).
Если пользователь грузит музыку при помощи Download Master-а в 8 каналов, будет использовано 15*8 мегабайт. Чем медленнее канал пользователя, тем дольше апач вынужден держать соединение, и тут не стоит речь о 0.1 секунде.
Если нужны не слова, а цифры — попробуйте пострелять в сайт при помощи ab, и посчитать количество ответов. Ваше счастье, если mysql процесс не будет убит системой за отсуствие места в оперативке. Ну, а если ктото считает, что работоспособность сайта, которая ничего не стоит ни по деньгам, ни по труозатратам, и не сделает хуже, не всегда необходима — тут мне сказать нечего.
Если честно, ваш яростный напор наводит меня на мысль о том, что вы недавно узнали о нгинксе и впали в эйфорию.
Штука полезная, не спорю. Но позиционировать это как лекарство от всех болезней?
Давно уже =). И не лекарство, а витамин. Сделать хуже с ним сложно. Сделать хуже без него — легко.
У нас как то не webmoney а bitconins требовали, письмо счастья было на английском. Про него забыть успели а через неделю получили атаку, не очень сильную но и не школьную. Отбивались скриптиком который парсил логи и банил IP за частые обращения, за день набегало где то 50к ботов.
А можно задать вопрос — а почему сервер «лёг» от детского dos'а? Может, проблема в этом?
Любой сайт с динамикой «ляжет» от детского доса — так или иначе.
Простая арифметика: генерация страницы занимает 0.05 секунды, 8 ядер => 160 страниц враз максимум.
Так что поток в 200 запросов одновременных «забьёт» так, что пользователи будут ощущать жесткие тормоза по нескольку секунд и больше если стоит nginx впереди, или получать timeout если не стоит.
А rate-control для кого придумали? Кроме того, почему вы принимаете и обслуживаете 200 одновременных запросов? Подержать в очереди nginx'ом не судьба?
Так я и пишу — если nginx, то мы получим тормоза а не ошибку для простых пользователей.

Пришло 200 клиентов, запросило страницу. 8 из них получило ответ через 0.05. 8 следующих получило через 0.1… 200й клиент получил страницу через секунду.

А теперь пришло 1000 клиентов. Время ожидания стало 5 секунд. Простой пользователь, который придёт сюда уже будет недоволен и слиняет.

А теперь работает 2к ботов. 10 секунд — уже никуда не годится и народ распугает напрочь.

А rate control, группировку запросов по ip, и прочие радости делают не заранее, а когда появляется потребность. Глупо заранее тюнить сайт с посещаемостью в 20 уников чтоб держал 20кк.
Э… 1000 клиентов с одного ИП? Извините, извините.
Где я говорил про один IP?!
Вы это серьезно сейчас сказали, или это такой юмор?

Просто такие детские «досы» на серверах с базовой настройкой nginx обычно проходят незамеченными. Под базовой я имею в виду хотя бы limit_req_zone+limit_req в зависимости от максимальной возможной нагрузки с одного айпи на сайт. Я, например, сомневаюсь что сайту без монструозной посещаемости потребуется обрабатывать больше 3х запросов в секунду (с прыжками до 5 запросов) с одного айпи адреса. От всяких LOIС и других генераторов траффика это достаточная защита. Как и от ддоса с 10-20 прокси.
Выше озвучены масштабы в 2000 ботов. Какие к чертям 10-20 прокси? Это даже не детсад а ясли. 2000 ботов это кстати тоже очень мало.
Вы выбрали некрасивое неуниверсальное решение, зафильтровав паразитный траффик mod_rewrit'ом
Оттолкнули целевых посетителей с браузером старой версии.
Не побоялись написать такое решение на всеобщее обозрение и коллегам понесчастью

Вот моя статейка с более элегантным и универсальным решением, но от школьного DOSа habrahabr.ru/blogs/sysadm/125300/
Разгрузили сервер до достаточного уровня — ок.
Оттолкнули при этом 0 человек, маловероятно что там хоть кто-то нашелся бы с таким браузером — ок (а вот защитой от slowloris в данной ситуации наверняка бы вызвали тормоза для посетителей).
Поделились на хабре интересной историей из реальной жизни — ок.

А вот почему вам совесть позволяет пиарить свою статью «как стать ДОСером» для школьников, это уму не постижимо.
Однажды в студеную зимнюю пору зашел я на сервер. Был сильный DDoS.
Ну ты молодец. Победил школьника.
Герой. Желаю вам и дальнейших успехов в изучении базовых настроек веб-серверов.
Похоже и мы под такой атакой вторую неделю (два раза в один и тот же день в одно и то же время и по одному сценарию).
Но первые меры уже приняли, теперь не должно доставлять проблем даже если повторится.
Хотя при повторе в третий раз задействуем правоохранительные органы, если вышестоящие админы сами не справятся.
Школьников и нужно учить, взрослых учить поздно.
К примеру у одного из моих знакомых провайдеров был такой школьник, который спам рассылал и пытался сайты взламывать. Лет 14 ему было. Молодого человека вычислили, отключили и обратились в милицию с заявлением, завели уголовное дело и все такое. Мама школьника, поняв всю серьезность ситуации, не просто отобрала компьютер у него, еще приходила к провайдеру и слезно молила закрыть дело, говорила, что если надо, ее мальчик будет приходить и делать грязную работу, полы мыть и пр. Никто, конечно, не использовал этого школьника, но за месяц общения со следователями и родителями мальчик стал шелковым и больше не занимался ерундой. Так что, даже в профилактических воспитательных целях заявление в милицию подавать стоит!
Я бы такого мальчика пригласил на стажировку себе в фирму.
Ищите таких мальчиков по фразе «взломать сайт».
И вместо того чтобы стать успешным айтишником, парень стал уборщиком. Успешным, конечно.
Чтобы стать айтишником нет нужды нарушать законы.
Думаю, родители дали ему достойное образование и он нашел себя.

Мне сейчас 15. Взломал хостинг сервера, где лежит мой сайт. И зашел в админку этого хостинга. Там все пользователи, их контакты, отчеты по заработку. Думаю как им написать. Боюсь, что забанят.

Извините, я тут не в рамках обсуждений, а что это за 400 способов заработать в интернетах? Мне правда интересно.
399 способов — школоло-партнерки, 1 способ — получить высшее образование и устроиться на работу.
Это перефразированные «Остап знал четыреста относительно честных способов отъема денег у населения»
Я делал от такого очень простую предзащиту с отсеканием вот таких умников, сейчас точно не найду конфига, но что-то типа такого:
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 1 --hitcount 100 -j SET --add-set black_list_by_conn src,src
работает быстро, сервер не грузит

ну а дальше дело техники
ipset -N black_list_conn iptree --timeout 600

т.е. навсегда мы не блочим, всего на 10 мин сек, если какой-то ип делает больше 100 запросов в сек (обычно регулируется в нормально обстановке, например настроить и повесить на пару дней без блока с записью в лог), если он продолжит, тогда будет через 10 мин опять блочится.

ну и плюс все методы защиты на куках через ипсет и iptables очень эффективны. Если с умом все настроить, то можно сдерживать не только школьный ддос.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории