Фильтрация Iptables и NAT со вторичным IP-адресом

Фильтрация Iptables и NAT со вторичным IP-адресом

У меня есть два 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

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

iptables -A ВХОД -p tcp -d 192.168.10.7 --dport 12000 -j ПРИНЯТЬ
iptables -A ВЫХОД -p tcp -s 192.168.10.7 --sport 12000 -j ПРИНЯТЬ

iptables -A ВХОД -j ОТБРОСИТЬ
iptables -A ВЫХОД -j ОТБРОСИТЬ

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