Открою этот раздел не большой заметкой о том как можно победить тупых ddos ботов с кривым referer на уровне nginx, самое вкусное это real-time тоесть в режиме реального времени по сигнатуре.

В рунете гуляет очень много ботнетов с ботами которые делают тупой запрос в корень сайта с рандомным referer — набор произвольных букв и цифр, он вообще не разу не валидный, давайте посмотрим пример, вырезку из access.log:

я не знаю каким местом автор бота думал когда разрабатывал это чудо  XD

но он откровенно говоря — мудак!

не сложно догадаться о том как это дело порезать в том же nginx, валидный referer это:

1. пустой

2. начинающийся с http

на основе этой информации можно соорудить такую конструкцию в nginx, например

Что мы делаем?

1. проверяем наличие referer

2. проверяем валидность referer —  http:// или  https://

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

Результат

Таким образом боты режутся в реал тайме на фронтенде с точностью 100% ))) Защита от DDoS в nginx!

 

  20 комментариев в “Защита от DDoS в nginx от тупых ботов с кривым referer”

  1. Автор, я испытываю суровую атаку пару ночей с таким вот ботами и твоя статья смахивает на панацею.

    Но как именно добавить в nginx ваши надстройки? Можно подробнее? Если в nginx.conf запихнуть, то он даже не стартует тогда и вываливается с ошибкой. Даже глупый сапорт хостера не смог мне помочь)

     
  2. Все получилось, просто запихнул этот код почти в самое начало)
    И все же это гениально! Боты теперь просто бьются об nginx и получают свою 499 ошибку и апач даже не страдает. Также поставил mod_vasive, но он не особо себя показал. А ведь даже сервер положили, что SSH с трудом работал, а теперь летает все… чудно.

     
  3. Vlad 444 лучше отдавать

     
    • Если банить то да, если не банить то не стоит так делать у вас сокетов полу открытых будет огромное количество, из за того что вы закрываете соединение каждый раз а боты будут устанавливать новое с каждым request

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

     
  5. if ($http_referer !~* (^http://.*|^https://.*) ){

    if ($http_referer !~* ^https?://.* ){ так короче

     
  6. что куда впихивать так и не понял, а вот такой лог от ддос атаки, от апача лога вижу часто.
    Объясните — что куда вводить, буду признателен.

     
  7. Публикация действительно клёвая, но… как и в верхнем комменте я нифига не понял как вставить код в этот nginx. Через .htaccess ставил запрет на этот чертов бот SputnikBot, но толку нихрена нет. Все равно создает нагрузку и систематически шатается про сайту. Если не трудно поясните как и куда запихнуть сие чудо. Или это нужно наседать на хостера? Я что-то полазил и не смог найти в панели управления nginx.

     
  8. Здравствуйте, подскажите как отдавать ботам страницу не чаще раза в 5секунд, если чаще отдавать код 503

    # Блокируем некоторые типы ботов

    if ($http_user_agent ~* msnbot|scrapbot) {

    return 503;

    }

    И чем такое чревато?

     
  9. При удачной настройке iptables nginx попросту блокирует атакующие адреса и они не нагружают системные ресурсы сервера, ну а для решения серьезных проблем нужная хорошая аппаратная защита. Могу порекомендовать ребят из Simplyway. отлично справляются как с ддос атаками

     
  10. Автор красава! Всё отличн работает, пиши ещо! ^_^

     
  11. При удачной настройке iptables nginx попросту блокирует атакующие адреса и они не нагружают системные ресурсы сервера, ну а для решения серьезных проблем нужная хорошая аппаратная защита. Могу порекомендовать ребят из Simplyway. отлично справляются как с ддос атаками

     
  12. I pay ɑ quick visit every day a few web sіtes andd boogs to read posts, but this webpwge gives feature Ьased articles.

     
  13. Somebody necessariⅼy һelp to make critically articles I’d state.

    That is the first time I frequented үour website page and
    so far? I surprised with the analysis yοu made tto make this actual put up extraorɗinary.
    Fantɑstic process!

     
  14. An online slot with three rows and 5 reels.

     
  15. Please let me know if you’re looking for a article author for your site.

    You have some really good posts and I feel I would
    be a good asset. If you ever want to take some of the load off,
    I’d really like to write some articles for your blog in exchange for
    a link back to mine. Please send me an e-mail if interested.
    Thanks!

     
  16. It’s wonderful that you are getting thoughts from this piece of writing as well as from our discussion made at this time.

     

 Оставить комментарий

(обязательно)

(обязательно)

Copyright © 2012. Linuxguru.ru