Создание «белого списка» IP-адресов для iptables

Создание «белого списка» IP-адресов для iptables

Я использую сотовый модем/маршрутизатор с iptables. Также есть неуклюжий веб-интерфейс, который позволяет выполнять простые настройки, например, включение WAN ICMP/HTTPS/SSH. Я определенно не хочу, чтобы эти порты были широко распахнуты и открыты для общего доступа. Но я хотел бы иметь удаленный доступ к управлению этим устройством из заранее определенного белого списка адресов. Возможно, существует до 10 адресов, и некоторые из них являются диапазонами IP/подсетями. Я протестировал это с одним адресом с правилом типа

-A HTTPS_WAN_INPUT -i ppp0 -s x.x.x.x -p tcp -m tcp --dport 443 -j ACCEPT

Но перспектива писать такие правила 10 раз и для каждого порта/протокола кажется неуклюжей, поэтому я пишу, чтобы посмотреть, есть ли лучший способ сделать это? Могу ли я создать переменную $WHITELIST, которая содержит все адреса, и использовать ее в -s? Или я могу применить белый список к чему-то более высокому по цепочке, например, к одной из политик?

Я просто пытаюсь понять, есть ли более элегантный способ разрешить удаленный доступ к набору IP-адресов, не прописывая 10 разных строк для каждого правила.

решение1

У вас действительно есть только 2 варианта (или комбинация)... но один немного более рискованный, чем другой. Имейте в виду, что поле srcтакже принимает подсети.. например, 192.168.1.0/24.

Первый,Есливаш iptables/ядро собрано с iprangeмодулем, вы можете использовать его для указания диапазона IP-адресов вместо просто 1-2... но вы не можете предоставить "список" IP-адресов. Пример:

-A HTTPS_WAN_INPUT -i ppp0 -m iprange --src-range x.x.x.x-y.y.y.y -p tcp -m tcp --dport 443 -j ACCEPT

Во-вторых, вы можете настроить новую конкретную цель, включая «белый список» IP-адресов, просто чтобы все было чисто. Пример:

iptables -N RemoteManagement
iptables -P RemoteManagement DROP
iptables -A -A HTTPS_WAN_INPUT -i ppp0 -p tcp -m tcp --dport 443 -j RemoteManagement

... и для каждого IP-адреса, который вы хотите разрешить...

iptables -I RemoteManagement -s x.x.x.x -j ACCEPT

Это позволяет вам сохранять ваши правила немного чище и иметь возможность просто удалять IP-адреса/добавлять IP-адреса по мере необходимости. Конечно, если у вас есть iprangeдоступный модуль, вы также можете указать диапазоны в цепочке RemoteManagement. Вы также можете повторно использовать эту же цепочку в других сценариях, где она применяется.

Связанный контент