nixfleet/modules/wireguard-server/default.nix
Andrea Ciceri 7303969233
All checks were successful
EVAL aarch64-linux.sisko
BUILD aarch64-linux.sisko
UPLOAD aarch64-linux.sisko
DOWNLOAD aarch64-linux.sisko
CACHIX aarch64-linux.sisko
ATTIC aarch64-linux.sisko
/ test (push) Successful in 1h6m39s
Fix typo
2025-05-29 15:45:05 +02:00

30 lines
760 B
Nix

{
config,
lib,
vpn,
pkgs,
...
}:
{
imports = [ ../wireguard-common ];
networking.nat.enable = true;
networking.firewall.allowedUDPPorts = [ config.networking.wireguard.interfaces.wg0.listenPort ];
networking.wireguard.interfaces.wg0 = {
ips = [ "${vpn.${config.networking.hostName}.ip}/24" ];
peers = lib.mapAttrsToList (_hostname: vpnConfig: {
publicKey = vpnConfig.publicKey;
allowedIPs = [ "${vpnConfig.ip}/32" ];
}) vpn;
postSetup = ''
${lib.getExe' pkgs.iptables "iptables"} -t nat -A POSTROUTING -s 10.100.0.0/24 -o enP4p65s0 -j MASQUERADE
'';
postShutdown = ''
${lib.getExe' pkgs.iptables "iptables"} -t nat -D POSTROUTING -s 10.100.0.0/24 -o enP4p65s0 -j MASQUERADE
'';
};
}