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

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

Active Directory (AD) von Microsoft ist für viele Unternehmen der bevorzugte Verzeichnisdienst. Wenn Sie und Ihr Team für eine gemischte Windows- und Linux-Umgebung verantwortlich sind, möchten Sie wahrscheinlich die Authentifizierung für beide Plattformen zentralisieren. Ich werde behandeln, wie Sie Linux-Computer zu einer Active Directory-Domain hinzufügen.

Active Directory und die Notwendigkeit einer zentralisierten Zugriffsverwaltung

Active Directory von Microsoft, besser bekannt als AD, hält seit vielen Jahren den Löwenanteil des Marktes für Enterprise Access Management. Es wird von Institutionen und Einzelpersonen auf der ganzen Welt verwendet, um den Zugriff auf Ressourcen der Organisation zentral zu steuern. Es gibt Ihnen die Möglichkeit, Nutzer, Passwörter und Ressourcen wie Computer zu verwalten und festzulegen, wer worauf Zugriff hat. Einige von Ihnen, die diesen Artikel lesen, insbesondere diejenigen, die in großen Institutionen arbeiten, haben bereits mit AD interagiert. Normalerweise verwendet die Interaktion einen Satz von Anmeldeinformationen, um sich bei jeder Arbeitsstation in der Organisation anzumelden. Das ist nur die Spitze eines großen Eisbergs.

Stellen Sie sich eine Sammlung von 40 Computersystemen und 70 Benutzern in einer Firma vor. Einige Mitarbeiter arbeiten im Schichtdienst, während andere reguläre Arbeitszeiten haben. Einige haben Zugang zum Drucken; andere nicht. Die herkömmliche Arbeitsweise besteht darin, lokale Benutzerkonten auf jedem Computer zu erstellen, auf den ein Benutzer zugreifen muss. Stellen Sie sich die Arbeitsbelastung des Endbenutzer-Supportteams vor. Wenn ein Benutzer sein Passwort aus irgendeinem Grund ändert, muss dieser Benutzer das Passwort auf allen Computern ändern, auf die er zuvor Zugriff hatte, um die Dinge synchron zu halten. In kürzester Zeit wird es Chaos geben. Stellen Sie sich nun vor, dass zwei Mitarbeiter kündigen. Die eintönige Arbeit, die bei jeder Personal- oder Arbeitsplatzänderung wiederholt werden muss, brauche ich Ihnen nicht zu erzählen. Für IT-Teams ist dies ein Albtraum. Zeit, die für innovative Aufgaben genutzt werden könnte, wird nun damit verbracht, das Rad neu zu erfinden. Ich habe noch nicht einmal über die Verwaltung des Zugriffs auf die Drucker gesprochen.

Hier blüht ein Verzeichnisdienst wie Active Directory auf. Es kann buchstäblich ein Lebensretter sein. Mit Active Directory wird jeder Benutzer eindeutig als Objekt in einer zentralen Datenbank mit einem einzigen Satz von Anmeldeinformationen erstellt. Jedes Computersystem wird auch als Objekt erstellt. Automatisch kann jeder Benutzer mit denselben Anmeldeinformationen auf jede Workstation zugreifen. Alle Kontoänderungen, die vorgenommen werden müssen, werden einmalig in der zentralen Datenbank vorgenommen. Mitarbeiter können mit denselben Zugangsdaten auf die Drucker zugreifen. Dazu kann der Authentifizierungsmechanismus der Drucker mit AD gekoppelt werden. Zufriedene Benutzer, zufriedenes IT-Team.

Mithilfe von Gruppen und Organisationseinheiten kann der Zugriff auf verschiedene Ressourcen angepasst und verwaltet werden. Es kommt noch besser. Dieses Verzeichnis kann Telefonnummern und E-Mail-Adressen von Mitarbeitern speichern und kann erweitert werden, um andere Informationen zu speichern. Was ist, wenn jemand kündigt? Kein Problem. Deaktivieren Sie einfach das Konto des Benutzers. Der Zugriff dieser Person auf alle Ressourcen wird sofort aufgehoben. Je größer die Organisation, desto größer der Bedarf an zentralisiertem Management. Es spart Zeit; es spart Emotionen.

