Samba einrichten und FirewallD und SELinux konfigurieren, um die Dateifreigabe auf Linux/Windows-Clients zu ermöglichen - Teil 6
Da Computer selten als isolierte Systeme arbeiten, ist es zu erwarten, dass Sie als Systemadministrator oder Ingenieur wissen, wie man ein Netzwerk mit mehreren Arten von Servern 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 durchgehen.
Dieser Artikel wird sich auf jeden Fall als nützlich erweisen, wenn Sie aufgefordert werden, Dateiserver in Unternehmens- oder Unternehmensumgebungen einzurichten, in denen Sie wahrscheinlich unterschiedliche Betriebssysteme und Gerätetypen finden.
Da man über die Hintergründe und die technischen Aspekte von Samba und NFS überall im Internet nachlesen kann, kommen wir in diesem und dem nächsten Artikel gleich auf den Punkt und bringen das Thema auf den Punkt.
Schritt 1: Samba-Server installieren
Unsere aktuelle Testumgebung besteht aus zwei RHEL 7-Boxen und einem Windows 8-Computer, 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 Kasten 2:
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, ist, 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 es ein Windows-System (ich muss zugeben, dass ich dazu neige, ein wenig emotional zu werden, wenn ich über dieses Thema schreibe, da es vor einigen Jahren mein erstes Setup als neuer Linux-Systemadministrator war).
Hinzufügen von Systembenutzern und Einrichten von Berechtigungen und Eigentümerschaft
Um die Zusammenarbeit in Gruppen zu ermöglichen, erstellen wir eine Gruppe mit dem Namen finance mit zwei Benutzern (user1 und user2) mit dem Befehl useradd und einem Verzeichnis /finance in box1.
Wir werden auch den Gruppenbesitzer dieses Verzeichnisses in finance ändern und seine Berechtigungen auf 0770 festlegen (Lese-, Schreib- und Ausführungsberechtigungen für den Eigentümer und den Gruppenbesitzer):
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: Konfigurieren von SELinux und Firewalld
Zur Vorbereitung der Konfiguration von /finance als Samba-Freigabe müssen wir entweder SELinux deaktivieren oder die richtigen booleschen 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: Konfigurieren von Samba Share
Jetzt ist es an der Zeit, in die Konfigurationsdatei /etc/samba/smb.conf einzutauchen und den Abschnitt für unseren Share hinzuzufügen: Wir möchten, dass die Mitglieder der Gruppe finance in der Lage sind, den Inhalt von /finance zu durchsuchen und Dateien oder Unterverzeichnisse darin zu speichern / zu erstellen (bei denen standardmäßig die Berechtigungsbits auf 0770 gesetzt sind und finance der Gruppenbesitzer ist):
[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 auftreten, 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 (d.h. ohne jegliche Authentifizierung), erstellen Sie eine weitere Sektion in /etc/samba/smb.conf und kopieren Sie unter dem Namen der neuen Freigabe die obige Sektion, wobei Sie nur public=no in public=yes ändern und die gültigen Benutzer- und Schreiblistendirektiven nicht einbeziehen.
Schritt 5: Hinzufügen von Samba-Benutzern
Als Nächstes müssen Sie user1 und user2 als Samba-Benutzer hinzufügen. Zu diesem Zweck verwenden Sie den Befehl smbpasswd, der mit der internen Datenbank von Samba interagiert. Sie werden aufgefordert, ein Kennwort einzugeben, das Sie später zum Herstellen einer Verbindung mit der Freigabe verwenden:
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 Netzwerkclients verfügbar ist:
systemctl start smb
systemctl enable smb
smbclient -L localhost –U user1
smbclient -L localhost –U user2
Zu diesem Zeitpunkt wurde 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 mounten (und später wieder aushängen):
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
Wobei die versteckte Datei /media/samba/.smbcredentials (deren Berechtigungen und Besitzverhältnisse auf 600 bzw. root:root gesetzt wurden) zwei Zeilen enthält, 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 0770-Berechtigungen und Eigentümerschaft auf user1:finance erstellt.
Schritt 7: Bereitstellen der Samba-Freigabe in Windows
Um die Samba-Freigabe in Windows zu mounten, wechseln Sie zu Arbeitsplatz, wählen Sie Computer und dann Netzlaufwerk zuordnen aus. Weisen Sie als Nächstes einen Buchstaben für das Laufwerk zu, das zugeordnet werden soll, und aktivieren Sie Verbinden mit anderen Anmeldeinformationen (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
Dieses Mal gehört die Datei zu user2, da dies das Konto ist, das wir für die Verbindung über den 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 die firewalld und SELinux auf dem Server konfiguriert, um die gewünschten Funktionen für die Gruppenzusammenarbeit zu ermöglichen.
Zu guter Letzt möchte ich empfehlen, die Online-Manpage von smb.conf zu lesen, um andere Konfigurationsanweisungen zu erkunden, die für Ihren Fall möglicherweise besser geeignet sind als das in diesem Artikel beschriebene Szenario.
Wie immer können Sie gerne einen Kommentar über das untenstehende Formular hinterlassen, wenn Sie Kommentare oder Vorschläge haben.








