FreeRADIUS
FreeRADIUS ist eine modulare, hochperformante RADIUS Implementation mit vielen Eigentschaften.
Außerdem ist die Software Open-Source. Das komplette Paket beinhaltet den Serverdienst, die Clientprogramme,
Bibliotheken für die Entwicklung und viele RADIUS-spezifische Hilfsmittel.
Es bietet Proxying von Anfragen, Hochverfügbarkeit und Lastverteilung. Ebenso ist es möglich viele
verschiedene Datenbanken als Datenquelle zu nutzen.
Hier wird beschrieben, wie man LDAP als Datenquelle für FreeRADIUS verwendet.
Ersmal einige Links, die für die Einrichtung von FreeRADIUS mit LDAP hilfreich sind:
LDAP im FreeRADIUS-Wiki
Howto zu FreeRADIUS und OpenLDAP
Normalerweise ist das RADIUS-Modul
Rlm_ldap schon im Paket enthalten. Wenn es nicht mitinbegriffen ist, muss man FreeRADIUS mit LDAP-Support neu kompilieren.
Danach kann mit der Konfiguration begonnen werden. Hierfür muss in der Datei /etc/raddb/radiusd.conf folgendes geändert werden.
modules {
...
myldap {
server = localhost
port = 636
basedn = "dc=linuxadmin,dc=org"
filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"
access_attr = "dialupAccess"
dictionary_mapping = ${raddbdir}/ldap.attrmap
ldap_connections_number = 5
password_attribute = userPassword
set_auth_type = yes
}
...
}
authorize {
...
myldap
...
}
authenticate {
...
Auth-Type LDAP {
ldap
}
...
}
Anschließend wird noch definiert, welches Passwort aus jeden eingetragenen Netz verwendet werden soll. Auch in /etc/raddb/radiusd.conf.
client 127.0.0.1 {
secret = testing1234
shortname = localhost
}
client 192.168.0.0/16 {
secret = test1234
shortname = linuxadmin
}
Desweiteren muss in der Datei /etc/raddb/users die Standard-Authentifizierungsmethde auf LDAP geändert werden.
...
# replace DEFAULT Auth-Type entry
DEFAULT Auth-Type = LDAP
Fall-Through = 1
...
Teilweise müssen die Mappings der Attribute in der Datei /etc/freeradius/ldap.attrmap angepasst werden.
checkItem User-Password userPassword replyItem Tunnel-Type radiusTunnelType replyItem Tunnel-Medium-Type radiusTunnelMediumType replyItem Tunnel-Private-Group-Id radiusTunnelPrivateGroupId
Falls man NT/LM-Passwörter verwenden will, müssen die Mappings auch geändert werden.
checkItem LM-Password sambaLMPassword checkItem NT-Password sambaNTPassword
Zum Schluss müssen noch die Einstellungen für die Verschlüsselung EAP in der Datei /etc/raddb/eap.conf angepasst werden.
tls {
private_key_password = whatever
private_key_file = ${raddbdir}/certs/freeradius.signedcert_certreqkey
certificate_file = ${raddbdir}/certs/freeradius.signedcert
CA_file = ${raddbdir}/certs/demoCA/cacert.pem
dh_file = ${raddbdir}/certs/dh
random_file = ${raddbdir}/certs/random
fragment_size = 1024
include_length = yes
check_crl = yes
check_cert_cn = %{User-Name}
}
# ttls requires tls
ttls {
default_eap_type = md5
copy_request_to_tunnel = no
use_tunneled_reply = no
}
Anschließend kann FreeRADIUS im Debug-Modus gestartet werden, um zu überprüfen, ob auch alles richtig konfiguriert ist.
radiusd -X -f