Im Grunde ist ein Verzeichnisdienst lediglich eine organisierte Möglichkeit, alle Ressourcen in einer Organisation aufzulisten und gleichzeitig einen einfachen Zugriff auf diese Ressourcen zu ermöglichen. Im Grunde ist AD eine Art verteilte Datenbank, auf die über das Lightweight Directory Access Protocol (LDAP) aus der Ferne zugegriffen wird. LDAP ist ein offenes Protokoll für den Fernzugriff auf Verzeichnisdienste über ein verbindungsorientiertes Medium wie TCP/IP. AD ist nicht der einzige Verzeichnisdienst, der auf dem x.500-Standard basiert oder auf den über LDAP zugegriffen werden kann. Andere Verzeichnisdienste sind OpenLDAP und FreeIPA. AD ist jedoch ein ausgereifter Windows-basierter Dienst, der in Windows Server-Systeme integriert ist. Mit anderen Worten, es wird automatisch der Gewinner sein, wenn Ihr Unternehmen über viele Windows-Systeme verfügt. Dies ist einer der Gründe für seine Allgegenwart. Verzeichnisdienste wie FreeIPA sind Linux-basiert und bieten einen hervorragenden Service für einen Linux-Stall. Wenn der Gummi auf die Straße kommt, läuft die Wahl darauf hinaus, welches der beiden Sie angesichts Ihrer aktuellen Umgebung und der Fähigkeiten Ihres Teams schnell einrichten können.

[ Das könnte Ihnen auch gefallen: Windows and Linux interoperability:A look at Samba ]

Aber was passiert, wenn Sie sich für AD entscheiden, einige CentOS-Server haben und keine separaten Anmeldeinformationen für Ihre Linux-Benutzer verwalten möchten? Dieser Mehraufwand ist vollständig vermeidbar. Was Sie tun müssen, ist, die Linux-Server wie einen Windows-Server der AD-Domäne beizutreten.

Wenn Sie das tun müssen, lesen Sie weiter, um herauszufinden, wie es geht. Es ist möglich, ein Windows-System einer FreeIPA-Domäne beizutreten, aber das würde den Rahmen dieses Artikels sprengen.

Voraussetzungen

Dieser Artikel setzt voraus, dass Sie zumindest über ein wenig Einführungserfahrung mit Active Directory verfügen, insbesondere in Bezug auf die Verwaltung von Benutzer- und Computerkonten. Abgesehen davon müssen die folgenden offensichtlichen Anforderungen erfüllt werden:

  • Ein Konto in AD, das über die erforderlichen Berechtigungen verfügt, um ein System der Domäne beizutreten.
  • Ein Linux-Server (für diese Demonstration wurde ein CentOS 7-Server verwendet).
  • Ein Domänencontroller.
  • Stellen Sie sicher, dass Ihr Linux-Server weiß, wie er den Domänencontroller über DNS finden kann.

Um diesen Artikel für alle einfacher zu machen, finden Sie hier eine Liste mit wichtigen Details. So ist das Lab, das ich für diesen Artikel verwendet habe, eingerichtet, also sollten Sie es entsprechend ändern.

  • AD-Domänenname:Hope.net
  • Benutzerkonto für den Beitritt zur Domäne:fkorea (Vollständiger Name - Fiifi Korea)
  • Hostname des Linux-Servers:centy2

Zu installierende Pakete

Für diese Konfiguration ist das zu installierende wesentliche Paket realmd . Abgesehen von realmd , gibt es eine Vielzahl von Paketen, die installiert werden müssen, damit dies funktioniert.

# yum install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python

