Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
Bezieht sich auf SUSE Enterprise Storage 6

20 Exportieren von Ceph-Daten mit Samba Edit source

Mit diesem Kapitel wird erläutert, wie Sie Daten, die in einem Ceph Cluster gespeichert sind, über eine Samba-/CIFS-Freigabe exportieren, sodass Sie problemlos von Windows*-Client-Computern darauf zugreifen können. Hier erfahren Sie außerdem, wie Sie einen Ceph Samba Gateway für die Einbindung in Active Directory in der Windows*-Domäne konfigurieren, sodass Benutzer damit authentifiziert und autorisiert werden können.

Anmerkung
Anmerkung: Samba Gateway-Leistung

Angesichts des erhöhten Protokoll-Overheads und der zusätzlichen Latenz durch zusätzliche Netzwerk-Hops zwischen Client und Speicher kann ein Zugriff auf CephFS über einen Samba Gateway die Anwendungsleistung im Vergleich zu nativen CephFS- oder Object Gateway-Clients erheblich senken.

20.1 Exportieren von CephFS über eine Samba-Freigabe Edit source

Warnung
Warnung: Protokollübergreifender Zugriff

Native CephFS- und NFS-Clients sind nicht durch Dateisperren in Samba eingeschränkt und umgekehrt. In Anwendungen, die auf der protokollübergreifenden Dateisperre beruhen, können dort Beschädigungen auftreten, wenn der Zugriff auf CephFS-gestützte Samba-Freigabepfade auf andere Weise erfolgt.

20.1.1 Installation von Samba-spezifischen Paketen Edit source

Für die Konfiguration und den Export einer Samba-Freigabe müssen die folgenden Pakete installiert werden: samba-ceph und samba-winbind. Wenn diese Pakete nicht installiert sind, installieren Sie sie:

cephadm@smb > zypper install samba-ceph samba-winbind

20.1.2 Beispiel mit einem einzelnen Gateway Edit source

Zur Vorbereitung auf den Export einer Samba-Freigabe wählen Sie einen geeigneten Knoten, der als Samba Gateway fungieren soll. Der Knoten benötigt den Zugriff auf das Ceph-Client-Netzwerk sowie ausreichende CPU-, Arbeitsspeicher- und Netzwerkressourcen.

