Я нашел следующую диаграмму iptables: Как пакет проходит по таблицам iptables, когда пакет отправляется от одного локального процесса другому локальному процессу?
С уважением.
Пакет будет проходить через левую часть диаграммы. Пакеты обрабатываются цепочками пересылки только тогда, когда они получены от внешнего источника и не предназначены для адреса на локальном компьютере (и, конечно же, у вас включен ip_forward).
При написании правил, влияющих на локальные процессы, меня интересует то, что даже если вы отправляете TCP-соединение на IP-адрес интерфейса Ethernet (скажем, eth0), оно будет отправляться в устройство обратной связи и из него. Таким образом, следующее правило не остановит локальные процессы от подключения к порту 4000 по адресу, связанному с eth0.
iptables -A INPUT -i eth0 -p tcp --dport 4000 -j REJECT
Так же, как следующее правило остановит подключение локальных процессов к порту 4000 только на адресе, привязанном к eth0, но не от других хостов:
iptables -A INPUT -i lo -p tcp --dport 4000 -j REJECT
Конечно, это спорный вопрос, если процесс прослушивает 0.0.0.0, так как вы можете просто подключиться к 127.0.0.1 :-)