Grundlagen zum Erstellen eines internen Servers für Linux (CentOS 8.1, openSUSE 15.1, Ubuntu 20.04)! Dateiserver mit Samba

Aufgrund des Einflusses des Koronavirus bricht die Weltwirtschaft zusammen und Telearbeit wird unabhängig von der Größe nacheinander eingeführt, wobei jedoch Dateien im LAN im Raum gemeinsam genutzt werden, indem mit einem PC einer kleinen Organisation gearbeitet wird Also möchte ich zuerst anfangen (˶˙ᵕ˙˶)

Die Grundvoraussetzung ist ** Linux + Samba, Dateiserver im LAN **. Beginnen wir damit, Dateien für mehrere PCs in der Organisation freizugeben! Installieren Sie der Einfachheit halber Samba von jeder Linux-Distribution und erstellen Sie einen Linux-Dateiserver.

Annahmen und Vorbereitungen

Umgebung

--Dateiserverprogramm: Samba (Linux-Paket Standard smbd) --Client: Windows10 Pro

Annahme

CentOS8.1


# vi /etc/selinux/config

/etc/selinux/config


SELINUX=enforcing
→ SELINUX=Wechseln Sie zu deaktiviert

CentOS8.1


# reboot

Serverbedingungen

Ich habe versucht, einen Dateiserver mit Samba unter den folgenden Bedingungen zu erstellen:. (.´͈ ᵕ `͈. ♡) ۶

IP Adresse

サーバー図.png

Dateiserverbedingungen

Arbeitsablauf

Betriebssystem-Update

Das ist natürlich! Das Update wird im Voraus durchgeführt

CentOS8.1


# dnf -y upgrade

openSUSE15.1


# zypper -n update

Ubuntu20.04


# apt-get -y update

** Starten Sie Linux neu **, wenn das Update abgeschlossen ist.

Einführung von Samba

Samba-Installation

Installieren Sie Samba aus dem Paket jeder Linux-Distribution.

CentOS8.1


# dnf -y install samba

openSUSE15.1


# zypper -n install samba

Ubuntu20.04


# apt-get -y install samba

Erstellen eines Benutzers zur Verwendung von Samba

Erstellen Sie einen neuen Linux-Benutzer, um den Samba-Dateiserver zu verwenden. Nehmen wir diesmal als Beispiel an, dass der Dateiserver mit dem Benutzernamen "* shonan *" verwendet wird.

# useradd -m shonan
#sudo passwd shonan ← Legen Sie ein Passwort für den Benutzer fest

Registrieren Sie sich anschließend bei Samba für den erstellten Linux-Benutzer. Verwenden Sie den Befehl * pdbedit *.

# pdbedit -a shonan

Lassen Sie sich hier nicht verwirren, Sie müssen zusätzlich zu dem Kennwort, das Sie beim Erstellen des Linux-Benutzers ** registriert haben, ein zusätzliches Kennwort für den Samba-Dateiserver festlegen. Denken Sie daran, dass für die tatsächliche Anmeldung am Dateiserver von Windows aus das Kennwort festgelegt wird, das Sie mit dem Befehl ** pdbedit festgelegt haben, nicht das Kennwort des Linux-Benutzers (obwohl ich der Einfachheit halber dasselbe wie das Linux-Kennwort verwende). .. (๑ ・ ∞ ∞ ๑))

Samba-Einstellungen

Stellen Sie Samba in "/etc/samba/smb.conf" ein.

# vi /etc/samba/smb.conf

/etc/samba/smb.conf


#Es werden nur die Elemente aufgelistet, die hinzugefügt oder geändert werden sollen. Andere bleiben bei den Standardeinstellungen
[global]
   workgroup = [Arbeitsgruppenname von Windows, zu dem Sie gehören]
   hosts allow = [IP-Adresse oder Netzwerksegment, um die Verbindung zu ermöglichen]
[<Beliebiger Abschnittsname>]
   comment = [Jeglicher Kommentar]
   path = [Verzeichnis als Dateiserver verwendet]
   read only = no
   browsable = yes
   writable = yes

Mit dieser Datei können Sie für flexible Zwecke als Dateiserver veröffentlichen, indem Sie die Verzeichnisse auf dem Linux-Dateiserver als beliebige Abschnittsnamen trennen.

Daher möchte ich dieses Mal, wie unter "Dateiserverbedingungen" beschrieben, den Abschnittsnamen "* kazumi75kitty " und das Linux-Verzeichnis " / mnt / miura / *" als Dateiserver verfügbar machen. Ich werde. Da davon ausgegangen wird, dass sich das Netzwerk in 192.168.1.0/24 befindet, lassen Sie dieses Netzwerk zu.

Anschließend wird /etc/samba/smb.conf mit den folgenden Einstellungen festgelegt.

/etc/samba/smb.conf(Beispiel)


#Es werden nur die Elemente aufgelistet, die hinzugefügt oder geändert werden sollen. Andere bleiben bei den Standardeinstellungen
[global]
   workgroup = [Arbeitsgruppenname von Windows, zu dem Sie gehören]
   hosts allow = 192.168.1. 127.0.0.1
   #Gastgeber erlauben, 192.168.1.0/Wenn Sie 24 und sich selbst zulassen möchten, befolgen Sie die obigen Anweisungen.
[kazumi75kitty]
   comment = File Server Test in Miura Peninsula
   path = /mnt/miura
   read only = no
   browsable = yes
   writable = yes

Der Name der Windows-Arbeitsgruppe, zu der ich gehöre, kann in den Systemeigenschaften der Systemsteuerung bestätigt werden, daher habe ich ihn nicht erwähnt ^^

Einfach in Verzeichnisse eingebunden zu werden

Das in Abschnitt ** unter "Pfad" angegebene Verzeichnis muss mit dem bei pdbedit registrierten Benutzer identisch sein. Andernfalls können Sie möglicherweise nicht auf die Dateien und Verzeichnisse auf dem Dateiserver ** zugreifen. Überprüfen Sie daher den Eigentümer ordnungsgemäß. ich wechsle

Wenn Sie diesmal "/ mnt / miura /" für den Speicherplatz des Dateiservers verwenden, z. B. wenn der Benutzer es mit shonan verwenden möchte, ist der Eigentümer des Verzeichnisses ** / mnt / miura / shonan ** (nicht root). wird gebraucht.

Ownerchange.png Wie das obige Bild (der Benutzername im Bild ist ausgeblendet, weil es in Betrieb ist)

Abhängig von der Verteilung kann es kompliziert oder einfach sein, je nachdem, ob smb.conf erklärt wird oder nicht. Beziehen Sie sich daher auf das Bild (˶ ・ ᴗ ・) ⚐⚑

Parameterprüfung

# testparm /etc/samba/smb.conf

Wenn "Loaded Services File OK" angezeigt wird, sollten die Einstellungen korrekt sein.

Starten des Samba-Dienstes

CentOS8.1 ・ openSUSE15.1


# systemctl start smb
# systemctl enable smb
# systemctl status smb

Ubuntu20.04


# systemctl start smbd
# systemctl enable smbd
# systemctl status smbd

Mit enable können Sie den Dateiserver auch nach einem Neustart automatisch verwenden.

Überprüfen Sie, ob "Aktiv" und "Laufen" im Status angezeigt werden und "Fehlgeschlagen" nicht angezeigt wird. Wenn es "Fehlgeschlagen" ist, müssen Sie zurückgehen, um es erneut zu überprüfen, z. B. eine falsch geschriebene Einstellung in der smb.conf.

Überprüfen Sie dann das Protokoll und wenn es keine Fehler gibt, kennt es das in smb.conf angegebene Verzeichnis.

# less -r /var/log/samba/log.smbd

Wenn ein Pfadspezifikationsfehler angezeigt wird, z. B. "canonicalize_connect_path für Dienst-Samba fehlgeschlagen, Pfad / mnt / miura", stellen Sie sicher, dass das angegebene Verzeichnis vorhanden ist, überprüfen Sie den Eigentümer und die Berechtigungen mit dem Befehl ls -l und greifen Sie darauf zu. Es darf nicht sein.

Lassen Sie uns auf den Dateiserver zugreifen

Lassen Sie uns nun von einem Windows-Client aus auf den Linux-Dateiserver zugreifen. Geben Sie im Windows Explorer \\ [IP-Adresse des Linux-Dateiservers] ein.

Öffnen Sie zuerst die Firewall (Details werden später beschrieben).

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

Da die IP-Adresse des Servers 192.168.1.18 lautet, greifen Sie hier mit "\\ 192.168.1.18 \" zu. Wenn Sie den Server erfolgreich identifizieren können, sollte das Dialogfeld Windows-Sicherheitsauthentifizierungsfehler angezeigt werden. Conn-OK.png

Was ist, wenn ich keine Verbindung herstellen kann?

Conn-NG.png Wenn die Meldung angezeigt wird, dass Sie anstelle des anfänglichen Authentifizierungsfehlerbildschirms keine Verbindung herstellen können, können Sie "firewall-cmd --list-all" in den Firewalld-Einstellungen (später beschrieben) verwenden und "samba" ist für den Dienst zulässig. Wenn es nicht vorhanden ist oder wenn Sie überprüfen, ob der Samba-Dienst unter Linux mit "systemctl status smb (d)" gestartet wurde, wird möglicherweise ein Startfehler wie "Failed" angezeigt.

Melden wir uns an

Wenn das Dialogfeld Authentifizierungsfehler angezeigt wird und Sie eine Verbindung zum Dateiserver herstellen können, melden Sie sich als der in Samba mit pdbedit registrierte Benutzer an. Im Fall von Shonan im Beispiel hier geben Sie Shonan als Benutzernamen und Passwort ** ein, wenn Sie bei pdbedit registriert sind ** (** unterscheiden Sie es vom Passwort des Linux-Benutzers **) und melden Sie sich an. Machen. Conn-logged-on.png Wenn dann der in diesem Beispiel als Dateibereichsname definierte "kazumi75kitty" angezeigt wird, bedeutet dies, dass der durch den in smb.conf erstellten Abschnitt erstellte Dateibereich normal erkannt wird.

Lassen Sie uns die Datei setzen

Versuchen Sie, eine Datei auf verschiedene Arten zu platzieren, sobald der Dateibereich erkannt wurde. FileSave-OK.png Stellen Sie außerdem sicher, dass Sie die platzierte Datei unter Windows bearbeiten und speichern können.

Wenn die Datei nicht platziert werden kann oder schreibgeschützt ist

Auf der Linux-Serverseite hat das als Dateiserver verwendete Verzeichnis einen anderen Eigentümer oder andere Berechtigungen, die nicht gelesen oder geschrieben werden können. Bestätigen Sie dies daher erneut mit dem Befehl ls -l.

Grundlegende Sicherheit

Grundlegende Sicherheit in den Samba-Einstellungen

Grundsätzlich ist es eine wichtige Voraussetzung, dass der Zugang zu Außenstehenden nicht gestattet ist. Als angewandte Sicherheit gibt es auch eine Methode, die eine Domäne oder Active Directory verwendet, die hier jedoch weggelassen wird. Beschränken Sie das Zulassen von Hosts in ** smb.conf, indem Sie nur den Zugriff auf das Netzwerk zulassen, zu dem Sie gehören, vorausgesetzt, Sie greifen nicht über die Netzwerke von Außenstehenden zu. ** ** **

In diesem Beispiel wird der Dateiserver unter 192.168.1.0/24 verwendet. Was passiert jedoch, wenn 192.168.1 von Hosts in smb.conf nicht zugelassen wird? ??

Erlauben Sie beispielsweise nicht 192.168.1., Sondern 192.168.2., Wie unten gezeigt. ~~hosts allow = 192.168.1. 127.0.0.1~~ hosts allow = 192.168.2. 127.0.0.1 Smb-allowdomainchg-1.png

Wenn Sie also im Explorer auf "\\ 192.168.1.18 \" zugreifen, sollte der folgende Fehler angezeigt werden: Smb-allowdomainchg-2.png Und das Protokoll /var/log/samba/log.smbd zeigt, dass der Zugriff von 192.168.1.11 verweigert wird, wie unten gezeigt. Smb-allowdomainchg-3.png

Auf diese Weise konnten Sie die Netzwerkdomänen einschränken, die Samba verwenden kann.

Grundlegende Sicherheit mit Firewalld

Ich glaube, ich habe die folgende Firewall früher mit "firewall-cmd" geöffnet.

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

Dies bedeutet, dass die Linux-Firewall mit dem Namen firewalld immer den Empfang des Dienstes Samba zulässt und keine anderen als die angegebenen Dienste zulässt. Um zu überprüfen, welche Dienste zulässig sind, geben Sie den folgenden Befehl ein und prüfen Sie, ob die zulässigen Dienste unter Dienste angezeigt werden: wie "Dienste: dhcpv6-client ssh samba".

# firewall-cmd --list-all

Darüber hinaus ist es möglich, umfangreiche Regeln zu verwenden, um den von Samba verwendeten Port auf eine bestimmte IP-Adresse oder ein bestimmtes Netzwerk zuzulassen. Dies wird hier jedoch weggelassen.

Verweise

  1. Konstruktionsanleitung für Netzwerkserver, erstellt mit dem CentOS7-Hidekazu-System
  2. Informationsverarbeitungstechnik - Betriebssystem und Internetmechanismus - [von Hiroyo Kinoshita] Corona

Recommended Posts

Grundlagen zum Erstellen eines internen Servers für Linux (CentOS 8.1, openSUSE 15.1, Ubuntu 20.04)! Dateiserver mit Samba
Aufbau eines Linux-Dateiservers (Ubuntu & Samba)
[Linux] WSL2 Erstellen Sie mit Ubuntu 20.04 eine Umgebung für laravel7
Überprüfen Sie den Speicherstatus des Servers mit dem Befehl Linux free
Überprüfen Sie den Betriebsstatus des Servers mit dem Linux-Befehl top
Überprüfen Sie den Speicherschutz von Linux Kern mit Code für ARM
[Muss für Anfänger] Grundlagen von Linux
Bearbeiten Sie die Datei des SSH-Verbindungszielservers auf dem Server mit VS-Code
Überprüfen Sie die Existenz der Datei mit Python
Die dritte Nacht der Runde mit für
So aktualisieren Sie die Software beim Erstellen von Linux (CentOS) mit Vagrant ~ Am Beispiel eines Upgrades von Python 2.7 auf Python 3.6 ~
[Linux] Lernen Sie die Grundlagen von Shell-Befehlen
Die zweite Nacht der Runde mit für
[Python3] Grundlegendes zu Dateivorgängen
Erstellen einer Anaconda-Umgebung für Python mit pyenv
Passen Sie die Dateiberechtigungen mit dem Linux-Befehl chmod an
Verschiedene Befehle zum Erstellen einer Umgebung mit Apache
Konvertieren Sie den Zeichencode der Datei mit Python3
Versuchen Sie, mit VisualStudioCode eine Umgebung für MayaPython zu erstellen
Erstellen Sie einen API-Server, um den Betrieb der Front-Implementierung mit Python3 und Flask zu überprüfen
Wir haben eine interne Lernsitzung zum Thema Mob-Programmierung mit dem Thema FizzBuzz abgehalten.