So installieren und konfigurieren Sie Samba auf RHEL 8 / CentOS 8

So installieren und konfigurieren Sie Samba auf RHEL 8 / CentOS 8

SAMBA stellt Server- und Client -Software zur Verfügung, mit der die Dateifreigabe zwischen Linux- und Windows -Maschinen freigegeben werden kann. Das Installieren und Konfigurieren von RHEL 8 / CentOS 8 ist recht einfach. Lesen Sie weiter, um zu erfahren, wie Sie ein Verzeichnis mit Samba teilen und wie Sie den entsprechenden Selinux -Kontext darauf anwenden.

In diesem Tutorial lernen Sie:

  • So installieren Sie Samba auf RHEL8
  • So aktivieren und beginnen Sie die SMB- und NMB -Dämonen
  • So erstellen Sie eine Samba -Aktie
  • So richten Sie die Firewall ein, damit Samba Share zugegriffen werden kann
  • So richten Sie den richtigen Selinux -Kontext ein, damit Samba richtig funktioniert
Samba -Aktien an Rhel 8 / Centos 8

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Red Hat Enterprise Linux 8
Software Samba, Coreutils und PolicyCoreutils-Python-Utils-Pakete
Andere Erlaubnis, den Befehl mit Root -Privilegien auszuführen.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Einführung von Samba

Samba ist, wie auf der Homepage des Projekts angegeben, eine Open -Source -Software, die unter dem veröffentlicht wurde Gpl Lizenz, mit der wir Dateien und Druckdienste mithilfe des SMB/CIFS Protokoll.

Das Projekt bietet sowohl Server- als auch Client -Software, um die Interoperation mit Windows -Maschinen zu ermöglichen, was die ideale Lösung in gemischten Umgebungen darstellt. In diesem Tutorial werden wir sehen, wie Samba auf Red Hat Enterprise Linux 8 installiert wird, wie Sie eine Samba -Aktie einrichten, wie die Firewall aufgestellt wird, um den Zugriff auf gemeinsam genutzte Ressourcen zu ermöglichen und wie Sie den entsprechenden Selinux -Kontext anwenden können.



Installation

Das erste, was wir tun müssen, ist, Samba auf unserem Computer zu installieren. Das Paket und die benötigten Bibliotheken sind im offiziellen RHEL 8 / CentOS 8 -Repositories erhältlich. Daher können wir sie nur mit Yum oder DNF installieren. In dieser Version von Rhel/CentOS ist der erste Befehl nur ein „Link“ zum zweiten:

$ sudo dnf install samba samba-client

Das Samba-Client-Paket ist nicht ausschließlich benötigt, aber die von It bereitgestellten Dienstprogramme können nützlich sein. Sobald die Pakete installiert sind, müssen wir starten und die aktivieren SMB und das NMB Daemons am Boot. Der erste ist der Daemon, der sich um die Durchführung der tatsächlichen Übertragungen und die Freigabebetriebe kümmert, während die zweite die durchführt Netbios Nennen Sie Auflösungen, sodass die Ressourcen beim Durchsuchen des Netzwerks unter Windows angezeigt werden können. Wir können jetzt beide Systemd -Dienste mit nur einem Befehl aktivieren und starten:

$ sudo systemctl enable -jetzt smb, nmb

Konfigurieren der Firewall

Der nächste Schritt ist die Firewall -Konfiguration. Wir müssen die entsprechenden Ports öffnen, damit die von Samba-Shared-Ressourcen von anderen Maschinen zugänglich sein können. Die Standard -Firewall -Management -Software ONRHEL 8 / CentOS 8 ist Firewalld.

Zum Glück besteht keine Notwendigkeit, die Ports manuell zu öffnen: Wir müssen nur den „Samba“ -Dienst zu unserer Zone hinzufügen. Ein „Service“ ist nur eine Abstraktion, mit der wir den Datenverkehr über alle von einem Dienst benötigten Ports ermöglichen, indem wir auf den Dienstnamen Bezug genommen werden, anstatt jeden von ihm verwendeten Port einrichten (und sich zu beachten). Falls wir Informationen über einen „Service“ sammeln möchten, können wir ausführen:

$ sudo Firewall-CMD-Info-Service Samba-Samba-Ports: 137/UDP 138/UDP 139/TCP 445/TCP-Protokolle: Quelle-Ports: Module: Netbios-NS Ziel: 

Aus der Ausgabe des Befehls sehen wir, dass der Dienst den Datenverkehr über Ports 173/UDP, 138/UDP, 139/TCP und 445/TCP zulässt. Um den Dienst dauerhaft in die Standardzone hinzuzufügen, können wir ausführen:

$ sudo firewall-cmd --permanent --add-service = samba

