GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verbinden Sie sich mit Samba mit Linux Active Directory

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 auf enforcing eingestellt (der Standardwert). Sie ändern also den  ad_gpo_access_control Wert auf permissive .

Aber unter Linux Mint können Sie sich immer noch mit AD-Benutzern anmelden, selbst wenn der ad_gpo_access_control ist auf der enforcing 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.


Linux
  1. So verschlüsseln Sie das Verzeichnis mit EncFS unter Debian 9 Stretch Linux

  2. So löschen Sie Benutzerkonten mit Home-Verzeichnis in Linux

  3. So erstellen Sie einen Benutzer mit einem benutzerdefinierten Home-Verzeichnis in Linux

  4. Linux – Wie kombiniere ich den Baum mit der Verzeichnisgröße?

  5. Wie man ein Verzeichnis unter Linux gzippt

So verbinden Sie Kindle Fire HD mit Ubuntu Linux

So lesen Sie eine Datei mit Leerzeichen in Linux

So treten Sie einem Linux-System einer Active Directory-Domäne bei

So sichern Sie Linux-Server mit SE Linux

So kopieren Sie das Verzeichnis unter Linux

So führen Sie eine Samba Active Directory-Installation unter Linux durch