Crmgo Blog

Handbuch zu Samba

Handbuch zu Samba

Die Installation von Samba 3.0 bietet im Gegensatz zu früheren Samba-Versionen die Möglichkeit, in Windows-Netzwerken zu arbeiten, die im Active Directory-Modus (oder im nativen Windows 2000-Modus) betrieben werden. Wenn diese Funktionalität erforderlich ist, sollte das Paket samba3-3.0 anstelle von samba-2.2 installiert werden. Active Directory…

Handbuch zu Samba
Installation von Samba

Samba 3.0 unterscheidet sich von früheren Samba-Versionen dadurch, dass es die Fähigkeit besitzt, in Windows-Netzwerken zu arbeiten, die im Active Directory-Modus (oder im nativen Windows 2000-Modus) betrieben werden. Wenn diese Funktionalität erforderlich ist, sollte das Paket samba3-3.0 anstelle von samba-2.2 installiert werden.

Active Directory verwendet ein anderes Namensschema für Domänen, Computer und Benutzer, das auf DNS basiert. Nehmen wir an, es gibt ein Netzwerk mit dem Namen my.firm.com und den Computern host1.my.firm.com, host2.my.firm.com, host3.my.firm.com; dann würde die Active Directory-Domäne my.firm.com heißen, und die Active Directory-Benutzer hätten Namen im Format user@my.firm.com.

Konfiguration

/etc/krb5.conf muss mindestens die folgenden Zeilen enthalten:

[realms]

MY.FIRM.COM = {
kdc = your.kerberos.server
}

wobei MY.FIRM.COM der Domänenname (oder „Realm“ in der Kerberos-Terminologie; muss zwingend in Großbuchstaben angegeben werden) und your.kerberos.server der Name oder die IP-Adresse des KDC (Kerberos Domain Controller), analog zum PDC (Primary Domain Controller) in Windows NT-Domänen, ist – zum Beispiel server.my.firm.com oder 192.168.117.11.

Richtigkeit der Parametereingabe kann überprüft werden, indem der Befehl ausgeführt wird (ersetzen Sie den Benutzernamen durch den tatsächlichen – zum Beispiel administrator@MY.FIRM.COM):

# kinit username@REALM

und sicherstellen, dass das Passwort vom Server akzeptiert wurde. REALM wird immer in Großbuchstaben angegeben.

Sie müssen auch sicherstellen, dass der KDC-Name über seine IP-Adresse abgerufen werden kann (sogenannter Reverse-DNS-Lookup). Der KDC-Name muss entweder mit dem NetBIOS-Namen des Computers übereinstimmen (Maschinenname im Windows-Netzwerk ohne Domänennennung) oder aus dem NetBIOS-Namen und dem Domänennamen bestehen. Wenn der KDC-Name nicht über die Adresse abgerufen werden kann, erhalten Sie einen „local error“-Fehler beim Versuch, sich in der Domäne anzumelden.

Wenn Ihr DNS keinen Reverse-Lookup unterstützt oder der KDC nicht in DNS registriert ist, können Sie die Zuordnung von IP-Adresse und Name in /etc/hosts angeben.

Bearbeitung von /etc/samba/smb.conf

Für den Betrieb in Active Directory muss smb.conf folgende Parameter enthalten:

[global]

# Задает Kerberos realm, обычно совпадает с именем домена в
# верхнем регистре, например realm = MY.FIRM.COM
realm = <REALM>

# Это обычно часть реалма до первой точки, например
# workgroup = MY
workgroup = <WORKGROUP>

# Тип домена - Active Directory.
security = ADS

# В случае Active Directory пароли всегда шифруются.
encrypt passwords = true

# Обычно этот параметр указывать не обязательно, т.к. Samba сама
# определяет адрес KDC, если в сети есть WINS-сервер и он указан
# в smb.conf
ads server = <your.kerberos.server>

 

Registrierung des Computers in der Active Directory-Domäne

Stellen Sie sicher, dass Samba nicht läuft. Wenn es läuft, muss es gestoppt werden:

# service smb stop; service winbind stop

 

Führen Sie den folgenden Befehl aus, um den Computer der Domäne hinzuzufügen:

# net ads join -U administrator

wobei administrator der Benutzername eines Domänenbenutzers ist, der das Recht hat, neue Konten zu erstellen.

Wenn keine Fehlermeldung ausgegeben wurde, wurde der Computer erfolgreich in der Domäne registriert – andernfalls überprüfen Sie die Richtigkeit der Parametereingabe in /etc/samba/smb.conf und /etc/krb5.conf. Stellen Sie sicher, dass der Benutzer, der nach -U in net ads join angegeben wird, die erforderlichen Rechte zum Erstellen neuer Konten hat.

Nun können Sie die erforderlichen Dienste starten:

# service smb start; service winbind start

 

Überprüfung der korrekten Arbeit in Active Directory

Für die Arbeit mit Computern, die in Active Directory registriert sind, ist es nicht erforderlich, Benutzername und Passwort anzugeben. Versuchen Sie, den folgenden Befehl auszuführen:

$ smbclient -k -L <имя компьютера в домене>

 

Sie sollten eine Liste der verfügbaren Ressourcen erhalten, wobei smbclient nicht nach Benutzername und Passwort fragen darf.

Um zu überprüfen, ob der Zugriff auf die Ressourcen Ihres Rechners von anderen Maschinen in der Domäne möglich ist, können Sie denselben Befehl ausführen:

$ smbclient -k -L <имя вашего компьютера в домене>

und die Liste der verfügbaren Ressourcen abrufen. Alternativ können Sie versuchen, eine Ressource auf Ihrem Rechner von einer Windows-Maschine aus zu öffnen, die zur Domäne gehört. In jedem Fall dürfen Benutzername und Passwort nicht abgefragt werden.

Einige Besonderheiten der Arbeit mit Active Directory

Im Gegensatz zu Windows NT-Domänen erfolgt die Authentifizierung in Active Directory nicht über Benutzername und Passwort, sondern mittels Kerberos-Tickets. Daher kann die Arbeit mit smbclient anfangs ungewöhnlich erscheinen.

Erstens muss beim Aufruf von smbclient die Option -k angegeben werden. Zweitens werden Kerberos-Tickets für eine bestimmte Zeit ausgestellt (normalerweise für einen Tag, dies hängt jedoch von den Servereinstellungen ab). Daher müssen sie regelmäßig mit dem Befehl kinit aktualisiert werden:

# kinit username@REALM

wobei username Ihr Benutzername im Active Directory-Domänenrealm REALM ist.

Wenn smbclient plötzlich keine Verbindung zu den Domänenressourcen mehr herstellen kann, versuchen Sie, das Ticket zu aktualisieren – sehr wahrscheinlich liegt es daran.

Der Artikel wurde hierher übernommen.
Innerhalb dieser Struktur befindet sich irgendwo ein Verzeichnis „share“, auf das verschiedenen Benutzern (z. B. „user“) über Samba der Zugriff gewährt werden soll. Dabei darf die Gruppe nicht geändert werden, und der Benutzer „user“ gehört dieser Gruppe nicht an.

Bei der Erstellung von Verzeichnissen im Ordner „share“ müssen diese die Rechte 770 haben, die darin enthaltenen Dateien die Rechte 660 und sie müssen ebenfalls für „user“ zugänglich sein.

Wir verwenden ACLs (Access Control Lists).

Führen Sie chmod g+s share ... aus, damit erstellte Dateien und Ordner die Gruppe „project“ erhalten.
Führen Sie setfacl -m u:user:rx für alle Verzeichnisse bis hin zu „share“ aus, damit „user“ zu diesem Verzeichnis gelangen kann.
Führen Sie setfacl -m u:user:rwx für das Verzeichnis „share“ und alle seine Unterverzeichnisse aus, damit der Benutzer etwas in diesem Verzeichnis erstellen kann.
Führen Sie setfacl -m u:user:rw für alle Dateien im Verzeichnis „share“ aus.

In der Samba-Konfiguration schreiben wir:

directory mask = 770
create mask = 660
inherit acls = yes
inherit permissions = yes # Ohne diese Zeile funktioniert die vorherige Zeile nicht!!!
map acl inherit = yes
map archive = no
map system = no
map hidden = no

Versuchen Sie anschließend, ein Verzeichnis und eine Datei im Verzeichnis „share“ über Samba unter dem Benutzer „user“ zu erstellen.

Ergebnis:
Ein Verzeichnis mit den Rechten 770 und dem Besitzer user:project (wie gewünscht)
und eine Datei mit den Rechten 670 und dem Besitzer user:project

Hinweis: Dieser Beitrag kann KI-unterstützt erstellt und anschließend redaktionell geprüft worden sein. Verantwortlich: Dmytro Lomaka, Kaltenkirchen.