GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erstellen Sie einen SFTP-Benutzer für einen Webserver Document Root

SFTP (SSH/Secure File Transfer Protocol) ist ein Netzwerkübertragungsstandard, der zum Übertragen, Zugreifen und Verwalten von Dateien über ein Remotenetzwerk verwendet wird. Es enthält SSH (Secure Shell), was es viel sicherer macht als das FTP-Protokoll.

Dateien werden über einen einzigen Steuerkanal in SFTP übertragen. Es erfordert eine Authentifizierung und wird auf Port 22 ausgeführt. In SFTP bietet die SSH-Shell eine Verschlüsselung, die hilft, Benutzernamen, Passwörter und andere persönliche Daten zu schützen, die über SFTP übertragen werden.

In dieser Anleitung erfahren Sie, wie Sie SFTP-Benutzer für das Dokumentenstammverzeichnis des Webservers erstellen.

Schritt 1 – Installieren von SSH (Secure Shell)

SFTP ist aufgrund der Verschlüsselung, die SSH für die Daten bereitstellt, während sie über das Netzwerk übertragen werden, ein sehr sicheres Dateiübertragungsprotokoll. SSH wird standardmäßig hauptsächlich auf Linux-Distributionen installiert, aber wenn es nicht auf Ihrem System vorinstalliert ist, können Sie es mit dem unten angegebenen Befehl installieren:

sudo apt install ssh 

Wenn bereits installiert, aktualisiert der Befehl OpenSSH-Pakete.

Schritt 2 – Konfigurieren von SSH für die Verwendung des SFTP-Servercodes

Öffnen Sie nun die Konfigurationsdatei von SSH in einem Texteditor, um sie für den SFTP-Servercode zu ändern. Hier verwenden wir den Nano-Editor, um die Konfigurationsdatei zu bearbeiten.

sudo nano /etc/ssh/sshd_config 

Suchen Sie die Zeile, die mit „Subsystem sftp“ beginnt.

Kommentieren Sie die Zeile, indem Sie # am Anfang der Zeile hinzufügen, und schreiben Sie nach dieser Zeile die folgende Zeile, wie im folgenden Screenshot gezeigt:

Subsystem sftp internal-sftp

Die SSHD verwendet den SFTP-Servercode, anstatt den SFTP-Server auszuführen, indem die obige Zeile geändert wird.

Nachdem Sie die Konfigurationsdatei geändert haben, speichern Sie die Datei und verlassen Sie sie mit den Tastenkombinationen STRG+S und STRG+X.

Nach Änderungen müssen wir den SSHD-Daemon neu starten, damit die Änderungen funktionieren.

sudo systemctl restart sshd 

Schritt 3 – Erstellen eines Benutzers (SFTP-Benutzer)

Es empfiehlt sich, einen neuen Benutzer zu erstellen, der nur SFTP-Zugriff auf den Dokumentenstamm hat. Es wird nicht empfohlen, einen Benutzer mit Sudo-Berechtigungen zum Dokumentenstammverzeichnis des Webservers hinzuzufügen. Erstellen Sie einen neuen Benutzer mit dem Befehl adduser:

sudo adduser sftpuser 

Das Terminal fragt nach ein paar Dingen wie dem Festlegen des Passworts und Benutzerinformationen. Es wird auch nach einigen anderen Details gefragt, also lassen Sie sie entweder leer oder geben Sie die richtigen Informationen ein.

Ein neuer Benutzer mit dem Namen sftpuser wurde erfolgreich erstellt.

Schritt 4 – Match User Direktive in der SSH-Konfigurationsdatei erstellen

Jetzt beschränken wir diesen Benutzer auf das Dokumentenstammverzeichnis und deaktivieren den Zugriff des Benutzers auf SSH, sodass sich der Benutzer über SFTP anmeldet.

Um den Zugriff des Benutzers einzuschränken, öffnen Sie die Konfigurationsdatei von SSH in einem beliebigen Texteditor:

sudo nano /etc/ssh/sshd_config 

Gehen Sie nun an das Ende der Datei und fügen Sie in der Konfigurationsdatei „sshd_config“ folgenden Inhalt hinzu:

Match User sftpuser
        ForceCommand internal-sftp 
        ChrootDirectory /var/www/
        PasswordAuthentication yes
        X11Forwarding no 
        AllowTcpForwarding no 

Stellen Sie sicher, dass Sie den Benutzernamen „sftpuser“ durch den von Ihnen festgelegten Benutzernamen ersetzen.

Sobald der obige Inhalt der SSH-Konfigurationsdatei hinzugefügt wurde, speichern und beenden Sie sie mit den Tastenkombinationen STRG+S und STRG+X.

Um die Syntax zu überprüfen und zu überprüfen, ob alles gut gelaufen ist, können Sie den Befehl ausführen:

sudo sshd -t 

