У меня есть два IP-адреса на моем физическом интерфейсе eth. Скажем, 192.168.10.7 (eth0:0) и 192.168.0.7 (eth0). Так что это работает. Но я использую приложение, работающее только на одном из этих адресов на порте 12000. В этом приложении он настроен для работы по адресу 192.168.0.7. Я настроил приложение для работы также по адресу 192.168.10.7, используя iptables, таким образом:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -d 192.168.10.7 --dport 12000 -j DNAT --to 192.168.0.7:12000

Теперь я хочу заблокировать весь входящий трафик на IP-адрес 192.168.10.7 (интерфейс eth0:0), кроме порта 12000. Весь остальной трафик должен быть неизменным. Я не эксперт Iptables. Кто-нибудь может мне помочь?

1 ответ1

0

предполагая, что ваше правило iptables работает на одной машине с вашим приложением, вы должны определить правило для приема входящих и исходящих пакетов на адрес и порт приложения, а затем просто отбросить все остальное, это выглядит так:

iptables -A INPUT -p tcp -d 192.168.10.7 --dport 12000 -j ПРИНЯТЬ
iptables -A OUTPUT -p tcp -s 192.168.10.7 --sport 12000 -j ПРИНЯТЬ

iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .