So konfigurieren Sie den Samba-Server unter Redhat Linux
In diesem Tutorial wird Schritt für Schritt anhand praktischer Beispiele erläutert, wie Sie den Samba-Server unter Linux und den Samba-Client unter Windows und Linux konfigurieren, einschließlich der Erstellung von IPTABLES-Regeln und der Konfiguration von SELinux-Booleschen Werten, um Samba-Datenverkehr zuzulassen. Erfahren Sie, wie Sie Ressourcen freigeben und auf freigegebene Ressourcen im Samba-Netzwerk zugreifen.
- Microsoft Window Verwenden Sie das CIFS-Protokoll (Common Internet File System) für die Vernetzung.
- CIFS wurde aus dem SMB-Protokoll (Server Message Block) entwickelt.
- Samba ist eine Open-Source-Software.
- Samba verwendet das TCP/IP-Protokoll.
- Samba ist eine Linux-Implementierung von SMB/CIFS-Protokollen.
- Samba ermöglicht die Interoperabilität zwischen Linux und Window.
- Samba bieten Datei-und Druck-Sharing-Service zwischen Linux und Windows-System.
- Samba ermöglicht Linux die Interaktion mit Windows-Client, Server, Mitglied von Active Directory, primärem Domänencontroller oder Mitgliedsserver.
- Samba unterstützt Microsoft Access-Kontrolllisten.
- Die Hauptkonfigurationsdatei des Samba-Servers ist /etc/samba/smb.conf
- Samba Web Administration Tool (SWAT) ist ein GUI-Basis-Konfigurationstool für Samba Serveravailable von RHEL 6
- In Linux SAMBA bietet die folgenden Dienste:
- Benutzerauthentifizierung und -autorisierung
- Datei- und Druckerfreigabe
- Namensauflösung
- Browsing
RHCE-Prüfung Thema in diesem Artikel behandelt
- Netzwerkfreigaben für bestimmte Clients bereitstellen.
- Stellen Sie Netzwerkfreigaben bereit, die für die Gruppenzusammenarbeit geeignet sind.
Während der RHCE-Prüfung haben Sie keinen Zugriff auf Microsoft Window, daher müssen Sie wissen, wie Sie die Samba-Konfiguration mit einem Linux-System testen.
In diesem Tutorial verwende ich zwei Systeme Server und linuxclient aus unserer LAB-Umgebung. Ich werde den Samba-Server auf dem Serversystem und den Samba-Client auf dem Linuxclient-System konfigurieren. Wenn Sie die in diesem Artikel verwendete Netzwerktopologie überprüfen möchten, lesen Sie bitte den folgenden Artikel. Labor für RHEL Praxis eingerichtet.
RPM erforderlich für Samba Server
RPM | Beschreibung |
samba | Basis-RPM für Samba-Server |
samba-client | Basis-RPM für Samba-Client |
samba-common | Befehle einschließen, die vom Samba-Server und -Client benötigt werden |
samba-doc | Samba-Dokumentation bereitstellen |
samba-swat | GUI-Schnittstelle für Samba-Konfiguration |
samba-winbind | Zulassen interoperabilität zwischen Linux und Window |
samba-domainjoin-gui | Ermöglicht Linux-Benutzern die Verbindung mit Windows-Arbeitsgruppen und -Domänen. |
LAB tasks
- Konfigurieren Sie Samba auf dem Serversystem. Konfigurieren Sie die iptables-Firewall und SELinux-Boolesche Werte, um die Samba-Verbindung auf dem Server zuzulassen.
- Erstellen Sie 5 Benutzer auf dem Serversystem. Erstellen Sie eine Gruppe von zwei Benutzern. Fügen Sie alle Benutzer in der Samba-Benutzerdatenbank hinzu.
- Überprüfen Sie die Konnektivität zwischen dem Linuxclient- und dem Windowclient-System. Überprüfen Sie durch Login von einem Benutzer.
- Erstellen Sie einen Sharedata-Ordner auf dem Server. Gewähren Sie public im Sharedata-Ordner Lese- und Schreibzugriff. Diesen Ordner öffentlich freigeben. Testformular Linux- und Window-Client.
Samba-Server konfigurieren
Auf dem Samba-Server werden folgende RPM benötigt
- samba
- samba-common
- samba-winbind
Erforderliche rpm prüfen
Sie können RPM aus verschiedenen Quellen installieren, einschließlich YUM Repository, Dump von RPM, FTP usw. In diesem Artikel installiere ich RPM Form RHEL 6 Festplatte. Mounten Sie die RHEL 6-Festplatte im Medienordner und ändern Sie das Verzeichnis in den Paketordner
Installieren Sie das erforderliche RPM.
Samba-Daemons
Für Samba benötigen wir drei Dienste, einen optionalen und zwei erforderliche
Dienst | Dämonen | Beschreibung | |
Erforderlich | smb | smbd | (SMB / CIFS-Server) Haupt-Samba-Dienst, der Benutzerauthentifizierung und -autorisierung sowie Datei- und Druckerfreigabe bietet |
Erforderlich | nmb | nmbd | (NetBIOS name server) Ressourcen Browsing |
Optional | winbind | winbindd | Für Host- und Benutzernamenauflösung |
Wenn Sie gerade RPM installiert haben, werden diese Dienste gestoppt.
Starten Sie die erforderlichen Dienste
Stellen Sie sicher, dass die Dienste beim nächsten Booten von Linux ausgeführt werden
So erlauben Sie Samba über die Firewall
Während der RHCE 6-Prüfung haben wir sowohl Firewall (iptables) als auch SELinux-Schutz.
Damit Samba außerhalb des Servers kommunizieren kann, müssen wir iptables und SELinux konfigurieren.
Samba in iptables zulassen
SAMBA verwendet die Ports 137,138,139 und 445
Port 137 | UDP-NetBIOS-Namensdienst (WINS) |
Port 138 | UDP NetBIOS-Datagramm |
Port 139 | TCP NetBIOS-Sitzung (TCP), Windows-Datei- und Druckerfreigabe |
Port 445 | Microsoft-DS Active Directory, Windows-Freigaben (TCP) |
Port 445 | Microsoft-DS SMB-Dateifreigabe (UDP) |
Firewall öffnen für Samba fügt die folgenden Regeln und starten Sie die iptables
#iptables -A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT #iptables -A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT #iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT #iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
So erlauben Sie Samba Server von SELinux Firewall
SELinux als Sicherheitsfunktion verhindert automatisch die Anzeige einer Freigabe. SELinux ist die komplexe Sicherheitsfunktionen von Linux. Für RHCE 6 Prüfung sollten Sie folgende SELinux Booleans kennen
samba_enable_home_dirs | Ermöglicht das Teilen von Home-Verzeichnissen |
samba_export_all_ro | Schreibgeschützten Zugriff auf ein beliebiges Verzeichnis aktivieren |
samba_export_all_rw | Richtet Lese-/Schreibzugriff auf ein beliebiges Verzeichnis ein |
samba_share_t Standarddatei | die Samba freigeben kann |
Sie können samba_export_all_ro oder samba_export_all_rw Boolesche Werte in der Laborumgebung aktivieren, aber in im wirklichen Leben wäre das ein Sicherheitsrisiko. Es ist eine gute Angewohnheit, Dateitypen für Dateien und Verzeichnisse festzulegen, die über Samba freigegeben werden müssen. Sie können dies mit dem folgenden Befehl tun
# chcon -R -t samba_share_t /sharedata
In diesem Beispiel aktivieren wir das Verzeichnis /sharedata. Jetzt kann Samba dieses Verzeichnis freigeben.
Um das Standard-Home-Verzeichnis freizugeben, führen Sie den folgenden Befehl aus:
setsebool -P samba_enable_home_dirs on
– P stellt sicher, dass die Änderung nach dem Neustart erhalten bleibt.
Sie können einen neuen Samba-Benutzer nur aus gültigen Konten auf einem Linux-Computer erstellen, erstellen Sie also 5 Benutzer
Passwort für alle Benutzer festlegen. Vermeiden Sie das Festlegen eines Kennworts für das lokale System, wenn Sie diese Benutzer nur für den Samba-Dienst erstellen und ihnen keinen lokalen Systemzugriff gewähren möchten.
Der Befehl smbpasswd -a kann verwendet werden, um einen Benutzer zur Passwortdatenbank unter /etc/samba/ für die SAMBA-Authentifizierung hinzuzufügen. Richten Sie Samba-Benutzer mit dem Befehl smbpasswd ein.
Erstellen Sie eine smbgroup und fügen Sie smbuser3- und smbuser4-Benutzer hinzu
Öffnen Sie nun die Hauptkonfigurationsdatei von Samba
Das smb.conf-Datei enthält zwei Arten von Kommentarzeilen.
- Das Hash-Symbol (#) wird verwendet, beschreibt eine Funktion
- Das Semikolon (;), verwendet, um auskommentieren Funktion (Hinzufügen ; um die Funktion zu deaktivieren, entfernen ; so aktivieren Sie die Funktion)
Notieren Sie sich den Wert des Arbeitsgruppenverzeichnisses
Es wäre dasselbe im Netzwerk für nahtlose Konnektivität
Navigieren Sie nun zum Abschnitt Definitionen freigeben Standardmäßig gibt Samba automatisch das Home-Verzeichnis des angemeldeten Benutzers frei, das in den ersten vier Zeilen dieses Abschnitts definiert ist.
browseable = keine Beschränkung des Benutzers auf sein eigenes Home-Verzeichnis. Samba liest die Home-Verzeichnisinformationen aus der Datei /etc/passwd, sodass Sie den Pfad des Home-Verzeichnisses nicht angeben müssen.
Schließen Sie den SMB.conf-Datei jetzt und notieren Sie sich die IP-Adresse des Servers
Das sind alle Konfigurationen, die wir gerade auf dem Server benötigen.
Samba-Client auf Linux-System konfigurieren
Auf dem Samba-Client werden folgende RPM benötigt
- samba-client
- samba-common
- samba-winbind-client
Mounten Sie die RHEL 6-Festplatte im Medienordner und verschieben Sie sie in das Paketverzeichnis
Installieren Sie RPM, falls erforderlich.
Überprüfen Sie die Konnektivität vom Samba-Server.
Versuchen Sie, die Freigabe vom Samba-Server mit smbuser1 aufzulisten
Um das „Share user home directory“ zu überprüfen, listen Sie die Freigabe von smbuser5 auf und erstellen Sie einen sambatmp-Ordner. Angemeldet von smbuser5 und mounten sein Home-Verzeichnis im sambatmp-Ordner. Um sicherzustellen, dass der Benutzer über schreibbare Berechtigungen verfügt, erstellen Sie auch eine Testdatei.
Gehen Sie auf das Serversystem und melden Sie sich von smbuser5 aus an und überprüfen Sie die Tests.
Wir haben den Samba-Client erfolgreich auf dem Linux-Client-System konfiguriert.
Fenster 7 als Samba-Clientsystem konfigurieren
Eigenschaften des Computers öffnen
Klicken Sie auf Einstellung ändern
Klicken Sie auf Ändern
Ändern Sie den Namen der Arbeitsgruppe in MYGROUP
Systemneustart ist erforderlich, Neustart bestätigen
Überprüfen Sie nach dem Neustart des Systems die Konnektivität des Formularservers
Öffnen Sie das Netzwerk und klicken Sie auf Serversystem
Anmeldung von smbuser1
Der Benutzer wird in seinem Zuhause angemeldet verzeichnis
Wir haben Window 7 erfolgreich als Client-System von Samba konfiguriert.
Erstellen Sie einen Sharedata-Ordner auf dem Server. Gewähren Sie public im Sharedata-Ordner Lese- und Schreibzugriff. Diesen Ordner öffentlich freigeben. Testformular Linux- und Window-Client.
Erstellen Sie auf dem Server einen Ordner /sharedata. Dieser Ordner wird vom Root-Benutzer erstellt, sodass unsere Benutzer nicht in diesen Ordner schreiben können. Ändern Sie seine Erlaubnis 777. Konfigurieren Sie SELinux Boolean . Öffnen Sie nun die SMB.conf-Datei
Diese Freigabe von / sharedata teilt sich einen gemeinsamen Speicherort, an dem der Benutzer die Dateien herunterladen / hochladen / lesen kann. Fügen Sie an diesem Ende der Datei die folgende Zeilengruppe hinzu und speichern Sie die Datei
# Common location for people to share files comment = common location file sharing path = /sharedata read only = no public = yes
Starten Sie den SMB-Dienst neu
Erstellen Sie auf linuxclient ein tmpdata-Verzeichnis und hängen Sie den sharedata-Ordner darin ein. Erstellen Sie Testdateien.
sharedata ist ein temporärer Ordner, den wir mit voller Berechtigung für alle freigegeben haben. Dies bedeutet, dass andere Benutzer in der Lage sein sollten, die von smbuser5 erstellte Datei zu lesen / schreiben. Um es zu testen, gehen Sie auf das Fenstersystem und öffnen Sie das Serversystem über das Netzwerk. Öffnen Sie den Sharedata-Ordner und lesen Sie die Datei
Löschen Sie nun diese Datei.
Erstellen Sie einen Ordner und erstellen Sie eine Datei darin
Überprüfen Sie diese auf dem Serversystem.
Im obigen Beispiel haben wir einen Ordner versichert freigegeben, in dem jeder Benutzer andere Dateien und Ordner löschen kann. Machen Sie es jetzt ein bisschen sicherer. Gehen Sie zum Server und ändern Sie die Berechtigung in 1777
Auf linuxclient von smbuser5 angemeldet und eine Datei erstellen
Im Fenster, in dem wir von smbuser1 angemeldet sind, versuchen Sie, die Datei zu lesen.
Versuchen Sie nun, diese Datei zu löschen.
Es wird geleugnet
Verweigern von Benutzern in Samba
Mit Samba können Sie Benutzer / Benutzer aus freigegebenen Ressourcen ablehnen. Um smbuser5 von sharedata fernzuhalten, öffnen Sie /etc/samba/smb.conf und ändern Sie den Konfigurationswert in folgend und speichern Sie die Datei
Laden Sie den SMB-Dienst neu
Versuchen Sie auf dem Linuxclient-System zuerst, sharedata von smbuser5 und dann von smbuser1 zu mounten
Wie man Samba auf die Gruppe
beschränkt Wir haben oben in diesem Tutorial eine Gruppe smbgroup erstellt. Konfigurieren Sie nun Samba so, dass nur dieser Gruppe Zugriff gewährt wird.
Ändern Sie auf dem Server die Gruppe von sharedata und aktualisieren Sie die Berechtigung auf 1770. Öffnen Sie die smb.conf-Datei
Aktualisieren Sie die Zeilengruppe und speichern Sie die Datei
laden Sie den SMB-Dienst neu
Versuchen Sie es auf dem Linux-Client zuerst mit smbuser5, das nicht Mitglied der smbgroup ist, und später mit smbuser3, dem Mitglied der smbgroup
Wie man Samba auf Benutzer beschränkt
Jetzt werden wir nur für Benutzer / Benutzer freigeben. Konfigurieren Sie nun Samba so, dass nur smbuser1 im Sharedata-Ordner angezeigt wird.
Machen Sie auf dem Server smbuser1 zum Eigentümer des Ordners /sharedata und aktualisieren Sie die Berechtigung. Öffnen Sie die smb.conf
ändern Sie die Zeilengruppe und speichern Sie die Datei
Laden Sie die Datei neu
Versuchen Sie es auf linuxclient zuerst mit anderen Benutzern und dann mit smbuser1
Bisher haben wir in diesem Artikel unterschiedliche Zugriffsebenen für Samba Share konfiguriert. Denken Sie bei RHCE 6 immer daran, dass Dateiberechtigungen, Dateisystem-Mount-Optionen, SELinux-Boolesche Werte und ACL von Samba nicht überschrieben werden können. Es bedeutet, dass, wenn ein Verzeichnis keine Schreibberechtigung hat und Sie die Einstellung writeable = yes haben, es nicht schreiben darf. Dies ist der Grund, warum wir zuerst die Dateisystemberechtigung aktualisieren, als wir Samba-Einstellungen festlegen.
Während der RHCE 6-Prüfung können die folgenden 2 Befehle für Sie sehr nützlich sein.
testparm
Der Befehl testparm überprüft smb.conf-Datei für interne Fehler. Wenn die Ausgabe dieses Befehls fehlerfrei zurückkehrt, verwenden Sie die Konfigurationsdatei.
smbstatus
Dieser Befehl listet die aktuelle Samba-Verbindung auf.
Für RHCE 6 Prüfung sollte auch folgende Richtlinien von SMB kennen.conf-Datei
So ändern Sie den Samba-Servernamen
Standardmäßig Samba Hostname als NetBIOS-Name. NetBIOS ist der Name, den andere Clients in Netzwerk-Browse-Listen sehen, z. B. in einem Microsoft net View-Befehl oder einem regulären Linux smbclient-Befehl. Um den Namen des Samba-Servers zu ändern, kommentieren Sie aus und ändern Sie den Wert der folgenden Direktive.
; netbios name = MYSERVER
So ändern Sie den Samba-Arbeitsgruppennamen
Der Standard-Arbeitsgruppenname von Samba ist MYGROUP. Sie können es von smb aktualisieren.conf-Datei. Um den Standard-Arbeitsgruppennamen zu ändern, aktualisieren Sie den Wert der folgenden Direktive.
workgroup = MYGROUP
So beschränken Sie Samba auf lokales Netzwerk
Um den Zugriff auf das angegebene Netzwerk zu beschränken, kommentieren Sie die folgende Direktive aus und geben Sie das Netzwerk an.
; hosts allow = 127. 192.168.12. 192.168.13.
Wenn Sie den Wert auskommentieren, ohne ihn zu ändern, wird der Zugriff auf die Netzwerke mit den Netzwerk-IP-Adressen 192.168.12.0 und 192.168.13.0 sowie auf den lokalen Computer (127.): Sie können auch die hosts Deny-Direktive konfigurieren. Konfigurieren Sie Host-Allow / Deny-Direktiven hier nur, wenn Sie Änderungen global vornehmen möchten. Individuell freigegebene Verzeichnisse können auch mit hosts allow / deny konfiguriert werden. Wenn Sie also nach individuellen Konfigurationen suchen, tun Sie dies in einem eigenen Abschnitt.
Das ist alles für diesen Artikel.