aboutsummaryrefslogtreecommitdiff
path: root/hosts/nyaan/network.nix
blob: bacff5aa5cdee7eff5df69f33b4c528038b1288c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
{
  config,
  ...
}:
let
  secrets = config.sops.secrets;
in
{
  sops = {
    age.keyFile = "/var/lib/sops-nix/key.txt";
    secrets."wireless.env" = {
      sopsFile = ../../secrets/wireless.env;
      format = "dotenv";
      reloadUnits = [ "iwd.service" ];
    };
  };

  networking = {
    hostName = "nyaan";
    useNetworkd = true;
    firewall = {
      checkReversePath = "loose";
      trustedInterfaces = [ "tailscale0" ];
      allowedUDPPorts = [ config.services.tailscale.port ];
    };
  };

  services.tailscale = {
    enable = true;
    openFirewall = true;
  };

  networking.wireless.iwd-ext = {
    enable = true;
    secretsEnvFile = secrets."wireless.env".path;
    networks = {
      "KopsiNet-5" = {
        networkType = "psk";
        config.Security.Passphrase = "@KOPSINET_PSK@";
      };
      "Pixel_3169" = {
        networkType = "psk";
        config.Security.Passphrase = "@PHONE_HOTSPOT_PSK@";
      };
      "eduroam" = {
        networkType = "8021x";
        config.Security = {
          EAP-Method = "TTLS";
          EAP-Identity = "anonymous@tvz.hr";
          EAP-TTLS-CACert = "embed:eduroam_ca_cert";
          EAP-TTLS-ServerDomainMask = "freeradius.tvz.hr";
          EAP-TTLS-Phase2-Method = "Tunneled-PAP";
          EAP-TTLS-Phase2-Identity = "mbastaja@tvz.hr";
          EAP-TTLS-Phase2-Password = "@EDUROAM_PASS@";
        };
        config.Settings.AutoConnect = true;
        extraConfigLines = ''
          [@@pem@@eduroam_ca_cert]
          -----BEGIN CERTIFICATE-----
          MIIDjzCCAnegAwIBAgIBADANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQGEwJIUjEP
          MA0GA1UECAwGWmFncmViMQ8wDQYDVQQHDAZaYWdyZWIxDDAKBgNVBAoMA1RWWjEj
          MCEGA1UEAwwaQ0EgUm9vdCBjZXJ0aWZpY2F0ZSB0dnouaHIwHhcNMTcwNzE0MTE1
          MzUzWhcNMjcwNzEyMTE1MzUzWjBiMQswCQYDVQQGEwJIUjEPMA0GA1UECAwGWmFn
          cmViMQ8wDQYDVQQHDAZaYWdyZWIxDDAKBgNVBAoMA1RWWjEjMCEGA1UEAwwaQ0Eg
          Um9vdCBjZXJ0aWZpY2F0ZSB0dnouaHIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
          ggEKAoIBAQC+/60HDgUIMu3F61a0iihkxoAgGJpbaz8bu9WEaKNURFXMW/9FWIPf
          xBQbYr3RFaPdpgTLKwtP8ZcCNqH4QM8bwBirk7gMjeNQfUc0DcC1xj0yCjWTLx7L
          CxWzOPI/3QZdjlltV5g1bL0nObBXJTqLpJazfJa+c5rMSjuxeHQtOts4h9cPT+3c
          Lc21IF3l0Ck4XjNrYMDuBq0B24ukkwqHkTzp5CyJk1gn4Bsr5RskUsgvbAQBacPd
          EjwjzJPlMSMpcZw87e+U22FWuhkDEMf+nKtOPxbDz0P1rdXwtsLyYww3gx/ZjzZy
          pnNJJDa+K008GJsOtRCgy1O82rOskHVxAgMBAAGjUDBOMB0GA1UdDgQWBBSJ843O
          80eWXlzlc5L2e5NSmJt8VTAfBgNVHSMEGDAWgBSJ843O80eWXlzlc5L2e5NSmJt8
          VTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQBwrBXWaKBkL3vZBtDs
          Ebez/E2vU8OSWt53l8gDgPoWVd66qh3k76IkwcW9OB3JwZpY63ZYTC/J+by4/hZh
          f5l2AWjjW5sasXz3HlNUexJomk1llLvDJt/eKuTM/5k3LzgbAhmjhzE7Jh3wZJF5
          rKOQ9fN7zJ414EebjkeGSgDosq3ip290vFiBc+heqgdfZsDdyxuIKkJCtYYYI8hP
          UcKRfJ4nr8enAVkbbjElc5qF7s2Gz0+0owI7ZV/KaXd2ZGcnh6nRx5OIcDGXNLK9
          I87CtgF5KX0AGXEMJeG/Jms9hDdn18SXwxIgG6jX7DlAUsz/PVcwDNxF3RCHvsuy
          HoU+
          -----END CERTIFICATE-----
        '';
      };
      "Students-TVZ" = {
        networkType = "8021x";
        config.Security = {
          EAP-Method = "PAP";
          EAP-Identity = "mbastaja@tvz.hr";
          EAP-PAEP-ServerDomainMasl = "freeradius.tvz.hr";
          EAP-PEAP-Phase2-Method = "MSCHAPV2";
          EAP-PEAP-Phase2-Identity = "mbastaja@tvz.hr";
          EAP-PEAP-Phase2-Password = "@EDUROAM_PASS@";
        };
      };
    };
  };
}