Die Failover-Funktionalität kann mit CTDB und mit der SUSE Linux Enterprise High Availability Extension zur Verfügung gestellt werden. Weitere Informationen zur HA-Einrichtung finden Sie in Abschnitt 20.1.3, „Hochverfügbarkeitskonfiguration“.

  1. Vergewissern Sie sich, dass sich in Ihrem Cluster bereits ein funktionierendes CephFS befindet. Weitere Informationen finden Sie in Kapitel 11, Installation des CephFS.

  2. Erstellen Sie einen für Samba Gateway spezifischen Schlüsselbund auf dem Ceph Admin Node und kopieren Sie ihn in den Samba Gateway Node:

    cephadm@adm > ceph auth get-or-create client.samba.gw mon 'allow r' \
     osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyring
    root@master # scp ceph.client.samba.gw.keyring SAMBA_NODE:/etc/ceph/

    Ersetzen Sie SAMBA_NODE durch den Namen des Samba Gateway Node.

  3. Die folgenden Schritte werden im Samba Gateway Node ausgeführt. Installieren Sie Samba zusammen mit dem Ceph-Integrationspaket:

    cephadm@smb > sudo zypper in samba samba-ceph
  4. Ersetzen Sie den Standardinhalt der Datei /etc/samba/smb.conf wie folgt:

    [global]
      netbios name = SAMBA-GW
      clustering = no
      idmap config * : backend = tdb2
      passdb backend = tdbsam
      # disable print server
      load printers = no
      smbd: backgroundqueue = no
    
    [SHARE_NAME]
      path = /
      vfs objects = ceph
      ceph: config_file = /etc/ceph/ceph.conf
      ceph: user_id = samba.gw
      read only = no
      oplocks = no
      kernel share modes = no
    Tipp
    Tipp: Oplocks und Freigabemodi

    oplocks (auch als SMB2+-Leases bezeichnet) steigern die Leistung durch aggressives Client-Caching, sind jedoch derzeit unsicher, wenn Samba gemeinsam mit anderen CephFS-Clients implementiert wird, z. B. Kernel-mount.cephfs, FUSE oder NFS Ganesha.

    Wenn der gesamte Zugriff auf die Pfade im CephFS-Dateisystem ausschließlich über Samba abläuft, kann der Parameter oplocks gefahrlos aktiviert werden.

    In einer Freigabe, die mit dem vfs-Modul von CephFS ausgeführt wird, müssen die Kernel-Freigabemodi derzeit deaktiviert werden, damit die Dateibereitstellung fehlerfrei erfolgt.

    Wichtig
    Wichtig: Zulassen des Zugriffs

    Da vfs_ceph keine Dateisystem-Einhängung benötigt, wird der Freigabepfad als absoluter Pfad im Ceph-Dateisystem im verbundenen Ceph Cluster interpretiert. Für die fehlerfreie Freigabe-E/A muss der Zugriff des zugeordneten Benutzers auf den angegebenen Samba-Client in der Zugriffssteuerungsliste (ACL) des Pfads zugelassen sein. Zum Bearbeiten der ACL können Sie eine temporäre Einhängung über den CephFS-Kernel-Client vornehmen und die Dienstprogramme chmod, chown oder setfacl auf den Freigabepfad anwenden. Mit folgendem Kommando gestatten Sie beispielsweise den Zugriff aller Benutzer:

    root # chmod 777 MOUNTED_SHARE_PATH
  5. Starten und aktivieren Sie den Samba Daemon:

    cephadm@smb > sudo systemctl start smb.service
    cephadm@smb > sudo systemctl enable smb.service
    cephadm@smb > sudo systemctl start nmb.service
    cephadm@smb > sudo systemctl enable nmb.service

20.1.3 Hochverfügbarkeitskonfiguration Edit source

Wichtig
Wichtig: Keine Unterstützung für transparentes Failover

Eine Implementierung mit Samba + CTDB und mehreren Knoten bietet eine höhere Verfügbarkeit als ein Einzelknoten (siehe Kapitel 20, Exportieren von Ceph-Daten mit Samba), doch ein clientseitiges, transparentes Failover wird nicht unterstützt. Der Ausfall eines Samba Gateway Nodes führt mit großer Wahrscheinlichkeit zu einer kurzen Unterbrechung für die Anwendungen.

In diesem Abschnitt finden Sie ein Beispiel, wie eine Hochverfügbarkeitskonfiguration aus Samba-Servern mit zwei Nodes eingerichtet wird. Für die Einrichtung ist die SUSE Linux Enterprise High Availability Extension erforderlich. Die beiden Nodes werden earth (192.168.1.1) und mars (192.168.1.2) genannt.

Detaillierte Informationen zu SUSE Linux Enterprise High Availability Extension finden Sie unter https://www.suse.com/documentation/sle-ha-15/.

Außerdem können Clients über zwei virtuelle IP-Adressen nach dem Floating-IP-Prinzip eine Verbindung mit dem Service herstellen, und zwar unabhängig davon, auf welchem physischen Node er ausgeführt wird. 192.168.1.10 wird für die Cluster-Verwaltung mit Hawk2 verwendet und 192.168.2.1 exklusiv für die CIFS-Exporte. Dies erleichtert später die Anwendung von Sicherheitsbeschränkungen.

