SMB - Samba Server mit RHEL / CentOS 7
Im nachfolgenden wird beschrieben, wie ein Samba-Server mit mehreren Usern unter RHEL / CentOS 7 korrekt konfiguriert werden kann.
Übersicht über die geplante Konfiguration
Im ersten Schritt werden zuerst die vorausgesetzten Vorbereitungen zur späteren Konfiguration der SMB-Shares durchgeführt. Folgende Vorgaben gelten für die bevorstehende Konfiguration.
Vorgaben
Folgende Vorgaben, gelten für die Basis, des zu konfigurierenden Samba-Servers!
Installation des Samba-Servers
Zu Beginn, wird erst einmal der Server aktualisiert, das Samba-Server Paket installiert und die Firewall-Rules gesetzt.
- Aktualisierung des Systems und Installation der Samba-Packets:
# yum update # yum install samba samba-client samba-common
- Setzen der Firewalld Rules:
# firewall-cmd --permanent --zone=public --add-service=samba # firewall-cmd --reload
Erstellen der Gruppen und User
Zuerst werden immer die Gruppen und dann erst die User erstellt! Zum korrekten erstellen der Gruppen, wird folgendermassen vorgegangen:
Gruppen hinzufügen:
# groupadd smbusers && groupadd beziehung && groupadd ion && groupadd hunde
Erstellen der lokalen User :
Entweder, werden nun alle User einzeln wie im ersten Beispiel hinzugefügt; oder alle auf einmal mit einer kleinen for-Schleife:
# useradd michael # useradd jennifer ...
ODER → Alle user auf einmal, mit einer for-Schleife hinzufügen!
# for user in michael jennifer simon bambo svenja; do sudo useradd $user; done
Zuweisen der User in die User-spezifischen Gruppen:
Zum setzen der richigen secondary-groups für die verschiedenen Usern, wird folgendermassen vorgegangen:
# usermod -a -G smbusers,beziehung michael # usermod -a -G smbusers,beziehung jennifer # usermod -a -G smbusers,ion simon # usermod -a -G smbusers,hunde bambo # usermod -a -G smbusers,hunde svenja
Setzen der Default Passwörter, für die user:
# echo -e "changeme\$17\nchangeme\$17" | passwd michael # echo -e "changeme\$17\nchangeme\$17" | passwd jennifer # echo -e "changeme\$17\nchangeme\$17" | passwd simon # echo -e "changeme\$17\nchangeme\$17" | passwd bambo # echo -e "changeme\$17\nchangeme\$17" | passwd svenja
Erstellen und berechtigen der Verzeichnisse
Im nächsten Schritt, werden die benötigten Verzeichnisse, für die späteren Shares erstellt und die jeweiligen Gruppen darauf berechtigt.
Erstellen der Share-Ordner:
# mkdir -p /var/smbshare/{public,ferien_fotos,daten_simon,fressnapf}
Setzen der korrekten SELinux Rules:
# setsebool -P samba_export_all_ro=1 samba_export_all_rw=1 # getsebool –a | grep samba_export # semanage fcontext –at samba_share_t "/var/smbshare(/.*)?" # restorecon /finance
Share-Ordner für Gruppen berechtigen:
# cd /var/smbshare && chgrp -R smbusers /var/smbshare/ # chgrp beziehung ferien_fotos && chgrp ion daten_simon && chgrp hunde fressnapf # chmod -R 0770 /var/smbshare/ # chmod 775 /var/smbshare/
Konfiguration des Samba-Dienstes
Nun da die Vorbereitungen für die Shares abgeschlossen sind, kann mir der Konfiguration des Samba Servers begonnenen werden.
Server Konfiguration
Beim Samba-Server ist die Konfiguration schnell durchgeführt. Hier muss man nämlich lediglich die Hauptkonfigurations-Datei /etc/samba/smb.conf
bearbeiten.
# vim /etc/samba/smb.conf
# Samba Konfiguration – blackgate.lan [global] workgroup = WORKGROUP unix charset = UTF-8 server string = %h server (Samba, Red Hat) dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 server role = standalone server passdb backend = tdbsam obey pam restrictions = yes unix password sync = no pam password change = no map to guest = bad user #======================= Share Definitions ======================= [public] comment = Public Directory for all members who use SMB-Share browsable = yes path = /var/smbshare/public writable = yes create mask = 0770 directory mask = 0770 share modes = yes public = no valid users = @smbusers force group = smbusers [ferien_fotos] comment = Private Directory for Michael and Jennifer browsable = yes path = /var/smbshare/ferien_fotos writable = yes create mask = 0770 directory mask = 0770 share modes = yes public = no valid users = @beziehung force group = beziehung [daten_simon] comment = Private Directory for Ions browsable = yes path = /var/smbshare/daten_simon writable = yes create mask = 0770 directory mask = 0770 share modes = yes public = no valid users = @ion force group = ion [hundenapf] comment = Private Directory for all dogs browsable = yes path = /var/smbshare/fressnapf writable = yes create mask = 0770 directory mask = 0770 share modes = yes public = no valid users = @hunde force group = hunde
Erstellen der Samba-Passwörter für die lokalen Samba-User:
Um nun auf die Shares per Passwort Authentifizierung darauf zuzugreifen, muss zuerst noch ein SMB-Passwort für unsere erstellten User vergeben werden. Dies wird folgendermassen gemacht: (MYPASSWORD durch eigenes Kennwort ersetzen!)
# smbpasswd -a michael #Falls das Passwort pro User manuell eingegeben werden soll.. # echo -e "MYPASSWORD\nMYPASSWORD" | smbpasswd -a michael # echo -e "MYPASSWORD\nMYPASSWORD" | smbpasswd -a jennifer # echo -e "MYPASSWORD\nMYPASSWORD" | smbpasswd -a simon # echo -e "MYPASSWORD\nMYPASSWORD" | smbpasswd -a bambo # echo -e "MYPASSWORD\nMYPASSWORD" | smbpasswd -a svenja
Zum Abschluss der Installation, wird der Samba-Dienst noch enabled und gestartet:
# systemctl enable smb.service nmb.service # systemctl start smb.service # systemctl start nmb.service
Installation und Konfiguration von Samba abgeschlossen!