Realmd bietet eine vereinfachte Möglichkeit, Active Directory-Domänen zu erkennen und mit ihnen zu interagieren. Es verwendet sssd um die eigentlichen Suchvorgänge durchzuführen, die für die Remote-Authentifizierung und andere schwere Aufgaben der Interaktion mit der Domäne erforderlich sind. Im Interesse der Kürze werde ich nicht auf die anderen Pakete in der Liste eingehen.

Für diejenigen, die sich für die Details interessieren, sollte eine schnelle Google-Suche jedoch eine große Hilfe sein.

Realmd (interagiert mit der Domain)

Nachdem alle Pakete installiert wurden, müssen Sie zunächst das CentOS-System der Active Directory-Domäne hinzufügen. Wir verwenden den realm Bewerbung dafür. Das realm client wird gleichzeitig mit realmd installiert . Es wird zum Verbinden, Entfernen, Steuern des Zugriffs und zum Ausführen vieler anderer Aufgaben verwendet. Hier ist die erwartete Syntax für einen einfachen Domänenbeitritt:

realm join --user=[domain user account] [domain name]

Das Leerzeichen zwischen dem Benutzerkonto und dem Domänenkonto ist kein Tippfehler. Durch Einfügen der entsprechenden Angaben erhalten wir folgenden Befehl:

# realm join --user=fkorea hope.net

Geben Sie das Passwort ein, wenn die Eingabeaufforderung angezeigt wird, und warten Sie, bis der Vorgang abgeschlossen ist.

Lassen Sie sich nicht von der kurzen fehlenden Leistung täuschen. Es gibt eine Reihe von Operationen, die als Teil des Prozesses ablaufen. Sie können das -v anhängen Schalter für eine ausführlichere Ausgabe. Ob der Computer jetzt Mitglied der Domäne ist, können Sie jedoch am besten überprüfen, indem Sie die realm list ausführen Befehl. Der Befehl versucht, den aktuellen Status des Servers in Bezug auf die Domäne anzuzeigen. Es ist eine schnelle und schmutzige Methode, um herauszufinden, welche Gruppen oder Benutzer auf den Server zugreifen können.

Sehen Sie sich die Ausgabe an:

Es ist auch ziemlich trivial, das neu erstellte AD-Computerobjekt von Anfang an in einer bestimmten Organisationseinheit (OU) zu platzieren. Ich überlasse das der weiteren Lektüre, aber als Tipp können Sie die Manpage konsultieren. Verwenden des realm Client können Sie Domänenbenutzern und -gruppen den Zugriff gewähren oder entziehen. Ein tiefer Einblick in die Verwendung von realmd auf eine feinere Art und Weise reicht aus, um einen weiteren Artikel zu erstellen. Ich werde jedoch nicht umhin, einige Parameter für Ihre Aufmerksamkeit herauszusuchen, nämlich die Client-Software und die Server-Software. Inzwischen sollten Sie verstehen, warum wir so viele Pakete installieren mussten.

Um die Domain ganz zu verlassen, brauchen Sie zwei Worte:realm leave

Weitere Konfiguration

Da der Linux-Server nun Teil der AD-Domäne ist, können Domänenbenutzer mit ihren üblichen Anmeldeinformationen auf den Server zugreifen. Wir sind fertig, oder? Falsch. "Was ist das Problem?" Ich höre dich sagen.

Nun, für den Anfang ist dies die Barebone-Konfiguration, mit der Sie loslegen können. Aber die Erfahrung ist klobig, um es gelinde auszudrücken. Wir müssen den Dienst weiter konfigurieren, um ihm ein echtes AD-Gefühl zu geben. Es sollte so sein, als würde man sich bei einer Windows 10-Arbeitsstation anmelden, die einer Domäne angehört.

