From d0a5776d5ffe07fa286b1ef0f2b27f422cf301b5 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Wed, 4 Aug 2021 17:12:58 -0400 Subject: add wireguard config --- modules/mullvad.nix | 39 ------------------------------------ modules/wireguard.nix | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 39 deletions(-) delete mode 100644 modules/mullvad.nix create mode 100644 modules/wireguard.nix (limited to 'modules') diff --git a/modules/mullvad.nix b/modules/mullvad.nix deleted file mode 100644 index 436a3b2..0000000 --- a/modules/mullvad.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - cfg = config.orbekk.mullvad; -in -{ - options = { - orbekk.mullvad = { - enable = lib.mkEnableOption "Enable VPN"; - - listenPort = lib.mkOption { - type = lib.types.port; - default = 40421; - description = "wireguard local port"; - }; - }; - }; - - config = lib.mkIf cfg.enable { - orbekk.simple-firewall.allowedUDPPorts = [ cfg.listenPort ]; - - networking.wireguard = { - enable = true; - interfaces.mullvad = { - privateKeyFile = "/opt/secret/wireguard/mullvad.private"; - ips = [ "10.70.90.245/32" "fc00:bbbb:bbbb:bb01::7:5af4/128" ]; - allowedIPsAsRoutes = false; - listenPort = cfg.listenPort; - peers = [ - { - endpoint = "ca10-wireguard.mullvad.net:51820"; - publicKey = "pAVh6WJtyF7ktvavez399L4A615TXOAaUHQgpwJ4EHU="; - allowedIPs = [ "0.0.0.0/0" "::0/0" ]; - } - ]; - }; - }; - }; -} diff --git a/modules/wireguard.nix b/modules/wireguard.nix new file mode 100644 index 0000000..0188d90 --- /dev/null +++ b/modules/wireguard.nix @@ -0,0 +1,55 @@ +{ config, lib, pkgs, ... }: + +let + cfg = config.orbekk.wireguard; +in +{ + options = { + orbekk.wireguard = { + enable = lib.mkEnableOption "Enable VPN"; + enableMullvad = lib.mkEnableOption "Enable Mullvad"; + enableNycmesh = lib.mkEnableOption "Enable NYC Mesh"; + + listenPort = lib.mkOption { + type = lib.types.port; + default = 40421; + description = "wireguard local port"; + }; + }; + }; + + config = lib.mkIf cfg.enable { + orbekk.simple-firewall.allowedUDPPorts = [ cfg.listenPort ]; + + networking.wireguard = { + enable = true; + interfaces.mullvad = lib.mkIf cfg.enableMullvad { + privateKeyFile = "/opt/secret/wireguard/mullvad.private"; + ips = [ "10.70.90.245/32" "fc00:bbbb:bbbb:bb01::7:5af4/128" ]; + allowedIPsAsRoutes = false; + listenPort = cfg.listenPort; + peers = [ + { + endpoint = "ca10-wireguard.mullvad.net:51820"; + publicKey = "pAVh6WJtyF7ktvavez399L4A615TXOAaUHQgpwJ4EHU="; + allowedIPs = [ "0.0.0.0/0" "::0/0" ]; + } + ]; + }; + + interfaces.nycmesh = lib.mkIf cfg.enableNycmesh { + privateKeyFile = "/opt/secret/wireguard/nycmesh.private"; + ips = [ "10.70.73.50/32" ]; + allowedIPsAsRoutes = false; + listenPort = cfg.listenPort; + peers = [ + { + endpoint = "wgvpn.sn1.mesh.nycmesh.net:51822"; + publicKey = "W5AQ3LmNVr2bW/IQrIY1GpyacplGc2lpavoeSzU/KhQ="; + allowedIPs = [ "0.0.0.0/0" "::0/0" ]; + } + ]; + }; + }; + }; +} -- cgit v1.2.3