Защита от 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
оххх вот это материал ... больше больше готовых разжованных решений ))
Всегда пожалуйста!
@@NickLavlinsky вот я как пвседо админ серверов. вобше не могу понять как это оптимизация фронтенда. Да я смотрю видео как оптимизация проектов идет и их касеки торморезки. Но вот как в пратике это выглядит ? вы пишите код? оптимизацию темы сайта делаете ? вот итересно увидить лайв как это происходить пускай оно длится хоть 5 часов ))
@@egorgorbachev На практике это выглядит так: анализ - оптимизация - измерение и так много раз по кругу.
Благодарю! Очень интересно и полезно! Качественный материал и отличные знания.
Микола Дуже дякую, за допомогу!
Благодарю от души! Супер понятно и интересно!
Спасибо. Интересный материал.
Спасибо!
Очень полезное видео, спасибо!
Николай раскажи на примере как делается оптимизация сайта вот не теорио а лайв видео работы )
Вообще-то именно об этом весть канал. По процессу оптимизации есть мысли, как-нибудь реализуем.
Николай, здравствуйте. Я столкнулся с проблемой при использовании 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.
Правильно, запросы то к вам идут от CF, его IP и блокируются. Попробуйте: nginx.org/ru/docs/http/ngx_http_limit_req_module.html#limit_req_dry_run и уже дальше из логов вытаскивать исходные IP.
Не поделитесь мануалом как сделали обработку запросов NGINX только от адресов cloudfare?
Заранее спасибо!
А если домен делегирован на cloudflare и в момент атаки переключать трафик через их сервера это поможет?
Возможно, да. Там тоже есть разные настройки. Ну и если IP уже засвечен, то можно напрямую долбить исходный сервер.
@@NickLavlinsky понял спасибо
Спасибо за видео. А ссылочки на github с демонстрируемым файлом не прилагается?
Положили: github.com/Nickmob/nginx_conf/blob/master/nginx-dos.conf
@@NickLavlinsky Спасибо!
Здравствуйте, а есть ли какой-то более продвинутый инструмент для защиты от парсинга, чтоб гибче настраивался, блокировал явных ботов, чтоб можно было посмотреть, кого он заблокировал? Есть такие на рынке? Если да, можете несколько примеров привести? Может быть даже на уровне приложения (для Laravel, например)
Да, этим занимаются сервисы защиты от DDoS-атак: Qrator, Cloudflare и т.д.
Спасибо за видео. Не совсем понятно про лимиты. Не уточняется - эти лимиты для отдельного ip адреса или в целом по системе?
Лимиты применяются по ключу, по умолчанию это IP-адрес.
а у меня стрим сервис через nginx для меня какие настройки нужны?
Насколько я гуглил, бротли компилиться под нгинкс отдельно, нету rpm готового под фёдору?
Про федору не знаю. Под дебиан что-то точно есть.
Alex, не совету, юзать федору, лучше используй debian, и только debian.
@@АнтонЯрин-о2ь ну, тут смысл такой, что у нас уже федора на серваках 15 лет стоит, и чтобы поменять на что-то надо её долго переставлять, а чтобы федору обновить раз в полгода это минут 10-20 простоя всего. Ну, и федора чаще обновляется (я думаю поэтому Николай везде убунту использует), а дебиан или центос(редхат) тормозные в этом плане, собственно сейчас редхат это поняли и будут выпускать версии центос чаще. Ну, а по поводу систем редхат/дебиан это дело вкуса, мне рх ближе. Что касается модуля бротли из ролика - я отдельно его скомпилил уже 2 года назад (см дату ролика), заменять весь штатный nginx не потребовалось. (два модуля для статики и динамики компилятся в .so и через load_module подключаются в конфиг).
Привет, есть способ или программы на заказ с защитой от атак, хочу запустить на своем выделенном домашнем сервере игру по онлайну, а чувствую,что школьники после открытия начнут заниматься фигней ну или прочие пользователи(не доброжелатели) ?
Защита от DDoS-атак только через сервисы.
@@NickLavlinsky я имел ввиду,от школьников, чтоб не засоряли интернет канал. одного роутера хватит?
В конфигурации выделено 2 зоны ltwo и highspeed, а используется только одна. Думаю конфиг как то не доработан получается.
Правильно, 2 зоны показаны для примера. Дальше уже настраиваете как вам нужно. highspeed нужна для location, где в норме бывает высокая частота запросов (например XHR).
Как настроить Limit conn zone, просто написать код Limit conn zone в nginx.confg? Или как?
Смотрите в видео, там есть конкретный пример. Отдельно настраивается зона, дальше уже используется в server или location.
А вот размер буферов..? Отмахнулись: «это не важно.». Это так уж неважно?
В этом контексте это действительно не так важно. Единственное - типичный ответ бекенда должен укладываться в proxy_buffers, иначе буферизация будет на диске.
Правильно ли я понимаю, что скорость, с которой сервер отдаёт ответ, очень важна в пассивном противодействи атаке типа дос? Оптимизация буферов на обратном прокси улучшает скорость отдачи, особенно когда для ответов нужны большие буфера, поэтому эта часть заслуживает внимания?
@@Devof-n9i В общем да, но нужно сопоставлять нагрузку, которую создаёт сам бекенд (Apache, PHP-FPM и т.д.) и ту, которую создаёт работа Nginx, обычно разница в несколько порядков. Другими словами - оптимизация буферов мало что даст.
Понял. Спасибо за ответ.
Технический директор, ты реально нуб, не компетентен до ужаса, не мог сразу сказать, что речь идёт о защите на уровне L7? Ну с целом, nginx сам по себе дырявый защитник, максимум его плюс только в режиме "чёрная дыра", и не более того.
По настройке воркерам и т.д., ты теоретик, не практик, не говори того, чего не знаешь, куча воркеров это минус, даже если у тебя миллион ядер.
Ну как бы из заголовка по L7 уже очевидно. Или ты защищаешся от L3 с помощью Nginx? По воркерам не понял, в чем минус в нескольких воркерах?
Спасибо, очень понятный гайд