Zweitens gibt es den großen Elefanten im Raum für Systemadministratoren namens Dynamic DNS Updates (DynDNS). Wenn es nicht richtig eingerichtet ist, erzeugen wir zusätzlichen Overhead, indem wir DNS-Einträge manuell pflegen müssen. Für eine Umgebung, die stark auf DNS angewiesen ist, könnte das ein Problem sein. Bei Windows-Systemen bedeutet der Beitritt eines Systems zur Domäne, dass zwei Einträge automatisch verwaltet und auf dem DNS-Server verwaltet werden. Wenn sich IP-Adressen ändern, wird die Änderung automatisch im DNS widergespiegelt. Das bedeutet, dass Sie die IPs von Systemen ändern können, ohne dass Kosten für manuelle Wartung anfallen. Dies ist nur für Personen sinnvoll, die DNS bereits in ihrer Umgebung nutzen. Abgesehen von den spürbaren Produktivitätsgewinnen durch die Automatisierung ist es hilfreich, wenn Windows- und Linux-Umgebungen auf die gleiche Weise funktionieren.

Das dritte Problem ist das DNS-Scavenging. In einer Active Directory-Domäne wird DNS normalerweise von den Domänencontrollern bereitgestellt. Jedes mit der Domain verbundene System hat einen automatischen DNS-Eintrag mit einer entsprechenden IP-Adresse. Das ist super bequem. Veraltete DNS-Einträge werden automatisch in einem festgelegten Intervall gelöscht, um fehlgeleitete Pakete zu verhindern und auch um gelöschte Computerobjekte zu kümmern. Dies wird als Aufräumen bezeichnet , und es ist in AD standardmäßig nicht aktiviert. Wenn es jedoch eingeschaltet ist, müssen wir es konfigurieren. Typischerweise beträgt das Spülintervall sieben Tage. Wenn nach diesem Zeitraum keine Aktualisierung des Datensatzes erfolgt ist, wird er gelöscht, es sei denn, es handelt sich um einen statischen Datensatz. Für Windows-Systeme wird die Funktion „Dynamische Updates“ automatisch eingerichtet. Bei Linux-Servern müssen jedoch einige Änderungen vorgenommen werden. Andernfalls werden unsere Dienste nach einer Weile ausfallen, weil ihre Datensätze aus dem DNS gelöscht werden und niemand weiß, wie sie ihre Bestandteile erreichen können.

Nachdem wir nun einige der potenziellen Probleme kennen, die wir angehen müssen, werfen wir einen Blick auf einige der Dinge, die wir optimieren können, um dem Endbenutzer und dem Systemadministrator ein nahtloseres Erlebnis zu bieten.

SSSD (einfachere Anmeldungen und dynamische Updates)

sssd auf einem Linux-System ist dafür verantwortlich, dem System den Zugriff auf Authentifizierungsdienste von einer Remotequelle wie Active Directory zu ermöglichen. Mit anderen Worten, es ist die primäre Schnittstelle zwischen dem Verzeichnisdienst und dem Modul, das Authentifizierungsdienste anfordert, realmd . Seine Hauptkonfigurationsdatei befindet sich unter /etc/sssd/sssd.conf . Tatsächlich ist dies die Hauptkonfigurationsdatei, die wir ändern werden.

Werfen wir einen Blick auf den Inhalt vor der Konfiguration. Sobald Sie der Domäne beitreten, wird sie sofort so geändert, dass sie die für eine erfolgreiche Anmeldung erforderlichen Mindestinformationen enthält. Meine Datei sah so aus:

Um alle drei zuvor erwähnten Probleme zu lösen, bearbeiten Sie Ihre Datei so, dass sie wie folgt aussieht:

Die meisten Optionen sind selbsterklärend, und Sie können Ihre entsprechend ändern, während wir durchgehen, was einige der wichtigsten Optionen darstellen. Weitere Informationen zu allen Optionen finden Sie auf der Manpage. Ich finde es ist gut geschrieben. Geben Sie einfach man 5 sssd.conf ein auf der Kommandozeile. Sie können auch die Manpage für sssd_ad anzeigen für weitere Informationen.

