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

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

Benötigen Sie eine zentrale Domänenverwaltung für Ihre Netzwerke, möchten aber keinen Windows-Server verwenden und die zusätzlichen Lizenzkosten bezahlen? Samba Active Directory ist eine der besten und kostenlosen Alternativen, die Sie unter Linux ausprobieren können.

Samba ist eine Open-Source-Lösung, die hauptsächlich für ihre Netzwerkdateiserver und Druckdienste bekannt ist. Aber seit Version 4.0 erlaubt Ihnen Samba auch, die Active Directory-Serverrolle bereitzustellen.

In diesem Tutorial erfahren Sie, wie Sie Samba Active Directory unter Ubuntu 20.04 installieren und konfigurieren. Machen Sie sich bereit und steigen Sie direkt ein!

Voraussetzungen

Dieser Beitrag ist eine praktische Demonstration. Wenn Sie mitmachen möchten, müssen Sie die folgenden Voraussetzungen erfüllen.

  • Ein Ubuntu 20.04-Server. In diesem Tutorial lautet der Name des Servers dc1 , lautet die Domäne example.com , und die IP-Adresse ist 172.16.1.10 .
  • Ein Benutzerkonto mit sudo-Berechtigungen.
  • Ein Windows 10-Computer im selben Netzwerk wie der Ubuntu-Server.

Einrichten des Server-Hostnamens

Der erste Schritt besteht darin, die Identität des Servers im Netzwerk einzurichten. Dazu müssen Sie den Hostnamen und den vollqualifizierten Domänennamen (FQDN) des Servers zuweisen, indem Sie die folgenden Schritte ausführen.

1. Melden Sie sich zunächst bei Ihrem Ubuntu-Server an und öffnen Sie die Terminalsitzung.

2. Führen Sie als Nächstes den hostnamectl aus Befehl unten, um den Hostnamen Ihres Servers zu ändern. Der folgende Befehl ändert den Hostnamen in dc1 .

# set up the hostname
hostnamectl set-hostname dc1

3. Öffnen Sie nun die /etc/hosts Datei zum Bearbeiten mit Ihrem bevorzugten Editor, z. B. nano . Hängen Sie innerhalb der Datei einen Eintrag an, der die IP-Adresse des Servers angibt , FQDN und Hostname in diesem Format – server-IP hostname.domain.com hostname .

In diesem Beispiel lautet der Eintrag in der hosts-Datei:# setup FQDN dc1.example.lan 172.16.1.10 dc1.example.lan dc1

# setup FQDN dc1.example.lan
172.16.1.10 dc1.example.lan dc1

Nachdem Sie den neuen Eintrag hinzugefügt haben, speichern und beenden Sie die Datei.

4. Führen Sie abschließend den folgenden Befehl aus, um den FQDN des Samba-Servers zu überprüfen. # verify FQDN hostname -f # verify FQDN is resolved to the Samba IP address ping -c3 dc1.example.lan

# verify FQDN
hostname -f

# verify FQDN is resolved to the Samba IP address
ping -c3 dc1.example.lan

Wie Sie unten sehen können, ist der FQDN des Samba-Servers dc1.example.lan , die zu 172.16.1.10 aufgelöst wird .

DNS-Resolver deaktivieren

Die systemd-resolved Der Dienst steuert die DNS-Konfiguration auf dem Ubuntu-Server, was für Samba Active Directory nicht geeignet ist. Um Samba Active Directory einzurichten, müssen Sie zuerst den systemd-resolved deaktivieren warten und /etc/resolv.conf ersetzen Konfigurationsdatei.

  1. Führen Sie die folgenden Befehle aus, um systemd-resolved zu deaktivieren und zu stoppen Dienst sofort und entfernen Sie den symbolischen Link zur Datei /etc/resolv.conf , in Ordnung.
# stop and disable systemd-resolved service
sudo systemctl disable --now systemd-resolved

# remove the symlink file /etc/resolv.conf
sudo unlink /etc/resolv.conf

2. Als nächstes erstellen Sie einen neuen /etc/resolv.conf Datei.

# create a new /etc/resolv.conf file
touch /etc/resolv.conf

