====== Samba 4 ====== ===== Domäne managen ===== * https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO * http://www.stefanwienert.de/blog/2014/07/02/samba-4-active-directory-controller-with-windows-7-roaming-profiles-plus-linux-login-the-definitive-guide/ ==== Befehle ==== ^ AD beitreten | ''net ads join -UAdministrator'' | ^ Beitritt ohne AD | ''net rpc join WORKGROUP -UAdministrator'' | ^ Beitritt überprüfen | ''net rpc testjoin'' | ^ Domäne provisionieren | ''samba-tool domain provision'' | ^ Domain-Level anheben | ''samba-tool domain level raise --domain-level 2008_R2 --forest-level 2008_R2'' | === Benutzer und Passwörter === ^ Benutzer anlegen | ''samba-tool user add [Benutzername]'' | ^ Benutzer deaktivieren | ''samba-tool user disable [Benutzername]'' | ^ Benutzer anzeigen | ''pdbedit -v -u [Benutzername]'' | ^ Passwort ändern | ''samba-tool user setpassword [Benutzername]'' | ^ Kickoff time | ''pdbedit -u [Benutzername] -K never'' | ^ Logon-Script | ''pdbedit -u [Benutzername] -S script'' (ohne Dateinamenerweiterung) | ^ Konto nie ablaufen lassen | ''pdbedit -u [Benutzername] -c "[X]"'' ([[http://www.linuxtopia.org/online_books/network_administration_guides/samba_reference_guide/18_passdb_15.html|src]]) | ^ Passwortrichtlinie anzeigen | ''samba-tool domain passwordsettings show'' | ^ Passwortrichtlinie ändern | ''samba-tool domain passwordsettings set --help'' | ^ Passwortrichtlinie lockern | ''samba-tool domain passwordsettings set --complexity=off --min-pwd-length=11 --min-pwd-age=0'' | ==== Fileserver only ==== ^ Benutzer anlegen | pdbedit -a -u [Benutzername] | ^ Passwort ändern (als Benutzer) | smbpasswd | ^ Passwort ändern (als Admin) | smbpasswd [Benutzername] | ===== Installation ===== ^ Kerberos-Realm | ad.company.org | ^ Kerberos-Auth-Server | cmp-authsrv.ad.company.org | ^ Kerberos-Admin-Server | cmp-authsrv.ad.company.org | ^ Domain | company | ==== Ubuntu ==== apt-get install samba krb5-config libpam-smbpass # Kerberos-Config, falls sie nicht automatisch auftaucht dpkg-configure krb5-config ===== Authentifizierung ===== ==== Debian-spezifisch ==== (siehe: //Galileo Computing Samba 4//, S.156) # # SerNet Samba 4.1 Packages # # (debian-wheezy) # deb https://user:password@download.sernet.de/packages/samba/4.1/debian wheezy main deb-src https://user:password@download.sernet.de/packages/samba/4.1/debian wheezy main Zuerst muss das Paket ''apt-transport-https'' installiert werden, damit Sernet-Samba zu den Paketquellen hinzugefügt werden kann. Auch muss der Authentifizierungs-Server in der ''hosts'' eingetragen sein, damit die Authentifizierung nicht ewig dauert. === Installation der Pakete === wget http://ftp.sernet.de/pub/sernet-samba-keyring_1.4_all.deb dpkg -i sernet-samba-keyring_1.4_all.deb apt-get install apt-transport-https apt-get update apt-get install sernet-samba-winbind sernet-samba libpam-heimdal === Startmodus für Samba anpassen === SAMBA_START_MODE="classic" SAMBA_RESTART_ON_UPDATE="no" NMBD_EXTRA_OPTS="" WINBINDD_EXTRA_OPTS="" SMBD_EXTRA_OPTS="" SAMBA_EXTRA_OPTS="" SAMBA_IGNORE_NSUPDATE_G="no" === Winbind starten === service sernet-samba-winbindd start ==== Winbind ==== # Domain server 192.168.1.10 domain-server domain-server.domain.lan Die krb5.conf muss dieselbe sein, die auch auf dem Domänencontroller angelegt ist. [libdefaults] # DON'T USE .LOCAL FOR THE DOMAIN; IT'S "RESERVED" BY mDNS/Avahi/Bonjour! default_realm = DOMAIN.LAN dns_lookup_realm = false dns_lookup_kdc = true [realms] DOMAIN.LAN = { kdc = domain-server } Samba für den Client konfigurieren: [global] workgroup = DOMAIN realm = DOMAIN.LAN security = ADS ### winbind settings # separate domain and username with '.', like DOMAIN.username winbind separator = . idmap config * : range = 10000 - 20000 idmap config DOMAIN : backend = rid idmap config DOMAIN : range = 10000 - 20000 # allow enumeration of winbind users and groups winbind enum users = yes winbind enum groups = yes winbind use default domain = yes winbind refresh tickets = yes # give winbind users a real shell (only needed if they have telnet access) template homedir = /home/domain.lan/%u template shell = /bin/bash Zur Authentifizierung sollte noch entweder NSSwitch oder SSSd richtig konfiguriert sein. Kommandos: ^ User anzeigen | wbinfo -u | ^ Gruppen anzeigen | wbinfo -g | ^ Cache leeren | net cache flush | ==== Kerberos ==== Die Zeit vom Client muss mit der des Servers übereinstimmen, deswegen sollte NTP konfiguriert sein. apt-get install heimdal-clients Ticket anfordern: kinit Administrator klist ==== NSSwitch ==== In die /etc/nsswitch.conf **hinzufügen**: passwd: compat winbind group: compat winbind shadow: compat winbind ==== SSSd ==== [[https://fedorahosted.org/sssd/|System Security Services Daemon]], besonders für mobile Rechner interessant, da er Zugangsdaten zwischenspeichert. ==== PAM ==== Homeverzeichnis automatisch erstellen (Überverzeichnis muss angelegt sein, siehe samba-Konfiguration): session required pam_mkhomedir.so umask=0022 skel=/etc/skel ===== smb.conf ===== [[https://www.samba.org/samba/docs/man/manpages/smb.conf.5.html|offizielle Manpage]] ==== Parameter ==== ^ Parameter = Standardwert ^ Beschreibung | | **create mask** = 0744 | UNIX mode is bit-wise 'AND'ed with this parameter. Any bit not set here will be removed from the modes set on a file when it is created.\\ Default value: g-wx, o-wx.\\ → maximum permissions possible for new files | | **force create mode** = 000 | Samba will bit-wise 'OR' the UNIX mode created from *create mask* with the value of this parameter.\\ → minimum permissions | | **min protocol = SMB1** | Protokollversion, ''SMB2'' empfohlen wg. WannaCry | ===== Netzlaufwerke einbinden ===== ==== Linux ==== Für ''mount.cifs'' müssen unter Debian die ''cifs-utils'' installiert werden. === CIFS mit einem festen Benutzer === //server/share /mnt/server/share cifs credentials=/etc/samba/credentials/server 0 0 username=[Benutzername] password=[Passwort] **Wichtig: chmod 600 auf credentials-Dateien!** === Einbinden mit pam_mount == Installation von ''libpam-mount'', danach Konfiguration über ''/etc/security/pam_mount.conf.xml''. Kerberos und/oder Samba müssen je nach Authentifizierungsmethode konfiguriert sein. ==== Windows ==== net use Z: \\server\share ==== Mac OS X ==== [[https://support.apple.com/de-de/HT204445|Anleitung bei Apple]] ===== Troubleshooting ===== === users can't write to public share === $ find 'directory_name' -type d -exec chown user:group {}\; $ find 'directory_name' -type d -exec chmod 2775 {}\; $ find 'directory_name' -type f -exec chmod 0775 {}\; $ find 'directory_name' -type f -exec chown user:group {}\; $ chmod 2775 /foodbar $ ls -al /foodbar/.. Further reading: [[https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/AccessControls.html#id2614965|Samba Manual Chapter 16]], [[https://en.wikipedia.org/w/index.php?title=Setgid|setgid on Wikipedia]] === Windows XP can't connect === //error may be: Error 1326: Logon failure: unknown user name or bad password// [global] lanman auth = yes ntlm auth = yes