SMB Shares für Windows auf CentOS Einrichten

Aus bknowledgebase
Zur Navigation springen Zur Suche springen

Einführung[Bearbeiten]

Bekanntermaßen wird auf den meisten Unix/Linux basierten Systemen Samba für die Verbindung von Ordnerfreigaben zwischen Windows und Unix Systemen genutzt.

Ich arbeite hier mit dem Texteditor "nano" der auf manchen Systemen nachinstalliert werden muss. Man kann stattdessen natürlich auch "vi" nutzen o.ä.

Ich gehe davon aus, dass bereits Linux Kenntnisse vorhanden sind und der CentOS-Server mit Grundkonfiguration (also fester IP etc. installiert ist)

Wichtiger Hinweis[Bearbeiten]

Der Zugriff auf Samba-Shares via Guest Account, wie auch hier für die Public Shares beschrieben, funktioniert bei Win 10 Enterprise und Win 10 Education ab der Version 1709 nicht mehr einfach so. Das hat sicherheitsgründe. Hier muss zwingend mit einem User + Kennwort zugegriffen werden.

Beschreibung und Workaround gibt es direkt von Microsoft hier: https://support.microsoft.com/de-de/help/4046019/guest-access-in-smb2-disabled-by-default-in-windows-10-and-windows-ser

Kurzfassung des Workaround:[Bearbeiten]

Wenn man einen unsicheren Gastzugang aktivieren möchte, die folgenden Einstellungen für Gruppenrichtlinien konfigurieren:

Computerkonfiguration\Administrative Vorlagen\Netzwerk\LanMan-Arbeitsstation
„Unsichere Gastanmeldungen aktivieren“

Durch die Aktivierung unsicherer Gastanmeldungen wird allerdings die Sicherheit von Windows-Clients eingeschränkt.

Anleitung[Bearbeiten]

1. Samba installieren[Bearbeiten]

yum install samba samba-client samba-common -y

1.1 Sambaversion und Status[Bearbeiten]

smbd -V
smbstatus


1.2 Samba Service(s) Neustarten[Bearbeiten]

Hier und da müssen die Samba Services neu gestartet werden, vor allem wenn man an der Config rumgeschraubt hat. Das geht so:

service smb restart && service nmb restart


Ordner anlegen die Freigegeben werden sollen[Bearbeiten]

z.B.

mkdir /home/Public && mkdir /home/Private

Berechtigungen setzen[Bearbeiten]

Public Ordner müssen auf jeden Fall

chmod 777 /home/Public

Bekommen.

Private Ordner können, wenn die richtigen Gruppen zugeordnet sind

chmod 770 /home/Private

bekommen

Sicherheitskontext / File-Context anpassen[Bearbeiten]

Mit dem Befehl "ls -Z" lässt sich laut Dokumentation der "Sicherheitskontext einer jeden Datei anzeigen. Dieser Sicherheitskontext muss an Samba angepasst werden.

chcon -t samba_share_t /home/public
chcon -t samba_share_t /home/private

Infos hier: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/security-enhanced_linux/sect-security-enhanced_linux-working_with_selinux-selinux_contexts_labeling_files

Alternative - SELinux abschalten[Bearbeiten]

Anstelle des vorherigen Punktes kann man auch "selinux" abschalten. Dann werden die entsprechenden Policys gar nicht benötigt. Dies sollte auf keinen Fall bei aus dem Web erreichbaren Servern getan werden.

sestatus
nano /etc/selinux/config

Jetzt setzt man

SELINUX=disabled

und

sudo shutdown -r now

Ordnerberechtigungen setzen[Bearbeiten]

3. smb Config anpassen[Bearbeiten]

Hier Beispielhaft eine Minimalconfig:

[global]
       workgroup = WORKGROUP
       security = user
       map to guest = Bad User
       protocol = SMB3
       passdb backend = tdbsam
       printing = cups
       printcap name = cups
       load printers = yes
       cups options = raw
[Public_Share]
       comment=Public
       path = /home/Public
       public = yes
       writable = yes
       browsable = yes
       printable = no
       create mask = 666
       directory mask = 777
[Private_Share]
       comment=Private
       path = /home/Private
       public = No
       writable = yes
       browsable = yes
       printable = no
       create mask = 666
       directory mask = 777

User Anlegen[Bearbeiten]

Für Ordner, die nur bestimmten Nutzern zur Verfügung stehen sollen, benötigen wir benutzer, die auch auf dem Linux System existieren müssen, User anlegen passwort vergeben, Gruppe anlegen und user zu sambausern hinzufügen und sambapasswort vergeben

useradd --no-create-home smbusr
passwd smbusr
groupadd smbgrp
useradd smbusr -G smbgrp
smbpasswd -a smbusr

User zu Samba hinzufügen[Bearbeiten]

Firewall[Bearbeiten]

Je nach Firewall gibts mehrere Optionen

Firewall abschalten[Bearbeiten]

Ja, das ist meist nicht empfehlenswert, kann aber für Tests, sowie bei bestimmten Konfigurationen sinnvoll sein. Z.b. Wenn ein anderer Server der als "Broker" fungiert vorgeschaltet wird und dort die Firewall läuft oder Systemanforderungen dies einfach vorgeben etc.

systemctl stop firewalld && systemctl disable firewalld

Firewall richtig Einstellen[Bearbeiten]

Die Optimale Herangehensweise, wir öffnen die notwendigen Ports.

firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload


H@ppy H@cking