aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hosts/nyaan/network.nix40
-rw-r--r--share/nixos-modules/iwd-ext.nix14
2 files changed, 44 insertions, 10 deletions
diff --git a/hosts/nyaan/network.nix b/hosts/nyaan/network.nix
index 5730ead..347a802 100644
--- a/hosts/nyaan/network.nix
+++ b/hosts/nyaan/network.nix
@@ -84,16 +84,40 @@ in
"eduroam" = {
networkType = "8021x";
config.Security = {
- EAP-Method = [
- "TTLS"
- "PEAP"
- "TLS"
- ];
- EAP-Identity = "mbastaja@tvz.hr";
- EAP-AnonymousIdentity = "anonymous@tvz.hr";
- DomainSuffixMatch = "freeradius.tvz.hr";
+ 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";
diff --git a/share/nixos-modules/iwd-ext.nix b/share/nixos-modules/iwd-ext.nix
index 9aaae22..483b688 100644
--- a/share/nixos-modules/iwd-ext.nix
+++ b/share/nixos-modules/iwd-ext.nix
@@ -17,6 +17,7 @@ let
inherit (pkgs)
concatTextFile
+ writeText
;
inherit (lib.strings)
@@ -47,12 +48,16 @@ let
let
name = "${k}.${v.networkType}";
generatedConfig = ini.generate "${name}" v.config;
+ extraLinesFile = writeText "${name}-extra-lines" v.extraConfigLines;
in
{
inherit name;
value = concatTextFile {
name = "${k}-network";
- files = [ generatedConfig ];
+ files = [
+ generatedConfig
+ extraLinesFile
+ ];
destination = "/var/lib/iwd/${name}";
};
}
@@ -78,6 +83,11 @@ let
'';
};
config = mkOption { type = ini.type; };
+ extraConfigLines = mkOption {
+ type = types.lines;
+ default = "";
+ description = "Extra lines to append to the network config verbatim.";
+ };
};
};
in
@@ -204,7 +214,7 @@ in
for f in ${networkTemplateDir}/var/lib/iwd/*; do
cat "$f" |
- sed -E 's/@([A-Za-z_][A-Za-z0-9_]*)@/$\{\1}/g' |
+ sed -E 's/@@/\x00/g; s/@([A-Za-z_][A-Za-z0-9_]*)@/$\{\1}/g; s/\x00/@/g' |
envsubst > "$STATE_DIRECTORY/$(basename "$f")"
done
'';