Всем доброго времени суток. Долго мучался с проблемой проброса портов host-kvm на виртуальную машину через firewall-cmd, и спустя много, очень много времени, я осилил данную задачу. Но, как всегда есть но.
Сами правила я прописываю через firewall-cmd --direct. Правила на FORWARD попадают автоматически в FORWARD_direct, в PREROUTING аналогично. FORWARD_direct записывается правилом в цепочке FORWARD, аналогично с PREROUTING. И вот тут образуется проблема.
Правило FORWARD_direct записывается далеко не первым в списке цепочки FORWARD, изменить положение можно с помощью --direct --passthrough, но после firewall-cmd --reload данная запись пропадает.
Как можно перманентно изменить положение правила в цепочке через firewall-cmd?
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 1 -o virbr0 -d 192.168.122.100 -j ACCEPT
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 247 62803 ACCEPT all — any virbr0 anywhere 192.168.122.0/24 ctstate RELATED,ESTABLISHED
2 130M 10G ACCEPT all — virbr0 any 192.168.122.0/24 anywhere
3 0 0 ACCEPT all — virbr0 virbr0 anywhere anywhere
4 0 0 REJECT all — any virbr0 anywhere anywhere reject-with icmp-port-unreachable
5 3 180 REJECT all — virbr0 any anywhere anywhere reject-with icmp-port-unreachable
6 0 0 ACCEPT all — any any anywhere anywhere ctstate RELATED,ESTABLISHED
7 0 0 ACCEPT all — lo any anywhere anywhere
8 8 488 FORWARD_direct all — any any anywhere anywhere
Chain FORWARD_direct (1 references)
num pkts bytes target prot opt in out source destination
1 83 9988 ACCEPT all — any virbr0 anywhere 192.168.122.100