nixos-config/system/vpn.nix

35 lines
1.2 KiB
Nix
Raw Normal View History

2020-05-22 18:16:21 +02:00
{ config, pkgs, ... }:
{
2022-08-26 21:36:21 +02:00
age.secrets.mullvad.file = ../secrets/mullvad.age;
networking.wireguard.enable = true;
2020-05-22 18:16:21 +02:00
services.mullvad-vpn.enable = true;
# set some options after every daemon start
# to avoid accidentally leaving unsafe settings
2022-08-26 21:36:21 +02:00
systemd.services."mullvad-daemon" = {
serviceConfig.LoadCredential =
[ "account:${config.age.secrets.mullvad.path}" ];
postStart = ''
while ! ${pkgs.mullvad}/bin/mullvad status >/dev/null; do sleep 1; done
2023-05-31 17:25:46 +02:00
${pkgs.mullvad}/bin/mullvad lockdown-mode set on
2023-03-14 13:53:12 +01:00
${pkgs.mullvad}/bin/mullvad auto-connect set on
2023-11-27 23:01:26 +01:00
${pkgs.mullvad}/bin/mullvad dns set default
2022-08-26 21:36:21 +02:00
${pkgs.mullvad}/bin/mullvad lan set allow
${pkgs.mullvad}/bin/mullvad tunnel ipv6 set on
${pkgs.mullvad}/bin/mullvad tunnel wireguard quantum-resistant-tunnel set on
2022-08-26 21:36:21 +02:00
${pkgs.mullvad}/bin/mullvad relay set tunnel-protocol wireguard
2023-06-12 15:32:59 +02:00
${pkgs.mullvad}/bin/mullvad relay set location de ber
2023-03-14 13:53:12 +01:00
account="$(<"$CREDENTIALS_DIRECTORY/account")"
current_account="$(${pkgs.mullvad}/bin/mullvad account get | grep "account:" | sed 's/.* //')"
if [[ "$current_account" != "$account" ]]; then
${pkgs.mullvad}/bin/mullvad account login "$account"
fi
2022-08-26 21:36:21 +02:00
'';
};
2020-05-22 18:16:21 +02:00
}