WPA Enterprise

= Experiment: Zugang zum FFF-Netz via WPA(2) Enterprise =
Diese Seite beschreibt für jemanden, der weiß was er tut, wie man einen FFF-Router mit einer zusätzlichen ESSID ausstattet, über die Nutzer die Luftschnittstelle verschlüsseln können. Mit beliebigen Benutzername-Passwort-Kombinationen kann sich jeder am Netz anmelden.
Dabei wird 802.1X (aka WPA Enterprise) eingesetzt
== Motivation ==
* Spaß
* Das normale offene Freifunk W-LAN kann sehr einfach belauscht werden. Zumindest gegen die sehr einfachen passiven Angriffe kann ein verschlüsseltes W-LAN helfen.
* Ein normales mit WPA(2) PSK verschlüsseltes Netz kann man wohl auch passiv abhören, wenn man den Schlüssel kennt und den 4-Way Handshake mitsnifft.
* Ziel ist kein "sichereres Freifunk", sondern mehr das Erschweren der leichtesten Angriffe und das Vermeiden von "versehentlichem Mitschneiden" wie es ja z.B. bei der Benutzung von Kismet passieren kann.
* Diskussionsgrundlage über Sinn und Unsinn der Lösung / Proof-of-Concept
== System ==
Jeder Router bekommt ein "neues W-Lan" (hier: secure.franken.freifunk.net). Der Radius Server läuft derzeit zentral auf einer VM und ist von den Routern per IPv6 erreichbar.
Denkbar ist auch den RADIUS Server auf den Routern mit laufen zu lassen.
== Radius Server ==
Einrichtung wie hier beschrieben:
http://www.heise.de/netze/artikel/WLAN-und-LAN-sichern-mit-IEEE-802-1X-und-Radius-979513.html
Das Einloggen mit beliebigen Benutzername-Passwort-Kombinationen erledigt die letzte Zeile in der Datei "/etc/freeradius/users":
"guest"		Cleartext-Password := "guest"
"gast"		Cleartext-Password := "gast"
"fff"		Cleartext-Password := "fff"
"freifunk"	Cleartext-Password := "freifunk"
 
DEFAULT FreeRADIUS-Proxied-To == 127.0.0.1, Auth-Type := Accept
Die anderen Einträge darüber sind für Leute, die MSCHAPV2 verwenden. MSCHAPV2 funktioniert nicht mit beliebigen Passwörtern, da der Radius Server hier das Passwort kennen muss.
Der Radius-Server muss außerdem von den Routern aus erreichbar sein.
Dies ist möglich, wenn der Server an einem Client Port eines Routers (in der selben Hood?) hängt. Der Server ist dann über IPv6 erreichbar.
Ich habe dazu folgenden Block in "/etc/freeradius/clients.conf":
client fdff::/16 {
	secret 		= radius
	shortname	= ipv6-fff
}
Hinweis: Link-Lokale IPv6-Adressen scheinen nicht zu funktionieren, da der hostapd in seiner Konfiguration für den Radius Server keine Scopes verarbeitet.
== Firmware ==
Folgende Änderungen habe ich in der Firmware gemacht:
* wpad-mini durch hostapd ersetzt (der abgespeckte wpad-mini kann kein WPA Enterprise)
* Neue W-LAN ESSID hinzugefügt
Die Änderungen sieht man z.B. hier:
https://github.com/ahanak/firmware/commits/20160506-wpa-enterprise
(Nur zum Test. Änderungen wurden nur mit TL-WR841N V9 getestet und können überhaupt nur mit Community "franken" und dem BSP board_ar71xx funktionieren.)
== Anmeldung im Netzwerk ==
Unter Android und z.B. Ubuntu (Network Manager) gibt man einfach irgendwas für den Benutzernamen und PW ein und klickt auf verbinden.
Empfohlene Einstellungen (allgemein):
* Methode: Tunneled TLS (TTLS), PEAP geht genauso
* Anonyme Identität -egal-
* Benutzername: -egal-
* Passwort: -egal-
* Zertifikat: Keins (man kann natürlich auch das Zertifikat des Radius Servers einbinden)
Unter Windows ist es recht kompliziert. Ich habe es nur so hinbekommen:
* Zertifikat importieren
* Als Benutzername z.B. "freifunk" und als Passwort auch "freifunk" - Windows verwendet MSCHAPV2, damit gehen nicht beliebige Passwörter.