3. Öffnen Sie die /etc/resolv.conf Verwenden Sie Ihren bevorzugten Editor und definieren Sie den DNS-Resolver mithilfe der folgenden Konfiguration. Achten Sie darauf, die IP-Adresse des Samba-Servers ganz oben auf die Zeile zu setzen. Speichern Sie die Datei und beenden Sie sie nach der Bearbeitung.

# Samba server IP address
nameserver 172.16.1.10

# fallback resolver
nameserver 1.1.1.1

# main domain for Samba
search example.lan

4. Führen Sie zuletzt den folgenden Befehl aus, um die Datei /etc/resolv.conf zu erstellen Datei unveränderlich. Dieser Schritt stellt sicher, dass sich der Resolver nicht aus irgendeinem Grund unwissentlich ändert.

# add attribute immutable to the file /etc/resolv.conf
sudo chattr +i /etc/resolv.conf

Samba installieren

Nachdem Sie den FQDN eingerichtet und die Namensauflösung konfiguriert haben, installieren Sie Samba auf Ihrem System und aktivieren den Samba Active Directory-Dienst. Zum jetzigen Zeitpunkt stellt das offizielle Ubuntu-Repository Samba v4.13 bereit.

1. Führen Sie apt aus Befehl unten, um den Paketindex Ihres Ubuntu-Servers zu aktualisieren.

sudo apt update

2. Führen Sie nun den folgenden Befehl aus, um Samba mit allen Paketen und Abhängigkeiten zu installieren.

sudo apt install -y acl attr samba samba-dsdb-modules samba-vfs-modules smbclient winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user dnsutils chrony net-tools

3. Geben Sie den standardmäßigen Bereichsdomänennamen in Großbuchstaben ein. In diesem Beispiel lautet der FQDN dc1.example.lan , daher sollte der standardmäßige Bereichsdomänenname EXAMPLE.LAN lauten . Markieren Sie OK und drücken Sie die Eingabetaste.

4. Geben Sie an der nächsten Eingabeaufforderung den Server-FQDN ein. Dieser Schritt definiert den standardmäßigen Kerberos-Server. Markieren Sie OK und drücken Sie die Eingabetaste.

5. Geben Sie als Nächstes den Server-FQDN erneut ein, um den Kerberos-Verwaltungsserver anzugeben. Markieren Sie OK, und drücken Sie die Eingabetaste, um die anfängliche Samba-Konfiguration abzuschließen.

6. Führen Sie nach der Samba-Installation den folgenden Befehl aus, um Dienste zu stoppen und zu deaktivieren, die der Samba Active Directory-Server nicht benötigt smbdnmbd und winbind . Der Server benötigt nur den samba-ac-dc als Active Directory und Domänencontroller dienen.

# stop and disable samba services - smbd, nmbd, and winbind
sudo systemctl disable --now smbd nmbd winbind

7. Führen Sie abschließend die folgenden Befehle aus, um den samba-ad-dc zu aktivieren und zu aktivieren Service.

# activate samba-ad-dc service
sudo systemctl unmask samba-ad-dc

# enable samba-ad-dc service
sudo systemctl enable samba-ad-dc

Konfigurieren von Samba Active Directory

Jetzt haben Sie Samba auf Ihrem System installiert. Es gibt mehrere weitere Schritte, um das Samba Active Directory zu konfigurieren. Die Samba-Installation wurde mit einem Befehlszeilentool namens samba-tool geliefert um das Samba Active Directory bereitzustellen.

1. Erstellen Sie zunächst ein Backup von /etc/samba/smb.conf Datei für ein gutes Maß. Der Bereitstellungsprozess wird diese Datei ersetzen.

# backup default Samba configuration file
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig

2. Führen Sie nun den samba-tool aus Befehl unten, um mit der Bereitstellung von Samba Active Directory zu beginnen.

# provisioning Samba Active Directory
sudo samba-tool domain provision

3. Auf dem Realm Akzeptieren Sie den Standardwert und drücken Sie die Eingabetaste.

4. Auf der Domäne drücken Sie erneut die Eingabetaste, um den Standardwert zu übernehmen.

