FreeRADIUS RADIUS Server und Samba Active Directory
Einleitung¶
RADIUS ist ein AAA-Protokoll (Authentifizierung, Autorisierung und Abrechnung) zur Verwaltung des Netzwerkzugriffs. FreeRADIUS ist der De-facto-RADIUS-Server für Linux und andere Unix-ähnliche Systeme.
Sie können FreeRADIUS mit Microsofts Active Directory nutzen, beispielsweise für die Authentifizierung nach 802.1X, Wi-Fi oder VPN.
Voraussetzungen¶
Folgende Mindestanforderungen gelten für dieses Verfahren:
- Die Möglichkeit, Befehle als
root-Benutzer auszuführen oder mitsudodie Berechtigungen zu erhöhen - Ein Active Directory-Mitgliedsserver, unabhängig davon, ob er eine Windows Server- oder Samba-Domäne verwendet
- Ein RADIUS-Client, beispielsweise ein Router, Switch oder WLAN-Zugangspunkt
Samba-Konfiguration¶
Sie müssen Active Directory mit Samba konfigurieren. Beachten Sie, dass sssd nicht funktionieren wird.
FreeRADIUS-Installation¶
Sie können FreeRADIUS aus den dnf-Repositories installieren:
dnf install -y freeradius
FreeRADIUS-Konfiguration¶
Wenn die Pakete installiert sind, müssen Sie zuerst die TLS-Verschlüsselungszertifikate für FreeRADIUS generieren:
cd /etc/raddb/certs
./bootstrap
Anschließend müssen Sie ntlm_auth aktivieren. Bearbeiten Sie die Datei /etc/raddb/sites-enabled/default und fügen Sie Folgendes in den authenticate-Block ein:
authenticate {
...
ntlm_auth
...
}
Fügen Sie dasselbe in /etc/raddb/sites-enabled/inner_tunnel ein:
authenticate {
...
ntlm_auth
...
}
Ändern Sie die Zeile program in /etc/raddb/mods-enabled/ntlm_auth wie folgt:
program = "/usr/bin/ntlm_auth --request-nt-key --domain=MYDOMAIN --username=%{mschap:User-Name} --password=%{User-Password}"
Ersetzen Sie MYDOMAIN durch Ihren Active Directory-Domänennamen.
Sie müssen ntlm_auth als Standardauthentifizierungstyp in /etc/raddb/mods-config/files/authorize festlegen. Fügen Sie die folgende Zeile hinzu:
DEFAULT Auth-Type = ntlm_auth
Sie müssen außerdem Clients definieren. Dies dient dazu, unbefugten Zugriff auf unseren RADIUS-Server zu verhindern. Bearbeiten Sie die Datei clients.conf:
vi clients.conf
Bitte Folgendes einfügen:
client 172.20.0.254 {
secret = secret123
}
Ersetzen Sie 172.20.0.254 und secret123 durch die IP-Adresse und den geheimen Wert, die die Clients verwenden werden. Wiederholen Sie dies für weitere Clients.
MS-CHAP – Aktivierung¶
MS-CHAP ermöglicht das Senden von gehashten Passwörtern über RADIUS an Active Directory. Dies ist sehr empfehlenswert.
Entfernen Sie die folgende Zeile aus /etc/raddb/mods-config/files/authorize:
DEFAULT Auth-Type = ntlm_auth
Fügen Sie anschließend in /etc/raddb/mods-enabled/mschap die folgende Zeile ein:
mschap {
...
ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key --allow-mschapv2 --username=%{mschap:User-Name:-None} --domain=%{%{mschap:NT-Domain}:-MYDOMAIN} --challenge=%{mschap:Challenge:-00} --nt-response=%{mschap:NT-Response:-00}"
...
}
Ersetzen Sie MYDOMAIN durch Ihren Active Directory-Domänennamen.
Fügen Sie abschließend den Benutzer radiusd der Gruppe wbpriv hinzu:
usermod -a -G wbpriv radiusd
Dieser Schritt ist wichtig, da er die MS-CHAP-Authentifizierung ermöglicht.
FreeRADIUS-Aktivierung¶
Nach der Erstkonfiguration können Sie radiusd starten:
systemctl enable --now radiusd
RADIUS auf einem Switch konfigurieren¶
Nach der Einrichtung des FreeRADIUS-Servers konfigurieren Sie einen RADIUS-Client.
Beispielsweise kann der MikroTik-Switch des Autors wie folgt konfiguriert werden:
/radius
add address=172.20.0.12 secret=secret123 service=dot1x
/interface dot1x server
add interface=combo3
Ersetzen Sie 172.20.0.12 durch die IP-Adresse des FreeRADIUS-Servers und secret123 durch das zuvor festgelegte secret-Wert.
Author: Neel Chauhan
Contributors: Steven Spencer, Ganna Zhyrnova