54 lines
1.5 KiB
Nix
54 lines
1.5 KiB
Nix
{ pkgs, config, ... }:
|
|
{
|
|
networking.firewall.allowedUDPPorts = [ 51820 ];
|
|
sops.secrets.wireguard_private = { };
|
|
boot.kernel.sysctl."net.ipv4.ip_forward" = true;
|
|
|
|
# Enable WireGuard
|
|
networking.wg-quick.interfaces = {
|
|
# Hub and Spoke Setup
|
|
# https://www.procustodibus.com/blog/2020/11/wireguard-hub-and-spoke-config/
|
|
wg0 = {
|
|
address = [ "10.100.0.1/32" ];
|
|
listenPort = 51820; # to match firewall allowedUDPPorts (without this wg uses random port numbers)
|
|
privateKeyFile = config.sops.secrets.wireguard_private.path;
|
|
mtu = 1280;
|
|
|
|
postUp = ''
|
|
${pkgs.iptables}/bin/iptables -A FORWARD -i wg0 -j ACCEPT
|
|
'';
|
|
postDown = ''
|
|
${pkgs.iptables}/bin/iptables -D FORWARD -i wg0 -j ACCEPT
|
|
'';
|
|
|
|
# clients
|
|
peers = [
|
|
{
|
|
# chungus
|
|
publicKey = "wb54y/fG8ocSH9QrDmfajez/fUcJBZK369xLu37XBHk=";
|
|
allowedIPs = [ "10.100.0.2/32" ];
|
|
}
|
|
{
|
|
# sterni
|
|
publicKey = "SdMRgC5IM7dywzZxLAHm45cpj9J3IENTMClZm1BxbV4=";
|
|
allowedIPs = [ "10.100.0.3/32" ];
|
|
}
|
|
{
|
|
# iphone
|
|
publicKey = "XPVzH+wBLsqukTHHjngkGJhYN0nRdQ7esadiimMJQnI=";
|
|
allowedIPs = [ "10.100.0.4/32" ];
|
|
}
|
|
{
|
|
# tina
|
|
publicKey = "RZsuQfWfAQLMm45ZiuNLBwcpL+GEbPYTRTrASFzMCFQ=";
|
|
allowedIPs = [ "10.100.0.5/32" ];
|
|
}
|
|
{
|
|
# cream
|
|
publicKey = "R1Vk1DDG/LsVU0HHRDmOJshXOVnNzPVbuv5hP7ZSGEQ=";
|
|
allowedIPs = [ "10.100.0.6/32" ];
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|