Das folgende Verfahren beschreibt das Installationsbeispiel. Weitere Informationen finden Sie unter https://www.suse.com/documentation/sle-ha-15/book_sleha_quickstarts/data/art_sleha_install_quick.html.

  1. Erstellen Sie einen für das Samba Gateway spezifischen Schlüsselbund auf dem Admin Node und kopieren Sie ihn in beide Nodes:

    cephadm@adm > ceph auth get-or-create client.samba.gw mon 'allow r' \
        osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyring
    root@master # scp ceph.client.samba.gw.keyring earth:/etc/ceph/
    root@master # scp ceph.client.samba.gw.keyring mars:/etc/ceph/
  2. Bereiten Sie earth und mars darauf vor, den Samba Service zu hosten:

    1. Vergewissern Sie sich, dass die folgenden Pakete installiert sind, bevor Sie fortfahren: ctdb, tdb-tools und samba (für smb- und nmb-Ressourcen erforderlich).

      cephadm@smb > zypper in ctdb tdb-tools samba samba-ceph
    2. Vergewissern Sie sich, dass die Services ctdb, smb und nmb gestoppt und deaktiviert wurden:

      cephadm@smb > sudo systemctl disable ctdb
      cephadm@smb > sudo systemctl disable smb
      cephadm@smb > sudo systemctl disable nmb
      cephadm@smb > sudo systemctl stop smb
      cephadm@smb > sudo systemctl stop nmb
    3. Öffnen Sie Port 4379 Ihrer Firewall in allen Nodes. Dies ist erforderlich, damit CTDB mit anderen Cluster Nodes kommunizieren kann.

  3. Erstellen Sie in earth die Konfigurationsdateien für Samba. Diese werden später automatisch mit mars synchronisiert.

    1. Fügen Sie in /etc/ctdb/nodes alle Nodes ein, die alle privaten IP-Adressen der einzelnen Nodes im Cluster enthalten:

      192.168.1.1
      192.168.1.2
    2. Konfigurieren Sie Samba. Fügen Sie die folgenden Zeilen im Abschnitt [global] von /etc/samba/smb.conf hinzu. Wählen Sie den gewünschten Hostnamen anstelle von "CTDB-SERVER" (alle Nodes im Cluster werden sinnvollerweise als ein großer Node mit diesem Namen angezeigt). Tragen Sie auch eine Freigabedefinition ein (Beispiel unter SHARE_NAME):

      [global]
        netbios name = SAMBA-HA-GW
        clustering = yes
        idmap config * : backend = tdb2
        passdb backend = tdbsam
        ctdbd socket = /var/lib/ctdb/ctdb.socket
        # disable print server
        load printers = no
        smbd: backgroundqueue = no
      
      [SHARE_NAME]
        path = /
        vfs objects = ceph
        ceph: config_file = /etc/ceph/ceph.conf
        ceph: user_id = samba.gw
        read only = no
        oplocks = no
        kernel share modes = no

      Hierbei zu beachten, dass die Dateien /etc/ctdb/nodes und /etc/samba/smb.conf auf allen Samba Gateway Nodes identisch sein müssen.

  4. Installieren Sie den SUSE Linux Enterprise High Availability Cluster und führen Sie ein Bootstrap durch.

    1. Registrieren Sie die SUSE Linux Enterprise High Availability Extension in earth und mars:

      root@earth # SUSEConnect -r ACTIVATION_CODE -e E_MAIL
      root@mars # SUSEConnect -r ACTIVATION_CODE -e E_MAIL
    2. Installieren Sie ha-cluster-bootstrap in beiden Nodes:

      root@earth # zypper in ha-cluster-bootstrap
      root@mars # zypper in ha-cluster-bootstrap
    3. Initialisieren Sie den Cluster in earth:

      root@earth # ha-cluster-init
    4. Lassen Sie mars dem Cluster beitreten:

      root@mars # ha-cluster-join -c earth
  5. Prüfen Sie den Status des Clusters. Sie sollten zwei Nodes sehen, die im Cluster hinzugefügt wurden:

    root@earth # crm status
    2 nodes configured
    1 resource configured
    
    Online: [ earth mars ]
    
    Full list of resources:
    
     admin-ip       (ocf::heartbeat:IPaddr2):       Started earth
  6. Führen Sie die folgenden Kommandos in earth aus, um die CTDB-Ressource zu konfigurieren:

    root@earth # crm configure
    crm(live)configure# primitive ctdb ocf:heartbeat:CTDB params \
        ctdb_manages_winbind="false" \
        ctdb_manages_samba="false" \
        ctdb_recovery_lock="!/usr/lib64/ctdb/ctdb_mutex_ceph_rados_helper
            ceph client.samba.gw cephfs_metadata ctdb-mutex"
        ctdb_socket="/var/lib/ctdb/ctdb.socket" \
            op monitor interval="10" timeout="20" \
            op start interval="0" timeout="200" \
            op stop interval="0" timeout="100"
    crm(live)configure# primitive nmb systemd:nmb \
        op start timeout="100" interval="0" \
        op stop timeout="100" interval="0" \
        op monitor interval="60" timeout="100"
    crm(live)configure# primitive smb systemd:smb \
        op start timeout="100" interval="0" \
        op stop timeout="100" interval="0" \
        op monitor interval="60" timeout="100"
    crm(live)configure# group g-ctdb ctdb nmb smb
    crm(live)configure# clone cl-ctdb g-ctdb meta interleave="true"
    crm(live)configure# commit

    Die Binärdatei /usr/lib64/ctdb/ctdb_mutex_rados_helper in der Konfigurationsoption ctdb_recovery_lock enthält die Parameter CLUSTER_NAME, CEPHX_USER, RADOS_POOL und RADOS_OBJECT (in dieser Reihenfolge).

    Wenn Sie einen zusätzlichen Parameter für die Sperren-Zeitüberschreitung anhängen, können Sie den Standardwert (10 Sekunden) überschreiben. Bei einem höheren Wert wird die Failover-Zeit des CTDB Recovery Master verlängert, bei einem niedrigeren Wert wird der Recovery Master dagegen unter Umständen fälschlich als ausgefallen erkannt, sodass ein ungeplantes Failover ausgeführt wird.

  7. Fügen Sie eine geclusterte IP-Adresse hinzu:

    crm(live)configure# primitive ip ocf:heartbeat:IPaddr2 params ip=192.168.2.1 \
        unique_clone_address="true" \
        op monitor interval="60" \
        meta resource-stickiness="0"
    crm(live)configure# clone cl-ip ip \
        meta interleave="true" clone-node-max="2" globally-unique="true"
    crm(live)configure# colocation col-with-ctdb 0: cl-ip cl-ctdb
    crm(live)configure# order o-with-ctdb 0: cl-ip cl-ctdb
    crm(live)configure# commit

    Wenn unique_clone_address auf true festgelegt ist, fügt der Ressourcenagent IPaddr2 eine Klon-ID zur angegebenen Adresse hinzu, was zu drei verschiedenen IP-Adressen führt. Diese werden normalerweise nicht benötigt, sind jedoch nützlich beim Lastausgleich. Weitere Informationen zu diesem Thema finden Sie unter https://www.suse.com/documentation/sle-ha-15/book_sleha_guide/data/cha_ha_lb.html.

  8. Überprüfen Sie das Ergebnis:

    root@earth # crm status
    Clone Set: base-clone [dlm]
         Started: [ factory-1 ]
         Stopped: [ factory-0 ]
     Clone Set: cl-ctdb [g-ctdb]
         Started: [ factory-1 ]
         Started: [ factory-0 ]
     Clone Set: cl-ip [ip] (unique)
         ip:0       (ocf:heartbeat:IPaddr2):       Started factory-0
         ip:1       (ocf:heartbeat:IPaddr2):       Started factory-1
  9. Testen Sie es an einem Client-Rechner. Führen Sie auf einem Linux Client das folgende Kommando aus, um zu sehen, ob Sie Dateien vom und zum System kopieren können:

    root # smbclient //192.168.2.1/myshare

