#!/usr/sbin/nft -f flush ruleset table inet filter { chain input { type filter hook input priority 0 policy drop ct state {established, related} counter accept iif lo accept # Allow ICMP (pings) ip protocol icmp accept meta l4proto icmpv6 accept tcp dport {http, https, {{ ssh_port }}, 8443, 8448} accept # Allow Tailscale udp dport {{ tailscale_port }} accept; } chain POSTROUTING { type nat hook postrouting priority srcnat policy accept # NAT - because the proxmox machines may not have routes back ip saddr {{ tailscale_cidr }} counter masquerade } chain FORWARD { type filter hook forward priority mangle policy drop # Allow monitoring of Tailscale network ip saddr {{ pve_hosts.forrest.ip }}/32 ip daddr {{ tailscale_cidr }} accept # Allow Tailscale exit node ip saddr {{ tailscale_cidr }} ip daddr 192.168.0.0/16 drop ip saddr {{ tailscale_cidr }} accept ip daddr {{ tailscale_cidr }} ct state related,established accept } }