Aufsetzen eines Fileservers als Mietglied einer Domäne auf Samba Basis

Die Installation und Konfiguration des Fileservers auf einem Linux Server in unserem Fall auf Debian 11 ist einfacher als man denkt. Nach der Konfiguration werden die benötigte Berechtigungen auf dem Fileserver mit Windows Tools auf von einem Windows Rechner vergeben. Der Verwaltungsrechner muss sich selbstverständlich in der Domäne befinden.

Die Konfigurationsdaten des Fileserver fs1 (Mitglied der Domäne)

Betriebssystem: Debian 11
Servername: fs1
Domäne: schule.lan
IP-Adresse: 172.16.0.5
Netmask: 255.255.252.0
Gateway: 172.16.0.1
DNS: 172.16.0.10
Zu installierende Dienst: Samba als ADS (Mitglied der Domäne)

Es wird davon ausgegangen, dass

  • eine VM mit der richtige Netzwerkkarte erstellt wurde
  • debian 11 Standard Installation durchgeführt ist, am besten ohne graphische Oberfläche und mit ssh Server.
    Einstellungen zu ssh-Server und update finden die hier Punkt 2 und 3
  • die VM Firewall-pfSense läuft und entsprechend konfiguriert ist.
Punkt
Die zweite Festplatte für Daten wird partitioniert, formatiert und anschließend in System eingebunden, in der Datei /etc/fstab. Der Ordner /data muss existieren, wenn nicht, dann bitte erstellen.

 

root@fs1:~# cfdisk /dev/sdb
root@fs1:~# mkfs.ext4 /dev/sdb1

 

/dev/sdb1    /data    ext4    acl,user_xattr    0    0

 

Punkt
Die Samba Pakete und die Ldap-Tools, die möglicherweise später gebraucht werden, werden jetzt installiert.

 

root@fs1:~# apt-get install samba winbind smbclient
root@fs1:~# apt-get install ldb-tools ldapscripts

 

Punkt
Die Samba wird zu einem Mitglied der Domäne konfiguriert. Als erstes leeren wir die schon vorhandene /etc/samba/smb.conf Datei und fügen wir den folgenden Inhalt ein. Danach wird die Datei gespeichert.

 

[global]
   workgroup = SCHULE
   realm = SCHULE.LAN
   netbios name = FS1
   server string = Fileserver
   security = ADS
   encrypt passwords = true
   vfs objects = acl_xattr
   idmap config * : backend = tdb
   idmap config * : range = 1000000-1999999
   idmap config SCHULE : backend = rid
   idmap config SCHULE : range = 50000 - 99999
   winbind nss info = rfc2307
   winbind use default domain = Yes
   winbind enum users = yes
   winbind enum groups = yes
   # oplocks auf no, sonnst bei Profilen nach dem Abmelden kann passieren, dass
   # die Datei ntusers.dat und ntusers.ini auf dem Server in Benutzung bleibt.
   # Bei nächsten Anmeldung kommen dann Probleme mit dem Profilen.
   oplocks = no
   template shell = /bin/bash
   sync always = yes
   # admin users = Administrator

# [home] wird nicht die Standard Freigabe genommen wie [homes]
[home]
   comment = Home Ordner
   path = /data/home
   read only = no
   browseable = No

[Profiles]
   path = /data/profiles
   read only = no
   browseable = No

[Marktplatz]
   path = /data/marktplatz
   comment = Schuldaten
   read only = no
   browseable = yes

 

Punkt
Es wird die Datei /etc/krb5.conf zu unseren Bedürfnissen angepasst. Den vorhandenen Inhalt löschen wir und ersetzten mit unserem.

 

[libdefaults]
   default_realm = SCHULE.LAN
   dns_lookup_realm = false
   dns_lookup_kdc = true

[realms]
   SCHULE.LAN = {
      kdc = dc1.schule.lan
      master_kdc = dc1.schule.lan
      admin_server = dc1.schule.lan
}

[domain_realm]
   .dc1.schule.lan = SCHULE.LAN
   dc1.schule.lan = SCHULE.LAN

[logging]
   kdc = FILE:/var/log/krb5/krb5kdc.log
   admin_server = FILE:/var/log/krb5/kadmind.log
   default = SYSLOG:NOTICE:DAEMON

 

Punkt
Wir müssen noch die Einträge in der Datei /etc/nsswitch.conf anpassen. Die Einträgen bei paswd und group werden von files auf compat winbind geändert.

 

passwd: compat winbind
group: compat winbind
shadow: files
gshadow: files

 

Punkt
Als nächstes testen wir, ob Kerberos funktioniert, indem wir uns als Administrator authentifizieren.

 

root@fs1:~# kinit Administrator

 

Punkt
Domäne beitretten

 

root@fs1:~# net ads join -U Administrator

 

Punkt
Mit den folgenden Befehlen kann man, die Freigaben auflisten, Benutzer und Gruppen in der Domäne auflisten und den Status der Dienste anzeigen lassen.

 

root@fs1:~# smbclient -L localhost -U%
root@fs1:~# wbinfo -u
root@fs1:~# wbinfo -g
root@fs1:~# systemctl status smbd
root@fs1:~# systemctl status smbd
root@fs1:~# systemctl status winbind
root@fs1:~# wbinfo --online-status
Punkt
Die Ordner für die Daten werden erstellt.

root@fs1:~# mkdir -p /data/home
root@fs1:~# mkdir -p /data/marktplatz
root@fs1:~# mkdir -p /data/profiles

 

Punkt
Jetzt können wir die Samba Dienste neu starten.

 

root@fs1:~# systemctl restart smbd.service
root@fs1:~# systemctl restart nmbd.service
root@fs1:~# systemctl restart winbind.service