20.2 Einbindung von Samba Gateway in Active Directory Edit source

Sie können den Ceph Samba Gateway als Mitglied der Samba-Domäne mit Active Directory(AD)-Unterstützung konfigurieren. Als Samba-Domänenmitglied können Sie Domänenbenutzer und Gruppen in lokalen Zugriffssteuerungslisten (ACLs) für Dateien und Verzeichnisse aus dem exportierten CephFS verwenden.

20.2.1 Vorbereitung Edit source

Dieser Abschnitt enthält die vorbereitenden Schritte vor der eigentlichen Samba-Konfiguration. Der Einstieg mit einer sauberen Umgebung trägt dazu bei, eventuelle Verwirrungen zu vermeiden, und sorgt dafür, dass keine Dateien aus der früheren Samba-Installation mit der neuen Domänenmitglieds-Installation vermischt werden.

Tipp
Tipp: Synchronisieren der Uhren

Die Uhren aller Samba Gateway Nodes müssen mit dem Active Directory-Domänencontroller synchronisiert werden. Ein Taktversatz kann zu Authentifizierungsfehlern führen.

Es dürfen keine Samba- oder Name-Caching-Prozesse ausgeführt werden:

cephadm@smb > ps ax | egrep "samba|smbd|nmbd|winbindd|nscd"

