[pve-devel] pve-firewall : -m conntrack --ctstate INVALID -j DROP is dropping connections on firewall restart
Alexandre DERUMIER
aderumier at odiso.com
Thu Feb 14 19:47:11 CET 2019
Hi,
I have notice a bug with current firewall implementation,
with a simple test like:
1)
host fw:
--------
iptables -F
iptables -X
iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables-save > rules.dump
2)start vm, an established a connection. (like ssh for example)
3) iptables -F. (like pve-firewall stop)
4) restore the rules (iptables-restore -n < rules.dump), (like pve-firewall start)
Then,
the connection is dropped with
iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP
This is critical for some protocol like cephfs, where this hang the mds connection for 15min by default. (client think it's still connected,)
By reverting the 2 rules order, it's working fine
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP
I'm not expert enough with conntrack, but I have see a lot of documentation about this order (ufw firewall, archlinux wiki,....)
Does somebody have an idea what should be the correct order ?
(Note that running iptables INPUT inside the vm, is working fine with INVALID first, so maybe it's specific to forwarding)
More information about the pve-devel
mailing list