Защита от DoS-атак с помощью Nginx

Поделиться
HTML-код
  • Опубликовано: 10 фев 2025
  • Nginx это не только быстрый и функциональный веб-сервер, но и средство защиты от некоторых видов DoS-атак. В этом видео мы разберём, как можно настроить свой сервер для защиты от частых запросов и L7-атак.
    Конфиги: github.com/Nic...
    На этом канале мы создаём максимально полезные видео по вопросам ускорения сайтов, веб-производительности и клиентской, а также серверной оптимизации.
    Профессионально занимаясь ускорение сайтов, мы накопили значительный опыт, которым готовы поделиться с нашими зрителями и подписчиками. Так что присоединяйтесь, будет интересно!
    Профессиональное ускорение сайтов: www.methodlab....
    Тестирование скорости сайтов: xn--80aanaoicz...--p1ai/
    Сервис оптимизации картинок: www.fotorubka.ru/
    Группа "Ускорение сайтов" в VK: sitespe...
    Метод Лаб в VK: methodlab
    Метод Лаб в Facebook: / methodlab.ru
    Метод Лаб в Twitter: / sitespeedup

Комментарии • 46

  • @egorgorbachev
    @egorgorbachev 6 лет назад +13

    оххх вот это материал ... больше больше готовых разжованных решений ))

    • @NickLavlinsky
      @NickLavlinsky  6 лет назад +3

      Всегда пожалуйста!

    • @egorgorbachev
      @egorgorbachev 6 лет назад +2

      @@NickLavlinsky вот я как пвседо админ серверов. вобше не могу понять как это оптимизация фронтенда. Да я смотрю видео как оптимизация проектов идет и их касеки торморезки. Но вот как в пратике это выглядит ? вы пишите код? оптимизацию темы сайта делаете ? вот итересно увидить лайв как это происходить пускай оно длится хоть 5 часов ))

    • @NickLavlinsky
      @NickLavlinsky  6 лет назад +1

      @@egorgorbachev На практике это выглядит так: анализ - оптимизация - измерение и так много раз по кругу.

  • @InverserPro
    @InverserPro 4 года назад +1

    Благодарю! Очень интересно и полезно! Качественный материал и отличные знания.

  • @alxblum3438
    @alxblum3438 4 года назад +1

    Микола Дуже дякую, за допомогу!

  • @egorkomarov4719
    @egorkomarov4719 5 лет назад +1

    Благодарю от души! Супер понятно и интересно!

  • @TheNimmortal
    @TheNimmortal 5 лет назад +1

    Спасибо. Интересный материал.

  • @jostanise
    @jostanise 9 месяцев назад +1

    Спасибо!

  • @alexfilus
    @alexfilus 4 года назад

    Очень полезное видео, спасибо!

  • @egorgorbachev
    @egorgorbachev 6 лет назад +1

    Николай раскажи на примере как делается оптимизация сайта вот не теорио а лайв видео работы )

    • @NickLavlinsky
      @NickLavlinsky  6 лет назад +1

      Вообще-то именно об этом весть канал. По процессу оптимизации есть мысли, как-нибудь реализуем.

  • @dmytro_vr
    @dmytro_vr 3 года назад +2

    Николай, здравствуйте. Я столкнулся с проблемой при использовании limitreq на сервере за Cloudflare. Nginx'у разрешено обрабатывать запросы только от адресов CF. С этим всё ок. Формат логов сделан так чтобы видеть адрес CF и реальный IP - log_format timed_combined '$remote_addr ($http_cf_connecting_ip)
    Проблема возникла при настройке limitreq. Пробовал передавать переменные $http_cf_connecting_ip и $binary_remote_addr, но блокирует он во всех случаях IP адрес CF, а не оригинальный адрес запроса.
    От limitreq мне нужно получить блокировку оригинального IP чтобы передать его в fail2ban и дальше по API на CF.

    • @NickLavlinsky
      @NickLavlinsky  3 года назад +1

      Правильно, запросы то к вам идут от CF, его IP и блокируются. Попробуйте: nginx.org/ru/docs/http/ngx_http_limit_req_module.html#limit_req_dry_run и уже дальше из логов вытаскивать исходные IP.

    • @payalnik_TV
      @payalnik_TV 2 года назад

      Не поделитесь мануалом как сделали обработку запросов NGINX только от адресов cloudfare?
      Заранее спасибо!

  • @denispanarin
    @denispanarin Год назад +1

    А если домен делегирован на cloudflare и в момент атаки переключать трафик через их сервера это поможет?

    • @NickLavlinsky
      @NickLavlinsky  Год назад +1

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

    • @denispanarin
      @denispanarin Год назад

      @@NickLavlinsky понял спасибо

  • @javavision73
    @javavision73 3 года назад +1

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

    • @NickLavlinsky
      @NickLavlinsky  3 года назад

      Положили: github.com/Nickmob/nginx_conf/blob/master/nginx-dos.conf

    • @javavision73
      @javavision73 3 года назад +1

      @@NickLavlinsky Спасибо!

  • @Pavelbrov
    @Pavelbrov Год назад

    Здравствуйте, а есть ли какой-то более продвинутый инструмент для защиты от парсинга, чтоб гибче настраивался, блокировал явных ботов, чтоб можно было посмотреть, кого он заблокировал? Есть такие на рынке? Если да, можете несколько примеров привести? Может быть даже на уровне приложения (для Laravel, например)

    • @NickLavlinsky
      @NickLavlinsky  Год назад

      Да, этим занимаются сервисы защиты от DDoS-атак: Qrator, Cloudflare и т.д.

  • @sec4428
    @sec4428 3 года назад

    Спасибо за видео. Не совсем понятно про лимиты. Не уточняется - эти лимиты для отдельного ip адреса или в целом по системе?

    • @NickLavlinsky
      @NickLavlinsky  3 года назад

      Лимиты применяются по ключу, по умолчанию это IP-адрес.

  • @koteich_live
    @koteich_live 4 года назад

    а у меня стрим сервис через nginx для меня какие настройки нужны?

  • @mistertroll0000
    @mistertroll0000 5 лет назад +1

    Насколько я гуглил, бротли компилиться под нгинкс отдельно, нету rpm готового под фёдору?

    • @NickLavlinsky
      @NickLavlinsky  5 лет назад

      Про федору не знаю. Под дебиан что-то точно есть.

    • @АнтонЯрин-о2ь
      @АнтонЯрин-о2ь 3 года назад

      Alex, не совету, юзать федору, лучше используй debian, и только debian.

    • @mistertroll0000
      @mistertroll0000 3 года назад

      @@АнтонЯрин-о2ь ну, тут смысл такой, что у нас уже федора на серваках 15 лет стоит, и чтобы поменять на что-то надо её долго переставлять, а чтобы федору обновить раз в полгода это минут 10-20 простоя всего. Ну, и федора чаще обновляется (я думаю поэтому Николай везде убунту использует), а дебиан или центос(редхат) тормозные в этом плане, собственно сейчас редхат это поняли и будут выпускать версии центос чаще. Ну, а по поводу систем редхат/дебиан это дело вкуса, мне рх ближе. Что касается модуля бротли из ролика - я отдельно его скомпилил уже 2 года назад (см дату ролика), заменять весь штатный nginx не потребовалось. (два модуля для статики и динамики компилятся в .so и через load_module подключаются в конфиг).

  • @valerievich1015
    @valerievich1015 4 года назад

    Привет, есть способ или программы на заказ с защитой от атак, хочу запустить на своем выделенном домашнем сервере игру по онлайну, а чувствую,что школьники после открытия начнут заниматься фигней ну или прочие пользователи(не доброжелатели) ?

    • @NickLavlinsky
      @NickLavlinsky  4 года назад

      Защита от DDoS-атак только через сервисы.

    • @valerievich1015
      @valerievich1015 4 года назад

      @@NickLavlinsky я имел ввиду,от школьников, чтоб не засоряли интернет канал. одного роутера хватит?

  • @Дмитрий-я4ц8ю
    @Дмитрий-я4ц8ю 2 года назад

    В конфигурации выделено 2 зоны ltwo и highspeed, а используется только одна. Думаю конфиг как то не доработан получается.

    • @NickLavlinsky
      @NickLavlinsky  2 года назад

      Правильно, 2 зоны показаны для примера. Дальше уже настраиваете как вам нужно. highspeed нужна для location, где в норме бывает высокая частота запросов (например XHR).

  • @nikitatitov3432
    @nikitatitov3432 5 лет назад +1

    Как настроить Limit conn zone, просто написать код Limit conn zone в nginx.confg? Или как?

    • @NickLavlinsky
      @NickLavlinsky  5 лет назад

      Смотрите в видео, там есть конкретный пример. Отдельно настраивается зона, дальше уже используется в server или location.

  • @Devof-n9i
    @Devof-n9i 5 лет назад +1

    А вот размер буферов..? Отмахнулись: «это не важно.». Это так уж неважно?

    • @NickLavlinsky
      @NickLavlinsky  5 лет назад

      В этом контексте это действительно не так важно. Единственное - типичный ответ бекенда должен укладываться в proxy_buffers, иначе буферизация будет на диске.

    • @Devof-n9i
      @Devof-n9i 5 лет назад

      Правильно ли я понимаю, что скорость, с которой сервер отдаёт ответ, очень важна в пассивном противодействи атаке типа дос? Оптимизация буферов на обратном прокси улучшает скорость отдачи, особенно когда для ответов нужны большие буфера, поэтому эта часть заслуживает внимания?

    • @NickLavlinsky
      @NickLavlinsky  5 лет назад +1

      @@Devof-n9i В общем да, но нужно сопоставлять нагрузку, которую создаёт сам бекенд (Apache, PHP-FPM и т.д.) и ту, которую создаёт работа Nginx, обычно разница в несколько порядков. Другими словами - оптимизация буферов мало что даст.

    • @Devof-n9i
      @Devof-n9i 5 лет назад

      Понял. Спасибо за ответ.

  • @АнтонЯрин-о2ь
    @АнтонЯрин-о2ь 3 года назад

    Технический директор, ты реально нуб, не компетентен до ужаса, не мог сразу сказать, что речь идёт о защите на уровне L7? Ну с целом, nginx сам по себе дырявый защитник, максимум его плюс только в режиме "чёрная дыра", и не более того.
    По настройке воркерам и т.д., ты теоретик, не практик, не говори того, чего не знаешь, куча воркеров это минус, даже если у тебя миллион ядер.

    • @NickLavlinsky
      @NickLavlinsky  3 года назад

      Ну как бы из заголовка по L7 уже очевидно. Или ты защищаешся от L3 с помощью Nginx? По воркерам не понял, в чем минус в нескольких воркерах?

  • @hiaylindom9605
    @hiaylindom9605 9 месяцев назад +1

    Спасибо, очень понятный гайд