5. Auf der Serverrolle Übernehmen Sie die Standardeinstellung und drücken Sie die Eingabetaste.

6. Auf dem DNS-Backend belassen Sie den Standardwert (SAMBA_INTERNAL ) und drücken Sie die Eingabetaste.

7. Geben Sie als Nächstes die zusätzliche DNS-Weiterleitungs-IP-Adresse ein . In diesem Beispiel wird der Cloudflare-DNS 1.1.1.1 hinzugefügt als DNS-Forwarder. Diese Option ist nur verfügbar, wenn Sie den SAMBA_INTERNAL verwenden DNS-Backend.

8. Geben Sie Ihr Samba Active Directory-Administratorkennwort ein und drücken Sie die Eingabetaste.

Die Bereitstellung erstellt automatisch die neue Samba-Konfigurationsdatei (/etc/samba/smb.conf ) und die Kerberos-Konfiguration (/var/lib/samba/private/krb5.conf ) Datei.

Nach der Samba Active Directory-Bereitstellung erhalten Sie eine Ausgabe ähnlich dem Screenshot unten.

9. Führen Sie nun die folgenden Befehle aus, um die standardmäßige Kerberos-Konfiguration zu sichern und durch die Datei /var/lib/samba/private/krb5.conf zu ersetzen .

# rename default Kerberos configuration to krb5.conf.orig
sudo mv /etc/krb5.conf /etc/krb5.conf.orig

# copy the Kerberos configuration generated by the samba-tool
sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

10. Führen Sie abschließend den systemctl aus Befehle unten, um den Samba Active Directory-Dienst samba-ad-dc zu starten und vergewissern Sie sich, dass der Dienststatus active (running) ist .

# start samba-ad-dc service
sudo systemctl start samba-ad-dc

# verify samba-ad-dc service
sudo systemctl status samba-ad-dc

Der samba-ad-dc Dienst ist active (running) und enabled , wie Sie unten sehen können. Der Samba-AD-Daemon wird nun automatisch beim Systemstart gestartet.

Zeitsynchronisierung einrichten

Samba Active Directory ist vom Kerberos-Protokoll abhängig, und das Kerberos-Protokoll erfordert, dass die Zeiten des AD-Servers und der Arbeitsstation synchronisiert sind. Um eine ordnungsgemäße Zeitsynchronisierung sicherzustellen, müssen Sie ein Network Time Protocol (NTP) einrichten Server auch auf Samba.

Zu den Vorteilen der AD-Zeitsynchronisierung gehört Wiedergabeangriff Vermeidung und Lösung von AD-Replikationskonflikten.

1. Führen Sie die folgenden Befehle aus, um die Standardberechtigung und den Besitz des Verzeichnisses /var/lib/samba/ntp_signd/ntp_signed zu ändern . Der Benutzer/die Gruppe _chrony muss Leseberechtigung für den ntp_signed haben Verzeichnis.

# allow group _chrony to read the directory ntp_signd
sudo chown root:_chrony /var/lib/samba/ntp_signd/

# change the permission of the directory ntp_signd
sudo chmod 750 /var/lib/samba/ntp_signd/

2. Öffnen Sie nun die Konfigurationsdatei /etc/chrony/chrony.conf in einem Texteditor und fügen Sie die folgende Konfiguration am Ende der Datei hinzu. Diese Konfiguration aktiviert den chrony NTP-Server und verweist den NTP-Socket-Standort auf /var/lib/samba/ntp_signd . Speichern Sie die Konfigurationsdatei und beenden Sie den Editor.

# bind the chrony service to IP address of the Samba AD
bindcmdaddress 172.16.1.10

# allow clients on the network to connect to the Chrony NTP server
allow 172.16.1.0/24

# specify the ntpsigndsocket directory for the Samba AD
ntpsigndsocket /var/lib/samba/ntp_signd

3. Führen Sie als Nächstes die folgenden Befehle aus, um den chronyd neu zu starten und zu überprüfen Dienst auf dem Samba-AD-Server.

# restart chronyd service
sudo systemctl restart chronyd

