Категория: Веб-сервер и инфраструктураОбновлено 2026-10-27

nginx

nginx это широко используемый веб-сервер и reverse proxy. Его безопасность сильно зависит от ручных настроек: конфигурации TLS, security headers и отключения листинга директорий.

Терминал с командами nginx: версия, модули, конфигурация и учётная запись рабочих процессов, затем безопасная перезагрузка
Пять команд, которые показывают, какой nginx у вас работает, и как применить изменение без разрыва соединений.

Почему специфичное усиление nginx имеет значение

На сайте проекта название дано как «engine x» (nginx.org), так его и произносят.

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

Часто упускаемая настройка

server_tokens, которая по умолчанию раскрывает точную версию nginx в каждом HTTP-ответе, даёт злоумышленникам преимущество в определении, какие известные уязвимости могут подойти, практически без какой-либо операционной пользы.

Защищённую конфигурацию см. здесь: руководство по безопасности nginx.

Аудит уже работающего nginx

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

nginx -v
nginx -V
nginx -T | grep -E 'server_tokens|ssl_protocols|add_header|^user'
ps -o user,pid,cmd -C nginx

-v выводит версию, -V добавляет версию компилятора и параметры сборки (какие модули встроены), а -T проверяет конфигурацию и выводит все подключённые файлы, так что один grep охватывает все include. Последняя команда показывает, от какой учётной записи работают процессы. Директива user задаёт учётные данные рабочих процессов и по умолчанию равна nobody, как указано в справочнике основного модуля. Рабочие процессы должны работать от непривилегированной записи, которой не принадлежит ничего важного. Главный процесс обычно остаётся root, чтобы занять порты 80 и 443.

Посмотрите и на версию. Сравните её с исправленными версиями на странице уведомлений безопасности nginx, где для каждой проблемы перечислены уязвимые и неуязвимые диапазоны. Свежий реальный пример разобран в материале про NGINX Rift.

Как поддерживать актуальность без простоев

На nginx.org публикуются две ветки пакетов. По странице пакетов для Linux, stable это репозиторий по умолчанию на всех платформах, а mainline для тех, кому нужен самый новый код. Репозитории дистрибутива это третий источник, поэтому выясните, из какого репозитория пришёл установленный пакет (в Debian и Ubuntu это покажет apt policy nginx), прежде чем считать, что исправление из уведомления до вас дошло. Для Debian и Ubuntu инструкция nginx.org также советует закрепление (pin) в apt, чтобы пакеты с nginx.org имели приоритет над пакетами дистрибутива.

Изменения конфигурации и обновления не должны обрывать соединения. Всегда сначала проверяйте, затем перезагружайте:

nginx -t && systemctl reload nginx

При перезагрузке главный процесс проверяет синтаксис и пытается применить новую конфигурацию. Если не получилось, он откатывается и продолжает работать со старой. Если получилось, запускаются новые рабочие процессы, а старые дообслуживают своих клиентов и завершаются, как описано в документации по управлению nginx. Храните конфигурацию в системе контроля версий, чтобы неудачное изменение откатывалось, а не расследовалось. Включите nginx в регулярный процесс установки обновлений, а по TLS, заголовкам и ограничениям пользуйтесь руководством по защите.

Связанные термины: TLS / SSL, Security headers, server_tokens, WAF, limit_req, ssl_protocols, Обратный прокси (reverse proxy), HSTS (строгая транспортная безопасность HTTP), CORS (cross-origin resource sharing).

В новостях: NGINX Rift (CVE-2026-42945) это критическое переполнение буфера 18-летней давности в модуле rewrite, исправленное в nginx 1.30.1 и 1.31.0.

Часто задаваемые вопросы

Nginx изначально более или менее безопасен, чем другие веб-серверы?

Безопасность гораздо сильнее зависит от конфигурации, чем от выбора самого веб-сервера; nginx широко используется и хорошо документирован, что делает безопасную настройку сравнительно простой.

Обрабатывает ли nginx TLS/SSL напрямую?

Да, nginx часто настраивают на самостоятельную терминацию TLS, обработку шифрования и проверку сертификата до передачи открытого трафика приложению за ним.

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

Отключение server_tokens и добавление стандартных security headers, обе настройки занимают минуты и заметно снижают объём информации, доступной злоумышленнику.

Как узнать, какая версия nginx и какие модули у меня работают?

Выполните nginx -v для версии и nginx -V для версии с версией компилятора и параметрами сборки, по которым видно встроенные модули. Сравните версию со страницей уведомлений безопасности nginx.

Безопасно ли перезагружать nginx на работающем сервере?

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

Хотите увидеть, в каком состоянии ваш сервер?

Запустите бесплатную read-only проверку сервера или откройте Security Lab и посмотрите цикл обнаружение, сдерживание, восстановление, проверка в действии.

Получить бесплатную проверку сервераОткрыть Security Lab