Wenn samba-, smbd-, nmbd-, winbindd- oder nscd-Prozesse in der Ausgabe aufgeführt werden, halten Sie diese Prozesse.

Wenn zuvor eine Samba-Installation auf diesem Host ausgeführt wurde, entfernen Sie die Datei /etc/samba/smb.conf. Entfernen Sie auch alle Samba-Datenbankdateien, z. B. *.tdb- und *.ldb-Dateien. Mit folgendem Kommando rufen Sie eine Liste der Verzeichnisse ab, in denen sich Samba-Datenbanken befinden:

cephadm@smb > smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"

20.2.2 Überprüfen des DNS Edit source

Active Directory (AD) sucht mithilfe des DNS nach anderen Domänencontrollern (DCs) und Services wie Kerberos. Die AD-Domänenmitglieder und Server müssen daher in der Lage sein, die AD-DNS-Zonen aufzulösen.

Prüfen Sie, ob der DNS ordnungsgemäß konfiguriert wurde und ob sowohl die Vorwärts- als auch die Rückwärtssuche fehlerfrei aufgelöst werden, beispielsweise:

cephadm@adm > nslookup DC1.domain.example.com
Server:         10.99.0.1
Address:        10.99.0.1#53

Name:   DC1.domain.example.com
Address: 10.99.0.1
cephadm@adm > 10.99.0.1
Server:        10.99.0.1
Address:	10.99.0.1#53

1.0.99.10.in-addr.arpa	name = DC1.domain.example.com.

20.2.3 Auflösen von SRV-Datensätzen Edit source

AD sucht mithilfe des SRV nach Services wie Kerberos und LDAP. Prüfen Sie mit der interaktiven nslookup-Shell, ob die SRV-Datensätze fehlerfrei aufgelöst werden, beispielsweise:

cephadm@adm > nslookup
Default Server:  10.99.0.1
Address:  10.99.0.1

> set type=SRV
> _ldap._tcp.domain.example.com.
Server:  UnKnown
Address:  10.99.0.1

_ldap._tcp.domain.example.com   SRV service location:
          priority       = 0
          weight         = 100
          port           = 389
          svr hostname   = dc1.domain.example.com
domain.example.com      nameserver = dc1.domain.example.com
dc1.domain.example.com  internet address = 10.99.0.1

20.2.4 Kerberos konfigurieren Edit source

Samba unterstützt Heimdal- und MIT-Kerberos-Back-Ends. Zum Konfigurieren von Kerberos auf dem Domänenmitglied legen Sie Folgendes in der Datei /etc/krb5.conf fest:

[libdefaults]
	default_realm = DOMAIN.EXAMPLE.COM
	dns_lookup_realm = false
	dns_lookup_kdc = true

Im obigen Exempel wird Kerberos für den Bereich DOMAIN.EXAMPLE.COM konfiguriert. Es wird nicht empfohlen, weitere Parameter in der Datei /etc/krb5.conf festzulegen. Wenn die Datei /etc/krb5.conf eine Zeile include enthält, funktioniert sie nicht; Sie müssen diese Zeile entfernen.

20.2.5 Namenauflösung des lokalen Hosts Edit source

