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

24 Сентября 2021

NGINX статьяЗащита сервера от DDoS-атак – это целый комплекс мер на стыке компьютерной безопасности, системного администрирования и даже программирования. Главная задача такого комплекса заключается в предотвращении атак и минимизации их возможных последствий. Одной из популярных программ для поддержания безопасности системы и защиты от DDoS сегодня является Nginx. Сервис достаточно простой в использовании, но его главное преимущество – возможность использования в инфраструктурах различного типа. Разберемся, как работает инструмент и что потребуется учесть при его применении.

Что обозначает аббревиатура DDoS

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

Во время DDoS-атаки происходит попытка полностью занять интернет-канал, поэтому запросы посылаются из множества взломанных систем. В результате истощаются ресурсы ОЗУ, что приводит к выходу инфраструктуры из строя и прерыванию важных бизнес-процессов.

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

ДДоС-атаки молниеносны и в большинстве случаев длятся не более суток. Однако иногда встречаются и более длительные DDoS с продолжительностью до одного месяца.

Многие компании при построении ИТ-инфраструктуры большое значению уделяют безопасности сети и предпринимают дополнительные меры для защиты от возможных распределенных атак. Используется комплексная ИТ-среда, сочетающая несколько программных средств и инструментов. И нередко частью такой системы становится Nginx.

Удаленный офис
и онлайн-продажи
За 1 день.
С бесплатным тестовым периодом.
Конфигуратор удаленных рабочих мест
Рабочие места для команды за 1 день

Описание инструмента

Nginx, или engine x, представляет собой HTTP-сервер, обратный прокси-сервер и почтовый прокси-сервер, который был разработан И. Сысоевым в 2004 году. Этот инструмент активно применяется для высоконагруженных серверов, включая сайты Mail.Ru, «ВКонтакте» и «Яндекс». Согласно статистическим данным, сервер используется практически для 23% нагруженных сайтов по всему миру. Функционал успешно внедрен даже на таких зарубежных ресурсах, как Dropbox и Netflix.

Если говорить о функционале HTTP-сервера, то он включает следующее:

  • Обслуживание статических запросов и индексных файлов.
  • Поддержка SSL.
  • Ограничение скорости ответов.
  • Настройка отдельных форматов для логов.
  • Выполнение A/B-тестирования.
  • Контроль за количеством одновременных соединений и запросов с одного IP-адреса.
  • Распределение нагрузок и обеспечение отказоустойчивости системы.
  • Ограничение доступ по адресу клиента.
  • Определение геолокации по IP-адресу.
  • Использование методов PUT, MOVE, DELETE, COPY.
  • Зеркалирование запросов.
  • Поддержка FastCGI.
  • Обратное проксирование с кэшированием.
  • Использование модульности и фильтров.
  • Проверка HTTP-referer.

Кроме этого, engine x сочетает в себе функционал обратного и почтового прокси-серверов. В частности, инструмент позволяет перенаправлять пользователя на IMAP- или POP3-сервер, применяет различные методы аутентификации и ограничивает доступ с учетом адреса клиента.

Nginx определяет главный и несколько рабочих процессов, отличается гибкостью конфигурации и позволяет изменять настройки без прерывания обслуживания клиентов. Инструмент поддерживает различные accept-фильтры, файловый AIO и sendfile, позволяет выполнять минимум операций копирования данных во время использования.

Настройка сервера

ddos-3.jpgИспользование сервера предполагает ряд настроек. Первое, что нужно выполнить, это запретить доступ устройств по IP-адресу, а не домену сайта. Кроме этого, нужно установить лимит обращений, так как именно этот параметр позволяет отделить обычных пользователей от злоумышленников.

Чтобы защититься от ДДоС, стоит использовать несколько решений в связке. Например, engine x часто сочетают с Lua. Это позволяет упростить процесс замены скриптов и отказаться от предварительной компиляции при помощи сервера.

