iptables -t filter -A OUTPUT -d 1.2.3.4 -j DROP
iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner abc -j DNAT --to 127.0.0.1:121
Первое правило не работает, потому что оно обработано до фильтрации. Есть ли способ обойти это?
Вам не нужно ничего фильтровать перед DNAT. Вы задаете неправильный вопрос.
Вы должны взглянуть на человек iptables-extension особенно модуль conntrack
со своими вариантами --ctstate DNAT
, --ctorigdst
, и --ctorigdstport
.
iptables -t nat -A OUTPUT -d 1.2.3.4 -j ACCEPT
iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner abc -j DNAT --to 127.0.0.1:121