Wenn Sie einen Host in die Domäne aufnehmen, versucht Samba, den Hostnamen in der AT-DNS-Zone zu registrieren. Hierzu muss das Dienstprogramm net in der Lage sein, den Hostnamen mit DNS oder mit einem passenden Eintrag in der Datei /etc/hosts aufzulösen.

Prüfen Sie mit dem Kommando getent hosts, ob der Hostname fehlerfrei aufgelöst wird:

cephadm@adm > getent hosts example-host
10.99.0.5      example-host.domain.example.com    example-host

Der Hostname und der FQDN dürfen nicht zur IP-Adresse 127.0.0.1 oder zu einer anderen IP-Adresse aufgelöst werden, die nicht mit der IP-Adresse der LAN-Schnittstelle des Domänenmitglieds übereinstimmt. Wenn keine Ausgabe angezeigt oder der Host zu einer falschen IP-Adresse aufgelöst wird und Sie nicht mit DHCP arbeiten, legen Sie den richtigen Eintrag in der Datei /etc/hosts fest:

127.0.0.1      localhost
10.99.0.5      example-host.samdom.example.com    example-host
Tipp
Tipp: DHCP und /etc/hosts

Wenn Sie DHCP verwenden, darf /etc/hosts nur die Zeile „127.0.0.1“ enthalten. Bleiben die Probleme weiterhin bestehen, wenden Sie sich an den Administrator Ihres DHCP-Servers.

Sollen Aliasnamen für den Namen des Computers eingefügt werden, tragen Sie sie am Ende der Zeile ein, die mit der IP-Adresse des Computers beginnt, nicht in die Zeile „127.0.0.1“.

20.2.6 Konfigurieren von Samba Edit source

Diesem Abschnitt werden spezielle Konfigurationsoptionen vorgestellt, die Sie in die Samba-Konfigurationsdatei /etc/samba/smb.conf aufnehmen müssen.

20.2.6.1 Auswahl des Back-Ends für die ID-Zuordnung in winbindd Edit source

Wenn die Benutzer unterschiedliche Login-Shells und/oder Unix-Basisverzeichnispfade erhalten oder stets dieselbe ID nutzen sollen, verwenden Sie das winbind-Back-End „ad“ und nehmen Sie RFC2307-Attribute in AD auf.

Wichtig
Wichtig: RFC2307-Attribute und ID-Nummern

Die RFC2307-Attribute werden beim Erstellen von Benutzern oder Gruppen nicht automatisch hinzugefügt.

Die ID-Nummern auf einem DC (Nummern im Bereich ab 3.000.000) sind keine RFC2307-Attribute und werden nicht auf Unix-Domänenmitgliedern verwendet. Sollen stets dieselben ID-Nummern gelten, nehmen Sie die Attribute uidNumber und gidNumber in AD auf und verwenden Sie das winbind-Back-End „ad“ auf Unix-Domänenmitgliedern. Sollen die Attribute uidNumber und gidNumber dennoch in AD aufgenommen werden, geben Sie keine Zahlen im Bereich ab 3.000.000 an.

Wenn Ihre Benutzer den Samba-AD-DC lediglich zur Authentifizierung heranziehen, also keine Daten dort speichern und sich nicht dort anmelden, können Sie das winbind-Back-End „rid“ heranziehen. Hiermit werden die Benutzer- und Gruppen-IDs über die Windows*-RID berechnet. Wenn Sie auf jedem Unix-Domänenmitglied denselben Abschnitt [global] in der Datei smb.conf nutzen, erhalten Sie stets dieselben IDs. Beim Back-End „rid“ müssen Sie keine Ergänzungen in AD vornehmen und die RFC2307-Attribute werden ignoriert. Legen Sie beim Back-End „rid“ die Parameter template shell und template homedir in smb.conf fest. Diese Einstellungen gelten global und alle Benutzer erhalten dieselbe Login-Shell und denselben Unix-Basisverzeichnispfad (im Gegensatz zu den RFC2307-Attributen, mit denen Sie individuelle Unix-Basisverzeichnispfade und Shells angeben können).

