################################
# external interface
-define EXTERNAL_IF = bonde-dev
+define EXTERNAL_IF = eth1
# loopback interface
define LOOPBACK_IF = lo
# reset nftables
################################
-create table inet efg_filter
+create table ip efg_filter
create table ip efg_nat
+create table ip6 efg_filter
-create chain inet efg_filter input { type filter hook input priority 0; policy drop; }
-create chain inet efg_filter forward { type filter hook forward priority 0; policy drop; }
-create chain inet efg_filter output { type filter hook output priority 0; policy drop; }
+create chain ip efg_filter input { type filter hook input priority 0; policy drop; }
+create chain ip efg_filter forward { type filter hook forward priority 0; policy drop; }
+create chain ip efg_filter output { type filter hook output priority 0; policy drop; }
create chain ip efg_nat prerouting { type nat hook prerouting priority 0; policy accept; }
create chain ip efg_nat postrouting { type nat hook postrouting priority 0; policy accept; }
+create chain ip6 efg_filter input { type filter hook input priority 0; policy accept; }
+create chain ip6 efg_filter forward { type filter hook forward priority 0; policy drop; }
+create chain ip6 efg_filter output { type filter hook output priority 0; policy accept; }
################################
################################
add rule ip efg_nat prerouting \
- ip protocol udp \
iifname $EXTERNAL_IF \
ip daddr $PUBLIC_VPN_IP udp dport 1194 \
counter dnat $VPN_INTERNAL_IP comment "Incoming VPN traffic"
#add rule ip efg_nat prerouting \
-# ip protocol tcp \
# iifname $EXTERNAL_IF \
# ip daddr $PUBLIC_MX_IP tcp dport $MX_PORTS \
# counter dnat $MX_PERIMETER_IP comment "Incoming MX traffic"
add rule ip efg_nat prerouting \
- ip protocol udp \
iifname $EXTERNAL_IF udp sport 1024-65535 \
ip daddr $PUBLIC_NS_IP udp dport 53 \
counter dnat $ENS_PERIMETER_IP comment "Incoming DNS requests (udp)"
add rule ip efg_nat prerouting \
- ip protocol tcp \
iifname $EXTERNAL_IF tcp sport 1024-65535 \
ip daddr $PUBLIC_NS_IP tcp dport 53 \
counter dnat $ENS_PERIMETER_IP comment "Incoming DNS requests (tcp)"
add rule ip efg_nat prerouting \
- ip protocol tcp \
iifname $EXTERNAL_IF tcp sport 1024-65535 \
ip daddr $PUBLIC_WS_IP tcp dport $WS_PORTS \
counter dnat $WS_PERIMETER_IP comment "Incoming http(s) requests"
# FILTER input rules
################################
-add rule inet efg_filter input \
+add rule ip efg_filter input \
ct state established \
- ip protocol udp \
iifname $PERIMETER_IF ip saddr $PNS_PERIMETER_IP udp sport 53 \
ip daddr $EFG_PERIMETER_IP udp dport 1024-65535 \
counter accept comment "DNS replies"
-add rule inet efg_filter input \
+add rule ip efg_filter input \
ip protocol icmp \
counter accept comment "ICMP"
-add rule inet efg_filter input \
+add rule ip efg_filter input \
+ counter log prefix "INPUT"
+
+add rule ip6 efg_filter input \
counter log prefix "INPUT"
# FILTER forward rules
################################
-add rule inet efg_filter forward \
+add rule ip efg_filter forward \
ct state established, related \
iifname $EXTERNAL_IF \
oifname $PERIMETER_IF ip daddr $INTERNAL_NETS \
counter accept comment "Established sessions"
-add rule inet efg_filter forward \
+add rule ip efg_filter forward \
iifname $PERIMETER_IF ip saddr $INTERNAL_NETS \
oifname $EXTERNAL_IF \
counter accept comment "Internet access"
-add rule inet efg_filter forward \
- ip protocol udp \
+add rule ip efg_filter forward \
iifname $EXTERNAL_IF \
oifname $PERIMETER_IF ip daddr $VPN_INTERNAL_IP udp dport 1194 \
counter accept comment "Incoming VPN traffic"
-add rule inet efg_filter forward \
- ip protocol tcp \
+add rule ip efg_filter forward \
iifname $EXTERNAL_IF tcp sport 1024-65535 \
oifname $PERIMETER_IF ip daddr $WS_PERIMETER_IP tcp dport $WS_PORTS \
counter accept comment "Incoming http(s) requests"
-add rule inet efg_filter forward \
+add rule ip efg_filter forward \
ct state established \
- ip protocol tcp \
iifname $PERIMETER_IF ip saddr $WS_PERIMETER_IP tcp sport $WS_PORTS \
oifname $EXTERNAL_IF tcp dport 1024-65535 \
counter accept comment "Outgoing http(s) replies"
-add rule inet efg_filter forward \
- ip protocol udp \
+add rule ip efg_filter forward \
iifname $EXTERNAL_IF udp sport 1024-65535 \
oifname $PERIMETER_IF ip daddr $ENS_PERIMETER_IP udp dport 53 \
counter accept comment "Incoming DNS requests/notifications (udp)"
-add rule inet efg_filter forward \
+add rule ip efg_filter forward \
ct state established, related \
- ip protocol udp \
iifname $PERIMETER_IF ip saddr $ENS_PERIMETER_IP udp sport 53 \
oifname $EXTERNAL_IF udp dport 1024-65535 \
counter accept comment "Outgoing DNS replies (udp)"
-add rule inet efg_filter forward \
- ip protocol tcp \
+add rule ip efg_filter forward \
iifname $EXTERNAL_IF tcp sport 1024-65535 \
oifname $PERIMETER_IF ip daddr $ENS_PERIMETER_IP tcp dport 53 \
counter accept comment "Incoming DNS requests (tcp)"
-add rule inet efg_filter forward \
+add rule ip efg_filter forward \
ct state established, related \
- ip protocol tcp \
iifname $PERIMETER_IF ip saddr $ENS_PERIMETER_IP tcp sport 53 \
oifname $EXTERNAL_IF tcp dport 1024-65535 \
counter accept comment "Outgoing DNS replies (tcp)"
-add rule inet efg_filter forward \
- ip protocol udp \
+add rule ip efg_filter forward \
iifname $PERIMETER_IF ip saddr { $ENS_PERIMETER_IP, $PNS_PERIMETER_IP } udp sport 1024-65535 \
oifname $EXTERNAL_IF udp dport 53 \
counter accept comment "Outgoing DNS requests/notifications (udp)"
-add rule inet efg_filter forward \
+add rule ip efg_filter forward \
ct state established, related \
- ip protocol udp \
iifname $EXTERNAL_IF udp sport 53 \
oifname $PERIMETER_IF ip daddr { $ENS_PERIMETER_IP, $PNS_PERIMETER_IP } udp dport 1024-65535 \
counter accept comment "Incoming DNS replies (udp)"
-add rule inet efg_filter forward \
- ip protocol tcp \
+add rule ip efg_filter forward \
iifname $PERIMETER_IF ip saddr { $ENS_PERIMETER_IP, $PNS_PERIMETER_IP } tcp sport 1024-65535 \
oifname $EXTERNAL_IF tcp dport 53 \
counter accept comment "Outgoing DNS requests (tcp)"
-add rule inet efg_filter forward \
+add rule ip efg_filter forward \
ct state established, related \
- ip protocol tcp \
iifname $EXTERNAL_IF tcp sport 53 \
oifname $PERIMETER_IF ip daddr { $ENS_PERIMETER_IP, $PNS_PERIMETER_IP } tcp dport 1024-65535 \
counter accept comment "Incoming DNS replies (tcp)"
-add rule inet efg_filter forward \
- ip protocol tcp \
+add rule ip efg_filter forward \
iifname $PERIMETER_IF ip saddr $WS_PERIMETER_IP tcp sport 1024-65535 \
oifname $EXTERNAL_IF tcp dport $WS_PORTS \
counter accept comment "Outgoing let's encrypt requests"
-add rule inet efg_filter forward \
+add rule ip efg_filter forward \
ct state established \
- ip protocol tcp \
iifname $EXTERNAL_IF tcp sport $WS_PORTS \
oifname $PERIMETER_IF ip daddr $WS_PERIMETER_IP tcp dport 1024-65535 \
counter accept comment "Incoming let's encrypt replies"
-add rule inet efg_filter forward \
+add rule ip efg_filter forward \
ip protocol icmp \
counter accept comment "ICMP"
-add rule inet efg_filter forward \
+add rule ip efg_filter forward \
+ counter log prefix "FORWARD"
+
+add rule ip6 efg_filter forward \
counter log prefix "FORWARD"
# FILTER output rules
################################
-add rule inet efg_filter output \
+add rule ip efg_filter output \
ct state new \
- ip protocol udp \
ip saddr $EFG_PERIMETER_IP udp sport 1024-65535 \
oifname $PERIMETER_IF ip daddr $PNS_PERIMETER_IP udp dport 53 \
counter accept comment "DNS requests"
-add rule inet efg_filter output \
+add rule ip efg_filter output \
ip protocol icmp \
counter accept comment "ICMP"
-add rule inet efg_filter output \
+add rule ip efg_filter output \
+ counter log prefix "OUTPUT"
+
+add rule ip6 efg_filter output \
counter log prefix "OUTPUT"