Triaxx Web Log

nftables

Netfilter configuration

Enable IP forwarding:

# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1

Make it persitent:

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

Connection forwarding

#!/usr/sbin/nft -f

flush ruleset

define inet_if = "enp1s0"
define inet_ip = "194.153.151.88"
define vm1_ip  = "192.168.0.2"

table inet filter {
  chain input {
    type filter hook input priority filter;
  }

  chain forward {
    type filter hook forward priority filter;
    ct state established,related accept
  }

  chain output {
    type filter hook output priority filter;
  }
}

table ip nat {
  chain prerouting {
    type nat hook prerouting priority dstnat;
    iifname $inet_if tcp dport 80 dnat to $vm1_ip
  }

  chain postrouting {
    type nat hook postrouting priority srcnat;
    ip saddr $vm1_ip oifname $inet_if snat to $inet_ip
  }
}