Für die Einrichtung von Samba steht eine weitere Möglichkeit zur Auswahl: Ihre Benutzer und Gruppen erhalten stets dieselbe ID, doch nur die Benutzer erhalten jeweils dieselbe Login-Shell und denselben Unix-Basisverzeichnispfad. Dies erreichen Sie mit dem winbind-Back-End „ad“ und den Schablonenzeilen in smb.conf. So müssen Sie lediglich die Attribute uidNumber und gidNumber in AD aufnehmen.

Tipp
Tipp: Weitere Informationen zu Back-Ends für die ID-Zuordnung

Weitere Informationen zu den verfügbaren Back-Ends für die ID-Zuordnung finden Sie auf den jeweiligen Handbuchseiten: man 8 idmap_ad, man 8 idmap_rid und man 8 idmap_autorid.

20.2.6.2 Einrichten der Benutzer- und Gruppen-ID-Bereiche Edit source

Sobald Sie sich für ein winbind-Back-End entschieden haben, legen Sie die Bereiche für die Option idmap config in smb.conf fest. Auf einem Unix-Domänenmitglied befinden sich standardmäßig mehrere Blöcke mit Benutzer- und Gruppen-IDs:

Tabelle 20.1: Standardmäßige Benutzer- und Gruppen-ID-Blöcke
IDsBereich
0-999Lokale Systembenutzer und -gruppen.
Ab 1.000Lokale UNIX-Benutzer und -Gruppen.
Ab 10.000DOMAIN-Benutzer und -Gruppen.

Wie aus den obigen Bereichen hervorgeht, darf weder der Bereich „*“ noch der Bereich „DOMAIN“ bei 999 oder weniger beginnen, da diese IDs mit den lokalen Systembenutzern und -gruppen in Konflikt kämen. Lassen Sie außerdem genug Platz für lokale Unix-Benutzer und -Gruppen. idmap config-Bereiche ab 3.000 sind daher ein guter Kompromiss.

Überlegen Sie, inwieweit Ihre „DOMAIN“ noch wachsen wird und ob Sie verbürgte Domänen einplanen sollten. Anschließend können Sie die idmap config-Bereiche wie folgt festlegen:

Tabelle 20.2: ID-Bereiche
DomäneBereich
*3000-7999
DOMAIN10000-999999
TRUSTED1000000-9999999

20.2.6.3 Zuordnen des Domänenadministrator-Kontos zum lokalen root-Benutzer Edit source

In Samba können Sie Domänenkonten einem lokalen Konto zuordnen. Mit dieser Funktion können Sie Dateioperationen als ein anderer Benutzer auf dem Dateisystem des Domänenmitglieds ausführen, also nicht mit dem Konto, das die betreffende Operation auf dem Client angefordert hat.

Tipp
Tipp: Zuordnen des Domänenadministrators (optional)

Die Zuordnung des Domänenadministrators zum lokalen root-Konto ist optional. Konfigurieren Sie die Zuordnung nur dann, wenn der Domänenadministrator in der Lage sein muss, Dateioperationen auf dem Domänenmitglied mit root-Berechtigungen auszuführen. Beachten Sie, dass Sie sich auch nach Zuordnung des Administrators zum root-Konto nicht als „Administrator“ bei Unix-Domänenmitgliedern anmelden können.

So ordnen Sie den Domänenadministrator dem lokalen root-Konto zu:

  1. Tragen Sie den folgenden Parameter im Abschnitt [global] der Datei smb.conf ein:

    username map = /etc/samba/user.map
  2. Erstellen Sie die Datei /etc/samba/user.map mit folgendem Inhalt:

    !root = DOMAIN\Administrator
Wichtig
Wichtig

Wenn Sie das ID-Zuordnungs-Back-End „ad“ verwenden, legen Sie nicht das Attribut uidNumber für das Domänenadministratorkonto fest. Ist das Attribut für das Konto festgelegt, überschreibt der Wert die lokale UID „0“ des root-Benutzers und die Zuordnung schlägt fehl.

Weitere Informationen finden Sie unter dem Parameter username map auf der Handbuchseite zu smb.conf (man 5 smb.conf).

