Table of Contents

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.

  1. Aktualisierung des Systems und Installation der Samba-Packets:
    # yum update
    # yum install samba samba-client samba-common
  2. 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
...

ODERAlle 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!