При настройке решения на сервере стоит уделить внимание еще нескольким моментам:

  • Использование так называемых словарей. Они необходимы для создания черного и белого списка IP-адресов. Это позволит в будущем распознавать вероятную атаку и блокировать подозрительные действия.
  • Применение скриптов. Потребуется дополнительно задать набор действий, выполняемых при соответствии адреса, приславшего запрос, адресу из черного или белого списка.
  • Использование операнды. Это позволит задействовать скрипт, не производя повторную настройку при перезапуске сервера.

Подготовка к балансировке нагрузки

Использование бэкенд-системы обычно оказывает небольшие нагрузки на сервер. Несмотря на то, что нагрузки незначительны, к ним потребуется дополнительная подготовка.

Лучше всего начать проектирование балансировщика на базе engine x заранее – до того момента, когда реально потребуется его использование. В момент ДДоС-атак вы столкнетесь с повышенной нагрузкой на сайт, а такой повышенный рост спроса со стороны пользователей может привести к мгновенному падению сервера.

Предварительная настройка балансировщика позволит справиться с ростом трафика. Это будет полезно не только во время атак, но и в моменты пиковых нагрузок. Если ваша ИТ-инфраструктура развернута в облачной среде, то подключить балансировщик будет проще простого.

Настройка кэширования

настройка кэшированияБольшая часть нагрузок на сервер подразумевает обслуживание похожих запросов. Их содержимое практически одинаковое и изменяется за редким исключением. Однако выдача стандартизированных заголовков, файлов и форм загружает сервер, тогда как такой нагрузки можно легко избежать.

Поэтому при настройке Nginx рекомендуется использовать жесткую политику кэширования. Применяется кэширование на уровне сервера и на уровне клиента, что позволяет создавать копии статического HTML-контента и снизить нагрузки на сервер.

Таким образом, защита Nginx от DDoS-атаки будет более эффективной, так как настройки кэша помогут снизить рутинные нагрузки и освободить процессорные мощности. Это поможет системе продержаться под возможными атаками и даст время для устранения проблемы безопасности.

Борьба с медленными соединениями

При использовании engine x особое внимание стоит уделить так называемым медленным запросам. Именно их часто используют для проведения ДДоС – такие запросы загружают сервер дополнительной работой, что не позволяет обрабатывать запросы от реальных пользователей.

Инструмент позволяет выставить тайм-ауты, которые автоматически разрывают слишком долгие соединения.

Ограничение числа коннектов

В ряде ИТ-инфраструктур присутствуют компоненты, чувствительные к повышенным нагрузкам. Если в вашей системе есть такие элементы, то лучше ограничить для них максимальное количество соединений. Например, такая настройка часто используется для сервисов перевода денежных средств в банковской системе или в различных инструментах оплаты.

Проксирование запросов

Еще одно важное свойство Nginx – это возможность проксирования запросов на другие серверы. Такая функция может потребоваться при масштабировании или защите бэкенд-серверов. Для настройки потребуется запустить back-end сервер в контейнере, после чего открыть файл виртуального хоста и изменить настройки блока location.

Выводы

Основная опасность ДДоС-атак заключается в применении специального ПО. Благодаря этому злоумышленники могут отправить множество вредоносных запросов даже с обычного ПК, тем самым подвергнув опасности инфраструктуру крупной корпорации или небольшой фирмы.

Сервер engine x является одним из самых доступных решений для защиты от DDoS, однако его использование требует работы со скриптами и операндами. А это – знание хотя бы одного языка программирования и понимание логики работы технологий.

Если вы не знаете, как произвести настройку программы, или хотите подробнее узнать, как работает Nginx, то специалисты нашего дата-центра Xelent готовы ответить на любые вопросы. Оставьте заявку на нашем сайте и мы с вами свяжемся!

Популярные услуги
Получить консультацию специалиста
Персональный ассистент
Cloud.Xelent