66 lines
1.3 KiB
Django/Jinja
66 lines
1.3 KiB
Django/Jinja
# {{ ansible_managed }} {{ ansible_date_time.time }} {{ ansible_date_time.date }}
|
|
#
|
|
#!/usr/bin/nft -f
|
|
# vim:set ts=2 sw=2 et:
|
|
|
|
flush ruleset
|
|
|
|
table inet filter {
|
|
chain input {
|
|
type filter hook input priority 0; policy drop;
|
|
|
|
# allow established/related connections
|
|
ct state { established, related } accept
|
|
|
|
# early drop of invalid connections
|
|
ct state invalid drop
|
|
|
|
# allow from loopback
|
|
iifname lo accept
|
|
|
|
# allow icmp
|
|
ip protocol icmp accept
|
|
ip6 nexthdr icmpv6 accept
|
|
|
|
# allow ssh
|
|
tcp dport ssh accept
|
|
|
|
# syncthing
|
|
ip saddr 10.8.1.1 tcp dport 22000 accept
|
|
|
|
# allow dhcp requests for bridged connections
|
|
iifname "vmbr0" udp dport { 53, 67 } accept
|
|
}
|
|
|
|
chain forward {
|
|
type filter hook forward priority security; policy drop;
|
|
|
|
ct state { established, related } accept;
|
|
|
|
mark 1 accept
|
|
|
|
iifname "vmbr0" oifname "wlan0" accept
|
|
iifname "wlan0" oifname "vmbr0" accept
|
|
}
|
|
}
|
|
|
|
table ip filter {
|
|
chain DOCKER-USER {
|
|
mark set 1
|
|
}
|
|
}
|
|
|
|
table ip nat {
|
|
chain prerouting {
|
|
type nat hook prerouting priority 0; policy accept;
|
|
|
|
# iifname "wlan0" tcp dport { http } dnat to 10.4.0.243
|
|
}
|
|
|
|
chain postrouting {
|
|
type nat hook postrouting priority 0; policy accept;
|
|
|
|
oifname "wlan0" masquerade
|
|
}
|
|
}
|
|
|