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

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 ม.ค. 2025

ความคิดเห็น • 46

  • @egorgorbachev
    @egorgorbachev 6 ปีที่แล้ว +12

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

    • @NickLavlinsky
      @NickLavlinsky  6 ปีที่แล้ว +2

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

    • @egorgorbachev
      @egorgorbachev 6 ปีที่แล้ว +1

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

    • @NickLavlinsky
      @NickLavlinsky  6 ปีที่แล้ว

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

  • @InverserPro
    @InverserPro 4 ปีที่แล้ว +1

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

  • @egorkomarov4719
    @egorkomarov4719 4 ปีที่แล้ว +1

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

  • @TheNimmortal
    @TheNimmortal 5 ปีที่แล้ว +1

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

  • @jostanise
    @jostanise 8 หลายเดือนก่อน +1

    Спасибо!

  • @alxblum3438
    @alxblum3438 4 ปีที่แล้ว +1

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

  • @alexfilus
    @alexfilus 4 ปีที่แล้ว

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

  • @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 понял спасибо

  • @koteich_live
    @koteich_live 4 ปีที่แล้ว

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

  • @Pavelbrov
    @Pavelbrov ปีที่แล้ว

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

    • @NickLavlinsky
      @NickLavlinsky  ปีที่แล้ว

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

  • @javavision73
    @javavision73 3 ปีที่แล้ว +1

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

    • @NickLavlinsky
      @NickLavlinsky  3 ปีที่แล้ว

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

    • @javavision73
      @javavision73 3 ปีที่แล้ว +1

      @@NickLavlinsky Спасибо!

  • @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 подключаются в конфиг).

  • @egorgorbachev
    @egorgorbachev 6 ปีที่แล้ว +1

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

    • @NickLavlinsky
      @NickLavlinsky  6 ปีที่แล้ว +1

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

  • @nikitatitov3432
    @nikitatitov3432 5 ปีที่แล้ว +1

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

    • @NickLavlinsky
      @NickLavlinsky  5 ปีที่แล้ว

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

  • @sec4428
    @sec4428 3 ปีที่แล้ว

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

    • @NickLavlinsky
      @NickLavlinsky  3 ปีที่แล้ว

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

  • @Дмитрий-я4ц8ю
    @Дмитрий-я4ц8ю 2 ปีที่แล้ว

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

    • @NickLavlinsky
      @NickLavlinsky  2 ปีที่แล้ว

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

  • @valerievich1015
    @valerievich1015 4 ปีที่แล้ว

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

    • @NickLavlinsky
      @NickLavlinsky  4 ปีที่แล้ว

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

    • @valerievich1015
      @valerievich1015 4 ปีที่แล้ว

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

  • @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 8 หลายเดือนก่อน +1

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