Страницы

Поиск по вопросам

суббота, 7 декабря 2019 г.

Белый список для 80 порта

#linux #ubuntu #nginx #iptables


Как можно сделать белый список для n (около 300 и в планах вырастит до 700) числа
ip адресов к 80 порту? 

Информация о сервере:
Ubuntu v16.04.1 (Linux v4.4.0-31) и Nginx v1.11.3 
    


Ответы

Ответ 1



Нужно добавить в конфигурацию виртуального хоста примерно следующие строки, если вы хотите это сделать через NGINX location / { allow 100.23.45.14; ## IP которому нужно разрешить доступ allow 100.23.45.15; ## IP которому нужно разрешить доступ deny all; } Если хотите сделать это через Iptables, то вам требуется прописать следующие строки: iptables -I INPUT -s -p tcp --dport 80 -i eth0 -j ACCEPT iptables -A INPUT -j DROP -p tcp -i eth0 --dport 80 Первую строку нужно повторять столько раз, сколько нужно добавить IP в список разрешенных. Рассмотрим параметры iptables: I: Вставка правила в начало A: Вставить правило в конец s: IP-адрес источника j: Выполнить действие, если пакету соответствует текущее правило (ACCEPT принять пакет, DROP блокирование пакета) p: Протокол dport: Порт, через который ожидается пакет i: Интерфейс

Ответ 2



Допишу как отдельный ответ, я его уже дал в комментариях к предыдущему ответу, просто форматирование теряется в комментариях. Во-первых, для nginx нужно выделить все allow в отдельный файл -- чтобы не захламлять конфиг-файл и улучшить читаемость. location / { include whitelist.txt; } Файл whitelist.txt: allow 100.23.45.14; allow 100.23.45.15; deny all; Во-вторых, проскальзывало в комментариях про большое количество хостов: не забывайте, что nginx (в отличие от apache, который до сих пор не умеет, позор!) понимает подсети: # Rostelecom provider, Belgorod allow 213.24.126.0/24; deny all;

Ответ 3



Для белого списка использовал ipset + iptables Создаем 2 новые списков: ipset -N whitelist iphash # Для адресов ipset -N whitelist_net nethash # Для сетей Добавить новые адреса в whitelist: ipset -A whitelist 100.23.45.14 ipset -A whitelist_net 100.23.45.0/24 Создается правило для использования списков: iptables -A INPUT -m set --match-set whitelist src -p tcp --dport 80 -j ACCEPT iptables -A INPUT -m set --match-set whitelist_net src -p tcp --dport 80 -j ACCEPT и закрываем 80: iptables -A INPUT -j DROP -p tcp --dport 80 Дополнительная информация: https://habrahabr.ru/post/108691/

Комментариев нет:

Отправить комментарий