diff options
Diffstat (limited to 'modules/xnet/net/vpn-gateway.nix')
| -rw-r--r-- | modules/xnet/net/vpn-gateway.nix | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/modules/xnet/net/vpn-gateway.nix b/modules/xnet/net/vpn-gateway.nix deleted file mode 100644 index d26ced1..0000000 --- a/modules/xnet/net/vpn-gateway.nix +++ /dev/null @@ -1,103 +0,0 @@ -{ config, lib, pkgs, ... }: -let - cfg = config.xnet.net.vpnGateway; - inherit (lib) mkOption mkIf types; - - iface = "enp2s0"; - fwmark = "0x1"; - ip = "192.168.2.113"; - vpn = { - iface = "wg0"; - endpoint = "149.88.22.129:51820"; - addr = "10.69.70.71/32"; - peers = [ - - ]; - }; -in - -{ - # options.xnet.net.vpnGateway = { - # interface = mkOption { - # type = types.str; - # description = "Interface to forward VPN routed packets to internet"; - # }; - # - # vpn = types.subModule { - # interface = mkOption { - # type = types.str; - # default = "wg0"; - # description = "Name of VPN interface."; - # }; - # - # endpoint = mkOption { - # type = types.str; - # description = "ip:port of the VPN endpoint."; - # }; - # - # addr = mkOption { - # type = types.str; - # description = "Address of the VPN interface."; - # }; - # - # privateKeyFile = mkOption { - # type = types.str; - # description = "Path to private key."; - # }; - # - # peers = types.listOf types.subModule { - # - # }; - # }; - - boot.kernel.sysctl = { - "net.ipv4.ip_forward" = 1; - "net.ipv6.conf.all.forwarding" = 1; - }; - - networking = { - wg-quick.interfaces."${vpn.iface}" = { - address = [ vpn.addr ]; - privateKeyFile = "/certs/wg/private.key"; - - peers = [{ - publicKey = "yxyntWsANEwxeR0pOPNAcfWY7zEVICZe9G+GxortzEY="; - allowedIPs = [ "0.0.0.0/0" ]; - endpoint = "149.88.22.129:51820"; - persistentKeepalive = 25; - }]; - }; - - nat = { - enable = true; - externalInterface = "wg0"; - internalInterfaces = [ "enp2s0" ]; - }; - - firewall = { - extraCommands = '' - # Create a new routing table for forwarded traffic - echo "200 vpn" >> /etc/iproute2/rt_tables - - # Mark packets from other hosts - iptables -t mangle -A PREROUTING -i enp2s0 ! -s 192.168.1.113 -j MARK --set-mark 0x1 - - # Route marked packets through WireGuard - ip rule add fwmark 0x1 table vpn - ip route add default dev wg0 table vpn - - # Allow forwarding - iptables -A FORWARD -i enp2s0 -o wg0 -j ACCEPT - iptables -A FORWARD -i wg0 -o enp2s0 -m state --state RELATED,ESTABLISHED -j ACCEPT - - # NAT only forwarded traffic - iptables -t nat -A POSTROUTING -o wg0 ! -s 192.168.1.113 -j MASQUERADE - ''; - - extraStopCommands = '' - ip rule del fwmark 0x1 table vpn 2>/dev/null || true - ip route flush table vpn 2>/dev/null || true - ''; - }; - }; -} |
