Pull to refresh

Comments 121

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

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

Долго смеялись над его недоумёнными возгласами в мирце, почему же ничего не падает.
С текущими ценами на интернет, такие герои могут стать опасными. Особенно когда на той стороне не понимают вообще как это все работает.
www.kyivstar.ua/ru/mm/home_internet/tariff/
У меня в Польше в общежитии раздаются интернеты довольно мощные — около 50 мегабит. В ночное время — до 100 мегабит можно выжать.
Литва — домой дают до 300mbit, правда роутер который в комплетке больше 85mbit не тянет…
В Украине многие провайдеры дают 1000, по 20-30 баксов. Хватит меряться.
Беларусь, 128 кб\сек за 5 баксов -(
UFO just landed and posted this here
только в основном за 20 — 30к это до 1000 непонятно чего
ну 200-300 Мбит выжимается даже в часы пик, полагаю, этого достаточно. Редкая домашняя машинка вытянет больше, а если поставить сервер, то лавочку, скорее всего, прикроют (хотя за постоянную загрузку в 100 мбит нормально воспринимают)
У меня форум не так, чтоб шибко большой, с одного и того же прова ходят ребята из Москвы разве что — так что можно героев просто гасить, отсекая провайдера.
Мир вход/исход до 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), как будто сервер не нагружен и вообще все хорошо.
Боюсь, читать и анализировать этот код ошибки некому. Кроме того, если бы любой из атакующих удосужился проверить результаты атаки в браузере, он увидел бы полностью работающий сайт. И это сразу же раскрыло бы нашу маленькую хитрость.
> благо, он скопирован у достаточно старой версии оперы.
10.63 — старая версия?
Я на 12.00 давно сижу. Нормальные люди все давно на 11.сгаком
По данным liveinternet, их 2%, 11 версия — 17%. Но 2% это не так уж и мало, в принципе.
А можно ещё скриптом в 10 строчек вычитывать из логов айпишники зловредов и добавлять их в iptables. Если, конечно, iptables имеется в наличии :)
Только не в iptables, а прописывать нулевой роут. iptables быстро загнется, если там будет пара тысяч банов.
TARPIT — довольно редкая штука. Из моего опыта на очень многих серверах его просто нет.
Да он нужен просто чтоб чуть срезать скорость роста атаки. Если его нет — никакой проблемы.
Как я ответил в привате вопрошавшему, «забивается» не iptables, а conntrack.
Поэтому либо raw таблица и резать сразу в raw/PREROUTING (прямо по IP, без порта); либо просто выгрузить conntrack из ядра, чтобы фильтрация шла stateless. Она летает и с сотнями тысяч правил справляется вполне бойко.
Помню, сколько-то лет назад был патч на iptables, меняющий логику работы с цепочек на матрицу, так там оно работало с сотнями тысяч правил на довольно дохлом железе. Правда, возможности чуть более куцые были. Где он сейчас и живёт ли еще — не знаю… Для меня хватает стандартной поставки дебиана + tarpit когда не влом скомпилять через m-a
мы используем iptables+ipset, 30К банов, полёт нормальный.
когда вся эта радость была в iptables было жутко, да.
Кстати, и в абъюз вебмани можно было послать…
А на кого жаловаться? Номер кошелька они же не светили.
мда. ну тогда только через милицию — если сб вебмани позволит провернуть.
Надо было «меченые» ваучеры передавать, ну и задержать при получении с ОМОНом как всё положено.
</sci-fi>
Такое впечатление складывается, что куча одноклассников засели вечером за компом, открыли страницу и жамкали F5.
Смущает что одноклассники подельники с разных городов.

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

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

А школьники — смесь достаточно гремучая. Мозгов 10-11 класника чтоб запустить такую ддос вполне достаточно, А вот чтоб осознать юридические последствия — не всегда
Поверьте, некоторые индивидумы 10-11 класса могут запустить и нечто побольше. Но тем кто умеет, такое как правило и не нужно.
*представил гоблинов снаряжающих суперпушку*
Решение с 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 клиентов с одного ИП? Извините, извините.
Вы это серьезно сейчас сказали, или это такой юмор?

Просто такие детские «досы» на серверах с базовой настройкой 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 очень эффективны. Если с умом все настроить, то можно сдерживать не только школьный ддос.
Sign up to leave a comment.

Articles