In diesem Blog beschreiben wir, wie wir Samba4 als Active Directory Domain Controller konfigurieren können, um den Kerberos Domain Controller zu ersetzen. Wir werden auch auf SSSD und PAM eingehen. Unser Ziel ist es, erneuerbare Zertifikate zu erhalten, die dann vom Cloudera Manager, den Hadoop-Dämonen und den Benutzern verwendet werden können. Sie fragen sich vielleicht, warum wir uns überhaupt die Mühe gemacht haben, diese Lösung zu implementieren. Wir haben uns dafür entschieden, diese Lösung zu implementieren, damit wir die Benutzer zentral verwalten können.
Hintergrund
Samba
Samba4 besteht aus mehreren Daemons:
- nmbd -- Namensauflösung im alten Stil aus der NT4-Ära
- smbd -- verwaltet Dateiübertragungen
- winbindd -- verwaltet die Verbindungen zu Domänencontrollern - in diesem Szenario durch sssd ersetzt (scheint auch zugunsten von sssd veraltet zu sein)
- ad - verwaltet die Authentifizierung. Die Samba Active Directory Domain Controller-Funktionalität ist als integrierter Kerberos-DLC, LDAP-Server, DNS-Server und SMB/CIFS-Server implementiert. Die AD DC-Funktionalität von Samba 4 stützt sich stark auf die Heimdal Kerberos-Implementierung. Samba 4 enthält das eingebettete Heimdal. Wenn es mit MIT Kerberos kompiliert wird, bietet Samba 4 derzeit keinerlei Active Directory Domain Controller-Funktionalität, sondern nur clientseitige Bibliotheken und Tools, die keine AD DC-Operationen beinhalten.
Unser Ziel ist es, Samba als Domain Controller einzurichten. Um zu sehen, wie das geht, können Sie das Samba AD DC Howto lesen. Die erforderlichen Schritte sind auch in diesem Blog aufgeführt.
HINWEIS: Samba4 ist recht neu und ein Großteil der Dokumentation bezieht sich noch auf Samba3.
PAM (Pluggable Authentication Modules)
PAM ist ein flexibler Mechanismus zur Authentifizierung von Benutzern. PAM bietet die Möglichkeit, Programme zu entwickeln, die unabhängig vom Authentifizierungsschema sind. Diese Programme benötigen "Authentifizierungsmodule", die zur Laufzeit an sie angehängt werden, damit sie funktionieren. Welches Authentifizierungsmodul angehängt werden soll, hängt von der lokalen Systemeinrichtung ab und liegt im Ermessen des lokalen Systemadministrators. Lesen Sie mehr unter : PAM (Pluggable Authentication Modules).
SSSD (System Security Services Daemon)
SSSD ist ein System-Daemon. Seine Hauptfunktion ist der Zugriff auf entfernte Identitäts- und Authentifizierungsressourcen über ein gemeinsames Framework, das Caching und Offline-Unterstützung für das System bieten kann. Er bietet PAM- und NSS-Module. Die Integration mit einem Domain Controller (wie einem Active Directory-Server oder in unserem Fall mit dem Samba AD DC) erfordert auf der Linux-Seite SSSD. Die gesamte Kommunikation zwischen dem PAM und den verschiedenen möglichen Backends wird über diesen Daemon vermittelt.
Unser Setup
Wir haben einen CentOS 6.5-Rechner für die Installation von Samba AD DC und SSSD verwendet. Auf diesem Rechner läuft auch der Cloudera Manager 4.8. Cloudera Manager 4.8 verwaltet einen CDH 4.5-Cluster, der aus 2 Knoten besteht. Für alle Rechner verwenden wir IPs.
Voraussetzungen
- Deaktivieren Sie SElinux. Stellen Sie sicher, dass in /etc/selinux/config die Zeile "SELINUX=disabled" vorhanden ist, oder verwenden Sie diese als Richtlinie. Wenn Sie dies ändern müssen, starten Sie neu.
- Legen Sie einen FQDN für Ihren Server fest
- Installieren Sie NTPD (>= 4.2.6, wenn Sie Windows-Clients haben und signierte ntp-Unterstützung nutzen möchten), da eine genaue Zeitsynchronisation erforderlich ist.
- Deaktivieren Sie IP-Tabellen.
service iptables stoppen chkconfig iptables aus
HINWEIS: Samba verwendet die folgenden Ports: 88/tcp, 88/udp, 137/tcp, 137/udp, 138/tcp, 138/udp, 139/udp, 139/udp, 445/tcp, 445/udp. Wenn Sie also die IP-Tabellen nicht deaktivieren möchten, stellen Sie sicher, dass diese Ports offen sind. Wir haben diese Ports aus der Samba-Dokumentation entnommen. Wir haben nicht getestet, ob alle Ports in unserer Einrichtung verwendet werden. Wir befanden uns in einer geschützten Umgebung, so dass es kein Problem war, die IP-Tabellen zu deaktivieren.
Samba und den Kerberos-Client installieren, konfigurieren und testen
HINWEIS: Wir verwenden die sernet-Distribution von Samba4, da sie Samba4 4.1 enthält und Samba4 4.0 bei uns einige Probleme verursacht hat. Natürlich können Sie bei Bedarf auch vom Quellcode aus bauen.
- Holen Sie sich das sernet.repo (Sie müssen dafür ein Sernet-Konto auf der SerNet User Manager Seite anlegen)
cd /etc/yum.repos.d/ wget https://: @downlo ad.sernet.de/packages/samba/4.1/centos/6/sernet-samba-4.1.repo
- Repo-Datei mit dem von Sernet bereitgestellten Benutzer und Passwort bearbeiten
cat /etc/yum.repos.d/sernet-samba-4.1.repo [sernet-samba-4.1] Name=SerNet Samba 4.1 Pakete (centos-6) Typ=rpm-md baseurl=https://USERNAME:ACCESSKEY@download.sernet.de/packages/samba/4.1/centos/6/ gpgcheck=1 gpgkey=https://USERNAME:ACCESSKEY@download.sernet.de/packages/samba/4.1/centos/6/repodata/repomd.xml.key aktiviert=1
- Repo-Schlüssel installieren
yum install http://ftp.sernet.de/pub/sernet-build-key-1.1-4.noarch.rpm
- Installieren Sie die Sernet-PaketeHINWEIS: Wenn Sie das Paket krb5-server installiert haben, müssen Sie es deinstallieren, da es in Konflikt mit dem Paket sernet-samba-ad steht.
yum install -y sernet-samba sernet-samba-ad sernet-samba-client
- Konfigurieren Sie Samba als Domain Controller
Der einzige Parameter, den Sie ändern müssen, ist der Samba-Startmodus in /etc/default/sernet-samba
vi /etc/default/sernet-samba # SAMBA_START_MODE definiert, wie Samba gestartet werden soll. Gültige Optionen sind eine der folgenden # "keine", um sie überhaupt nicht zu aktivieren, # "classic", um die klassischen smbd/nmbd/winbind-Daemons zu verwenden # "ad", um den Active Directory-Server zu verwenden (der den smbd selbständig startet) # (Beachten Sie, dass Sie auch die Dienste/Init-Skripte aktivieren müssen, die # automatisch die gewünschten Daemons starten.) SAMBA_START_MODE="Anzeige" # SAMBA_RESTART_ON_UPDATE legt fest, ob die Dienste neu gestartet werden sollen, wenn # werden die RPMs aktualisiert. Wenn Sie dies auf "yes" setzen, wird die # Funktionalität des try-restart-Parameters der Init-Skripte. SAMBA_NEUSTART_BEI_AKTUALISIERUNG="Nein" # NMBD_EXTRA_OPTS kann zusätzliche Optionen enthalten, die als zusätzliche Optionen übergeben werden # Argumente für den nmbd-Daemon NMBD_EXTRA_OPTS="" # WINBINDD_EXTRA_OPTS kann zusätzliche Optionen enthalten, die als Zusatzoptionen übergeben werden. # Argumente für den winbindd-Daemon WINBINDD_EXTRA_OPTS="" # SMBD_EXTRA_OPTS kann zusätzliche Optionen enthalten, die als zusätzliche Optionen übergeben werden. # Argumente für den smbd-Daemon SMBD_EXTRA_OPTS="" # SAMBA_EXTRA_OPTS kann zusätzliche Optionen enthalten, die als zusätzliche Optionen übergeben werden. # Argumente für den Samba-Daemon SAMBA_EXTRA_OPTS="" # SAMBA_IGNORE_NSUPDATE_G definiert, ob der Samba-Daemon gestartet werden soll. # wenn 'nsupdate -g' nicht verfügbar ist. Die Einstellung "ja" würde bedeuten, dass # Samba wird auch ohne 'nsupdate -g' gestartet. Dies führt zu schweren # Probleme ohne eine angemessene Abhilfe! SAMBA_IGNORE_NSUPDATE_G="Nein"
- Jetzt müssen wir unsere smb.conf-Datei in /etc/samba erstellen.
vi /etc/samba/smb.conf # Globale Parameter [global] Arbeitsgruppe = GDD Reich = GDD.NL Server Rolle = active directory domain controller dns Forwarder = 8.8.8.8 idmap_ldb:use rfc2307 = ja kerberos Methode = System-Schlüsseltabelle Protokoll Ebene = 1 Vorlage Shell = /bin/sh winbind Abscheider = + dns zulassen aktualisiert = unterzeichnet tls aktiviert = ja tls Schlüsseldatei = tls/key.pem tls cafile = tls/ca.pem tls certfile = tls/cert.pem [netlogon] Pfad = /var/lib/samba/sysvol/gdd.nl/scripts lesen nur = Nein [sysvol] Pfad = /var/lib/samba/sysvol lesen nur = Nein
Wir geben die Eigenschaft tls enabled an, damit Samba ein automatisch generiertes selbstsigniertes Zertifikat verwenden kann. Beim ersten Start erstellt Samba einen privaten Schlüssel, ein selbstsigniertes Zertifikat und ein CA-Zertifikat:
/usr/local/samba/private/tls/ca.pem /usr/local/samba/private/tls/cert.pem /usr/local/samba/private/tls/key.pem
Diese Zertifikate sind nach ihrer Erstellung 700 Tage lang gültig (die Lebensdauer, die bei der automatischen Erstellung der Zertifikate verwendet wird, ist in âsource4/lib/tls/tlscert.câ fest einkodiert). Da TLS standardmäßig aktiviert ist (âtls enabled = yesâ), werden die oben genannten Dateien verwendet, was den folgenden smb.conf-Parametern entspricht:
tls aktiviert = ja tls Schlüsseldatei = tls/key.pem tls certfile = tls/cert.pem tls cafile = tls/ca.pem
Wir konfigurieren den internen DNS-Server so, dass er die Anfragen an Google DNS weiterleitet, falls unser Samba-Server die Anfragen nicht bearbeiten kann. Sie müssen den Parameter "dns forwarder" auf den DNS-Server setzen, an den die Anfragen weitergeleitet werden können, wenn sie nicht von Samba selbst bearbeitet werden können.
Mit der Option winbind Trennzeichen können Sie festlegen, wie NT-Domänennamen und Benutzernamen zu Unix-Benutzernamen kombiniert werden, wenn sie den Benutzern angezeigt werden. Standardmäßig verwendet winbindd das traditionelle ''-Trennzeichen, so dass die Unix-Benutzernamen wie DOMAINutzername aussehen. Wir hatten deswegen Probleme mit Cloudera Manager und dem von cloudera manager verwendeten postgreSQL, so dass wir das Trennzeichen auf '+' geändert haben.
- Bereitstellen einer DomäneWenn dies der erste Domänencontroller in einer neuen Domäne ist (wovon dieser Blog ausgeht), müssen Sie die internen LDAP-, Kerberos- und DNS-Server einrichten und alle grundlegenden Konfigurationen für das Verzeichnis vornehmen. Hinweis: Wenn Sie nach einem Kennwort gefragt werden, geben Sie ein sicheres Kennwort ein, da die Einrichtung der Domäne sonst fehlschlägt. Hinweis: Das Argument rfc2307 fügt dem AD-Schema POSIX-Attribute (UID/GID) hinzu. Dies ist notwendig, wenn Sie neben Microsoft Windows auch Linux-, BSD- oder OS X-Clients (einschließlich des lokalen Rechners) authentifizieren wollen. Sie ist erforderlich, wenn Sie nicht wollen, dass Ihre Unix-Systeme mit Windows-Benutzernamen wie (SYSTEM) überhäuft werden. Sie müssen die Unix-Attribute für Benutzer hinzufügen, die Zugriff auf Ihre Hadoop-Umgebung benötigen.
samba-tool domain provision --use-rfc2307 --interactive --function-level=2008_R2 #Sie müssen ein paar Fragen beantworten. Reich [LOCALDOMAIN]: GDD.NL Domain [GDD]: GDD Server-Rolle (dc, Mitglied, eigenständig) [dc]: DNS-Backend (SAMBA_INTERN, BIND9_FLATFILE, BIND9_DLZ, KEINE) [SAMBA_INTERNAL]: IP-Adresse des DNS-Forwarders (Schreiben Sie 'keine' um die Weiterleitung zu deaktivieren) [172.16.115.2]: keine Administrator-Passwort: Geben Sie das Passwort erneut ein: Nachschlagen von IPv4-Adressen Nachschlagen von IPv6-Adressen Es wird keine IPv6-Adresse zugewiesen Einrichten von secrets.ldb Einrichten der Registry Einrichten der Privilegien-Datenbank Einrichten der idmap db SAM db einrichten Einrichten von sam.ldb Partitionen und Einstellungen Einrichten von sam.ldb rootDSE Vorladen des Samba 4 und AD-Schema Hinzufügen der DomainDN: DC=gdd,DC=nl Hinzufügen eines Konfigurationscontainers Einrichten des Schemas sam.ldb Einrichten der sam.ldb Konfigurationsdaten Einrichten von Display-Spezifizierern Ändern von Anzeigespezifikationen Container für Benutzer hinzufügen Container für Benutzer ändern Container für Computer hinzufügen Container für Computer ändern Einrichten der sam.ldb Daten Bekannte Sicherheitsprinzipien einrichten Einrichten von sam.ldb Benutzern und Gruppen Self Join einrichten Hinzufügen von DNS-Konten Erstellen von CN=MicrosoftDNS,CN=System,DC=gdd,DC=nl Erstellen von DomainDnsZones und ForestDnsZones Partitionen Auffüllen der DomainDnsZones und ForestDnsZones Partitionen Einrichten von sam.ldb rootDSE Markierung als synchronisiert Fixierung von Bereitstellungs-GUIDs Eine geeignete Kerberos-Konfiguration für Samba 4 wurde unter /var/lib/samba/private/krb5.conf erstellt. Einrichten von gefälschten yp-Server-Einstellungen Sobald die oben genannten Dateien installiert sind, ist Ihr Samba4-Server einsatzbereit Server-Rolle: Active Directory-Domänencontroller Hostname: host1 NetBIOS-Domäne: GDD DNS-Domäne: gdd.nl DOMAIN SID: S-1-5-21-4088664197-506966525-840056760
- Fügen Sie eine Reverse-Zone hinzu - wir benötigen diese, wenn wir die neuen Hosts hinzufügen. Für Hadoop ist es wichtig, dass wir die Vorwärts- und Rückwärtssuche korrekt durchführen können.
samba-tool dns zonecreate[Optionen]
In unserem Fall wäre dies der Fall:
samba-tool dns zonecreate host1.gdd.nl 115.16.172.in-addr.arpa -Uadministrator%Passwort
- Installieren Sie den Kerberos-Client, d.h. wir müssen die Client-Pakete installieren und jeden Client mit einer gültigen krb5.conf-Konfigurationsdatei versehen.
yum install -y krb5-workstation
- Konfigurieren Sie Kerberos. Hier haben wir die folgenden Parameter geändert: dns_lookup_realm, dns_lookup_kdc, default_realm, kdc und admin_server.HINWEIS: Um die Kerberos-Parameter im Abschnitt libdefaults besser zu verstehen, lesen Sie die Kerberos-Dokumentation zu libdefaults. Beachten Sie jedoch, dass der interne KDC von Samba4 auf der Heimdal-Implementierung basiert, so dass es einige Unterschiede gibt.
Wir haben auch den Abschnitt appdefaults hinzugefügt (siehe defaults unter Kerberos appdefaults), da das Modul pam_krb5 im Abschnitt appdefaults einen Unterabschnitt pam erwartet, aus dem es seine Konfigurationsinformationen liest.
vi /etc/krb5.conf [Protokollierung] Standard = DATEI:/var/log/krb5libs.log kdc = DATEI:/var/log/krb5kdc.log admin_server = DATEI:/var/log/kadmind.log [libdefaults] standard_realm = GDD.NL dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d weiterleitbar = true [Reiche] GDD.NL = { kdc = host1.gdd.nl:88 admin_server = host1.gdd.nl:749 } [appdefaults] pam = { debuggen = false ticket_lifetime = 36000 renew_lifetime = 36000 weiterleitbar = true krb4_convert = false }
- Konnektivität testen
smbclient -L host1 -U% Domain=[GDD] OS=[Unix] Server=[Samba 4.1.5-SerNet-RedHat-7.el6] Sharename Typ Kommentar --------- ---- ------- netlogon Diskette sysvol Festplatte IPC$ IPC IPC-Dienst (Samba 4.1.5-SerNet-RedHat-7.el6) Domain=[GDD] OS=[Unix] Server=[Samba 4.1.5-SerNet-RedHat-7.el6] Server-Kommentar --------- ------- Arbeitsgruppe Master --------- -------
- Authentifizierung testen
smbclient //host1/netlogon -UAdministrator -c 'ls' Administrator eingeben's Passwort: Domain=[GDD] OS=[Unix] Server=[Samba 4.1.5-SerNet-RedHat-7.el6] . D 0 Fr Feb 28 08:44:37 2014 .. D 0 Fr Feb 28 08:44:37 2014 54963 Blöcke der Größe 262144. 9834 Blöcke verfügbar
- Einen neuen Benutzer hinzufügen
samba-tool benutzer hinzufügen Neues Passwort: Geben Sie das Passwort erneut ein: Benutzer 'tunde' erfolgreich erstellt samba-tool Benutzerliste Administrator krbtgt Gast tunde # Setzen Sie optional RFC2307 (NIS Schema) Attribute in samba-tool create. Hauptsächlich erforderlich, damit die UID-Zuordnung verwendet werden kann. # Nicht alle Attribute können gesetzt werden, nur harmlose und nicht überlappende (uid, uidNumber, gidNumber, loginShell) samba-tool benutzer hinzufügen test1 --uid-nummer=1000 --gid-number=100 --login-shell=/bin/bash --uid=test1 Neues Passwort: Geben Sie das Passwort erneut ein: Benutzer 'test1' erfolgreich erstellt #Passwort sollte nicht ablaufen samba-tool user setexpiry test1 -k yes --noexpiry Verfallsdatum für Benutzer 'test1' deaktiviert. #Löschen Sie einen Benutzer samba-tool benutzer löschen test1 Gelöschter Benutzer test1
- Andere Möglichkeit, Benutzer aufzulisten
pdbedit -L -v ... --------------- Unix-Benutzername: Administrator NT-Benutzername: Konto-Flaggen: [U ] Benutzer-SID: S-1-5-21-3460841026-2796003680-2018327927-500 Primäre Gruppe SID: S-1-5-21-3460841026-2796003680-2018327927-513 Vollständiger Name: Home-Verzeichnis: HomeDir Drive: (null) Anmeldeskript: Profil Pfad: Bereich: Beschreibung des Kontos: Eingebautes Konto für die Verwaltung des Computers/der Domäne Workstations: Mungedes Zifferblatt: Anmeldezeit: 0 Abmeldezeit: 0 Anstoßzeit: Mi, 13 Sep 30828 19:48:05 PDT Passwort zuletzt gesetzt: Fr, 28 Feb 2014 08:44:41 PST Das Passwort kann sich ändern: Fr, 28 Feb 2014 08:44:41 PST Passwort muss geändert werden: nie Letztes falsches Passwort : 0 Anzahl falscher Passwörter : 0 Anmeldestunden : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF --------------- Unix-Benutzername: tunde NT-Benutzername: Konto-Flaggen: [U ] Benutzer-SID: S-1-5-21-3460841026-2796003680-2018327927-1103 Primäre Gruppe SID: S-1-5-21-3460841026-2796003680-2018327927-513 Vollständiger Name: Home-Verzeichnis: HomeDir Drive: (null) Anmeldeskript: Profil Pfad: Bereich: Beschreibung des Kontos: Workstations: Mungedes Zifferblatt: Anmeldezeit: 0 Abmeldezeit: 0 Anstoßzeit: Mi, 13 Sep 30828 19:48:05 PDT Passwort zuletzt gesetzt: Fr, 28 Feb 2014 09:00:05 PST Das Passwort kann sich ändern: Fr, 28 Feb 2014 09:00:05 PST Passwort muss geändert werden: nie Letztes falsches Passwort : 0 Anzahl falscher Passwörter : 0 Anmeldestunden : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
- Testen Sie, ob Sie ein Zertifikat erhalten können
Kinit Tunde Passwort für tunde@GDD.NL: Warnung: Ihr Passwort läuft ab in 41 Tag am Fr Apr 11 10:00:05 2014 klist Ticket-Cache: DATEI:/tmp/krb5cc_0 Standardmäßiger Auftraggeber: tunde@GDD.NL Gültig ab Expires Serviceprinzip 02/28/14 09:00:21 02/28/14 19:00:21 krbtgt/GDD.NL@GDD.NL erneuern bis 03/07/14 09:00:18
- Testen Sie, ob Ihre /etc/resolv.conf auf den richtigen Server verweist. Die resolv.conf sollte auf den Server zeigen, auf dem Samba AD läuft. Stellen Sie sicher, dass die /etc/resolv.conf nach dem Neustart nicht überschrieben wird.
SSSD installieren & konfigurieren & testen
- Installieren Sie SSSD (System Security Services Daemon), einen System-Daemon. Seine Hauptfunktion besteht darin, den Zugriff auf entfernte Identitäts- und Authentifizierungsressourcen über ein gemeinsames Framework zu ermöglichen, das dem System Zwischenspeicher und Offline-Unterstützung bieten kann. Er bietet PAM- und NSS-Module. Referenz: SSSD - System Security Services Daemon
yum install -y sssd
- Extrahieren Sie die keytab für ein Domänenkonto (Sie können auch das Maschinenkonto dafür verwenden) und stellen Sie sicher, dass sie nur für root lesbar ist.
samba-tool domain exportkeytab /etc/krb5.sssd.keytab --principal=HOST1$ chown root:root /etc/krb5.sssd.keytab chmod 600 /etc/krb5.sssd.keytab
- Sehen Sie sich an, was die keytab enthält:
klist -k /etc/krb5.sssd.keytab
Name der Schlüsseltabelle: FILE:/etc/krb5.sssd.keytab
KVNO Direktor
---- --------------------------------------------------------------------------
1 HOST1$@GDD.NL
1 HOST1$@GDD.NL
1 HOST1$@GDD.NL
1 HOST1$@GDD.NL
1 HOST1$@GDD.NL
- SSSD konfigurieren
vi /etc/sssd/sssd.conf [sssd] config_file_version = 2 Dienstleistungen = nss, pam Domains = GDD.NL debug_level = 10 [nss] nss_filter_groups = Wurzel nss_filter_benutzer = Wurzel nss_entry_cache_timeout = 30 nss_enum_cache_timeout = 30 [Bereich/GDD.NL] id_provider = ad ad_server= host1.gdd.nl ad_domain= gdd.nl ldap_schema = ad ldap_id_mapping = False krb5_keytab=/etc/krb5.sssd.keytab aufzählen.=true override_homedir=/home/%u
- Ändern Sie die Berechtigungen für die Datei /etc/sssd/sssd.conf
chmod 600
/etc/sssd/sssd.conf
- Verwenden Sie authconfig, um NSS und PAM zu konfigurieren.
authconfig bietet eine einfache Methode zur Konfiguration von /etc/sysconfig/network für die Handhabung von NIS sowie von /etc/passwd und /etc/shadow, den Dateien für die Unterstützung von Shadow-Passwörtern. Außerdem werden grundlegende LDAP-, Kerberos 5 und SMB (Authentifizierung) Client-Konfigurationen angeboten.
authconfig --enablesssd --enablesssdauth --enablemkhomedir --update
Nach der Ausführung dieses Befehls erhalten wir eine Fehlermeldung:
Fehler beim Lesen von Informationen über den Dienst winbind: Keine solche Datei oder kein solches Verzeichnis
Aber als wir die nsswitch.conf und pam.d/system-auth überprüften, war alles richtig eingerichtet. Wir verwenden ohnehin kein Winbind.
- Alternativ zum vorherigen Schritt konfigurieren Sie NSS und PAM manuell (oder verwenden Sie die hier beschriebenen Schritte, um zu überprüfen, ob NSS und PAM korrekt konfiguriert wurden)
- SSSD bietet ein NSS-Modul, sssd_nss, mit dem Sie Ihr System so konfigurieren können, dass es SSSD zum Abrufen von Benutzerinformationen verwendet. Bearbeiten Sie die Datei /etc/nsswitch.conf für Ihr System, um die Namensdatenbank sss zu verwenden.
cat /etc/nsswitch.conf
#
# /etc/nsswitch.conf
#
# Ein Beispiel für die Konfigurationsdatei von Name Service Switch. Diese Datei sollte sein
# sortiert mit den meistgenutzten Diensten am Anfang.
#
# Der Eintrag '[NOTFOUND=return]' bedeutet, dass die Suche nach einem
# Eintrag sollte aufhören, wenn die Suche im vorherigen Eintrag zu
# nichts gefunden. Beachten Sie, dass wenn die Suche aus einem anderen Grund fehlgeschlagen ist
# (z.B. kein NIS-Server antwortet), dann wird die Suche mit dem
# nächster Eintrag.
#
# Gültige Einträge sind:
#
# nisplus NIS+ verwenden (NIS Version 3)
# nis NIS verwenden (NIS Version 2), auch YP genannt
# dns DNS (Domain Name Service) verwenden
# Dateien Verwenden Sie die lokalen Dateien
# db Verwenden Sie die lokalen Datenbankdateien (.db)
# compat NIS im Kompatibilitätsmodus verwenden
# hesiod Hesiod für die Benutzersuche verwenden
# [NOTFOUND=return] Suche beenden, wenn noch nicht gefunden
#
# Um db zu verwenden, setzen Sie das "db" vor "files" für Einträge, die Sie als
# zuerst in den Datenbanken nachgeschlagen
#
# Beispiel:
#passwd: db files nisplus nis
#shadow: db files nisplus nis
#Gruppe: db files nisplus nis
passwd: Dateien sss
Schatten: Dateien sss
Gruppe: Dateien sss
#hosts: db files nisplus nis dns
hosts: Dateien dns
# Beispiel - Befolgen Sie nur, was nisplus uns sagt...
#Dienste: nisplus [NOTFOUND=return] Dateien
#networks: nisplus [NOTFOUND=return] Dateien
#protokolle: nisplus [NOTFOUND=return] Dateien
#rpc: nisplus [NOTFOUND=return] Dateien
#ethers: nisplus [NOTFOUND=return] Dateien
#netmasks: nisplus [NOTFOUND=return] Dateien
bootparams: nisplus [NOTFOUND=return] Dateien
ethers: Dateien
netmasks: Dateien
Netzwerke: Dateien
Protokolle: Dateien
rpc: Dateien
Dienstleistungen: Dateien sss
netgroup: Dateien sss
öffentlicher Schlüssel: nisplus
automount: Dateien
Aliasnamen: Dateien nisplus
- PAM konfigurieren
HINWEIS: Ein Fehler in der PAM-Konfigurationsdatei kann dazu führen, dass Sie komplett aus dem System ausgesperrt werden. Sichern Sie immer Ihre Konfigurationsdateien, bevor Sie Änderungen vornehmen, und halten Sie eine Sitzung offen, damit Sie die vorgenommenen Änderungen bei Bedarf rückgängig machen können.
Um Ihr System für die Verwendung von SSSD für PAM zu aktivieren, müssen Sie die Standard-PAM-Konfigurationsdatei bearbeiten. Sichern Sie die PAM-Konfigurationsdatei.
cd
/etc/pam.d/
cp system-auth system-auth.bck
Bearbeiten Sie diese Datei, um das folgende Beispiel wiederzugeben:
vi /etc/pam.d/system.auth
#%PAM-1.0
# Diese Datei wird automatisch generiert.
# Die Benutzeränderungen werden bei der nächsten Ausführung von authconfig zerstört.
auth erforderlich pam_env.so
auth ausreichend pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 ruhig
auth ausreichend pam_sss.so use_first_pass
auth erforderlich pam_deny.so
Konto erforderlich pam_unix.so
Konto ausreichend pam_localuser.so
Konto ausreichend pam_succeed_if.so uid 500 quiet
Konto [Standard=schlecht Erfolg=ok user_unbekannt=Ignorieren Sie] pam_sss.so
Konto erforderlich pam_permit.so
Passwort erforderlich pam_cracklib.so try_first_pass erneut versuchen=3 Typ=
Passwort ausreichend pam_unix.so sha512 shadow nullok try_first_pass use_authtok
Passwort ausreichend pam_sss.so use_authtok
Passwort erforderlich pam_deny.so
Sitzung optional pam_keyinit.so revoke
Sitzung erforderlich pam_limits.so
Sitzung optional pam_mkhomedir.so
Sitzung [Erfolg=1 Standard=Ignorieren Sie] pam_succeed_if.so Dienst in crond quiet use_uid
Sitzung erforderlich pam_unix.so
Sitzung optional pam_sss.so
- Um den SSSD-Daemon zu starten, starten Sie einfach den sssd-Dienst:
dienst sssd starten chkconfig sssd ein
Zum Debuggen kann es bequemer sein, den Daemon im Vordergrund laufen zu lassen:
/usr/sbin/sssd -i
- Testen Sie, ob Sie die zum Samba AD hinzugefügten Benutzer sehen können:
getent passwd ... test1:*:1000:100:test1:/home/test1:/bin/bash ...
Wenn Sie sich die Ausgabe genau ansehen, werden Sie feststellen, dass der Benutzer Administrator und 'tunde' (in unserem Fall) nicht in dieser Liste erscheint. Das liegt daran, dass wir die Eigenschaften UID und GID nicht angegeben haben, als wir samba-tool zur Erstellung des Benutzers tunde verwendet haben.
HINWEIS: Es kann einige Zeit dauern, bis Sie den Benutzer test1 in der Ausgabe des Befehls 'getent passwd' sehen. Das liegt daran, dass die Synchronisierung ein wenig Zeit benötigt. Wenn Sie nicht warten möchten, können Sie einfach den Befehl 'getent passwd' verwenden:
getent passwd test1 ``` ### Andere Rechner in die Domäne einbinden Wenn wir einstellen. Wenn Sie einen Hadoop-Cluster aufbauen möchten, müssen alle Rechner, auf denen Hadoop-Dienste laufen, mit dem AD verbunden werden, das wir im vorherigen Schritt erstellt haben. In unserem Fall das sind die Extras 2 Maschinen, die vom Cloudera Manager verwaltet werden und die als Namenode, Datanode, Jobtracker und Tasktracker fungieren. Die Schritte, die wir durchführen müssen tun auf diesen Rechnern sind ziemlich ähnlich zu dem, was wir auf dem Rechner gemacht haben, auf dem Cloudera Manager, Samba und SSSD laufen... aber Sie müssen trotzdem aufpassen, es gibt ein paar Änderungen... 1. Überprüfen Sie, ob Ihre /etc/resolv.conf auf den richtigen Server verweist. Die resolv.conf sollte auf den Server zeigen, auf dem Samba AD läuft. Stellen Sie sicher, dass die /etc/resolv.conf nach dem Neustart nicht überschrieben wird. 1. Holen Sie sernet.repo ( müssen Sie ein Sernet-Konto erstellen für dies auf der href="https://portal.enterprisesamba.com/">SerNet User Manager Website) ```bash cd /etc/yum.repos.d/ wget https://: @downlo ad.sernet.de/packages/samba/4.1/centos/6/sernet-samba-4.1.repo
- Repo-Datei mit dem von Sernet bereitgestellten Benutzer und Passwort bearbeiten
cat /etc/yum.repos.d/sernet-samba-4.1.repo [sernet-samba-4.1] Name=SerNet Samba 4.1 Pakete (centos-6) Typ=rpm-md baseurl=https://USERNAME:ACCESSKEY@download.sernet.de/packages/samba/4.1/centos/6/ gpgcheck=1 gpgkey=https://USERNAME:ACCESSKEY@download.sernet.de/packages/samba/4.1/centos/6/repodata/repomd.xml.key aktiviert=1
- Repo-Schlüssel installieren
yum install http://ftp.sernet.de/pub/sernet-build-key-1.1-4.noarch.rpm
- Sernet-Pakete installieren
HINWEIS: Wenn Sie das Paket krb5-server installiert haben, müssen Sie es deinstallieren, da es in Konflikt mit dem Paket sernet-samba-ad steht.
yum install -y sernet-samba sernet-samba-ad sernet-samba-client
- Richten Sie Samba ein. Erstellen Sie die Datei smb.conf in /etc/samba
vi /etc/samba/smb.conf [global] Arbeitsgruppe = GDD Reich = GDD.NL Sicherheit = ADS idmap config * : Reichweite = 16777216-33554431 Vorlage Shell = /bin/false winbind Standard verwenden Domain = true winbind offline Anmeldung = false winbind Abscheider = + verschlüsseln Passwörter = ja kerberos Methode = System-Schlüsseltabelle idmap config *:backend = tdb idmap-Konfiguration {{ Domain }}:backend = loswerden idmap-Konfiguration {{ Domain }}:range = 5000-40000 idmap-Konfiguration {{ Domain }}:base_rid = 0 winbind nss Infos = rfc2307 winbind vertrauenswürdige Domänen nur = keine winbind enum Benutzer = ja winbind enum Gruppen = ja Protokoll Ebene = 1
Legen Sie die Berechtigungen fest:
chmod 644
/etc/samba/smb.conf
- Installieren Sie den Kerberos-Client, d.h. wir müssen die Client-Pakete installieren und jeden Client mit einer gültigen krb5.conf-Konfigurationsdatei versehen.
yum install -y krb5-workstation
- Konfigurieren Sie Kerberos.
vi /etc/krb5.conf [Protokollierung] Standard = DATEI:/var/log/krb5libs.log kdc = DATEI:/var/log/krb5kdc.log admin_server = DATEI:/var/log/kadmind.log [libdefaults] standard_realm = GDD.NL dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d weiterleitbar = true [Reiche] GDD.NL = { kdc = host1.gdd.nl:88 admin_server = host1.gdd.nl:749 } [appdefaults] pam = { debuggen = false ticket_lifetime = 36000 renew_lifetime = 36000 weiterleitbar = true krb4_convert = false }
Legen Sie die Berechtigungen fest:
chmod 644
/etc/krb5.conf
- SSSD installieren
yum install -y sssd
- SSSD konfigurieren
vi /etc/sssd/sssd.conf [sssd] config_file_version = 2 Dienstleistungen = nss, pam Domains = Standard debug_level = 10 [nss] nss_filter_groups = Wurzel nss_filter_benutzer = Wurzel nss_entry_cache_timeout = 30 nss_enum_cache_timeout = 30 [Bereich/GDD.NL] id_provider = ad ad_server= host1.gdd.nl ad_domain= gdd.nl ldap_schema = ad ldap_id_mapping = False aufzählen.=true override_homedir=/home/%u
Ändern Sie die Berechtigungen für die Datei /etc/sssd/sssd.conf
chmod 600
/etc/sssd/sssd.conf
- Domänenbeitritt prüfen
net ads testjoin -P
Dies wird wahrscheinlich fehlschlagen, aber es ist ein Befehl, den Sie kennen sollten.
- Treten Sie der Domäne bei:
net ads join -Uadministrator%Passwort
Hinweis: Hier müssen Sie das Passwort ändern und können bei Bedarf auch 'administrator' in den von Ihnen verwendeten Benutzernamen ändern.
HINWEIS: Das Folgende sollte nicht erforderlich sein, aber wir konnten Samba nicht dazu bringen, unsere Hosts automatisch hinzuzufügen. Dies ist wahrscheinlich eine Fehlkonfiguration auf unserer Seite.
Mit diesem Befehl sollte ein Forward (A) DNS-Eintrag zum DNS-Server hinzugefügt werden. Prüfen Sie, ob der Forward Lookup korrekt funktioniert.
HINWEIS: Falls die Datei /etc/resolv.conf nicht auf den richtigen Server (d.h. den Samba-Server) verweist, kann es sein, dass der DNS-Eintrag forwards nicht hinzugefügt wurde. Sie können diesen manuell mit dem folgenden Befehl hinzufügen:
samba-tool dns hinzufügenA -U administrator%Passwort
Wenn also unsere Domain dc auf host1.gdd.nl läuft, unsere dnd_domain GDD.NL ist und wir versuchen, einen neuen Host namens host2.gdd.nl mit der IP 172.16.115.5 hinzuzufügen, dann würde dieser Befehl wie folgt aussehen:
samba-tool dns add host1.gdd.nl gdd.nl host2 A 172.16.115.5 -U administator%passwort
Natürlich müssen Sie noch das richtige Passwort in die vorherige Zeile schreiben.
- Reverse DNS einstellen
samba-tool dns hinzufügenPTR -U administrator%Passwort
Wenn also unsere Domain dc auf host1.gdd.nl läuft, unsere dnd_domain GDD.NL ist und wir versuchen, einen neuen Host namens host2.gdd.nl mit der IP 172.16.115.5 hinzuzufügen, dann würde dieser Befehl wie folgt aussehen:
samba-tool dns add host1.gdd.nl 115.16.172.in-addr.arpa 5 PTR host2.gdd.nl -U administator%Passwort
Natürlich müssen Sie noch das richtige Passwort in die vorherige Zeile schreiben.
- Prüfen Sie, ob der Rückwärts- und Vorwärtssuchlauf korrekt funktioniert.
- Systembenutzerkonfigurationen aktualisieren
authconfig --enablesssd --enablemkhomedir --enablesssdauth --update
- Starten Sie den sssd-Dienst
dienst sssd starten chkconfig sssd ein
Einrichten der Hadoop-Sicherheit mit Cloudera Manager
Die Schritte, die wir befolgen müssen, um Hadoop Security mit Cloudera Manager einzurichten, ähneln den Schritten, die im Blog Einrichten der Kerberos-Authentifizierung für Hadoop mit Cloudera Manager beschrieben wurden. Wir haben das Paket krb5-workstation bereits auf allen Rechnern installiert, so dass dies nicht mehr erforderlich ist.
Zunächst nehmen wir einige Änderungen auf dem Rechner vor, auf dem sich unser Cloudera Manager befindet:
- Wir müssen das Paket openldap-client installieren. Unser Skript, das vom Cloudera Manager zur Generierung der Zertifikate verwendet wird, verwendet den Befehl ldapsearch:
yum install openldap-clients
- Wir müssen die sudoers-Dateien anpassen, damit die Verwendung von cloudera-scm einen sudo-Befehl ohne tty ausführen kann. Außerdem sollte das Cmd_Alas DELEGATING auskommentiert werden.
cat /etc/sudoers ## Berechtigungen delegieren Cmnd_Alias VERGABE = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp ... # Standardangaben Cmnd_Alias SAMBATOOL = /usr/bin/samba-tool ... ## Erlauben Sie root, beliebige Befehle überall auszuführen Wurzel ALLE=(ALLE) NOPASSWD: ALL Standardeinstellungen:cloudera-scm !requiretty cloudera-scm ALLE=NOPASSWD: SAMBATOOL cloudera-scm ALLE=NOPASSWD: DELEGIEREN Um die Schritte zusammenzufassen: 1. Erlauben Sie dem CDH-Installationsbenutzer den Zugriff auf sudo samba-tool. Dies ist erforderlich für Operationen mit den Hauptnamen. 1. Cloudera Manager erstellt Benutzer wie: cloudera-scm, flume, zookeeper, httfs, hue, mapred, yarn, sqoop, hive, sqoop2, oozie, hbase und impala. Wenn Sie tun nicht möchten, dass der Cloudera Manager alle Rechner mit den oben genannten Benutzern belastet, dann sollten Sie diese Benutzer im Samba AD anlegen, bevor Sie den Cloudera Manager installieren. 1. Installieren Sie eine CDH-Version mit Cloudera Manager, ohne die Sicherheit zu konfigurieren. Stellen Sie sicher, dass der Cluster funktioniert. 1. Installieren Sie die Java Cryptography Extension (JCE) 1. Einer der Hauptunterschiede zwischen der Einrichtung der Sicherheit mit dem MIT KDC-Server und mit Samba ist, dass wir mit Samba tun nicht über einen kadmin-Befehl verfügen. Um also einen Kerberos-Prinzipal und eine keytab-Datei zu erstellen für Cloudera Manager Server müssen wir die keytabl-Datei auf eine andere Weise erstellen. Wir werden ein wenig schummeln und einfach den Administrator-Prinzipal verwenden, um den Zugriff auf Cloudera Manager zu ermöglichen: ```bash samba-tool domain exportkeytab cmf.keytab --principal=Administrator -k ja echo "administrator@GDD.NL" > cmf.principal cp cmf.* /etc/cloudera-scm-server/
HINWEIS: In unserem Fall befinden sich der Cloudera Manager und der Samba-Server auf demselben Server, so dass wir die keytab-Datei nicht auf einen anderen Rechner übertragen müssen.
- Da das mit Cloudera gelieferte Standardskript die Zertifikate mit Hilfe eines MIT Kerberos KDC generiert, mussten wir ein Skript schreiben, das diese Zertifikate durch Kommunikation mit unserem Samba AD KDC, das auf Heimdal basiert, generieren kann. Dieses Skript ist das folgende:
#!/usr/bin/env bash # GPL v2 einstellen. -e einstellen. -x # RHEL5/6- und SLES11-Speicherorte explizit zum Pfad hinzufügen exportieren PATH=/usr/kerberos/bin:/usr/kerberos/sbin:/usr/lib/mit/sbin:/usr/sbin:$PATH CMF_REALM=${CMF_PRINCIPAL##*@} CMF_USER=${CMF_PRINCIPAL%@*} KEYTAB_OUT=$1 PRINCUSER=${2%/*} PRINZ=${2%@*} HOSTNAME=${PRINZ##*/} BENUTZER=${PRINCUSER}-${HOSTNAME} DOMAINNAME=</span>hostname <span class="p">|</span> awk -F. <span class="s1">'{$1="";OFS="." ; print $0}'</span> <span class="p">|</span> sed <span class="s1">'s/^.//'</span><span class="sb">CUSER=</span>whoami<span class="sb"># Domänencontroller aus dem DNS holen DC=</span>host -t SRV _ldap._tcp.dc._msdcs.<span class="si">${</span><span class="nv">DOMAINNAME</span><span class="si">}</span> <span class="p">|</span> awk <span class="s1">'{ print $8 }'</span> <span class="p">|</span> sed <span class="s1">'s/.$//'</span><span class="sb">wenn [ -z "${DC}" ]; dann echo "Fehler kein Domänencontroller gefunden. Prüfen Sie, ob Ihr Hostname im FQDN-Format ist und Ihr DNS funktioniert" Ausgang 1 fi # mappen Sie den Domainnamen auf ein Array IFS=. lesen -a ANGEBOTE "${DOMAINNAME}" # SUFFIX wird zu etwas wie dc=example,dc=com SUFFIX=</span><span class="nb">echo</span> <span class="k">$(</span><span class="nb">printf</span> <span class="s2">"dc=%s,"</span> <span class="s2">"</span><span class="si">${</span><span class="nv">SUFFICES</span><span class="p">[@]</span><span class="si">}</span><span class="s2">"</span><span class="k">)</span> <span class="p">|</span> sed <span class="s1">'s/,$//'</span><span class="sb"># TODOL Korrekt ist es, wenn CMF_USER in der Lage ist, Benutzer hinzuzufügen/zu ändern kinit -k -t /etc/cloudera-scm-server/cmf.keytab administrator set +e ldapsearch -b "${SUFFIX}" "(sAMAccountName=${USER})" | grep numEntries > /dev/null RETVAL=$? set -e if [ ${RETVAL} -eq 1 ]; then sudo samba-tool user create ${BENUTZER} -k yes --random-password sudo samba-tool user setexpiry ${USER} -k ja --noexpiry fi # fix the upn aus irgendeinem Grund weigert sich das Samba-Team, dies in ktpass.sh oder in samba-tool zu patchen echo "dn: cn=${BENUTZER},cn=Benutzer,${SUFFIX} changetype: ändern ersetzen: userPrincipalName userPrincipalName: ${PRINZ}@${CMF_REALM}" | ldapmodify # Prüfen Sie, ob das spn für diesen Benutzer existiert +e ldapsearch -b "${SUFFIX}" "(servicePrincipalname=${PRINC})" | grep numEntries > /dev/null RETVAL=$? set -e if [ ${RETVAL} -eq 1 ]; then # GRRRRRR warum akzeptiert samba-tool nicht -H mit spns? sudo samba-tool spn add ${PRINC} ${USER} -k ja fi sudo samba-tool domain exportkeytab ${KEYTAB_OUT} --principal =${PRINC} -k ja sudo chown ${CUSER} ${KEYTAB_OUT} chmod 600 ${KEYTAB_OUT}
Speichern Sie dieses Skript unter /etc/cloudera-scm-server/gen_credentials.sh und ändern Sie die Berechtigungen:
cd /etc/cloudera-scm-server chown cloudera-scm:cloudera-scm gen_credentials.sh chmod 755 gen_credentials.sh
- Gehen Sie in der Cloudera Manager Admin Console (http://Cloudera_Manager_server_IP:7180) zu Administration -> Sicherheit -> Custom Kerberos Keytab Retrieval Script und setzen Sie den Wert auf /etc/cloudera-scm-server/gen_credentials.sh
- Befolgen Sie alle Schritte, die im Blog Einrichten der Kerberos-Authentifizierung für Hadoop mit Cloudera Manager beschrieben sind, im Abschnitt Konfigurieren Sie Cloudera Manager und CDH für die Verwendung von Kerberos, Schritt 5. Dieser Teil beschreibt die Schritte, die Sie in der Cloudera Manager Admin Console (http://Cloudera_Manager_server_IP:7180) durchführen müssen, um die Sicherheit in Hadoop zu aktivieren.
Nachdem Sie all diese Schritte befolgt haben, sollten Sie einen gesicherten Hadoop-Cluster mit einem Samba AD haben.
Fehlersuche
Samba AD DC
- SELinux aktiviert - Samba-Fehler
smbclient -L host1 -U% Sitzungsaufbau fehlgeschlagen: NT_STATUS_ACCESS_DENIED
Das Problem war, dass wir vergessen hatten, nach der Deaktivierung von selinux neu zu starten.
- Angabe eines schwachen Passworts bei der Einrichtung der Domäne:
samba-tool domain provision --use-rfc2307 --interactive --function-level=2008_R2 ... ERROR(ldb): nicht abgefangene Ausnahme - 0000052D: Verletzung einer Einschränkung - check_password_restrictions: Das Kennwort ist zu kurz. Es sollte gleich oder länger sein als 7 Zeichen! Datei "/usr/lib64/python2.6/site-packages/samba/netcmd/__init__.py", Zeile 175, in _run return self.run(*args, **kwargs) Datei "/usr/lib64/python2.6/site-packages/samba/netcmd/domain.py", Zeile 398, in Lauf verwenden_rfc2307=use_rfc2307, skip_sysvolacl=False) Datei "/usr/lib64/python2.6/site-packages/samba/provision/__init__.py", Zeile 2155, in der Bestimmung skip_sysvolacl=skip_sysvolacl) Datei "/usr/lib64/python2.6/site-packages/samba/provision/__init__.py", Zeile 1757, in provision_fill nächstes_rid=next_rid, dc_rid=dc_rid) Datei "/usr/lib64/python2.6/site-packages/samba/provision/__init__.py", Zeile 1436, in fill_samdb "KRBTGTPASS_B64": b64encode(krbtgtpass.encode('utf-16-le')) Datei "/usr/lib64/python2.6/site-packages/samba/provision/common.py", Zeile 50, in setup_add_ldif ldb.add_ldif(Daten, Kontrollen) Datei "/usr/lib64/python2.6/site-packages/samba/__init__.py", Zeile 224, in add_ldif self.add(msg, Kontrollen)
Wir versuchen es noch einmal, damit wir ein sicheres Passwort angeben können
samba-tool domain provision --use-rfc2307 --interactive --function-level=2008_R2 ... Module können nicht geladen werden für /var/lib/samba/private/sam.ldb: Datensatz existiert in ../source4/dsdb/samdb/ldb_modules/partition_metadata.c:134 ERROR(ldb): Ungefangene Ausnahme - Datensatz existiert bei ../source4/dsdb/samdb/ldb_modules/partition_metadata.c:134 Datei "/usr/lib64/python2.6/site-packages/samba/netcmd/__init__.py", Zeile 175, in _run return self.run(*args, **kwargs) Datei "/usr/lib64/python2.6/site-packages/samba/netcmd/domain.py", Zeile 398, in Lauf verwenden_rfc2307=use_rfc2307, skip_sysvolacl=False) Datei "/usr/lib64/python2.6/site-packages/samba/provision/__init__.py", Zeile 2124, in Rückstellung Schema=Schema, füllen=samdb_fill, am_rodc=am_rodc) Datei "/usr/lib64/python2.6/site-packages/samba/provision/__init__.py", Zeile 1202, in setup_samdb samdb.connect(Pfad) Datei "/usr/lib64/python2.6/site-packages/samba/samdb.py", Zeile 71, in connect Optionen=Optionen)
Lösung -- Hinweis: Stellen Sie sicher, dass Sie keine anderen Domänen in der sam.ldb haben.
rm /var/lib/samba/private/sam.ldb
- Authentifizierungstest schlägt fehl
smbclient //host1/netlogon -UAdministrator -c 'ls' Administrator eingeben's Passwort: Domain=[GDD] OS=[Unix] Server=[Samba 4.1.5-SerNet-RedHat-7.el6] Baumverbindung fehlgeschlagen: NT_STATUS_BAD_NETWORK_NAME
Das Problem ist, dass der netlogon-Pfad aus /etc/samba/smb.conf nicht existiert oder nicht die richtigen Berechtigungen hat. Es geht um den folgenden Parameter aus /etc/samba/smb.conf:
[netlogon] Pfad = /var/lib/samba/sysvol/gdd.nl/scripts
Lösung:
mkdir /var/lib/samba/sysvol/gdd.nl/scripts
chmod 770
/var/lib/samba/sysvol/gdd.nl/scripts
SSSD
- Fehler beim Versuch, SSSD zu starten: Keine Domänen konfiguriert
/usr/sbin/sssd -i (Fr Feb 28 08:01:02:501988 2014) [sssd] [confdb_get_domain_internal] (0x0010): Unbekannte Domäne [GDD.NL] (Fr Feb 28 08:01:02:502023 2014) [sssd] [confdb_get_domains] (0x0010): Fehler (2 [Keine solche Datei oder Verzeichnis]) Domain abrufen [GDD.NL], Überspringen! (Fr Feb 28 08:01:02:502035 2014) [sssd] [confdb_get_domains] (0x0010): Keine korrekt konfigurierten Domänen, fataler Fehler! (Fr Feb 28 08:01:02:502042 2014) [sssd] [get_monitor_config] (0x0010): Keine Domänen konfiguriert. (Fr Feb 28 08:01:02:502088 2014) [sssd] [Haupt] (0x0020): Fehler beim Laden der Konfigurationsdatenbank: [2]: Keine solche Datei oder Verzeichnis
Die Lösung besteht darin, tatsächlich eine Domäne zu konfigurieren.
- Fataler Fehler bei der Initialisierung von Datenanbietern beim Versuch, SSSD zu starten
sssd -i ... (Mo Mär 3 05:59:23 2014) [sssd[sein[GDD.NL]]] [load_backend_module] (0x0010): Fehler (2) in Modul (ad) Initialisierung (sssm_ad_id_init)! (Mo Mär 3 05:59:23 2014) [sssd[sein[GDD.NL]]] [be_process_init] (0x0010): Schwerwiegender Fehler bei der Initialisierung von Datenanbietern (Mo Mär 3 05:59:23 2014) [sssd[sein[GDD.NL]]] [Haupt] (0x0010): Backend konnte nicht initialisiert werden [2] (Mo Mär 3 05:59:23 2014) [sssd] [sbus_remove_watch] (0x2000): 0x1d4be30/0x1d44340 (Mo Mär 3 05:59:23 2014) [sssd] [sbus_remove_watch] (0x2000): 0x1d4be30/0x1d4c850 (Mo Mär 3 05:59:23 2014) [sssd] [sbus_dispatch] (0x4000): dbus-Verbindung: 1D4E190 (Mo Mär 3 05:59:23 2014) [sssd] [sbus_dispatch] (0x0080): Verbindung ist nicht geöffnet für Versenden.
Verdammt, ich habe vergessen, die Anmeldedatei zu generieren, und die Zeile in /etc/sssd/sssd.conf lautet: krb5_keytab=/etc/krb5.sssd.keytab
Lösung: Erzeugen Sie eine Keytab-Datei mit
samba-tool domain exportkeytab /etc/krb5.sssd.keytab --principal=HOST1$
Fügen Sie die Zeile "krb5_keytab=/etc/krb5.sssd.keytab" zu /etc/sssd/sssd.conf hinzu.
Hinweis: HOST1 wird in unserem Fall für das Host-Konto verwendet.
Unsere Ideen
Weitere Blogs
Contact



