Как разрешить с помощью Iptables все порты только для локальных IP-адресов, за исключением двух определенных портов

Как разрешить с помощью Iptables все порты только для локальных IP-адресов, за исключением двух определенных портов

Я ищу способ разрешить соединения на всех портах на моем сервере Debian только для локального IP (192.168.2.*), за исключением двух определенных портов X и Y, которые должны быть разрешены для любого IP. Если IP не локальный, все соединения на все порты, за исключением портов X и Y, должны быть заблокированы.

Как мне справиться с этой ситуацией с помощью Iptables?

решение1

Я не уверен, правильно ли я вас понял, но вот как это сделать.

Чтобы разрешить все порты для локального диапазона IP-адресов 192.168.2.0/24, за исключением двух портов (X и Y), можно использовать такое правило:

iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport X -j DROP
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport Y -j DROP
iptables -A INPUT -s 192.168.2.0/24 -p tcp -j ACCEPT

Для других нелокальных IP-адресов, разрешите подключения ТОЛЬКО к X и Y, вы можете использовать:

iptables -A INPUT -p tcp --dport X -j ACCEPT
iptables -A INPUT -p tcp --dport Y -j ACCEPT
iptables -A INPUT -p tcp -j DROP

Вы не указали протокол (TCP или UDP), и я предполагаю TCP, как ясно выше. Вам нужно вставить правила в этом конкретном порядке, и я предполагаю, что нет других предопределенных правил.

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