Website-Suche

Einrichten von Samba und Konfigurieren von FirewallD und SELinux, um die Dateifreigabe auf Linux-/Windows-Clients zu ermöglichen – Teil 6


Da Computer selten als isolierte Systeme arbeiten, ist davon auszugehen, dass Sie als Systemadministrator oder Ingenieur wissen, wie man ein Netzwerk mit mehreren Servertypen einrichtet und verwaltet.

In diesem Artikel und im nächsten Teil dieser Serie werden wir die Grundlagen der Einrichtung von Samba- und NFS-Servern mit Windows/Linux- bzw. Linux-Clients erläutern.

Dieser Artikel wird auf jeden Fall nützlich sein, wenn Sie Dateiserver in Unternehmens- oder Unternehmensumgebungen einrichten müssen, in denen Sie wahrscheinlich unterschiedliche Betriebssysteme und Gerätetypen vorfinden.

Da Sie im gesamten Internet über die Hintergründe und technischen Aspekte von Samba und NFS lesen können, kommen wir in diesem und dem nächsten Artikel gleich auf den Punkt und kommen dem Thema näher.

Schritt 1: Samba-Server installieren

Unsere aktuelle Testumgebung besteht aus zwei RHEL 7-Boxen und einer Windows 8-Maschine in dieser Reihenfolge:


1. Samba / NFS server [box1 (RHEL 7): 192.168.0.18], 
2. Samba client #1 [box2 (RHEL 7): 192.168.0.20]
3. Samba client #2 [Windows 8 machine: 192.168.0.106]

Installieren Sie auf Box1 die folgenden Pakete:


yum update && yum install samba samba-client samba-common

Auf Box2:


yum update && yum install samba samba-client samba-common cifs-utils

Sobald die Installation abgeschlossen ist, können wir unsere Freigabe konfigurieren.

Schritt 2: Einrichten der Dateifreigabe über Samba

Einer der Gründe, warum Samba so relevant ist, liegt darin, dass es Datei- und Druckdienste für SMB/CIFS-Clients bereitstellt, was dazu führt, dass diese Clients den Server so sehen, als wäre er ein Windows-System (Ich muss zugeben, dass ich etwas emotional werde, wenn ich über dieses Thema schreibe, da es vor einigen Jahren mein erstes Setup als neuer Linux-Systemadministrator war).

Systembenutzer hinzufügen und Berechtigungen und Besitz einrichten

Um die Gruppenzusammenarbeit zu ermöglichen, erstellen wir eine Gruppe namens finance mit zwei Benutzern (user1 und user2) mit dem Befehl useradd und einem Verzeichnis /finance in box1.

Außerdem ändern wir den Gruppeneigentümer dieses Verzeichnisses in Finanzen und setzen seine Berechtigungen auf 0770 (Lese-, Schreib- und Ausführungsberechtigungen für den Eigentümer und den Gruppeneigentümer):


groupadd finance
useradd user1
useradd user2
usermod -a -G finance user1
usermod -a -G finance user2
mkdir /finance
chmod 0770 /finance
chgrp finance /finance

Schritt 3: SELinux und Firewalld konfigurieren

Zur Vorbereitung der Konfiguration von /finance als Samba-Freigabe müssen wir entweder SELinux deaktivieren oder die richtigen boolean- und Sicherheitskontextwerte wie folgt festlegen (Andernfalls verhindert SELinux, dass Clients auf die Freigabe zugreifen):


setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
getsebool –a | grep samba_export
semanage fcontext –at samba_share_t "/finance(/.*)?"
restorecon /finance

Darüber hinaus müssen wir sicherstellen, dass der Samba-Verkehr von der Firewall zugelassen wird.


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

Schritt 4: Samba-Freigabe konfigurieren

Jetzt ist es an der Zeit, in die Konfigurationsdatei /etc/samba/smb.conf einzutauchen und den Abschnitt für unsere Freigabe hinzuzufügen: Wir möchten, dass die Mitglieder der Gruppe finance dazu in der Lage sind um den Inhalt von /finance zu durchsuchen und zu speichern / Dateien oder Unterverzeichnisse darin zu erstellen (deren Berechtigungsbits standardmäßig auf 0770 gesetzt sind). und finance wird ihr Gruppeneigentümer sein):


[finance]
comment=Directory for collaboration of the company's finance team
browsable=yes
path=/finance
public=no
valid users=@finance
write list=@finance
writeable=yes
create mask=0770
Force create mode=0770
force group=finance