Beim Ausführen des Befehls haben wir das verwendet --dauerhaft Wechseln Sie, um unsere Veränderung anhaltend zu machen. Wir haben auch angenommen Standard Zone, die verwendet werden soll. Wenn wir eine andere Zone für die Anwendung der Aktion angeben wollten, hätten wir die verwendet --Zone Option und lieferte den Zonennamen als Argument (e).G. -Zone = extern). Da unsere Änderung dauerhaft sein soll, müssen wir die Firewall -Konfiguration neu laden:

$ sudo firewall-cmd-Reload


Wir können überprüfen, ob der „Samba“ -Dienst jetzt Teil unserer Zone ist, indem wir ausführen:

$ sudo firewall-cmd-list-services cockpit dhcpv6-client http Samba ssh 

Wenn keine Zone angegeben ist, wird der Befehl auf die Standardzone angewendet.

Konfigurieren eines von den Gästen zugänglichen gemeinsam genutzten Verzeichnisses

Nehmen wir an, wir möchten ein Verzeichnis über Samba teilen und den Gastnutzern kostenlosen Zugriff auf dieses Verzeichnis zulassen, ohne dass sie ein Passwort geben müssen. Um das gewünschte Ergebnis zu erzielen, müssen wir einige Änderungen an der vornehmen /etc/samba/smb.Conf Datei und fügen Sie eine "Strophe" für unsere Aktie hinzu. Öffnen Sie die Datei mit Ihrem bevorzugten Editor und in der [global] Abschnitt, den hervorgehobenen Text hinzufügen:

[Global] WorkGroup = Samba Security = User PassDB Backend = Tdbsam Printing = Cups Printcap Name = Cups Ladung Drucker = Ja Cups Optionen = RAW Karte an Guest = schlechter Benutzer 

Der Karte an Guest = schlechter Benutzer Anweisungen, Anmeldeversuche mit schlechten Benutzernamen dem Standardgastbenutzer, was standardmäßig standardmäßig ist niemand. Dies ist erforderlich, um einen anonymen Zugriff zu ermöglichen, ohne ein Passwort angeben zu müssen.

Nach dieser Änderung müssen wir eine neue Strophe anhängen, die unserer Aktie am Ende der Datei gewidmet ist. Wir werden die freigegebene Ressource "LinuxConfig" nennen:

[LinuxConfig] Path = /Mnt /Shared Guest = Ja 

Mit dem oben genannten Setup erklärten wir, dass wir den Inhalt des /mnt/geteilt Verzeichnis, ohne dass die Benutzerauthentifizierung erforderlich ist. Dieses Setup ist offensichtlich riskant und wird hier nur als Beispiel gemeldet: In einem Szenario in der realen Welt möchten Sie vielleicht zumindest den Zugriff auf den Schreibzugriff auf Gäste verweigern (Sie können dies tun, indem Sie das hinzufügen schriftlich = nein Anweisung). Um die Änderungen effektiv zu machen, müssen wir die Daemons neu starten:



$ sudo systemctl restart smb, nmb

Konfigurieren Sie eine Freigabe, die nur von registrierten Benutzern zugänglich ist

Um den Zugriff auf eine Ressource mit einer Anmeldeaufforderung zu schützen, müssen wir, wenn Samba als eigenständiger Server ausgeführt wird. Die Anmeldeinformationen dieses Benutzers sind erforderlich, um auf das freigegebene Verzeichnis zuzugreifen. Aus Sicherheitsgründen ist es eine gute Praxis, einen engagierten Benutzer für die Aufgabe zu erstellen, die Erstellung seines Heimverzeichnisses wegzulassen und ihm eine gefälschte Hülle zuzuweisen:

$ sudo adduser -m sambauer -s /sbin /nologin

Der -M Die Option, die an den Befehl übergeben wurde, ist die Kurzform für --Nicht-schafftes Zuhause, das ist ziemlich selbsterklärend; Die -S Lassen Sie uns stattdessen eine Shell angeben, in diesem Fall ein ungültiges Abschluss: /sbin/nologin. Zu diesem Zeitpunkt muss der Benutzer nicht einmal ein Passwort auf unserem System festlegen lassen.

Sobald der Benutzer erstellt wurde, müssen wir sie in die SAMBA -Datenbank hinzufügen: Wir können den Vorgang mit der Verwendung der Operation ausführen smbpasswd Befehl:

$ sudo smbpasswd -a sambauer Neues SMB -Kennwort: Neues SMB -Kennwort eingeben: Benutzer Sambauer hinzugefügt. 

Nach dem Ausführen des Befehls werden wir aufgefordert, dem Benutzer ein Passwort zuzuweisen und dies auch zu bestätigen: Dieses Kennwort ist nur im Samba -Kontext gültig, hat nichts mit dem Benutzerkonto in unserem System zu tun. Um die zuvor erstellte Aktie einzuschränken, müssen wir im dedizierten Abschnitt eine kleine Änderung vornehmen:

[LinuxConfig] path = /mnt /freigegeben Gast ok = nein 

Wir können überprüfen, ob unser Setup durch die Verwendung der gültig ist Testparm Befehl:



