#!/usr/sbin/nft -f flush ruleset table inet filter { chain input { type filter hook input priority 0; policy drop; # Allow established connections ct state established,related accept # Allow loopback iif lo accept # Allow SSH (adjust port if needed) tcp dport 22 accept # Allow WireGuard from RU VDS only ip saddr 176.124.216.197 udp dport 51821 accept # Allow ICMP icmp type echo-request accept } chain forward { type filter hook forward priority 0; policy drop; # Allow forwarding from VPN iifname "wg0" accept # Allow established connections back ct state established,related accept } chain output { type filter hook output priority 0; policy accept; } } table inet nat { chain postrouting { type nat hook postrouting priority 100; # NAT traffic from VPN to internet oifname != "wg0" ip saddr { 10.10.0.0/24, 10.20.0.0/30 } masquerade } }