[pve-devel] [PATCH proxmox-firewall v2 1/1] firewall: properly reject ipv6 traffic

Stefan Hanreich s.hanreich at proxmox.com
Mon May 13 14:14:25 CEST 2024


ICMPv6 has different message types for rejecting traffic. With ICMP we
used host-prohibited as rejection type, which doesn't exist in ICMPv6.
Add an additional rule for IPv6, so it uses admin-prohibited.

Additionally, add a terminal drop statement in order to prevent any
traffic that does not get matched from bypassing the reject chain.

Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
---
Changes from v1 -> v2:
* add a terminal drop statement to prevent any unmatched traffic from
  bypassing the reject chain
* properly match ICMPv6 traffic via l4proto

 proxmox-firewall/resources/proxmox-firewall.nft | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/proxmox-firewall/resources/proxmox-firewall.nft b/proxmox-firewall/resources/proxmox-firewall.nft
index f36bf3b..f60f8b5 100644
--- a/proxmox-firewall/resources/proxmox-firewall.nft
+++ b/proxmox-firewall/resources/proxmox-firewall.nft
@@ -75,8 +75,10 @@ table inet proxmox-firewall {
         ip saddr 224.0.0.0/4 drop
 
         meta l4proto tcp reject with tcp reset
-        meta l4proto icmp reject with icmp type port-unreachable
+        meta l4proto { icmp, ipv6-icmp } reject with icmpx type port-unreachable
         reject with icmp type host-prohibited
+        reject with icmpv6 type admin-prohibited
+        drop
     }
 
     set v4-dc/management {
@@ -289,8 +291,10 @@ table bridge proxmox-firewall-guests {
         ip saddr 224.0.0.0/4 drop
 
         meta l4proto tcp reject with tcp reset
-        meta l4proto icmp reject with icmp type port-unreachable
+        meta l4proto { icmp, ipv6-icmp } reject with icmpx type port-unreachable
         reject with icmp type host-prohibited
+        reject with icmpv6 type admin-prohibited
+        drop
     }
 
     chain after-vm-in {
-- 
2.39.2




More information about the pve-devel mailing list