Wenn kein Fehler aufgetreten ist, könnten wir den SSH-Dienst neu laden, damit die Änderungen funktionieren.

sudo systemctl restart sshd 

Schritt 5 – SFTP-Benutzer zur www-data-Gruppe hinzufügen

Jetzt fügen wir den Benutzer der www-data-Gruppe hinzu, indem wir den folgenden Befehl ausführen:

sudo usermod -a -G www-data sftpuser 

Bei einer erfolgreichen Ausführung wird keine Ausgabe angezeigt.

Schritt 6 – Festlegen der Berechtigung für das Stammverzeichnis des Dokuments

Bitte befolgen Sie die nachfolgenden Anweisungen sehr sorgfältig, da SFTP sehr streng in Bezug auf Berechtigungen für das Chroot-Verzeichnis ist.

  1. Wir beginnen mit der Überprüfung der aktuellen Berechtigungen und Besitzverhältnisse von var:
    sudo ls -ld /var/ 
    
  2. Die Berechtigungen sollten 755 sein und der Eigentümer sollte standardmäßig root sein. Wenn nicht, führen Sie den unten angegebenen Befehl aus, um die richtigen Berechtigungen festzulegen:
    sudo chmod 755 /var/ 
    
  3. Verwenden Sie nun diesen Befehl, um den richtigen Besitz festzulegen:
    sudo chown root:root /var/ 
    
  4. Wenden Sie in ähnlicher Weise dieselben Berechtigungen auf die Chroot an:

    sudo chmod 755 /var/www/ 
    
  5. Da wir „/var/www/“ auf das Chroot-Verzeichnis gesetzt haben. Stellen Sie nun den richtigen Besitz des Chroot-Verzeichnisses ein:
    sudo chown root:root /var/www/ 
    
  6. Um einer Gruppe zu erlauben, in das Stammverzeichnis des Dokuments zu schreiben, setzen Sie ihre Berechtigung auf 755:
    sudo chmod 755 /var/www/html/ 
    
  7. Um der www-data-Gruppe den Besitz des Dokumentstammverzeichnisses „/var/www/html“ und seiner weiteren Verzeichnisse und Dateien zu erteilen, verwenden Sie den unten angegebenen Befehl:
    sudo chown -R www-data:www-data /var/www/html* 
    
  8. Geben Sie nun 755-Berechtigungen für den Inhalt, der im Dokumentenstammverzeichnis „/var/www/html“ abgelegt ist, mit dem folgenden Befehl:
    sudo find /var/www/html/ -type d -exec chmod 775 {} \; 
    
  9. Der obige Befehl gewährt dem SFTP-Benutzer Lese-, Schreib- und Ausführungsberechtigungen für die Verzeichnisse.

    Wir müssen auch allen Dateien, die im Dokumentenstamm vorhanden sind, 664-Berechtigungen erteilen, damit der Eigentümer und die SFTP-Benutzergruppe die Dateien lesen und schreiben können:

    sudo find /var/www/html/ -type f -exec chmod 664 {} \; 
    
  10. Stellen Sie nun im letzten Schritt sicher, dass alle neuen Dateien und Verzeichnisse die Gruppe www-data erhalten, die der neu erstellte SFTP-Benutzer erstellt:
    sudo find /var/www/html -type d -exec chmod g+s {} \; 
    

Herzliche Glückwünsche! Ihr neuer SFTP-Benutzer wurde erstellt und zum Dokumentenstamm des Webservers hinzugefügt. Sie können sich jetzt bei SFTP anmelden.

Schlussfolgerung

In dieser Anleitung haben wir gelernt, wie SSH für die Verwendung des SFTP-Servercodes installiert und konfiguriert wird. Danach haben wir einen neuen Benutzer erstellt, ihn auf Document Root beschränkt und seinen SSH-Zugriff deaktiviert. Dann haben wir den Benutzer zum Dokumentenstamm des Webservers hinzugefügt, damit der Benutzer Dateien im Dokumentenstamm lesen, schreiben und ausführen kann.


Linux
  1. So richten Sie einen SFTP-Server unter CentOS ein

  2. So richten Sie Sudo-Berechtigungen für Benutzer in Linux ein

  3. So deaktivieren Sie die Root-Benutzeranmeldung über SSH

  4. Centos – Wie erstelle ich einen Sftp-Benutzer in Centos?

  5. Deaktivieren Sie die direkte Root-Anmeldung auf Ihrem Server

So erstellen Sie einen persönlichen Dateiserver mit SSH unter Linux

So setzen Sie das MySQL-Root-Benutzerpasswort unter Linux zurück

Wie deaktiviere ich die SSH-Anmeldung für den Root-Benutzer in Linux?

Wie aktiviere ich den Root-Benutzer in Ubuntu Server?

So erstellen Sie einen Domänencontroller unter Linux für AD

Wie erstellt man einen SSH-Schlüssel für einen anderen Benutzer?