Ich richte ein drahtloses Netzwerk für ~ 150 Benutzer ein. Kurz gesagt, ich suche nach einer Anleitung, um den RADIUS-Server für die Authentifizierung von WPA2 gegen LDAP einzurichten. Auf Ubuntu.
- Ich habe ein funktionierendes LDAP, aber da es nicht in der Produktion verwendet wird, kann es sehr einfach an die Änderungen angepasst werden, die für dieses Projekt erforderlich sind.
- Ich habe nach FreeRADIUS gesucht, aber jeder RADIUS-Server wird es tun.
- Wir haben ein separates physisches Netzwerk nur für WiFi, also keine allzu großen Sicherheitsbedenken.
- Unsere APs sind HPs Low-End-Unternehmenssachen - sie scheinen alles zu unterstützen, was Sie sich vorstellen können.
- Alles Ubuntu Server, Baby!
Und die schlechten Nachrichten:
- Ich habe jetzt jemanden, der weniger kennt als ich, der irgendwann die Administration übernimmt, also muss das Setup so "trivial" wie möglich sein.
- Bisher basiert unser Setup ausschließlich auf Software aus den Ubuntu-Repositories, mit Ausnahme unserer LDAP-Verwaltungs-Webanwendung und einiger kleiner Spezialskripte. Also keine "Paket X holen, entpacken, ./configure"- Dinge, wenn vermeidbar.
UPDATE 18.08.2009:
Obwohl ich mehrere nützliche Ressourcen gefunden habe, gibt es ein ernstes Hindernis:
Ignoring EAP-Type/tls because we do not have OpenSSL support.
Ignoring EAP-Type/ttls because we do not have OpenSSL support.
Ignoring EAP-Type/peap because we do not have OpenSSL support.
Grundsätzlich unterstützt die Ubuntu-Version von FreeRADIUS kein SSL ( Fehler 183840 ), wodurch alle sicheren EAP-Typen unbrauchbar werden. Schade.
Aber einige nützliche Unterlagen für alle Interessierten:
- http://vuksan.com/linux/dot1x/802-1x-LDAP.html
- http://tldp.org/HOWTO/html_single/8021X-HOWTO/#confradius
UPDATE 19.08.2009:
Ich habe gestern Abend mein eigenes FreeRADIUS-Paket kompiliert - es gibt ein wirklich gutes Rezept unter http://www.linuxinsight.com/building-debian-freeradius-package-with-eap-tls-ttls-peap-support.html (Siehe die Kommentare zum Beitrag für aktualisierte Anweisungen).
Ich habe ein Zertifikat von http://CACert.org erhalten (wenn möglich, sollten Sie wahrscheinlich ein "echtes" Zertifikat erhalten)
Dann folgte ich den Anweisungen unter http://vuksan.com/linux/dot1x/802-1x-LDAP.html . Hier finden Sie Links zu http://tldp.org/HOWTO/html_single/8021X-HOWTO/ , die Sie unbedingt lesen sollten, wenn Sie wissen möchten, wie die WLAN-Sicherheit funktioniert.
UPDATE 2009-08-27:
Nachdem ich der obigen Anleitung gefolgt bin, habe ich es geschafft, dass FreeRADIUS mit LDAP kommuniziert:
Ich habe in LDAP einen Testbenutzer mit dem Kennwort erstellt. mr2Yx36M
Dies ergibt einen LDAP-Eintrag von ungefähr:
uid: testuser
sambaLMPassword: CF3D6F8A92967E0FE72C57EF50F76A05
sambaNTPassword: DA44187ECA97B7C14A22F29F52BEBD90
userPassword: {SSHA}Z0SwaKO5tuGxgxtceRDjiDGFy6bRL6ja
Bei der Verwendung radtest
kann ich gut verbinden:
> radtest testuser "mr2Yx36N" sbhr.dk 0 radius-private-password
Sending Access-Request of id 215 to 130.225.235.6 port 1812
User-Name = "msiebuhr"
User-Password = "mr2Yx36N"
NAS-IP-Address = 127.0.1.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 130.225.235.6 port 1812, id=215, length=20
>
Aber wenn ich den AP durchprobiere, fliegt er nicht - obwohl er bestätigt, dass er die NT- und LM-Passwörter herausfindet:
...
rlm_ldap: sambaNTPassword -> NT-Password == 0x4441343431383745434139374237433134413232463239463532424542443930
rlm_ldap: sambaLMPassword -> LM-Password == 0x4346334436463841393239363745304645373243353745463530463736413035
[ldap] looking for reply items in directory...
WARNING: No "known good" password was found in LDAP. Are you sure that the user is configured correctly?
[ldap] user testuser authorized to use remote access
rlm_ldap: ldap_release_conn: Release Id: 0
++[ldap] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] Normalizing NT-Password from hex encoding
[pap] Normalizing LM-Password from hex encoding
...
Es ist klar, dass die NT- und LM-Passwörter sich von den oben genannten unterscheiden, die Meldung jedoch [ldap] user testuser authorized to use remote access
- und der Benutzer wird später abgelehnt ...