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 12 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 12
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
Der zu installierende Dienst: Samba als ADS (Mitglied der Domäne)

Es wird davon ausgegangen, dass

  • eine VM mit der richtigen Netzwerkkarte erstellt wurde
  • debian 11 Standard Installation durchgeführt ist, am besten ohne grafische 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    defaults   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 krb5-user libpam-krb5 winbind samba smbclient libnss-winbind libpam-winbind

 

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
   idmap config * : backend = tdb
   idmap config * : range = 3000-7999
   idmap config SCHULE : backend = rid
   idmap config SCHULE : range = 10000-999999
   idmap config SCHULE : schema_mode = rfc2307
   idmap config SCHULE : unix_nss_info = yes

   template shell = /bin/bash
   # template homedir = /home/%U
   domain master = no
   winbind nss info = rfc2307
   winbind use default domain = 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 den Profilen.
   oplocks = no

   vfs objects = acl_xattr
   map acl inherit = yes
   store dos attributes = 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äge 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 beitreten

 

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