# verify chronyd service status
sudo systemctl status chronyd

Wie Sie unten sehen können, ist der chronyd Dienst ist enabled und active (running) . Am Ende des chronyd Protokollnachricht sehen Sie die Nachricht MS-SNTP authentication is enabled , was bestätigt, dass die NTP-Authentifizierungserweiterung funktioniert.

Samba Active Directory verifizieren

Nach der Installation sollten Sie die Samba-Konfiguration überprüfen, um sicherzustellen, dass das, was Sie bisher getan haben, funktioniert. Sie können dies tun, indem Sie die Samba-DNS-Konfiguration, den freigegebenen Standardordner (Dateiserver) überprüfen und die Kerberos-Authentifizierung testen.

1. Führen Sie host aus Befehle unten, um den AD-Domänennamen example.lan zu bestätigen und dc1.example.lan .

# verify domain example.lan
host -t A example.lan

# verify domain dc1.example.lan
host -t A dc1.example.lan

Und das Ergebnis sollte bestätigen, dass beide Hosteinträge auf die IP-Adresse des Samba-Servers 172.16.1.10 verweisen .

2. Überprüfen Sie als Nächstes, dass _kerberos und _ldap service record verweisen beide auf den FQDN Ihres Samba Active Directory-Servers.

# verify SRV record for _kerberos
host -t SRV _kerberos._udp.example.lan

# verify SRV record for _ldap
host -t SRV _ldap._tcp.example.lan

In diesem Beispiel bestätigt die folgende Ausgabe, dass sowohl SRV Datensätze werden zu dc1.example.lan aufgelöst .

3. Führen Sie als Nächstes smbclient aus Befehl unten, um die im Samba Active Directory verfügbaren Standardressourcen zu überprüfen.

# checking available resources on Samba AD
smbclient -L example.lan -N

Sie sollten sehen, dass der standardmäßig freigegebene Ordner im Samba Active Directory sysvol ist und netlogon , und der verfügbare Standarddienst ist IPC$ .

4. Führen Sie zuletzt den folgenden kinit aus Befehle zur Authentifizierung beim Kerberos-Server mit dem Benutzer Administrator und überprüfen Sie die auf Ihrem System zwischengespeicherten Kerberos-Tickets.

Hinweis:Der Domänenteil sollte in Großbuchstaben e. sein

# authenticate to Kerberos using administrator
kinit [email protected]

# verify list cached Kerberos tickets
klist

Sie erhalten eine Ausgabe ähnlich dem Screenshot unten. Das Administrator-Kerberos-Ticket wird in der Datei /tmp/krb5cc_0 gespeichert und läuft in 41 Tagen ab.

Erstellen eines neuen Samba Active Directory-Benutzers

An diesem Punkt haben Sie die Konfiguration von Samba Active Directory abgeschlossen. Aber wie Sie wissen, gibt es noch keine Benutzer. Jetzt ist es an der Zeit, Ihr erstes Samba-AD-Benutzerkonto mit dem samba-tool zu erstellen Befehl.

1. Führen Sie den folgenden Befehl aus, um einen neuen Benutzer namens alice zu erstellen , dessen Passwort alice_password88 ist .

# create a new user in Samba
sudo samba-tool user create alice alice_password88

2. Führen Sie als Nächstes samba-tool aus Befehl unten, um verfügbare Benutzer auf Samba zu überprüfen.

# checking users on Samba
sudo samba-tool user list

Wie Sie unten sehen können, ist der neue Benutzer alice ist im Samba Active Directory verfügbar.

Beitreten und Anmelden bei einer Samba Active Directory-Domäne

Nachdem Sie nun einen neuen Benutzer erstellt haben, müssen Sie nur noch eine Arbeitsstation mit der Active Directory-Domäne verbinden. Anschließend können Sie sich mit den Anmeldedaten des Samba-AD-Benutzers bei der Arbeitsstation anmelden.

1. Melden Sie sich an Ihrem Windows-PC an und öffnen Sie PowerShell als Administrator.

2. Führen Sie den folgenden Befehl aus, um die verfügbaren Ethernet-Adapter auf Ihrem Windows-PC aufzulisten.

