Auch auf dem Campus gibt es verschiedene WLANs und noch immer sind einige WLANs von Vereinen und anderen Organisationen mit einem Passwort gesichert, welches allen Teilnehmern bekannt sein muss (shared secret). Soll ein Teilnehmer ausgeschlossen werden oder dieses Passwort geändert, müssen alle neuen Teilnehmer informiert werden. Außerdem lässt sich nur schlecht nachvollziehen, wer das Netz wann genutzt hat. Dies ließe sich jedoch vermeiden, indem diese auf WPA2-Enterprise umgestellt würde. Ein wichtiger Schritt dabei ist die Einrichtung eines Radius-Servers, über den die WLAN-Nutzer authentifiziert werden können.
|
|
Was soll erreicht werden:
- Anbindung an zentrales Login (LDAP),
- Zugriffssteuerung über Gruppen,
- verschlüsselte Kommunikation zwischen Laptop und Radius-Server.
Was ist schon da:
- zentraler LDAP-Server für Benutzer (posixAccount) und Gruppen (posixGroup mit memberUid),
- Proxy-Login zum Abrufen der Benutzerdaten,
- AccessPoint mit WPA2-Enterprise und Radius-Unterstützung,
- sonstige Netzinfrastruktur.
|
Am einfachsten installiert man nun auf einem Linux-Server Freeradius (2.1.8 ) (mit LDAP- und EAP-Unterstützung).
Unter Ubuntu Lucid sind dies die Pakete freeradius und freeradius-ldap.
Es müssten nun folgende Änderungen an der Standardkonfiguration vorgenommen werden. Angegeben sind nur die Veränderungen, d.h. alle anderen Zeilen bleiben unverändert in den Dateien erhalten.
|
# /etc/freeradius/modules/ldap
ldap {
server = "127.0.0.1" # IP des LDAP Servers
identity = "cn=proxy,..." # Proxy-Nutzer
password = "..." # Passwort des Proxy-Nutzers
basedn = "dn=base" # Suchbasis des LDAP
filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
base_filter = "(objectclass=posixAccount)" # nur posixAccount Nutzer (keine Windows-Machinen)
groupname_attribute = cn
groupmembership_filter = (&(objectClass=posixGroup)(memberUid=%{Stripped-User-Name:-%{User-Name}}))
}
# /etc/freeradius/sites-enabled/default
authorize {
#files
#unix
eap {
ok = return
}
ldap
}
authenticate {
Auth-Type LDAP {
ldap
if (LDAP-Group == "wireless") {
noop
}
else {
reject
}
}
eap
}
post-proxy {
eap
}
# /etc/freeradius/sites-enabled/inner-tunnel
authorize {
#files
#unix
ldap
}
authenticate {
Auth-Type LDAP {
ldap
if (LDAP-Group == "wireless") {
noop
}
else {
reject
}
}
}
In /etc/freeradius/certs müssen Serverzertifikate hinterlegt werden (die Dateinamen stehen in der eap.conf),
diese können beispielsweise mit OpenSSL erstellt werden (Anleitung:
http://sial.org/howto/openssl/self-signed/).
Weiterhin müssen noch die APs (hier im Subnetz 192.168.0.0/16) eingetragen werden:
# /etc/freeradius/clients.conf
client localhost {
ipaddr = 127.0.0.1
secret = ganzGeheim
}
client 192.168.0.0/16 { # Subnetz der APs
secret = ganzganzgeheim
shortname = accesspoints
}
.
Nun kann man den Freeradiusserver starten und am AccessPoint dessen IP und das secret einstellen.
Um Nutzern den Zugang zum WLAN zu gewähren, müssen diese sich in der Gruppe wireless befinden und einen WPA2-Enterprise fähigen Clienten benutzen. Linux-Distributionen bringen diese normalerweise mit, unter Windows funktionieren
SecureW2 oder
wpa_supplicant.
Zum Testen und zur Fehlersuche des Radiusservers sollte Freeradius im Debug-Modus gestartet (freeradius -Xxx),
sehr nützlich sind dabei die Tools radtest und eapol_test. Dabei ist radtest im freeradius-Paket enthalten und
selbstdokumentierend, die Verwendung von eapol_test wird auf
http://deployingradius.com/scripts/eapol_test/ beschrieben.
Trackbacks