В мире управления веб-серверами существует множество проблем, связанных с безопасностью.
Среди них – необходимость ограничения доступа к определенным методам HTTP на сервере для предотвращения возможных несанкционированных действий.
В этой статье мы рассмотрим тонкости настройки веб-сервера Nginx на разрешение доступа только к методам GET и POST, которые являются наиболее распространенными методами HTTP для веб-приложений.
Прежде чем начать, необходимо понять, что такое методы GET и POST.
Метод GET получает данные с указанного ресурса, а метод POST отправляет данные для обработки на указанный ресурс.
🌐 Nginx или Apache: Сравнение двух ведущих веб-серверов
Ранее мы рассмотрели этот же кейс с Apache.
Теперь перейдем к пошаговому руководству.
Шаг 1: Установка Nginx
Если на вашем сервере еще не установлен Nginx, то первым шагом будет его установка.
Для сервера на базе Ubuntu достаточно выполнить следующие команды:
После установки убедитесь, что Nginx запущен, набрав:
Шаг 2: Создание или редактирование серверного блока
Для ограничения методов HTTP необходимо отредактировать конфигурацию того серверного блока, который требуется изменить.
Обычно он находится в файле /etc/nginx/sites-available/.
Для данного примера предположим, что у вас есть файл серверного блока с именем yourdomain.com.
Откройте его с помощью текстового редактора:
Шаг 3: Разрешение только методов GET и POST
Открыв конфигурационный файл, необходимо добавить или изменить блок location в блоке server.
В блоке location добавьте директиву if для проверки запросов, не использующих метод GET или POST, и возврата статуса ‘405 Not Allowed’.
Вот пример того, как это можно сделать:
Шаг 4: Проверка конфигурации
Если конфигурация верна, то вы увидите вывод, подобный этому:
nginx: configuration file /etc/nginx/nginx.conf test is successful
Шаг 5: Перезагрузка Nginx
Убедившись в правильности конфигурации, можно применить изменения, перезагрузив Nginx:
Теперь ваш сервер Nginx должен разрешать только методы GET и POST.
Заключение
В этом руководстве было показано, как ограничить HTTP-методы в Nginx, разрешив только GET и POST.
Это простой и эффективный способ повысить безопасность вашего сервера, предотвратив выполнение нежелательных действий.
Помните, что лучшие стратегии безопасности предполагают многоуровневый подход, и это лишь один из аспектов усиления безопасности вашего веб-сервера.
см. также:
- 🔐 Как отключить TLS 1.0 и TLS 1.1 на сервере Nginx?
- 🌐 Настройка производительности и безопасности Nginx
- 🚀 Обзор лучших инструментов кэширования с открытым исходным кодом для Linux в 2023 году
- 🖧 Основные номера сетевых портов на Linux
- 🐧 20 полезных функций и инструментов безопасности для администраторов Linux
- 🌐 Как парсить логи WAF ModSecurity?
Почему так, а не испольуя встроенный модуль?
limit_except GET POST { deny all; } # ограничить методы HTTP кроме указанных