# checking available interface using Powershell command
Get-NetAdapter -Name "*"

Möglicherweise sehen Sie auf Ihrem PowerShell-Bildschirm unterschiedliche Ausgaben. Dieses Beispiel zeigt eine Netzwerkschnittstelle namens Ethernet Instance 0 2 .

3. Führen Sie den folgenden Befehl aus, um den DNS-Server des Adapters auf die IP-Adresse von Samba Active Directory mit zusätzlichem Fallback-Cloudflare-DNS 1.1.1.1 zu ändern . Durch diesen Schritt wird sichergestellt, dass Ihre Workstation den Samba-AD-Server für die Namensauflösung verwendet.

# setup DNS resolver using Powershell
Set-DNSClientServerAddress "Ethernet Instance 0 2" –ServerAddresses ("172.16.1.10","1.1.1.1")

4. Führen Sie den folgenden Befehl aus, um Ihren DNS-Resolver zu überprüfen, und stellen Sie sicher, dass Ihr Computer den Samba-AD-Server als Standard-DNS-Resolver verwendet.

# verify DNS resolver
Get-DnsClientServerAddress

Sie erhalten eine ähnliche Ausgabe wie im Screenshot unten.

5. Pingen Sie nun den Hostnamen und die Domäne des Servers.

# ping the AD domain dc1.example.lan
ping dc1.example.lan

# ping the AD domain example.lan
ping example.lan

Sie sollten die Antwort vom AD-Server wie unten sehen. Bestätigen Sie, dass das Ergebnis auf die IP-Adresse des Samba-AD-Servers zeigt.

6. Führen Sie als Nächstes den folgenden Befehl aus, um die Arbeitsstation der Samba Active Directory-Domäne beizutreten.

# add Windows 10 to Active Directory
Add-Computer -DomainName "example.lan" -Restart

7. Geben Sie das Samba-AD administrator ein Benutzername und Passwort, klicken Sie auf OK. Der Computer wird im Rahmen des Domänenbeitrittsvorgangs automatisch neu gestartet.

8. Klicken Sie nach dem Neustart auf Other users auf dem Anmeldebildschirm. Geben Sie den Active Directory-Benutzernamen und das Kennwort des Samba AD-Benutzers ein, den Sie zuvor erstellt haben ([email protected] ) und drücken Sie die Eingabetaste, um sich anzumelden.

9. Öffnen Sie nach einer erfolgreichen Anmeldung ein PowerShell-Fenster und führen Sie einen oder beide Befehle unten aus, um den aktuell angemeldeten Benutzernamen zu überprüfen.

whoami
query user

Schlussfolgerung

Das Konzept und die Anwendung von Active Directory sind nicht ausschließlich auf das Windows-Ökosystem beschränkt. Sie haben in diesem Tutorial gelernt, dass Sie die gleichen Active Directory-Vorteile in Linux genießen können, indem Sie das Samba Active Directory implementieren.

In diesem Tutorial haben Sie gelernt, wie Sie das Samba Active Directory unter Ubuntu 20.04 installieren und konfigurieren. Sie haben auch gelernt, neue Benutzer zu erstellen und eine Windows-Arbeitsstation der Samba Active Directory-Domäne beizutreten.

Was kommt als nächstes für Sie? Wie wäre es mit der Integration von Samba in den CUPS-Dienst zur Druckunterstützung oder der Einrichtung eines Samba Share-Dateiservers? Sie sehen, Samba hat mehr zu bieten als Active Directory!


Linux
  1. So installieren Sie Python unter Linux

  2. So installieren Sie Java unter Linux

  3. So installieren Sie FFmpeg unter Linux

  4. So installieren Sie TeamViewer 15 unter Linux

  5. So installieren Sie PIP unter Linux

So installieren Sie Bashtop unter Linux

So installieren Sie Helm unter Linux

So installieren Sie PuTTY unter Linux

So installieren Sie Diskonaut unter Linux

So führen Sie eine sichere Redis-Installation unter Linux durch

So verbinden Sie sich mit Samba mit Linux Active Directory