Как предотвратить DDoS-атаку на Nginx с помощью усиления ⋆ ALexHost SRL

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
08.11.2024

Как предотвратить DDoS-атаку на Nginx с помощью усиления

Как предотвратить ddos-атаку на Nginx

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

Alexhost предлагает бесплатную защиту от DDoS-атак, вы можете использовать наши VPS-серверы или выделенные серверы, мы предлагаем бесплатную защиту от DDoS-атак, однако возможности смягчения, методы, фильтрация будут отличаться в зависимости от выбранного вами местоположения.

Требования:
Nginx (необходимо, чтобы Nginx был установлен на вашем текущем сервере)
Некоторые знания (необходимо знать, как использовать основные команды Linux и как получить доступ к некоторым файлам Nginx, ожидается наличие ноу-хау)
VPS-сервер или выделенный сервер (вы можете использовать виртуальную машину на вашем локальном хосте)
DDoS-защита (от вашего хостинг-провайдера, чтобы иметь возможность противостоять более сложным DDoS-атакам)
Linux (любой дистрибутив, на который можно установить Nginx)
Nginx (вам может понадобиться прочитать их документацию по Nginx, чтобы протестировать и проверить, все ли еще надежно)

Ограничения: Этот учебник не является “пуленепробиваемым” средством защиты от всех DDoS-атак, он, вероятно, ограничит атаку, блокируя определенные типы атак, и поможет вашему серверу быть онлайн. Существуют некоторые ограничения против некоторых DDoS-атак, вам нужно, чтобы ваш хостинг-провайдер предлагал какую-то DDoS-защиту, чтобы блокировать и предотвращать, эта конфигурация не может защитить от всех атак на ваш сервер. Эта конфигурация предотвращает и блокирует некоторые атаки, но она не сможет блокировать все атаки без DDoS-защиты от вашего хостинга.

Внимание: Alexhost не рекомендует вам использовать эту конфигурацию на вашем рабочем сервере, мы рекомендуем протестировать ее, прежде чем что-либо делать. Alexhost не несет ответственности за любые проблемы, которые могут возникнуть или нет. Придерживайтесь хорошей безопасности сервера, перед тем как что-то делать, создайте резервную копию на случай, если вам понадобится восстановление. Пожалуйста, прочитайте документацию Nginx по защите от DDoS, чтобы понять, как она работает.

Предотвращение DDoS-атак с помощью усиления Nginx

Настройка Nginx для защиты от DDoS-атак и укрепление против распространенных уровней атак включает в себя реализацию различных стратегий для смягчения и предотвращения атак. Вот руководство по настройке Nginx для повышения безопасности и изучения Как предотвратить ddos-атаку на nginx с помощью усиления вашего веб-сервера:

  1. Обновите Nginx: Убедитесь, что вы используете последнюю стабильную версию Nginx, чтобы воспользоваться последними исправлениями и улучшениями безопасности.
  2. Ограничьте количество подключений: Используйте модуль limit_conn, чтобы ограничить количество соединений с одного IP-адреса. Это поможет предотвратить DDoS-атаки, чтобы не перегружать ваш сервер слишком большим количеством одновременных соединений.
http { limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=1r/s; сервер { limit_req zone=req_limit_per_ip burst=5; # Другие конфигурации сервера... } }

Белые/черные списки IP-адресов: Используйте директивы allow и deny для составления белого списка доверенных IP-адресов и блокирования вредоносных.
nginx

http { # Белый список доверенных IP-адресов разрешить 192.168.1.0/24; запретить все; # Другие конфигурации сервера... }

Внедрите брандмауэр веб-приложений (WAF): Используйте сторонние модули, такие как ModSecurity, с Nginx для обнаружения и блокирования вредоносного HTTP-трафика.

Включите HTTPS: шифруйте связь между клиентами и сервером с помощью HTTPS, чтобы предотвратить перехват данных и атаки “человек посередине”.

Отключить неиспользуемые модули: Отключите ненужные модули Nginx, чтобы уменьшить площадь атаки и повысить производительность.
nginx

./configure --without-http_autoindex_module --without-http_ssi_module
  1. Настройка конфигурации Nginx: Оптимизируйте параметры конфигурации Nginx, такие как рабочие процессы, рабочие соединения и таймауты, исходя из аппаратных возможностей вашего сервера и ожидаемого трафика.
  2. Мониторинг и ведение журналов: Регулярно отслеживайте журналы сервера на предмет подозрительной активности и настройте системы оповещения, чтобы уведомлять администраторов о потенциальных атаках.
  3. Внедрение служб защиты от DDOS: Рассмотрите возможность использования специализированных сервисов или устройств защиты от DDoS перед Nginx, таких как Cloudflare, AWS Shield или Akamai.
  4. Регулярное резервное копирование: Обеспечьте регулярное резервное копирование критически важных данных, чтобы свести к минимуму последствия успешных атак.

Помните, что безопасность – это постоянный процесс, и очень важно быть в курсе последних практик и угроз безопасности, чтобы эффективно защитить свой сервер от потенциальных атак.

Настройка ddos-защиты Nginx:

#Определите зону для отслеживания соединений с каждого IP

http { limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m; # Определите зону для отслеживания запросов с каждого IP limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=10r/s; сервер { listen 80; server_name example.com; # Ограничение скорости запросов limit_req zone=req_limit_per_ip burst=20; # Ограничение максимального количества соединений с одного IP limit_conn conn_limit_per_ip 20; # Запрещаем запросы с большим телом запроса для защиты от некоторых типов атак client_body_buffer_size 1k; client_header_buffer_size 1k; client_max_body_size 1k; large_client_header_buffers 2 1k; # Включите сжатие Gzip для экономии полосы пропускания gzip on; gzip_comp_level 5; gzip_min_length 256; gzip_proxied any; gzip_vary on; # Добавьте заголовки безопасности для повышения уровня безопасности add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; add_header X-Frame-Options "SAMEORIGIN"; add_header Referrer-Policy "same-origin"; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; # Блокируем общие уязвимые агенты пользователей if ($http_user_agent ~* (wget|curl) ) { return 403; } # Блокируем доступ к скрытым файлам location ~ /\. { запретить все; } # Блокировать доступ к определенным типам файлов location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|\.php_ { запретить все; return 403; } # Внесите свой IP в белый список для административного доступа location /admin { allow your_admin_ip; запретить все; } # Запретите доступ к определенным каталогам location ~ /(system|vendor) { запретить все; return 403; } # Передавайте запросы через прокси-сервер на ваш сервер приложений location / { proxy_pass http://your_backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } }

Эта конфигурация делает следующее:

  1. Ограничение скорости: Ограничивает количество запросов с каждого IP-адреса до 10 запросов в секунду с всплеском в 20 запросов.
  2. Ограничение соединений: Ограничивает максимальное количество соединений с каждого IP-адреса до 20.
  3. Ограничение размера тела запроса: Ограничивает размер тел запросов для защиты от атак, посылающих большие тела запросов.
  4. Gzip Compression: Включает сжатие gzip для экономии пропускной способности.
  5. Заголовки безопасности: Добавляет заголовки безопасности для повышения уровня безопасности.
  6. Блокировка уязвимых пользователей-агентов: Блокирует запросы от распространенных уязвимых User-Agents.
  7. Блокировка скрытых файлов: Блокирует доступ к скрытым файлам и каталогам.
  8. Белые списки доступа администратора: Разрешает доступ к области администратора только с вашего IP-адреса.
  9. Запрет доступа к определенным каталогам: Блокирует доступ к таким конфиденциальным каталогам, как system и vendor.
  10. Прокси-проход: Перенаправляет запросы на ваш сервер приложений.

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

Приведенная конфигурация предназначена для добавления в файл nginx.conf или включения в отдельные файлы конфигурации. Вот пошаговое руководство по добавлению конфигурации:

  1. Найдите файлnginx.conf: В зависимости от установки Nginx, файл nginx.conf может находиться в разных каталогах. Обычно это /etc/nginx/nginx.conf, /usr/local/nginx/conf/nginx.conf или /etc/nginx/sites-available/default.
  2. Откройте файлnginx.conf: Вы можете открыть файл с помощью текстового редактора или текстового редактора командной строки, например nano, vim или emacs.
  3. Добавьте конфигурацию в блокhttp: Внутри блока http, который определяет настройки HTTP-сервера, вы добавите предоставленную конфигурацию. Обычно блок http находится в верхней части файла nginx.conf.
  4. Вставьте предоставленную конфигурацию: Вставьте всю предоставленную ранее конфигурацию в блок http. Убедитесь, что вы заменили значения placeholder, такие как example.com, your_admin_ip и your_backend_server, на реальные значения.
  5. Сохраните и выйдите из файла: После добавления конфигурации сохраните файл nginx.conf и выйдите из текстового редактора.
  6. Проверьте конфигурацию Nginx: Перед перезапуском Nginx рекомендуется проверить конфигурацию на наличие синтаксических ошибок.
  7. Это можно сделать, выполнив следующую команду:
    nginx -t

Если синтаксических ошибок нет, вы увидите сообщение об успешной проверке файла конфигурации.

Перезапустите Nginx: Наконец, перезапустите Nginx, чтобы применить изменения. Это можно сделать с помощью следующей команды:

sudo service nginx restart

  1. Если вы не используете систему с systemd, вы можете использовать другие команды для перезапуска Nginx.

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

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills