Как заблокировать IP-адрес в NGINX

Иногда вам может понадобиться заблокировать IP-адреса, чтобы защитить свой сайт от вредоносных атак, таких как DOS и DDOS. Вот как легко заблокировать IP-адрес в NGINX, чтобы ограничить IP-адреса или заблокировать доступ. Вы можете использовать эти шаги для блокировки/разрешения IP-адресов в NGINX.

Как заблокировать IP-адрес в NGINX

Здесь описаны шаги по блокировке IP-адресов в NGINX.

Вы можете легко заблокировать IP-адреса, подсети и диапазоны IP-адресов с помощью директивы deny. Аналогично, вы можете разрешить IP-адреса, подсети и диапазоны IP-адресов с помощью директивы allow. Директивы deny и allow можно размещать в контексте http, сервера или местоположения. Можно даже использовать комбинацию директив deny и allow.

Мы рассмотрим каждый из этих вариантов использования отдельно.

Откройте файл конфигурации NGINX

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

Если вы настроили отдельные виртуальные хосты для вашего сайта (например, www.website.com), например, /etc/nginx/sites-enabled/website.conf, то откройте его конфигурацию следующей командой

Блокировка IP-адреса в NGINX

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

Приведенные выше строки заставят NGINX запретить IP 12.34.56.21.

Блокировка IP-адреса в NGINX для веб-сайта или домена

Добавьте приведенные выше строки в любой из блоков http, server или location /, как показано ниже

Блокировка IP-адреса в NGINX для субдомена

Допустим, у вас есть два поддомена (blog.website.com и articles.website.com) с их конфигурационными файлами NGINX по адресам /etc/nginx/sites-enabled/blog.conf и /etc/nginx/sites-enabled/articles.conf.

Если вы хотите заблокировать IP-адрес в NGINX только для 1 поддомена (например, blog.website.com), поместите вышеупомянутую строку в файл blog.conf этого поддомена

Если вы хотите заблокировать IP-адреса в обоих поддоменах, то добавьте строку в файлы blog.conf и articles.conf.

Блокировка диапазона IP-адресов в NGINX

Если вы хотите разрешить диапазон IP-адресов, например 45.43.23.0 - 45.43.23.255, то используйте формат CIDR для вашего диапазона IP-адресов, поскольку NGINX принимает только IP-адреса и форматы CIDR. Вы можете получить CIDR для вашего диапазона IP-адресов с помощью инструментов преобразования IP в CIDR.

Блокировка IP-адреса в NGINX для URL

Если вы хотите заблокировать IP-адрес только для одного URL (например, /accounts/login), добавьте приведенную выше директиву deny в блок location этого URL.

Блокировка нескольких IP-адресов в NGINX

Если вы хотите заблокировать несколько IP-адресов в NGINX, чтобы ограничить доступ к нескольким IP-адресам, просто добавьте несколько директив deny, как показано ниже, по одной на каждый IP

Приведенный выше код заблокирует IP-адреса 45.43.23.21 и 44.23.13.10 и разрешит другие.

Вы также можете объединить диапазоны IP-адресов и CIDR, как показано ниже

Перезапустите NGINX

Наконец, выполните следующую команду, чтобы проверить синтаксис обновленного файла конфигурации.

Если ошибок нет, выполните следующую команду для перезапуска сервера NGINX.

или

Вот и все! Теперь NGINX будет блокировать доступ к тем IP-адресам и диапазонам, которые указаны в вашем конфигурационном файле.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий