Linux als Windowsfileserver in der ADS: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „== Voraussetzungen == * Das System läuft unter Debian mit einem ZFS-Mirror (Pool: '''/pool1'''). * Die Domain lautet: '''lab.internal'''. * Die ZFS-Freigabe s…“)
 
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 17: Zeile 17:
 
  [libdefaults]
 
  [libdefaults]
 
     default_realm = LAB.INTERNAL
 
     default_realm = LAB.INTERNAL
 
+
 
  [realms]
 
  [realms]
 
     LAB.INTERNAL = {
 
     LAB.INTERNAL = {
       kdc = dc1.lab.internal
+
       kdc = win2022.lab.internal
       admin_server = dc1.lab.internal
+
       admin_server = win2022.lab.internal
 
     }
 
     }
 
+
 
  [domain_realm]
 
  [domain_realm]
 
     .lab.internal = LAB.INTERNAL
 
     .lab.internal = LAB.INTERNAL
Zeile 39: Zeile 39:
 
     security = ads
 
     security = ads
 
     encrypt passwords = yes
 
     encrypt passwords = yes
 
+
 
     idmap config * : backend = tdb
 
     idmap config * : backend = tdb
 
     idmap config * : range = 10000-20000
 
     idmap config * : range = 10000-20000
 
     idmap config LAB : backend = rid
 
     idmap config LAB : backend = rid
 
     idmap config LAB : range = 20000-30000
 
     idmap config LAB : range = 20000-30000
 
+
 
     winbind use default domain = yes
 
     winbind use default domain = yes
 
     winbind offline logon = false
 
     winbind offline logon = false
Zeile 50: Zeile 50:
 
     winbind enum users = yes
 
     winbind enum users = yes
 
     winbind enum groups = yes
 
     winbind enum groups = yes
 
+
 
     template shell = /bin/bash
 
     template shell = /bin/bash
 
     template homedir = /home/%U
 
     template homedir = /home/%U
 
+
 
     kerberos method = secrets and keytab
 
     kerberos method = secrets and keytab
 
     dedicated keytab file = /etc/krb5.keytab
 
     dedicated keytab file = /etc/krb5.keytab
 
+
 
     log file = /var/log/samba/%m.log
 
     log file = /var/log/samba/%m.log
 
     log level = 1
 
     log level = 1
 
+
 
  [pool1]
 
  [pool1]
 
     path = /pool1
 
     path = /pool1
 
     read only = no
 
     read only = no
 
     browseable = yes
 
     browseable = yes
    valid users = @LAB\deinegruppe
 
 
     create mask = 0770
 
     create mask = 0770
 
     directory mask = 0770
 
     directory mask = 0770
Zeile 87: Zeile 86:
  
 
== Freigabe konfigurieren ==
 
== Freigabe konfigurieren ==
Stelle sicher, dass die Zugriffsrechte auf '''/pool1''' korrekt gesetzt sind. Verwende die folgenden Befehle, um Domänenbenutzer und -gruppen Zugriff zu gewähren:
+
===ACL-Typ auf POSIX-ACL setzen===
 +
zfs set acltype=posixacl pool1
 +
===Setzen von ACLs mit setfacl: Jetzt kannst du wie gewohnt mit setfacl Berechtigungen verwalten===
 +
setfacl -m g:domänen-benutzer:rwx /pool1
 +
===Überprüfen der ACLs: Prüfe, ob die ACLs korrekt angewendet wurden===
 +
getfacl /pool1
 +
= Domänenbenutzer-Anmeldung – Zusammenfassung =
 +
== Die meisten Einstellungen PAM bestreffend sind automatisch erledigt worden===
 +
*cat  common-auth
 +
auth [success=2 default=ignore] pam_unix.so nullok
 +
auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
 +
auth requisite pam_deny.so
 +
auth required pam_permit.so
 +
*common-account
 +
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
 +
account [success=1 new_authtok_reqd=done default=ignore] pam_winbind.so
 +
account requisite pam_deny.so
 +
account required pam_permit.so
 +
* grep "^[^#]"  common-password
 +
password [success=2 default=ignore] pam_unix.so obscure yescrypt
 +
password [success=1 default=ignore] pam_winbind.so try_authtok try_first_pass
 +
password requisite pam_deny.so
 +
password required pam_permit.so
 +
== Heimatverzeichnisse automatisch erstellen ==
 +
 
 +
Damit für Domänenbenutzer beim ersten Login automatisch ein Heimatverzeichnis erstellt wird, musst du nur noch den entsprechenden Abschnitt in der PAM-Konfiguration anpassen.
 +
 
 +
Bearbeite die Datei '''/etc/pam.d/common-session''' und füge folgende Zeile hinzu:
 +
 
 +
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
 +
 
 +
* '''pam_mkhomedir.so''' sorgt dafür, dass beim ersten Login eines Domänenbenutzers automatisch ein Heimatverzeichnis erstellt wird.
 +
* '''skel=/etc/skel''' legt fest, dass die Standarddateien aus dem Verzeichnis '''/etc/skel''' kopiert werden.
 +
* '''umask=0022''' legt die Berechtigungen für die neu erstellten Verzeichnisse und Dateien fest.
  
setfacl -m u:LAB\\Benutzer:rwx /pool1
+
Sobald diese Änderung vorgenommen wurde, wird für jeden Domänenbenutzer, der sich zum ersten Mal anmeldet, automatisch ein Heimatverzeichnis erstellt.

Aktuelle Version vom 18. September 2024, 13:24 Uhr

Voraussetzungen

  • Das System läuft unter Debian mit einem ZFS-Mirror (Pool: /pool1).
  • Die Domain lautet: lab.internal.
  • Die ZFS-Freigabe soll pool1 heißen.
  • Du benötigst administrative Zugangsdaten zur Domäne.

Installation der notwendigen Pakete

Installiere die erforderlichen Pakete:

apt update
apt install samba smbclient krb5-user winbind libpam-winbind libnss-winbind

Während der Installation von krb5-user wirst du nach der Standard-Domäne gefragt. Gib dort die Domäne lab.internal an.

Kerberos konfigurieren

Bearbeite die Datei /etc/krb5.conf, um Kerberos korrekt einzurichten. Ein Beispiel für die Konfiguration:

[libdefaults]
   default_realm = LAB.INTERNAL

[realms]
   LAB.INTERNAL = {
     kdc = win2022.lab.internal
     admin_server = win2022.lab.internal
   }

[domain_realm]
   .lab.internal = LAB.INTERNAL
   lab.internal = LAB.INTERNAL

Teste die Konfiguration mit:

kinit administrator@LAB.INTERNAL

Samba konfigurieren

Bearbeite die Datei /etc/samba/smb.conf. Eine Beispielkonfiguration für einen Domänenmitglied-Server:

[global]
   workgroup = LAB
   realm = LAB.INTERNAL
   security = ads
   encrypt passwords = yes

   idmap config * : backend = tdb
   idmap config * : range = 10000-20000
   idmap config LAB : backend = rid
   idmap config LAB : range = 20000-30000

   winbind use default domain = yes
   winbind offline logon = false
   winbind nss info = rfc2307
   winbind enum users = yes
   winbind enum groups = yes

   template shell = /bin/bash
   template homedir = /home/%U

   kerberos method = secrets and keytab
   dedicated keytab file = /etc/krb5.keytab

   log file = /var/log/samba/%m.log
   log level = 1

[pool1]
   path = /pool1
   read only = no
   browseable = yes
   create mask = 0770
   directory mask = 0770

Domäne beitreten

Um den Server der Domäne beitreten zu lassen, führe den folgenden Befehl aus:

net ads join -U Administrator

Gib das Passwort des Domänenadministrators ein, wenn du dazu aufgefordert wirst.

Winbind-Dienste aktivieren

Aktiviere die Winbind-Dienste und starte Samba:

systemctl restart smbd nmbd winbind
systemctl enable smbd nmbd winbind

Teste, ob Benutzer und Gruppen der Domäne aufgelistet werden können:

wbinfo -u
wbinfo -g

Überprüfe, ob Domänenbenutzer korrekt angezeigt werden:

getent passwd DOMÄNENBENUTZER

Freigabe konfigurieren

ACL-Typ auf POSIX-ACL setzen

zfs set acltype=posixacl pool1

Setzen von ACLs mit setfacl: Jetzt kannst du wie gewohnt mit setfacl Berechtigungen verwalten

setfacl -m g:domänen-benutzer:rwx /pool1

Überprüfen der ACLs: Prüfe, ob die ACLs korrekt angewendet wurden

getfacl /pool1

Domänenbenutzer-Anmeldung – Zusammenfassung

Die meisten Einstellungen PAM bestreffend sind automatisch erledigt worden=

  • cat common-auth
auth	[success=2 default=ignore]	pam_unix.so nullok
auth	[success=1 default=ignore]	pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth	requisite			pam_deny.so
auth	required			pam_permit.so
  • common-account
account	[success=2 new_authtok_reqd=done default=ignore]	pam_unix.so 
account	[success=1 new_authtok_reqd=done default=ignore]	pam_winbind.so 
account	requisite			pam_deny.so
account	required			pam_permit.so
  • grep "^[^#]" common-password
password	[success=2 default=ignore]	pam_unix.so obscure yescrypt
password	[success=1 default=ignore]	pam_winbind.so try_authtok try_first_pass
password	requisite			pam_deny.so
password	required			pam_permit.so

Heimatverzeichnisse automatisch erstellen

Damit für Domänenbenutzer beim ersten Login automatisch ein Heimatverzeichnis erstellt wird, musst du nur noch den entsprechenden Abschnitt in der PAM-Konfiguration anpassen.

Bearbeite die Datei /etc/pam.d/common-session und füge folgende Zeile hinzu:

session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
  • pam_mkhomedir.so sorgt dafür, dass beim ersten Login eines Domänenbenutzers automatisch ein Heimatverzeichnis erstellt wird.
  • skel=/etc/skel legt fest, dass die Standarddateien aus dem Verzeichnis /etc/skel kopiert werden.
  • umask=0022 legt die Berechtigungen für die neu erstellten Verzeichnisse und Dateien fest.

Sobald diese Änderung vorgenommen wurde, wird für jeden Domänenbenutzer, der sich zum ersten Mal anmeldet, automatisch ein Heimatverzeichnis erstellt.