add wireguard client
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../kernel.nix # use latest kernel
|
../kernel.nix # use latest kernel
|
||||||
|
../services/wireguard-client.nix
|
||||||
];
|
];
|
||||||
custom = {
|
custom = {
|
||||||
cli-tools.enable = true;
|
cli-tools.enable = true;
|
||||||
|
|||||||
30
modules/services/wireguard-client.nix
Normal file
30
modules/services/wireguard-client.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{ config, pkgs, lib, inputs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
age.secrets.wireguard-client = {
|
||||||
|
file = ../../secrets/wireguard-client.age;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network.networks.wg0 = {
|
||||||
|
dns = [ "192.168.2.1"];
|
||||||
|
};
|
||||||
|
networking.wg-quick.interfaces = {
|
||||||
|
wg0 = {
|
||||||
|
# General Settings
|
||||||
|
autostart = true;
|
||||||
|
privateKeyFile = config.age.secrets.wireguard-client.path;
|
||||||
|
listenPort = 51820;
|
||||||
|
dns = [ "192.168.2.1" ];
|
||||||
|
address = ["192.168.2.22/24"];
|
||||||
|
peers = [
|
||||||
|
{
|
||||||
|
#allowedIPs = [ "192.168.2.0/24" "192.168.0.0/24" ];
|
||||||
|
allowedIPs = [ "0.0.0.0/0" ];
|
||||||
|
endpoint = "kopatz.ddns.net:51820";
|
||||||
|
publicKey = "vyHNUy97R1cvqEvElznPpFQtoqm7WUHnT96UP6Dquwc=";
|
||||||
|
persistentKeepalive = 30;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -16,6 +16,7 @@ in
|
|||||||
"restic-s3.age".publicKeys = [ mini-pc server kop ];
|
"restic-s3.age".publicKeys = [ mini-pc server kop ];
|
||||||
"restic-gdrive.age".publicKeys = [ mini-pc server kop ];
|
"restic-gdrive.age".publicKeys = [ mini-pc server kop ];
|
||||||
"wireguard-private.age".publicKeys = [ mini-pc server kop ];
|
"wireguard-private.age".publicKeys = [ mini-pc server kop ];
|
||||||
|
"wireguard-client.age".publicKeys = [ kop ];
|
||||||
"coturn-secret.age".publicKeys = [ mini-pc server kop ];
|
"coturn-secret.age".publicKeys = [ mini-pc server kop ];
|
||||||
"matrix-registration.age".publicKeys = [ mini-pc server kop ];
|
"matrix-registration.age".publicKeys = [ mini-pc server kop ];
|
||||||
"paperless.age".publicKeys = [ mini-pc server kop ];
|
"paperless.age".publicKeys = [ mini-pc server kop ];
|
||||||
|
|||||||
6
secrets/wireguard-client.age
Normal file
6
secrets/wireguard-client.age
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 DCzi1A VhZl7NnRgPwQq+TXnrL8o+E4bcwDOv4jEiXq5t7QnUE
|
||||||
|
BGGn5ICYtFhU01Hs7+BABlCKg5DFw6It5gl16IkXDi0
|
||||||
|
--- ab+S9cD/NXFgvte/rhe6MwZ0zwffoxMaGPFzzNvWBl4
|
||||||
|
€âÌÕ¤=Í'ò¸B(ÙªVFÕ÷ öÝëâDö„—D°ØiÒÿ¦m
|
||||||
|
o©Ê¦£G¡Uª}Ãn<C383>'™<>_Î7ýy'=VíÓÝùv¥[±JÜ
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
#<home-manager/nixos>
|
#<home-manager/nixos>
|
||||||
];
|
];
|
||||||
|
|
||||||
|
age.identityPaths = [ /home/kopatz/.ssh/id_ed25519 ];
|
||||||
mainUser.layout = "at";
|
mainUser.layout = "at";
|
||||||
mainUser.variant = "";
|
mainUser.variant = "";
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
{ config, pkgs, lib, inputs, ... }:
|
|
||||||
{
|
|
||||||
|
|
||||||
age.secrets.wireguard-private = {
|
|
||||||
file = ../secrets/wireguard-private.age;
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.network = {
|
|
||||||
enable = true;
|
|
||||||
netdevs."10-wg0" = {
|
|
||||||
enable = true;
|
|
||||||
netdevConfig = {
|
|
||||||
Kind = "wireguard";
|
|
||||||
Name = "wg0";
|
|
||||||
MTUBytes = "1300";
|
|
||||||
};
|
|
||||||
wireguardConfig = {
|
|
||||||
PrivateKeyFile = config.age.secrets.wireguard-private.path;
|
|
||||||
};
|
|
||||||
wireguardPeers = [
|
|
||||||
{
|
|
||||||
wireguardPeerConfig = {
|
|
||||||
AllowedIPs = [
|
|
||||||
"192.168.2.0/24"
|
|
||||||
];
|
|
||||||
Endpoint = "kopatz.ddns.net:51820";
|
|
||||||
PersistentKeepalive = 25;
|
|
||||||
PublicKey = "vyHNUy97R1cvqEvElznPpFQtoqm7WUHnT96UP6Dquwc=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
networks.wg0 = {
|
|
||||||
# See also man systemd.network
|
|
||||||
matchConfig.Name = "wg0";
|
|
||||||
# IP addresses the client interface will have
|
|
||||||
address = [
|
|
||||||
"192.168.2.22/24"
|
|
||||||
];
|
|
||||||
#DHCP = "no";
|
|
||||||
#dns = [ "fc00::53" ];
|
|
||||||
#ntp = [ "fc00::123" ];
|
|
||||||
#gateway = [
|
|
||||||
# "fc00::1"
|
|
||||||
# "10.100.0.1"
|
|
||||||
#];
|
|
||||||
networkConfig = {
|
|
||||||
IPv6AcceptRA = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user