20.2.7 Einbindung in die Active Directory-Domäne Edit source

Mit folgendem Kommando binden Sie den Host in Active Directory ein:

cephadm@smb > net ads join -U administrator
Enter administrator's password: PASSWORD
Using short domain name -- DOMAIN
Joined EXAMPLE-HOST to dns domain 'DOMAIN.example.com'

20.2.8 Konfigurieren des Name Service Switch Edit source

Domänenbenutzer und -gruppen stehen nur dann im lokalen System zur Verfügung, wenn Sie die NSS-Bibliothek (Name Service Switch) aktivieren. Ergänzen Sie die folgenden Datenbanken in der Datei /etc/nsswitch.conf mit dem Eintrag winbind:

passwd: files winbind
group:  files winbind
Wichtig
Wichtig: Zu berücksichtigende Aspekte
  • Behalten Sie den Eintrag files als erste Quelle für beide Datenbanken bei. So kann NSS die Domänenbenutzer und -gruppen in den Dateien /etc/passwd und /etc/group nachschlagen, bevor eine Abfrage an den winbind-Dienst erfolgt.

  • Nehmen Sie den Eintrag winbind nicht in die NSS-Shadow-Datenbank auf. Dies kann dazu führen, dass das wbinfo-Dienstprogramm fehlschlägt.

  • Verwenden Sie in der lokalen Datei /etc/passwd nicht dieselben Benutzernamen wie in der Domäne.

20.2.9 Starten der Services Edit source

Für ein voll funktionsfähiges Unix-Domänenmitglied müssen drei Services aktiviert und gestartet werden: smbd, nmbd und winbindd. Aktivieren und starten Sie sie mit folgenden Kommandos:

cephadm@smb > sudo systemctl enable smbd.service && systemctl start smbd.service
cephadm@smb > sudo systemctl enable nmbd.service && systemctl start nmbd.service
cephadm@smb > sudo systemctl enable winbindd.service && systemctl start winbindd.service
Tipp
Tipp: Optional: nmbd

Falls Sie keine Netzwerksuche benötigen, müssen Sie den nmbd-Service nicht auf einem Unix-Domänenmitglied aktivieren und starten.

20.2.10 Testen der winbindd-Konnektivität Edit source

20.2.10.1 Senden eines winbindd-Pings Edit source

So prüfen Sie, ob der winbindd-Service eine Verbindung zu AD-Domänencontrollern (DC) oder zu einem Primärdomänencontroller (PDC) herstellen kann:

cephadm@smb > wbinfo --ping-dc
checking the NETLOGON for domain[DOMAIN] dc connection to "DC.DOMAIN.EXAMPLE.COM" succeeded

Falls das obige Kommando fehlschlägt, prüfen Sie, ob der winbindd-Service ausgeführt wird und die Datei smb.conf ordnungsgemäß eingerichtet ist.

20.2.10.2 Nachschlagen von Domänenbenutzern und -gruppen Edit source

Mithilfe der Bibliothek libnss_winbind können Sie Domänenbenutzer und -gruppen nachschlagen. So schlagen Sie beispielsweise den Domänenbenutzer „DOMAIN\demo01“ nach:

cephadm@smb > getent passwd DOMAIN\\demo01
DOMAIN\demo01:*:10000:10000:demo01:/home/demo01:/bin/bash

So schlagen Sie die Domänengruppe „Domain Users“ nach:

cephadm@smb > getent group "DOMAIN\\Domain Users"
DOMAIN\domain users:x:10000:

20.2.10.3 Zuweisen von Dateiberechtigungen zu Domänenbenutzern und -gruppen Edit source

Mithilfe der NSS-Bibliothek (Name Service Switch) können Sie Domänenbenutzerkonten und -gruppen in Kommandos heranziehen. So legen Sie beispielsweise den Domänenbenutzer „demo01“ als Eigentümer einer Datei und die Domänengruppe „Domain Users“ als Gruppe fest:

cephadm@smb > chown "DOMAIN\\demo01:DOMAIN\\domain users" file.txt
Diese Seite drucken