$ testparm laden SMB -Konfigurationsdateien aus/etc/samba/smb.conf rlimit_max: Erhöhung der RLIMit_MAX (1024) auf minimale Windows -Limit (16384) Verarbeitungsabschnitt "[Homes]" Verarbeitungsabschnitt "[Drucker]" Verarbeitungsabschnitt "[Druck $]" Verarbeitungsabschnitt "[LinuxConfig]" Loaded Services -Datei in Ordnung in Ordnung. Serverrolle: ROLE_STANGONORE 

Wieder müssen wir die neu starten SMB Und NMB Daemons, damit unsere Änderungen wirksam sind. Das freigegebene Verzeichnis ist nun erst nach der Bereitstellung der richtigen Anmeldeinformationen zugänglich.

Setup Selinux für Samba einrichten

Selinux wird oft wie eine Komplikation und sofort behindert. Dies ist nicht notwendig: Wir müssen nur lernen, wie man es konfiguriert. Damit unsere Samba -Freigabe arbeitet, wenn Selinux im „Durchsetzung“ -Modus ist, müssen wir unserem gemeinsam genutzten Verzeichnis und unseren Dateien den entsprechenden Kontext zuweisen:

$ sudo chcon -r -t samba_share_t /mnt /freigegeben

Im obigen Beispiel haben wir die verwendet CHCON Befehl mit dem -T Option, um die zu ändern TYP Abschnitt des Selinux -Kontextes zu samba_share_t. Wir haben auch die benutzt -R Wechseln Sie, um den Befehl rekursiv zu machen. Diese Änderung wird einen Neustart überleben, jedoch nicht eine Neugestaltung des Systems, wenn eine Standardrichtlinie für unser Verzeichnis und unsere Dateien besteht.

Wenn wir wollen, dass unsere Änderung ein Wiedergutmachungsereignis überlebt, müssen wir unsere Regel der Richtlinie hinzufügen. Wir können dies tun, indem wir die verwenden Semanage Befehl:

$ sudo semanage fcontext -a -t samba_share_t "/mnt/freigegeben (/.*)?"

Da haben wir das benutzt (/.*)? Regex, die Regel wird auf alle Inhalte des „gemeinsam genutzten“ Verzeichnisses und auf das Verzeichnis selbst angewendet. Wir können überprüfen, ob unsere Regel in die Richtlinie hinzugefügt wurde, indem die in unserem System verwendeten Beschriftungen aufgeführt sind:

$ sudo semanage fcontext -l | grep/mnt/freigegeben/mnt/freigegeben (/.*)? Alle Dateien System_U: Object_R: samba_share_t: s0 

Wir sollten jetzt ein funktionierendes Samba -Setup haben. Um die Samba -Konfiguration weiter zu optimieren. Wenn Sie beispielsweise Samba existierende Benutzer hinzufügen, müssen wir den dedizierten Selinux Boolean aktivieren, um ihre Heimverzeichnisse zu teilen. Um alle mit Samba bezogenen Booleschen aufzulisten, können wir ausführen:



$ sudo semanage boolean -l | grep samba samba_create_home_dirs (aus, aus) Erlauben Sie Samba, Home -Dirs Samba_domain_controller (aus) zu erstellen. Erlassen Sie Samba. Ermöglichen Ermöglichen samba_share_fusefs (off , off) Allow samba to share fusefs samba_share_nfs (off , off) Allow samba to share nfs sanlock_use_samba (off , off) Allow sanlock to use samba tmpreaper_use_samba (off , off) Allow tmpreaper to use samba use_samba_home_dirs (off , off) Lassen Sie die Verwendung von Samba Home Dirs VIRD_USE_SAMBA (Aus, Aus) erlauben Sie Virt, Samba zu verwenden 

In der obigen Ausgabe zeigt die zweite Spalte den aktuellen Wert des Booleschen an, während der dritte der Standard (beide ausgeschaltet sind, in diesem Fall). Der Boolesche, den wir aktivieren möchten, um die Freigabe von Heimverzeichnissen zu ermöglichen, ist samba_enable_home_dirs. Wir können den Vorgang durch die Verwendung des Operation durchführen Setsbool Befehl:

$ sudo setsbool samba_enable_home_dirs = 1

Schlussfolgerungen

In diesem Tutorial haben wir gesehen, wie Samba auf einem RHEL 8 / CentOS 8 -System installiert wird. Wir haben auch gesehen. Wir haben auch gesehen.

Schließlich haben wir gesehen. Wenn Sie Selinux interessieren, können Sie unseren Artikel auch zu diesem Thema lesen.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Mastering -Bash -Skriptschleifen beherrschen
  • Wie man Kali Linux und Windows 10 Dual -Boot -Start hat
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • So richten Sie Samba Server und Client auf Almalinux ein
  • So richten Sie einen OpenVPN -Server auf Ubuntu 20 ein.04
  • FTP -Clientliste und -installation auf Ubuntu 22.04 Linux…
  • Ubuntu 20.04 Leitfaden