diff options
Diffstat (limited to 'hosts/sagittarius/network.nix')
| -rw-r--r-- | hosts/sagittarius/network.nix | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/hosts/sagittarius/network.nix b/hosts/sagittarius/network.nix new file mode 100644 index 0000000..9612011 --- /dev/null +++ b/hosts/sagittarius/network.nix @@ -0,0 +1,64 @@ +{ config, ... }: +let + # NOTE: port is the same on every host + wgPort = 51820; +in +{ + networking = { + hostName = "sagittarius"; + useNetworkd = true; + firewall = { + allowedTCPPorts = [ 22 ]; + allowedUDPPorts = [ wgPort ]; + }; + }; + + systemd.network = { + enable = true; + + networks = { + "10-wan" = { + matchConfig.Name = "enp1s0"; + networkConfig.DHCP = "ipv4"; + address = [ "2a01:4f9:c012:c7a7::1/64" ]; + routes = [ { Gateway = "fe80::1"; } ]; + }; + "50-wg" = { + matchConfig.Name = "wg0"; + address = [ + "2301:db8:acad:a::1/128" + "192.168.23.1/32" + ]; + }; + }; + + netdevs."50-wg" = { + netdevConfig = { + Kind = "wireguard"; + Name = "wg0"; + }; + + wireguardConfig = { + ListenPort = wgPort; + PrivateKeyFile = config.sops.secrets."wg-priv-key".path; + # To automatically create routes for everything in AllowedIPs, + # add RouteTable=main + RouteTable = "main"; + # FirewallMark marks all packets send and received by wg0 with the + # number 42, which can be used to define policy rules on these packets. + FirewallMark = 42; + }; + + wireguardPeers = [ + { + # nyaan + PublicKey = "u5nh+YNV84IbS7g0ncfs/V+cqEudNh500LQ7pmdS7j0="; + AllowedIPs = [ + "2301:db8:acad:a::2/128" + "192.168.23.2/32" + ]; + } + ]; + }; + }; +} |
