Wenn Sie ein Systemadministrator sind und sich fragen, wie Sie Ihrem aktuellen Linux Active Directory (AD) einen Linux-Desktop und -Server hinzufügen können, sind Sie hier genau richtig. Das Hinzufügen neuer Clients zu AD vereinfacht die Benutzerverwaltung zwischen mehreren Client-Computern, insbesondere wenn Sie Hunderte von Computern in Ihrer Umgebung verwalten.
In diesem Tutorial erfahren Sie, wie Sie Linux-Systeme (Ubuntu 20.04, Linux Mint und Ubuntu Server) zu einem Linux Samba Active Directory hinzufügen. Dadurch können sich Samba Active Directory-Benutzer bei einem Linux-Client-Rechner mit eigenem Home-Verzeichnis, Standard-Shell und sudo-Root-Rechten (falls erforderlich) anmelden.
Bereit? Spring direkt hinein!
Voraussetzungen
Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen:
- Linux Desktop Machine – Dieses Tutorial verwendet den Ubuntu 20.04 Desktop, aber Sie können auch andere Distributionen wie Linux Mint und Ubuntu Server verwenden.
- Ein Nicht-Root-Benutzer mit
sudo
Privilegien. - Ein voll funktionsfähiges Samba Active Directory (AD).
Einrichten eines permanenten DNS-Resolvers
Bevor Sie Linux-Clients zum Samba Active Directory hinzufügen können, müssen Sie sicherstellen, dass der Samba Active Directory-Domänenname vom Client-Rechner aus erreichbar ist. Wie? Durch Festlegen der Samba-AD-IP-Adresse als Standard-DNS-Resolver für jeden Client-Rechner in /etc/resolv.conf
Konfigurationsdatei.
1. Öffnen Sie Ihr Terminal und führen Sie den systemctl
aus Befehl unten, um den systemd-resolved
zu deaktivieren und zu stoppen Service. Dadurch wird sichergestellt, dass der Linux-Client den statischen und permanenten DNS-Resolver verwendet.
Der Administrator definiert diese permanente DNS-Auflösung und wird nicht durch einen Drittdienst wie systemd-resolved
ersetzt .
# disable and stop systemd-resolved service
sudo systemctl disable --now systemd-resolved
2. Führen Sie als Nächstes den unlink
aus Befehl unten, um die Symlink-Datei zu entfernen (/etc/resolv.conf
). Sie werden diese Datei im nächsten Schritt ersetzen. # remove symlink file /etc/resolv.conf sudo unlink /etc/resolv.conf
# remove symlink file /etc/resolv.conf
sudo unlink /etc/resolv.conf
3. Erstellen Sie jetzt eine neue Datei mit dem Namen /etc/resolv.conf
Verwenden Sie Ihren bevorzugten Editor und füllen Sie die Datei mit der folgenden Konfiguration.
Die folgende Konfiguration legt die Haupt- und Fallback-DNS-Resolver fest.
# Samba AD as main DNS resolver
nameserver 172.16.1.10
# fall-back DNS resolver using Cloudflare
nameserver 1.1.1.1
# hostname lookup for domain example.lan
search example.lan
4. Führen Sie chattr
aus Befehle unten, um die Datei /etc/resolv.conf
zu erstellen unveränderlich, um sicherzustellen, dass Client-Rechner immer Samba AD als Standard-DNS-Resolver verwenden. Diese Befehle verhindern auch das Überschreiben von anderen Diensten wie NetworkManager.
# making the file `/etc/resolv.conf` immutable
sudo chattr +i /etc/resolv.conf
# remove immutable attribute
sudo chattr -i /etc/resolv.conf
5. Führen Sie abschließend den ping
aus Befehle unten, um die Verbindung zu den Samba AD-Domänennamen dc1.example.lan
zu überprüfen und example.lan
.
# ping to AD server dc1.example.an and example.lan
ping -c3 dc1.example.lan
ping -c3 example.lan
Wenn Ihre Verbindung erfolgreich ist, erhalten Sie eine Antwortnachricht vom AD-Server und die Domain dc1.example.lan
und example.lan
wird in die Samba-AD-IP-Adresse aufgelöst.
Chrony als NTP-Client einrichten
Nachdem Sie den DNS-Resolver konfiguriert haben, richten Sie nun Chrony ein, um die Zeit zwischen dem Client-Computer und dem Samba-AD-Server zu synchronisieren. Wenn es einen Zeitunterschied (maximal fünf Minuten) zwischen dem Clientcomputer und dem AD-Server gibt, kann der Client nicht auf alle Ressourcen auf dem AD-Server zugreifen.
1. Führen Sie den folgenden Befehl aus, um chrony
zu installieren zu Ihren Linux-Clients.
# install chrony
sudo apt install chrony -y
2. Bearbeiten Sie jetzt die standardmäßige Chrony-Konfiguration (/etc/chrony/chrony.conf
) in Ihrem bevorzugten Editor und fügen Sie die folgende Konfiguration hinzu.
Die bindcmdaddress
Wert muss die Client-IP-Adresse sein. Der Chrony-Dienst wird auf dieser IP-Adresse ausgeführt. Während die server
Option ist, wo Sie Ihren Samba-AD-Domänennamen als NTP-Server hinzufügen.
# run Chrony as NTP client on the IP address
bindcmdaddress 172.16.1.85
# time synchronize to the Samba AD dc1.example.lan
server dc1.example.lan iburst
3. Führen Sie als Nächstes systemctl
aus Befehle unten, um chronyd
neu zu starten und vergewissern Sie sich, dass der Dienststatus active (running)
lautet . # restart chronyd service sudo systemctl restart chronyd # verify status chronyd service sudo systemctl status chronyd
# restart chronyd service
sudo systemctl restart chronyd
# verify status chronyd service
sudo systemctl status chronyd
Wie Sie unten sehen können, ist der chronyd
Dienst ist active (running)
und enabled
. Der Chrony NTP-Client startet nun automatisch beim Systemstart.
4. Führen Sie schließlich den folgenden Befehl aus, um zu überprüfen, ob der Chrony-Dienst auf dem Client-Computer mit dem Samba AD NTP-Server verbunden ist. chronyc tracking
chronyc tracking
Wie Sie unten sehen können, ist der Chrony-Dienst auf dem Linux-Client mit dem Samba-AD-NTP-Server mit der IP-Adresse 172.16.1.10 verbunden .
Linux-Clients mit Samba Active Directory verbinden
Sie haben nun Chrony auf dem Linux-Client konfiguriert. Aber wie fügt man diesen Client-Rechner dem Samba Active Directory hinzu? Beginnen Sie mit der Installation und Konfiguration von realmd
und sssd
Dienste zum Hinzufügen von Linux-Clients zum Samba-AD-Server.
1. Führen Sie apt
aus Befehl unten, um Ihren Paketindex zu aktualisieren. Dieser Befehl stellt sicher, dass Sie die neueste Version der Pakete aus dem Repository installieren.
sudo apt update
Führen Sie als Nächstes den folgenden Befehl aus, um realmd
zu installieren und sssd
Dienstleistungen mit allen benötigten Zusatzpaketen. Die realmd
Der Dienst wird mit zugrunde liegenden Linux-Diensten wie sssd
verwendet , um dem Samba Active Directory beizutreten.
sudo apt install -y realmd sssd sssd-tools samba-common krb5-user packagekit samba-common-bin samba-libs adcli
Geben Sie den Standardbereich (in Großbuchstaben) für das Samba Active Directory ein, wie unten gezeigt. Sie verwenden diesen Standardbereich für die Kerberos-Authentifizierung.
In diesem Beispiel ist die Standard-Realm-Domain für Samba AD EXAMPLE.LAN .
3. Erstellen Sie eine neue Datei /etc/realmd.conf
Verwenden Sie Ihren bevorzugten Editor und fügen Sie die folgende Konfiguration hinzu. Die folgende Konfiguration führt Folgendes aus:
- Handhabt das Verhalten der Samba-AD-Domäne und -Benutzer
- Gibt die Client-Verbindung zum AD-Server an
- Legt fest, ob die automatische Installation zusätzlicher Dienste verwendet werden soll oder nicht.
- Spezielle Konfiguration für
example.lan
AD-Domain.
[users]
# define Samba AD users behavior
# define default home directory and shell for Samba AD users
default-home = /home/%U
default-shell = /bin/bash
[active-directory]
# define realmd connection to the Samba AD
# you can use `sssd` or `winbind` for realmd to join Samba AD
# os-name can used as an identifier for client
default-client = sssd
os-name = Linux Ubuntu and Mint Desktop
[service]
# disable automati install for additional realmd service
automatic-install = no
[example.lan]
# define behavior of Samba AD `example.lan`
# disable fully-qualified-names so you can use a username to identify Samba users
# automatic-id-mapping to yes will automatically generate UID and GID numbers
# user-principal to yes will automatically create UserPrincipalName for the client machine
# manage-system to yes to enabled realmd to manage client machine
fully-qualified-names = no
automatic-id-mapping = yes
user-principal = yes
manage-system = yes
Führen Sie kinit
aus Befehl unten, um die Domänenverbindung zu authentifizieren (EXAMPLE.LAN
) mit dem Standardnutzer (administrator
) an den Kerberos-Dienst ).
Geben Sie das Passwort für administrator
ein Samba AD-Benutzer, wenn Sie dazu aufgefordert werden, wie unten gezeigt.
Das Hinzufügen neuer Clients zum Samba AD erfordert die Verwendung von
administrator
Benutzer.
# authenticate to Kerberos server on EXAMPLE.LAN using administrator
sudo kinit [email protected]
# verify authentication and print detailed Kerberos tickets for administrator user
sudo klist
5. Führen Sie nun den realm join
aus Befehl unten, um Linux-Clients zum Samba AD hinzuzufügen (example.lan
). Ersetzen Sie UbuntuMintDesktop
mit einem eindeutigen Benutzerprinzipalnamen (UPN). Jeder Client/Rechner muss einen anderen UPN haben.
# joining/adding Linux Ubuntu/Mint to Samba AD example.lan
# --verbose to get full logs from the process
# --user-principal will automatically set the UserPrincipalName for this machine
# --unattended will run the realm command without prompting for a password prompt,
# because you've already authenticated through the Kerberos ticket
sudo realm join --verbose example.lan --user-principal=UbuntuMintDesktop/[email protected] --unattended
Sie erhalten die Erfolgreich registrierte Maschine in Realm Nachricht, wenn der Vorgang abgeschlossen ist. An diesem Punkt haben Sie Ihren Linux-Client erfolgreich zum Samba Active Directory hinzugefügt.
6. Als nächstes öffnen Sie /etc/sssd/sssd.conf
Konfigurationsdatei in Ihrem bevorzugten Editor.
Fügen Sie die folgende Zeile hinzu, die die standardmäßige Zugriffssteuerung für Gruppenrichtlinienobjekte (GPO) in permissive
ändert , und legen Sie den Wert von access_provider
fest zu ad
. Der ad
Der Wert gibt die Standardauthentifizierung für sssd
an Dienst ist ein Active Directory.
Während dies geschrieben wird, erlauben sowohl Ubuntu 20.04 Desktop als auch Server AD-Benutzern nicht, sich anzumelden, wenn
ad_gpo_access_control
ist aufenforcing
eingestellt (der Standardwert). Sie ändern also denad_gpo_access_control
Wert aufpermissive
.Aber unter Linux Mint können Sie sich immer noch mit AD-Benutzern anmelden, selbst wenn der
ad_gpo_access_control
ist auf derenforcing
Modus.
# change default GPO access control to permissive
ad_gpo_access_control = permissive
7. Führen Sie pam-auth-update
aus Befehl unten, um die PAM-Konfiguration zu ändern. Dieser Befehl aktiviert das PAM-Modul (pam_mkhomedir.so ). Das Aktivieren des PAM-Moduls erstellt automatisch ein Home-Verzeichnis für Samba-AD-Benutzer (nur wenn das Home-Verzeichnis nicht verfügbar ist).
# modify PAM configuration
pam-auth-update
Wählen Sie beim Login Home-Verzeichnis erstellen aus Option auf dem Terminalbildschirm und wählen Sie Ok zu bestätigen.
Drücken Sie die Leertaste, um eine Option zu aktivieren, und drücken Sie die TAB-Taste, um das Cursormenü zu verschieben.
8. Führen Sie realm list
aus Befehl unten, um Ihre Verbindung zum Samba Active Directory zu überprüfen.
# Checking connected AD
realm list
Wenn Ihre Verbindung erfolgreich ist, erhalten Sie eine detaillierte AD-Verbindung, wie unten gezeigt.
Unten sehen Sie, dass der Ubuntu/Mint-Desktop-Rechner mit dem Samba Active Directory verbunden ist (example.lan ) als (kerberos-member ).
9. Führen Sie nun den id
aus Befehl unten, um den Samba-AD-Benutzer zu überprüfen.
# checking Samba AD user `alice`
id alice
Wenn Ihre Installation erfolgreich war, erhalten Sie zufällig uid
und gid
für den Samba-Benutzer alice
. In diesem Beispiel sehen Sie den Nutzer alice erstellt und ist auf dem Samba AD verfügbar.
10. Führen Sie außerdem die folgenden Befehle aus, um Ihren Standard-Texteditor festzulegen und zu öffnen (visudo
) die /etc/sudoers
Datei in Ihrem Standardeditor. Sie können Ihren bevorzugten Texteditor jederzeit ändern, aber der Standardeditor ist nano
für diese Demo.
# Sets default editor to nano
export EDITOR=nano
# Opens the /etc/sudoers file in the default editor
visudo
Fügen Sie Ihren Samba AD-Benutzer zu sudoers
hinzu Datei im folgenden Format, speichern Sie die Änderungen und schließen Sie den Editor. Dadurch können Sie sudo
aktivieren Privilegien für den Samba-Benutzer (falls Sie den Benutzer zum Ausführen von sudo benötigen).
# add Samba user `alice` to sudoers
alice ALL=(ALL:ALL) ALL
11. Führen Sie schließlich den folgenden Befehl auf dem Ubuntu-Desktop zu reboot
aus das System, um die neuen Konfigurationen anzuwenden.
Aber für Linux Mint und einen Ubuntu-Server müssen Sie noch einige zusätzliche Konfigurationen hinzufügen, die im folgenden Abschnitt behandelt werden.
sudo reboot
Einrichten von LightDM für Samba Active Directory
Die LightDM-Standardkonfiguration für den manuellen Anmeldevorgang mit Benutzername und Passwort ist auf dem Linux Mint-Desktop deaktiviert. Sie ändern die LightDM-Konfiguration, um den manuellen Anmeldeprozess zu aktivieren, damit sich die Samba AD-Benutzer beim Mint Desktop-Computer anmelden können.
Öffnen Sie LightDM (/etc/lightdm/lightdm.conf ) Konfigurationsdatei in Ihrem bevorzugten Editor und füllen Sie die folgende Konfiguration unter [Seat:*]
aus Abschnitt.
Die greeter-show-manual-login=true
Option unten aktiviert den manuellen Anmeldevorgang auf dem LightDM, während der allow-guest=false
Option deaktiviert die Anmeldung für Gastbenutzer.
# enable manual login
greeter-show-manual-login=true
# disable guest login
allow-guest=false
Führen Sie nun den folgenden Befehl aus, um Ihren Linux Mint-Desktop neu zu starten und neue Konfigurationen anzuwenden.
sudo reboot
Einrichten der Kerberos-Authentifizierung für den SSH-Dienst
Sie müssen die Kerberos-Authentifizierung für den SSH-Dienst in der Serverumgebung aktivieren. Dadurch kann sich der AD-Benutzer beim Server anmelden. Wie? Durch Bearbeiten der SSH-Konfigurationsdatei.
Öffnen Sie die SSH-Datei (/etc/ssh/sshd_config
) Konfigurationsdatei in Ihrem bevorzugten Editor.
Entkommentieren Sie die folgenden Optionen und setzen Sie ihre Werte auf yes
:
KerberosAuthentication
– Aktiviert die Kerberos-Authentifizierung.KerberosTicketCleanup
– Zerstört automatisch Kerberos-Tickets beim Abmelden
Führen Sie nun den folgenden Befehl aus, um Ihren Server neu zu starten und neue Konfigurationen anzuwenden.
sudo reboot
Anmeldung bei Linux-Rechnern mit Samba AD-Benutzern
Jetzt haben Sie Linux-Clients fertiggestellt und zu Samba AD hinzugefügt. Aber wie können Sie überprüfen, ob sich die Samba AD-Benutzer bei diesen Linux-Clients anmelden können? Sie können Benutzer und Kennwort auf dem Anmeldebildschirm des Display Managers auf Linux-Desktop-Clients angeben. Während Sie für den Ubuntu-Server eine Verbindung über das sichere SSH-Protokoll herstellen können.
Die Anmeldung bei Ubuntu, Mint und Ubuntu-Server sieht unterschiedlich aus. Aber keine Sorge, Sie werden in dieser Demo sehen, wie Sie sich bei jedem Betriebssystem mit Samba AD-Benutzern anmelden.
Anmelden bei Linux Ubuntu Desktop
Bei Linux Ubuntu Desktop ist die Anmeldung mit Samba AD-Benutzern genauso, wie Sie sich normalerweise bei einem Benutzerkonto anmelden.
1. Starten Sie Ihren Ubuntu-Desktop-Client und klicken Sie auf Nicht aufgelistet? Option auf dem Ubuntu GDM-Anmeldebildschirm, um sich mit einem anderen Benutzer anzumelden.
2. Geben Sie als Nächstes Ihren Samba AD-Benutzer in den [email protected]
ein Format. Dieses Beispiel verwendet den Samba AD-Benutzer alice(example.lan) , Wie nachfolgend dargestellt.
3. Geben Sie das Passwort Ihres Samba AD-Benutzers (alice) ein und drücken Sie ENTER, um sich anzumelden.
Nach der Anmeldung sehen Sie den Standard-Ubuntu-Desktop wie im Screenshot unten, wo der Samba-AD-Benutzer alice
wurde erfolgreich angemeldet.
Unten sehen Sie, dass das PAM-Modul (pam_mkhomedir.so.
) automatisch das Home-Verzeichnis des Benutzers erstellt. Während die sudo-Root-Berechtigungen über die Datei sudoers
konfiguriert werden .
Anmelden bei Linux Mint Desktop
Beim Linux Mint-Desktop sieht die Anmeldung etwas anders aus als bei einem Ubuntu-Desktop,
Klicken Sie auf die Login-Schaltfläche, geben Sie Ihren Benutzernamen und Ihr Passwort ein, wie unten gezeigt, und drücken Sie dann die EINGABETASTE, um sich anzumelden.
Jetzt sehen Sie den Linux Mint-Desktop für Ihren Samba-AD-Benutzer wie den folgenden.
Anmelden bei Ubuntu Server
Im Gegensatz zu den ersten beiden Betriebssystemen melden Sie sich über die Befehlszeilenumgebung mit ssh
bei einem Ubuntu-Server an Befehl.
Führen Sie ssh
aus Befehl unten von einem anderen Computer, um sich mit dem Server zu verbinden, indem Sie den Samba-AD-Benutzer nach dem [email protected]_ip
verwenden Format, wie unten gezeigt.
# connect to SSH using AD user
ssh [email protected]
Geben Sie yes
ein um die Identität des Server-Fingerabdrucks hinzuzufügen und das Passwort für Ihren Samba-AD-Benutzer auf dem Ubuntu-Server einzugeben.
Wie Sie unten sehen, wird das Home-Verzeichnis des Benutzers automatisch erstellt und die Standard-Shell für Samba AD-Benutzer ist Bash.
Schlussfolgerung
In diesem Tutorial haben Sie gelernt, wie Sie Linux-Clients (Desktop und Server) mithilfe des SSSD- und Realm-Dienstes zum Samba Active Directory (AD) hinzufügen. Außerdem haben Sie gelernt, die Kerberos-Authentifizierung für den SSH-Dienst für einen Linux-Server zu aktivieren.
Wie würden Sie nun die Funktionalität von Samba Active Directory nutzen? Versuchen Sie vielleicht, einen anderen Server als Domänencontroller (DC) hinzuzufügen, um dem aktuellen Samba-AD beizutreten? Dieses Setup bietet Unterstützung für Replikation, Redundanz und Lastenausgleich auf Ihrem AD. Als Ergebnis können Sie dem Samba-AD eine weitere Gruppe von Clients hinzufügen.