Настройка безопасности обратного прокси Nginx
Введение
Обратный прокси на базе Nginx стал стандартом для маршрутизации трафика и защиты бэкендов. Базовая конфигурация не защищает от современных угроз. Чтобы правильно настроить безопасность nginx, внедрите многоуровневый подход: шифрование, фильтрацию и контроль доступа.
Минимизация поверхности атак
Скройте служебную информацию. Отключите версию сервера и лишние заголовки. Это усложнит подбор уязвимостей.
server_tokens off;
server_name_in_redirect off;
proxy_hide_header X-Powered-By;
add_header X-Content-Type-Options nosniff always;
Настройка TLS
Используйте только TLS 1.2 и 1.3. Отключите слабые шифры, включите HSTS и OCSP-stapling.
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security "max-age=63072000" always;
Ограничение скорости
Без rate limiting сервер быстро исчерпает ресурсы. Используйте limit_req для защиты от брутфорса.
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
limit_req zone=api burst=20 nodelay;
Сравнение методов фильтрации
| Метод | Назначение | Производительность |
|---|---|---|
| limit_req | Защита от сканеров | Высокая |
| geo / map | Блокировка по IP | Средняя |
| ModSecurity | WAF и анализ | Низкая |
Интеграция с CDN
Связка Nginx с Cloudflare снимет L3/L4 атаки. Передавайте реальный IP через X-Forwarded-For для логирования и геоблокировки.
Вопрос-ответ (FAQ)
Как проверить конфигурацию?
Запустите nginx -t. При успехе примените nginx -s reload без разрыва соединений.
Влияет ли WAF на скорость?
Да, анализ payload добавляет задержку. Размещайте модуль в отдельном контейнере или используйте ускорители.
Что делать при утечке заголовков?
Добавьте proxy_hide_header для каждого заголовка. Используйте proxy_pass_request_headers off и явно укажите нужные через proxy_set_header.
Comments are closed.