In erster Linie ist die Konfigurationsdatei in zwei Abschnitte unterteilt. Der globale Abschnitt unter [sssd] und der Abschnitt mit den domänenspezifischen Optionen, [Domäne/[Domänenname]] .

Der globale Abschnitt enthält Optionen, die das allgemeine Verhalten von sssd beeinflussen , wie Versionsinformationen und zugehörige Dienste. Ein Schlüsselparameter in diesem Abschnitt ist unten dargestellt:

  • default_domain_suffix - Setzen Sie dies auf den Domänennamen, wenn Sie bei der Anmeldung nicht den vollständigen Benutzerkontonamen eingeben möchten. Statt [email protected] eingeben zu müssen Sie können immer einfach fkorea eingeben und das Passwort. Dies hilft sehr, wenn Sie einen langen Domainnamen haben.

Der domänenspezifische Abschnitt enthält Parameter, die spezifisch für die Domäne sind, der Sie beigetreten sind. Schlüsselparameter sind:

  • Zugriffsanbieter – Ermöglicht die Auswahl eines Anbieters, der für die Interaktion mit AD-Servern zu Authentifizierungszwecken optimiert und verwendet wird. Es sollte auf ad gesetzt werden . Andere Werte, die hier verwendet werden können, sind ldap und ipa , vorausgesetzt, Sie verwenden diese Verzeichnisdienste.
  • id_provider - Ermöglicht die Auswahl eines Anbieters, der für die Interaktion mit AD-Servern zu Identifizierungszwecken optimiert und verwendet wird. Es sollte auf ad gesetzt werden .
  • ad_hostname - Dies sollte der vollständig qualifizierte Hostname des Servers sein. Es sollte gesetzt werden, wenn der Hostname des Systems etwas anderes als der vollqualifizierte Domänenname ist. Wenn diese nicht gesetzt ist und die sssd keinen Zugriff auf den vollständig qualifizierten Hostnamen hat, schlagen dynamische Updates fehl.
  • ad_domain - Dies sollte der vollständige Domänenname sein (hope.net in diesem Fall).
  • cache_credentials - Dadurch können sich AD-Benutzer anmelden, wenn der Domänencontroller offline ist. Wenn dies auf true gesetzt ist werden die Anmeldeinformationen für einen Zeitraum zwischengespeichert, sodass die Authentifizierung nicht fehlschlägt, wenn das Back-End offline ist. Die Speicherdauer ist ebenfalls konfigurierbar.
  • fallback_homedir - Dies hilft Ihnen, ein Home-Verzeichnis für AD-Benutzer festzulegen, die kein Home-Verzeichnis-Attribut in AD haben. Dies unterscheidet sich von override_home Parameter, der funktioniert, wenn ein Home-Verzeichnis in AD für Benutzer festgelegt ist.
  • dyndns_update - Dies aktiviert dynamische DNS-Updates und akzeptiert entweder true oder falsch als Wert. Wenn dynamische Updates aktiviert sind, finden Updates hauptsächlich unter drei Bedingungen statt:
    • Beim Neustart des Linux-Servers.
    • Wenn der Anbieter online geht.
    • Wann das Aktualisierungsintervall fällig ist.
  • dyndns_refresh_interval - Dieser Wert wird in Sekunden mit einem praktischen Minimum von 60 Sekunden angegeben. Es akzeptiert ganzzahlige Werte und hat einen Standardwert von 24 Stunden (86400s). In diesem Beispiel stellen wir es auf 12 Stunden ein. Wenn nichts anderes ein Update auslöst, wird zwischendurch regelmäßig ein Update durchgeführt.
  • dyndns_update_ptr - Ein boolescher Wert, der angibt, ob der zugehörige PTR-Datensatz in jedem Aktualisierungszyklus aktualisiert werden soll. PTR-Datensätze werden für Reverse-Lookups verwendet, und wenn es keinen triftigen Grund gibt, sollte dies auf true gesetzt werden .
  • dyndns_auth - Gibt an, ob die dynamischen Updates sicher durchgeführt werden sollen oder nicht. Die Einstellung hängt von dem von AD akzeptierten Modus ab. Wenn AD auf Nur sichere Updates akzeptieren eingestellt ist , sollte dieser Wert auf GSS-TSIG gesetzt werden . Wenn nicht, und Sie die Sicherheitsvorteile sicherer dynamischer Updates (trotz der starken Warnung in AD) nicht möchten, können Sie diesen Wert auf none setzen .

Sobald die Konfiguration abgeschlossen ist, starten Sie sssd neu um die Einstellungen sofort zu übernehmen.

# systemctl restart sssd

An diesem Punkt sind wir eingestellt. Wir können uns jetzt wie an einer Windows-Workstation oder einem Windows-Server anmelden.

Visudo (Administratorrechte gewähren)

Benutzer, denen Zugriff gewährt wird, haben unprivilegierten Zugriff auf den Linux-Server. Alle Active Directory-Konten sind jetzt für alle Absichten und Zwecke für das Linux-System zugänglich, genauso wie das System auf nativ erstellte lokale Konten zugreifen kann. Sie können jetzt die regulären Sysadmin-Aufgaben ausführen, indem Sie sie zu Gruppen hinzufügen, sie zu Eigentümern von Ressourcen machen und andere erforderliche Einstellungen konfigurieren. Wenn der Benutzer eine Aktivität versucht, die sudo erfordert zugreifen, wird der bekannte Fehler angezeigt. Wie im Einschub zu sehen ist, befindet sich unser Benutzer nicht in den sudoers Datei.

In diesem Licht können wir die sudoers bearbeiten Datei direkt, um ihnen Superuser-Privilegien zu gewähren. Dies ist kein Artikel über das Gewähren von Superuser-Privilegien, aber wir können das visudo verwenden Werkzeug, um sicher mit den sudoers zu interagieren Datei.

Alternativ hätten wir den Benutzer einfach zum wheel hinzufügen können Gruppe. Der Punkt ist, dass das Benutzerkonto jetzt vom System verwendet werden kann.

[ Netzwerk gerät außer Kontrolle? Sehen Sie sich Netzwerkautomatisierung für alle an, ein kostenloses Buch von Red Hat. ] 

Abschluss

Probieren Sie dies in Ihrer Organisation oder Laborumgebung aus. Es ist offensichtlich, dass ich bei diesem Thema nur an der Oberfläche gekratzt habe, aber das bringt Sie ziemlich weit in den Prozess hinein. Sehen Sie sich die entsprechende Dokumentation an, wenn Sie Optionen untersuchen möchten, die in diesem Artikel nicht behandelt werden.

Durch den Beitritt eines Linux-Systems zu einer Active Directory-Domäne können Sie das Beste aus beiden Welten nutzen. Der Prozess ist sehr einfach und kann mit Bash skriptgesteuert oder mit Ansible automatisiert werden, insbesondere während der Ersteinrichtung des Systems. Falls Sie aus gutem Grund immer noch einen Verbund von mehr als fünf Systemen ohne Verzeichnisdienst verwalten, tun Sie sich bitte den Gefallen und richten Sie sich einen ein. Du kannst mir später danken.


Linux
  1. So ändern Sie einen Runlevel auf einem RHEL 7-Linux-System

  2. So ändern Sie den Hostnamen unter Linux

  3. So benennen Sie ein Verzeichnis unter Linux um

  4. Der Beitritt von Linux Samba Server zur Windows Active Directory-Domäne ist nicht möglich

  5. Wie finde ich das Home-Verzeichnis eines Benutzers unter Linux oder Unix?

So beschränken Sie den Zugriff des Benutzers auf das Linux-System

So listen Sie Dienste unter Linux auf

So kopieren Sie das Verzeichnis unter Linux

Gewusst wie:Konfigurieren von Active Directory in Windows Server 2012

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

So verbinden Sie sich mit Samba mit Linux Active Directory