From af39e2d8b9b7d5d3fbd67a9fd3e8edcf11d3cee2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Antonio=20Y=C3=A1=C3=B1ez=20Jim=C3=A9nez?=
 <wiki@codigojose.com>
Date: Thu, 2 Jun 2022 09:16:04 +0000
Subject: [PATCH] docs: upload assets/files/openvpn-server/nftables.conf

---
 assets/files/openvpn-server/nftables.conf | 53 +++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 assets/files/openvpn-server/nftables.conf

diff --git a/assets/files/openvpn-server/nftables.conf b/assets/files/openvpn-server/nftables.conf
new file mode 100644
index 0000000..621262d
--- /dev/null
+++ b/assets/files/openvpn-server/nftables.conf
@@ -0,0 +1,53 @@
+#!/usr/sbin/nft -f
+
+flush ruleset
+define vpn_port=6174
+define vpn_if=tun0
+define outside_if=enp0s17
+define vpn_subnet=10.10.10.0/24
+
+table inet filter {
+
+
+        chain input {
+                # allow OpenVPN VPN connections to the Server
+                udp dport $vpn_port accept
+        }
+
+        chain forward {
+                #Drop forwarded packets if they are not matched
+                type filter hook forward priority 0; policy drop;
+
+                # allow existing connections
+                ct state related,established accept
+
+                # allow packets from vpn interface
+                iifname $vpn_if oifname $outside_if accept
+
+        }
+
+        chain output {
+                # Security drops
+                ct state invalid counter drop
+                oifname != "lo" ip saddr != 127.0.0.1 ip daddr != 127.0.0.1 tcp flags & (fin|ack) == fin|ack counter drop
+                oifname != "lo" ip saddr != 127.0.0.1 ip daddr != 127.0.0.1 tcp flags & (rst|ack) == rst|ack counter drop
+    }
+
+}
+
+# create a ipv4 table only for NAT entries (you need both chains even if they're empty)
+table ip nat {
+        chain postrouting {
+                type nat hook postrouting priority 100;
+
+                # enable NAT for VPN
+                iifname $vpn_if oifname $outside_if ip saddr $vpn_subnet masquerade
+
+        }
+
+        chain prerouting {
+                type nat hook prerouting priority 0;
+
+        }
+
+}
\ No newline at end of file