Berechtigungen
In diesem Kapitel geht es um die Benutzer- und Gruppenverwaltung auf dem opsi-Server. Es erklärt, welche Accounts und Gruppen in der Voreinstellung mit administrativen Rechten ausgestattet sind und wie Sie eigene Konten für die Verwaltung des opsi-Servers anlegen. Außerdem erklärt das Kapitel, wie Sie einen opsi-Server in eine Windows-Domäne einbinden, wie Sie einen Verzeichnisdienst zur Authentifizierung nutzen und eine Zwei-Faktor-Authentifizierung für den Server einrichten.
Benutzer und Gruppen
opsi verwendet die folgenden Benutzer- und Gruppenaccounts:
-
opsiconfd
: ein Konto für den gleichnamigen Systemdienstopsiconfd
(siehe Kapitel Der Dienst opsiconfd); Account muss Mitglied der Gruppenopsiadmin
undopsifileadmins
sein -
pcpatch
: ein Account, den die opsi-Clients für den Zugriff via CIFS (Samba) auf das opsi-Depot verwenden; muss Mitglied in der Gruppeopsifileadmins
sein (siehe Abschnitt Passwort für Benutzer pcpatch)
Zum Verwalten lokaler Benutzer und Gruppena auf dem opsi-Server nutzen Sie die Linux-Standardwerkzeuge useradd , usermod , groupadd , groupmod usw. (siehe Abschnitt Admin-Account anlegen). Alternativ binden Sie den opsi-Configserver an eine bestehende Windows-Domäne (siehe Abschnitt opsi-Server in Windows-Domäne einbinden) oder an LDAP/Active Directory (siehe Abschnitt Authentifizierung gegen einen Verzeichnisdienst (LDAP/AD)) an.
|
Zum Steuern von Berechtigungen verwendet opsi die folgenden Gruppen:
-
opsiadmin
: Mitglieder dieser Gruppe können administrativ auf den opsi-Service zugreifen, das heißt, sie erhalten vollen Zugriff über die Management-Oberflächeopsi-configed
, das opsi-WebGUI, dieopsiconfd
-Admin-Seite usw. -
opsifileadmins
: Mitglieder dieser Gruppe können administrativ auf opsi-Dateien (Depot, Repository, Workbench) zugreifen. -
opsireadonly
: Mitglieder dieser Gruppe können nur lesend auf den opsi-Service zugreifen.
Den Namen dieser Gruppen können Sie in der Konfigurationsdatei /etc/opsi/opsi.conf
im Abschnitt groups
ändern:
[groups]
fileadmingroup = "opsifileadmins"
admingroup = "opsiadmin"
readonly = "opsireadonlys"
Admin-Account anlegen
Um lokale Benutzer und Gruppen auf dem opsi-Configserver anzulegen, nutzen Sie die Linux-Standardwerkzeuge. Das folgende Beispiel richtet einen neuen Benutzer namens adminuser
ein und fügt diesen dann den beiden Gruppen opsiadmin
und opsifileadmins
hinzu. Damit erhält der Benutzer dann vollen administrativen Zugriff auf den opsi-Server.
Bei der vorkonfigurierten virtuellen Maschine und in unserem Docker-Container gibt es den Account adminuser bereits. Sie können die hier gezeigten Schritte aber zum Hinzufügen weiterer Accounts verwenden.
|
Zuerst legen Sie das neue Konto über den Befehl useradd
an:
sudo useradd -m -s /bin/bash adminuser
Anschließend setzen Sie für den neuen Account ein Unix-Passwort (System):
sudo passwd adminuser
Soll der Benutzer auch Dateizugriff per CIFS (Samba) erhalten, setzen Sie dafür ebenfalls ein Passwort:
sudo smbpasswd -a adminuser
Verwenden Sie in den Passwörtern kein §-Zeichen! |
Als Nächstes fügen Sie den neuen Benutzer den Gruppen opsiadmin
und opsifileadmins
hinzu:
usermod -aG opsiadmin,opsifileadmins adminuser
Geben Sie den Befehl id
ein, um zu überprüfen, dass der Account adminuser
existiert und den beiden Gruppen angehört:
id adminuser
# uid=1000(adminuser) gid=1000(opsiadmin) groups=1000(opsiadmin),999(opsifileadmins)
Passwort für Benutzer pcpatch
Da die opsi-Clients diesen Account für die Authentifizierung verwenden, muss der opsi-Configserver das Passwort kennen. Zu diesem Zweck ist das Kennwort verschlüsselt in der Datei /etc/opsi/passwd
abgelegt. Bei der Installation eines opsi-Configservers wird automatisch ein Zufallskennwort gesetzt, das Sie in der Regel nicht ändern müssen.
Das Passwort können Sie mit dem Kommandozeilentool opsi-admin
ändern (siehe Abschnitt opsi-admin):
opsiconfd setup --set-depot-user-password
Nach dem Drücken der Taste [Eingabe] erscheint ein Passwort-Prompt, und Sie können das Kennwort eintippen.
Das Passwort wird zusätzlich für den lokalen Unix- und Samba-Account geändert. Handelt es sich um einen Domänen-Account, müssen Sie das neue Passwort dort ebenfalls von Hand neu setzen. |
opsi-Server in Windows-Domäne einbinden
Statt mit lokalen Unix- und Samba-Accounts zu arbeiten, können Sie einen opsi-Server auch in eine Windows- bzw. Samba-4-Domäne einbinden. Dazu legen Sie in der Domäne die beiden Gruppen opsiadmin
und opsifileadmins
an.
Wenn Sie die Gruppen anders nennen oder bestehende Gruppen verwenden möchten, dann ändern Sie die Namen auch in der Konfigurationsdatei /etc/opsi/opsi.conf entsprechend.
|
Außerdem legen Sie den Benutzer pcpatch
als Mitglied der Gruppe opsifileadmins
sowie den Benutzer opsiconfd
als Mitglied der Gruppen opsiadmin
und opsifileadmins
an.
Entfernen Sie dann die beiden Gruppen opsiadmin
und opsifileadmins
aus den lokalen Unix-Gruppen (Befehl groupdel
) und die lokalen Unix-Accounts opsiconfd
und pcpatch
(Befehl userdel
).
Nehmen Sie dann den opsi-Server in die Windows-Domäne auf. Schlagen Sie in der Dokumentation der eingesetzten Linux-Distribution nach, welche Schritte dazu jeweils erforderlich sind.
Nach dem Domain Join führen Sie die folgenden zwei Befehle aus:
opsiconfd setup
opsi-set-rights
Weitere Informationen zu den beiden Kommandos lesen Sie in den beiden Abschnitten opsiconfd setup und opsi-set-rights. |
Setzen Sie abschließend das Passwort für den Benutzer pcpatch
neu (siehe Abschnitt Passwort für Benutzer pcpatch).
Authentifizierung gegen einen Verzeichnisdienst (LDAP/AD)
In der Voreinstellung nutzt opsi PAM (Pluggable Authentication Modules) zu Authentifizierung für verschiedene Dienste und Anwendungen. Das funktioniert mit lokalen Benutzern und Gruppen, aber auch, wenn der opsi-Server in eine Domäne eingebunden ist. Alternativ können Sie dafür auch Verzeichnisdienste wie LDAP (Lightweight Directory Access Protocol) oder AD (Active Directory) einsetzen. In dem Fall speichert der Verzeichnisdienst Benutzerkonten, Gruppen und anderen Identitätsinformationen an zentraler Stelle und ermöglicht die Authentifizierung und Autorisierung von Benutzern über verschiedene Dienste und Anwendungen.
Die Samba-Authentifizierung ist davon unabhängig. Die in diesem Abschnitt vorgestellte Herangehensweise eignet sich daher hauptsächlich für opsi-Umgebungen, in denen die Administratoren nicht per Samba, sondern per WebDAV auf die opsi-Shares zugreifen. Beim Betrieb eines opsi-Servers unter Docker ist das immer der Fall. |
Um einen LDAP-Server bzw. ein Active Directory anstelle von PAM für die Authentifizierung zu nutzen, ist die opsi-Erweiterung opsi directory connector erforderlich. |
Konfiguration
Die Konfiguration findet über die Datei /etc/opsi/opsi.conf
im Abschnitt [ldap_auth]
statt. Egal, ob Sie opsi an AD/Samba 4 oder LDAP anbinden, in beiden Fällen definieren Sie die Adresse des Verzeichnisdienstes hinter ldap_url
. Die URL hat den folgenden Aufbau:
ldap[s]://<Adresse-des-LDAP-Servers>[:port]/<base-dn>
Außerdem können Sie hinter der Option bind_user
den Benutzername für die Authentifizierung am LDAP/AD definieren; die Platzhalter {username}
und {base}
sind dabei erlaubt. Im Normalfall ist die Angabe der ldap_url
jedoch ausreichend.
Beispiel zur Anbindung an ein Active Directory bzw. Samba 4:
[ldap_auth]
ldap_url = "ldaps://ad.company.de/dc=ad,dc=company,dc=de"
bind_user = "{username}@ad.company.de"
Beispiel zur Anbindung an einen OpenLDAP-Dienst:
[ldap_auth]
ldap_url = "ldaps://ldap.company.org:636/dc=company,dc=org"
bind_user = "uid={username},dc=Users,{base}"
Mit dem Kommando opsiconfd test ldap_auth können Sie die Verbindung zum LDAP-Server und unterschiedliche Konfigurationen einfach testen.
|
Nachdem Sie die Änderungen in der Konfigurationsdatei gespeichert haben, starten Sie den Dienst opsiconfd neu.
Beachten Sie, dass die hinter admingroup definierte Gruppe in der Datei /etc/opsi/opsi.conf auch im Verzeichnisdienst existieren muss.
|
Zwei-Faktor-Authentifizierung
Der opsi-Server unterstützt die Zwei-Faktor-Authentifizierung und nutzt dazu den TOTP-Algorithmus. Time-based One-time Password ist ein Standardverfahren zur Zwei-Faktor-Authentifizierung (2FA), bei dem ein Einmalpasswort generiert wird. Dieses besteht aus sechs Ziffern und wird zusätzlich zur Anmeldung am opsi-Server benötigt.
Um die Zwei-Faktor-Authentifizierung einzurichten, benötigen Sie die opsi-Erweiterung WAN/VPN. |
Generelle Einrichtung
Um die Zwei-Faktor-Authentifizierung zu aktivieren, konfigurieren Sie den Dienst opsiconfd
entsprechend siehe Abschnitt Konfiguration). Passen Sie die Konfigurationsdatei /etc/opsi/opsiconfd.conf
an und definieren Sie hinter der Option multi-factor-auth
einen der folgenden Werte:
-
inactive
: Die Zwei-Faktor-Authentifizierung ist inaktiv (Standard). Das gilt auch für Benutzer mit konfiguriertem TOTP. -
totp_optional
: Die Zwei-Faktor-Authentifizierung über TOTP ist optional. Benutzer mit aktiviertem TOTP müssen dieses verwenden. -
totp_mandatory
: TOTP ist zwingend erforderlich. Benutzer ohne aktiviertes TOTP können sich nicht mehr anmelden.
Nachdem Sie Ihre Änderungen hinzugefügt haben, rufen Sie den Befehl opsiconfd reload auf.
|
Benutzer-spezifische Einrichtung
Die Einrichtung erfolgt über den Reiter Users der Admin-Seite. Klicken Sie auf den Button Generate new secret and activate TOTP, um serverseitig ein Secret zu generieren und die Zwei-Faktor-Authentifizierung für den jeweiligen Benutzer zu aktivieren.
Den angezeigten QR-Code können Sie dann mit einer App wie etwa 2FA Authenticator (2FAS) (Android und iOS) scannen. Die App generiert daraufhin alle 30 Sekunden ein neues Einmalpasswort, das der Benutzer dann bei der Authentifizierung an das normale Kennwort anhängen muss.
Wenn Sie erneut auf den Button Generate new secret and activate TOTP klicken, erzeugen Sie ein neues Secret. Der bisherige QR-Code des Benutzers verliert damit seine Gültigkeit. |
Um die Zwei-Faktor-Authentifizierung für einen Account zu deaktivieren, klicken Sie auf Deactivate MFA.