Как контролировать доступ по IP адресу клиента в NGINX

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

В этой статье предполагается, что у вас установлен и запущен веб-сервер NGINX, если нет,то ознакомьтесь с этими руководствами:

Управление доступом на основе IP-адреса клиента в NGINX

Модуль ngx_http_access_module в NGINX позволяет ограничить доступ к определенным IP-адресам клиента. Вы можете активировать его с помощью директив allow и deny.

Директива allow, как следует из названия, разрешает доступ для определенного IP-адреса, сети, сокета или всех. Директива deny запрещает доступ для определенного IP-адреса, сети, сокета Unix или всех.

Обе директивы действительны в контексте HTTP, server, location, а также limit_except. Вот пример использования директив allow и deny в контексте местоположения для ограничения доступа к службе API:

upstream app_api {
keepalive 100;
server 10.1.1.50:5000;
server 10.1.1.71:5001;
}
server {
listen 80;
server_name _;
access_log /var/log/nginx/app_api_access.log main;
error_log /var/log/nginx/app_api_error.log debug;
root /usr/share/nginx/html/;
location / {
try_files $uri /api;
}
location /api {
proxy_read_timeout 3600;
proxy_connect_timeout 3600s;
keepalive_timeout 15;
send_timeout 300;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass http://app_api$request_uri;
#list of allowed IPs to access API
allow 10.10.10.20;
allow 10.10.40.29;
allow 192.168.2.23;
allow 192.168.10.0/24;
deny all;
}
}

В приведенном выше примере любой запрос на доступ к любой из проксированных конечных точек API разрешен только для IP-адресов 10.10.10.2010.10.40.29192.168.2.23 и любого из них в сети 192.168.10.0/24. Запросы с любого другого IP-адреса или сетевого или UNIX-доменного сокета будут отклонены.

NGINX ответит клиенту ошибкой 403, как показано на рисунке.

Ошибка Nginx 403 Forbidden
Ошибка Nginx 403 Forbidden

Когда вы проверяете журнал ошибок /var/log/nginx/app_api_error.log, вы найдете записи, подобные тем, которые показаны на следующем скриншоте:

# cat /var/log/nginx/app_api_error.log debug

Проверка журналов ошибок Nginx
Проверка журналов ошибок Nginx

Ну вот в принципе и все, небольшая заметка безопасности вам в копилочку.

Понравилась статья?

Помогите Setiwik.ru создавать больше глубоких обзоров и новостей. Один клик и ваш вклад помогает держать серверы включёнными и авторов мотивированными!

Спасибо, что вы с нами!

Nazario

Я Назар. Уже больше десяти лет я работаю с Linux и Windows системами каждый день. Это моя основная профессия и большая часть жизни.
Всё, что ты читаешь на Setiwik.ru, начинается с официальной документации, мануалов и технических спецификаций. Я их изучаю очень внимательно. Но ценность статей появляется именно тогда, когда я беру эту базу и пропускаю через десятки реальных ситуаций: ночные аварии, странные баги, которые не гуглятся с первого раза, выстраданные конфиги и проверенные обходные пути.
Я не обещаю истину в последней инстанции. Но если мой опыт поможет тебе сэкономить хотя бы пару часов нервов и перезагрузок, значит всё это было не зря. Здесь только практика: от тонкой настройки серверов до самых неожиданных ситуаций, которые официальные руководства обычно обходят стороной.
Setiwik.ru это место, где IT становится понятнее и спокойнее. Заходи почаще. Будем разбираться вместе.

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

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

Подробности здесь: novoross-it.ru

Практические инструкции по Windows и Linux
Добавить комментарий