Speichern Sie die Datei und testen Sie sie dann mit dem Dienstprogramm testparm. Wenn Fehler vorliegen, zeigt die Ausgabe des folgenden Befehls an, was Sie beheben müssen. Andernfalls wird eine Überprüfung Ihrer Samba-Serverkonfiguration angezeigt:

Wenn Sie eine weitere Freigabe hinzufügen möchten, die für die Öffentlichkeit zugänglich ist (also ohne jegliche Authentifizierung), erstellen Sie einen weiteren Abschnitt in /etc/samba/smb.conf und kopieren Sie unter dem Namen der neuen Freigabe den obigen Abschnitt , wobei nur public=no in public=yes geändert wird und die gültigen Benutzer- und Schreiblistenanweisungen nicht berücksichtigt werden.

Schritt 5: Samba-Benutzer hinzufügen

Als nächstes müssen Sie user1 und user2 als Samba-Benutzer hinzufügen. Dazu verwenden Sie den Befehl smbpasswd, der mit der internen Datenbank von Samba interagiert. Sie werden aufgefordert, ein Passwort einzugeben, mit dem Sie später eine Verbindung zur Freigabe herstellen:


smbpasswd -a user1
smbpasswd -a user2

Starten Sie abschließend Samba neu, aktivieren Sie den Start des Dienstes beim Booten und stellen Sie sicher, dass die Freigabe tatsächlich für Netzwerk-Clients verfügbar ist:


systemctl start smb
systemctl enable smb
smbclient -L localhost –U user1
smbclient -L localhost –U user2

Zu diesem Zeitpunkt ist der Samba-Dateiserver ordnungsgemäß installiert und konfiguriert. Jetzt ist es an der Zeit, dieses Setup auf unseren RHEL 7- und Windows 8-Clients zu testen.

Schritt 6: Mounten der Samba-Freigabe unter Linux

Stellen Sie zunächst sicher, dass die Samba-Freigabe von diesem Client aus zugänglich ist:


smbclient –L 192.168.0.18 -U user2

(Wiederholen Sie den obigen Befehl für Benutzer1)

Wie jedes andere Speichermedium können Sie diese Netzwerkfreigabe bei Bedarf bereitstellen (und später deaktivieren):


mount //192.168.0.18/finance /media/samba -o username=user1

(wobei /media/samba ein vorhandenes Verzeichnis ist)

oder dauerhaft, indem Sie den folgenden Eintrag in der Datei /etc/fstab hinzufügen:


//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0

Wo die versteckte Datei /media/samba/.smbcredentials (deren Berechtigungen und Besitz auf 600 bzw. root:root festgelegt wurden) enthält zwei Zeilen, die den Benutzernamen und das Passwort eines Kontos angeben, das die Freigabe verwenden darf:


username=user1
password=PasswordForUser1

Zum Schluss erstellen wir eine Datei in /finance und überprüfen die Berechtigungen und den Besitz:


touch /media/samba/FileCreatedInRHELClient.txt

Wie Sie sehen können, wurde die Datei mit den Berechtigungen 0770 erstellt und der Eigentümer war auf user1:finance festgelegt.

Schritt 7: Mounten der Samba-Freigabe in Windows

Um die Samba-Freigabe in Windows bereitzustellen, gehen Sie zu Mein PC und wählen Sie Computer und dann Netzwerklaufwerk zuordnen. Weisen Sie als Nächstes einen Buchstaben für das zuzuordnende Laufwerk zu und aktivieren Sie „Mit anderen Anmeldeinformationen verbinden“ (die folgenden Screenshots sind auf Spanisch, meiner Muttersprache):

Zum Schluss erstellen wir eine Datei und überprüfen die Berechtigungen und den Besitz:


ls -l /finance

Diesmal gehört die Datei user2, da dies das Konto ist, das wir für die Verbindung vom Windows-Client verwendet haben.

Zusammenfassung

In diesem Artikel haben wir nicht nur erklärt, wie man einen Samba-Server und zwei Clients mit unterschiedlichen Betriebssystemen einrichtet, sondern auch, wie man Firewalld und SELinux auf dem Server konfiguriert, um die gewünschten Funktionen für die Gruppenzusammenarbeit zu ermöglichen.

Zu guter Letzt empfehle ich die Lektüre der Online-Manpage von smb.conf, um andere Konfigurationsanweisungen zu erkunden, die für Ihren Fall möglicherweise besser geeignet sind als das in diesem Artikel beschriebene Szenario.

Wenn Sie Kommentare oder Vorschläge haben, können Sie wie immer gerne einen Kommentar über das untenstehende Formular hinterlassen.