Debian Stretch Samba4 als Active Directory Domain-Member in Windows Domäne. ----------------------------------------------------------------------------------------------------------------------- - Namensauflösung per DNS, Kein WINS im Einsatz - Kein Kerberos (/etc/krb5.conf,krb5-user,libpam-krb5) - Windows Berechtigungen werden Remote per Windows MMC gesetzt, siehe folgenden LINK2 LINKS: - https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Domain_Member - https://wiki.samba.org/index.php/Setting_up_a_Share_Using_Windows_ACLs 1. Netzwerkkonfiguration 2. DNS Konfiguration 3. Installation der Pakete 4. Zeitserver (timesyncd) 5. Samba (Winbind) 6. NSSWITCH 7. JOIN 8. Tips - "domain.net","DOMAIN.NET","DOMAIN" ist mit eigenem Domainnamen zu ersetzen, BEACHTE die Gross/Kleinschreibung in den Konfigurationsdateien !! - Linux Consolenbefehle stehen in Klammern [BEFEHL] *********************************************************************************************************************** 1. Netzwerkkonfiguration *********************************************************************************************************************** >>> /etc/network/interfaces: # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # Network Restart for SSH Session: # /etc/init.d/networking restart && ifup eth0 # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 # DHCP #iface eth0 inet dhcp # STATIC auto eth0 iface eth0 inet static address 192.168.0.xx netmask 255.255.255.0 gateway 192.168.0.1 ***********************************************************************************************************************/etc/hosts: >>> /etc/hosts: 127.0.0.1 localhost 192.168.0.xx debian.domain.net debian # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters *********************************************************************************************************************** 2. DNS Konfiguration (Angabe der AD-DNS Server) *********************************************************************************************************************** >>> /etc/resolv.conf: domain domain.net search domain.net nameserver 192.168.0.3 nameserver 192.168.0.4 *********************************************************************************************************************** 3. Installation Pakete (Anstatt ntp wird hier systemd-timesyncd verwendet) *********************************************************************************************************************** apt install samba winbind libnss-winbind acl Probleme ? Meist hilft eine kpl. Deinstallation der ev. vorhandenen Samba Pakete: (Achtung: Auch Konfigurationsdateien werden mit purge entfernt, Backup!) apt purge samba samba-common krb5-user libpam-krb5 winbind *********************************************************************************************************************** 4. Timesync (Angabe der Domaincontroller als Zeitserver !) *********************************************************************************************************************** >>> /etc/systemd/timesyncd.conf: [Time] NTP=dc1.domain.net dc2.domain.net FallbackNTP=pool.ntp.org >>> /etc/timezone: Europe/Vienna Service neustarten: [service systemd-timesyncd restart] Service Status: [timedatectl status] [service systemd-timesyncd status] *********************************************************************************************************************** 5. Samba Konfiguration *********************************************************************************************************************** >>> /etc/samba/smb.conf: #Samba Konfiguration [global] # Generelle Einstellungen security = ADS workgroup = DOMAIN server string = Samba %v (AD-Member) map to guest = Bad User access based share enum = yes # Logfile Einstellungen log file = /var/log/samba/log.%M log level = 3 max log size = 500 # Browsing and DNS domain master = no local master = no preferred master = no os level = 0 hostname lookups = yes # Druckeinstellungen (deaktiviert) load printers = no disable spoolss = yes # Active Directory realm = DOMAIN.NET idmap config * : backend = tdb idmap config * : range = 3000-7999 ;username map = /etc/samba/user.map idmap config DOMAIN:backend = ad idmap config DOMAIN:schema_mode = rfc2307 idmap config DOMAIN:range = 10000-999999 winbind nss info = rfc2307 winbind refresh tickets = yes winbind enum users = yes winbind enum groups = yes winbind cache time = 10 winbind use default domain = yes vfs objects = acl_xattr map acl inherit = yes store dos attributes = yes #======================= Share Definitions ======================= [tmp] comment = tmp path = /tmp read only = no guest ok = yes hosts allow = 127.0.0.1 192.168.0.0/27 win-pc1. win-pc2. [log] comment = Logs path = /var/log read only = yes browseable = no guest ok = yes force user = root hosts allow = 127.0.0.1 192.168.0.0/27 win-pc1. win-pc2. [Daten] path = /data/vdb1/Daten read only = no hosts allow = 127.0.0.1 192.168.0.0/27 win-pc1. win-pc2. *********************************************************************************************************************** 6. NSSWITCH *********************************************************************************************************************** Dem System muss auch mitgeteilt werden welche User am System vorhanden sind. Zusätzlich zu den gewohnten Files (/etc/passwd, /etc/groups) sind die User auch über winbind zu finden. nsswitch wird um winbind ergänzt. >>> /etc/nsswitch.conf: # /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-doc-reference' and `info' packages installed, try: # `info libc "Name Service Switch"' for information about this file. passwd: compat winbind group: compat winbind shadow: compat hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis *********************************************************************************************************************** 7. JOIN (Der Domain beitreiten) *********************************************************************************************************************** Zuerst Samba/Winbind stoppen: [systemctl stop smbd.service nmbd.service winbind.service] Domain beitreten mit Befehl: [net ads join -U Administrator] Ausgabe sieht dann in etwa so aus: Enter Administrator's password: Using short domain name -- DOMAIN Joined 'MS1' to realm 'domain.net' Samba/Winbind wieder starten: [systemctl start smbd.service nmbd.service winbind.service] Testen ob Zugriff auf das Active Directory besteht, dazu kann der Befehl wbinfo verwendet werden. [wbinfo -u] [wbinfo -g] Dann noch testen ob die User und Gruppen hier auftauchen: getent group Falls nein sind die Parameter [idmap config] in /etc/samba/smb.conf die richtige Anlaufstelle *********************************************************************************************************************** 8. Berechtigungen am Samba4 per Windows-Computerverwaltung setzen *********************************************************************************************************************** Damit wir von der Windows Computerwaltung uns auf den Samba4 Linuxhost verbinden und die Berechtigungen setzen können müssen wir das noch am besten einer Gruppe erlauben, in diesem Beispiel nehmen wir dafür die Domänen-Admin Gruppe. Tip: Je nach Sprache des Windows-Systems kann die Gruppe anders heissen, am besten mit [wbinfo -g] zuvor nachsehen. [net rpc rights grant "DOMAIN\Domain Admins" SeDiskOperatorPrivilege -U "DOMAIN\Administrator"] Windows-PC die Computerverwaltung starten, Rechtsklick -> Verbindung mit anderem Computer herstellen.., "System\Freigegebe Ordner\Freigaben", auf den Samba4 Host verbinden, unter Freigaben können wir nun die Berechtigungen setzen. *********************************************************************************************************************** 9. Tips *********************************************************************************************************************** Mit dem Befehl [testparm] kann die Richtigkeit von smb.conf überprüft werden. Mit dem Befehl [wbinfo -t] kann die Funktionstüchtigkeit des Computerkontos im Active Directory gestestet werden. Folgende Zeile einfügen in "/etc/security/limits.conf" (behebt die Fehlermeldung: rlimit_max (1024) below minimum Windows limit (16384)): root soft nofile 16384 root hard nofile 16384 *********************************************************************************************************************** 9. Problemlösungen *********************************************************************************************************************** Fehlermeldung: chdir (/tmp) failed Nur der Domain Administrator konnte auf Freigaben des Samba zugreifen, normale Benutzer: Zugriff verweigert. Nach Durchsicht des Logfiles (log level = 3) des entsprechenden Clients zeigte sich hier die Zeile: "chdir (/tmp) failed, reason: Keine Berechtigung" Lösung: chmod 1777 /tmp