Samba 4
Domäne managen
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]" (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)
- /etc/apt/sources.list.d/samba.list
# # 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
- /etc/default/sernet-samba
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
- /etc/hosts
# 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.
- /etc/krb5.conf
[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:
- /etc/samba/smb.conf
[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:
- /etc/nsswitch.conf
passwd: compat winbind group: compat winbind shadow: compat winbind
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):
- /etc/pam.d/common-session
session required pam_mkhomedir.so umask=0022 skel=/etc/skel
smb.conf
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
- /etc/fstab
//server/share /mnt/server/share cifs credentials=/etc/samba/credentials/server 0 0
- /etc/samba/credentials/server
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.
- /etc/security/pam_mount.conf.xml
<volume fstype="cifs" server="domain-server" path="share" mountpoint="/home/domain.lan/%(DOMAIN_USER)/Share" options="sec=ntlmv2,workgroup=DOMAIN" />
Windows
net use Z: \\server\share
Mac OS X
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: Samba Manual Chapter 16, setgid on Wikipedia
Windows XP can't connect
error may be: Error 1326: Logon failure: unknown user name or bad password
- /etc/samba/smb.conf
[global] lanman auth = yes ntlm auth = yes