feat: add wireguard client config for vpn.dryb.org

This commit is contained in:
Jacob Bachmann 2024-09-12 12:56:05 +02:00
parent 5d47e3f94a
commit 9400db3cb6
Signed by: bchmnn
GPG key ID: 732A612DAD28067D
6 changed files with 96 additions and 34 deletions

View file

@ -1,20 +1,61 @@
{
config,
lib,
pkgs,
...
{ config
, lib
, pkgs
, ...
}:
{
networking = {
networkmanager.enable = true;
options.bchmnn = {
collections = {
vpn = {
dryborg = {
enable = lib.mkEnableOption "dryborg";
};
};
};
};
systemd.services = {
NetworkManager-wait-online.enable = false;
config = {
networking = {
networkmanager.enable = true;
};
systemd.services = {
NetworkManager-wait-online.enable = false;
};
services.resolved.enable = true;
environment.systemPackages = lib.optionals (config.bchmnn.collections.vpn.enable) [
pkgs.openvpn3
pkgs.mullvad-vpn
pkgs.wireguard-tools # tools for the wireguard secure network tunnel
];
services.mullvad-vpn.enable = config.bchmnn.collections.vpn.enable;
age.secrets = lib.mkIf (config.bchmnn.collections.vpn.enable && config.bchmnn.collections.vpn.dryborg.enable) {
keys-wireguard-dryborg-privatekey = {
file = ../../secrets/keys/wireguard/dryborg/privatekey.age;
};
keys-wireguard-dryborg-presharedkey = {
file = ../../secrets/keys/wireguard/dryborg/presharedkey.age;
};
};
networking.wg-quick.interfaces = lib.mkIf (config.bchmnn.collections.vpn.enable && config.bchmnn.collections.vpn.dryborg.enable) {
"vpn.dryb.org" = {
autostart = false;
privateKeyFile = config.age.secrets.keys-wireguard-dryborg-privatekey.path;
address = [ "10.200.200.1/24" ];
dns = [ "192.168.2.1" ];
peers = [
{
publicKey = "JY5fb0RS7C8WyPPEeymzuMSUeIhDtICGk1FYJgTRnTs=";
presharedKeyFile = config.age.secrets.keys-wireguard-dryborg-presharedkey.path;
allowedIPs = [ "0.0.0.0/0" ];
endpoint = "vpn.dryb.org:53280";
persistentKeepalive = 21;
}
];
};
};
};
environment.systemPackages = lib.optionals (config.bchmnn.collections.vpn.enable) [
pkgs.openvpn3
pkgs.mullvad-vpn
pkgs.wireguard-tools # tools for the wireguard secure network tunnel
];
services.mullvad-vpn.enable = config.bchmnn.collections.vpn.enable;
}