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

Richten Sie SFTP-Benutzer in Linux-basierten Systemen ein

Dieser Artikel zeigt Ihnen, wie Sie gesicherte SSH File Transfer Protocol (SFTP)-Benutzer erstellen, die in ihren Home-Verzeichnissen eingeschränkt oder eingesperrt sind.

WARNUNG :Versuchen Sie nicht, den Root-Benutzer einzusperren. Sperren Sie nur zusätzliche Benutzer, damit Sie den Root-Benutzer nicht daran hindern, Operationen korrekt auszuführen.

Bevor Sie beginnen, lesen Sie die folgenden Best Practices:

  • Das Home-Verzeichnis des SFTP-Benutzers muss root:root gehören . Andere Verzeichnisse können (und sollten) dem Benutzer gehören (und beschreibbar sein).

  • Es ist wichtig sicherzustellen, dass der Chroot-Benutzer Schreibzugriff auf das angegebene DocumentRoot hat.

  • Es ist wichtig, sich anzumelden und zu testen, ob der SFTP-Benutzer ordnungsgemäß funktioniert.

  • Es ist wichtig sicherzustellen, dass der hinzugefügte SFTP-Benutzer zur SFTP-Gruppe hinzugefügt wird.

  • Diese Anweisungen beziehen sich auf das Hinzufügen einer einzelnen Domain (SFTP-Benutzer), aber Sie könnten sie möglicherweise verwenden, um mehrere Domains zu verwalten.

Wichtig Hinweis:Die Schritte in diesem Artikel funktionieren nicht mit RHEL® 7 oder CentOS® 7. Wie bei jeder ordnungsgemäßen Chroot-Operation bietet diese Konfiguration keinen Schreibzugriff auf das Chroot-Verzeichnis. Nur Unterverzeichnisse des Chroot-Gefängnisses sind beschreibbar. Dies liegt an der Art und Weise, wie Root-Berechtigungen auf den übergeordneten Verzeichnissen interpretiert werden, in denen der SFTP-Benutzer enthalten ist.

Führen Sie die folgenden Schritte aus, um gesicherte SFTP-Benutzer zu erstellen, die in ihren Home-Verzeichnissen eingesperrt sind:

  1. Fügen Sie die SFTP-Gruppe hinzu, die Sie für den SFTP-Zugriff verwenden möchten, indem Sie den folgenden Befehl ausführen:

    groupadd sftponly
    
  2. Fügen Sie den SFTP-Benutzer hinzu, indem Sie den folgenden Befehl ausführen und dabei myuser ersetzen mit dem Benutzernamen:

    useradd -d /var/www/vhosts/domain.com -s /bin/false -G sftponly myuser
    
  3. Erstellen Sie ein Passwort für den Benutzer, indem Sie den folgenden Befehl ausführen und dabei myuser ersetzen mit dem Benutzernamen:

    passwd myuser
    
  4. Öffnen Sie die sshd_config Datei, die die SSH- und SFTP-Konfiguration enthält, indem Sie den folgenden Befehl ausführen:

    nano /etc/ssh/sshd_config
    
  5. Kommentieren Sie die folgende Zeile aus, indem Sie am Anfang ein Hash-Symbol (#) hinzufügen, wie im folgenden Beispiel gezeigt:

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  6. Fügen Sie die folgende Zeile direkt unter der gerade auskommentierten Zeile hinzu:

    Subsystem sftp internal-sftp
    
  7. Fügen Sie den folgenden Code am Ende der Datei hinzu:

    Match Group sftponly
         ChrootDirectory %h
         X11Forwarding no
         AllowTCPForwarding no
         ForceCommand internal-sftp
    
  8. Führen Sie sshd aus Befehl, um die Änderungen zu testen, und starten Sie dann den Dienst neu.

    Wichtig :Wenn dieser Schritt falsch ausgeführt wird, kann Ihre SSHD-Konfiguration beschädigt werden.

    sshd -t
    service sshd restart
    

Stellen Sie sicher, dass die Dateiberechtigungen im Dateisystem korrekt sind

Als Nächstes müssen Sie überprüfen, ob die Dateiberechtigungen im Dateisystem korrekt sind, damit das SFTP-Jail ordnungsgemäß funktioniert.

  1. Stellen Sie sicher, dass SFTPROOT Verzeichnis (das Home-Verzeichnis, das Sie beim Hinzufügen des SSH-Benutzers festgelegt haben) das Recht user:root group:root hat Berechtigungen, indem Sie den folgenden Befehl ausführen:

    chown root:root /var/www/vhosts/mywebsite.com/
    
  2. Um zu überprüfen, ob die SFTP-Anmeldung funktioniert, stellen Sie eine Verbindung zu SFTP her, indem Sie den folgenden Befehl ausführen und dabei myuser ersetzen mit dem von Ihnen ausgewählten Benutzer, wie im folgenden Beispiel gezeigt:

    sftp myuser@localhost
    myuser@localhost's password:
    Connected to localhost.
    
  3. Testen Sie die Verzeichnisliste, indem Sie den folgenden Befehl ausführen:

    sftp> ls -al
    

    Die Ausgabe sollte dem folgenden Beispiel ähneln:

    drwxr-xr-x    3 0        0            4096 Sep 28 08:09 .
    drwxr-xr-x    3 0        0            4096 Sep 28 08:09 ..
    drwxr-xr-x    2 5001     33           4096 Sep 28 08:52 html
    -rw-r--r--    1 0        0               0 Sep 28 08:09 test.php
    

    Hinweis :Verwenden Sie das cd Befehl, um zum HTML-Verzeichnis zu wechseln (das sich unter /var/www/vhosts/mywebsite.com/html befindet weil die Website „documentroot“ eine Ebene unter dem root des SSH-SFTP-Benutzers liegt Verzeichnis. Sie sollten dieses Setup wegen Ihrer www-data verwenden Benutzer (die Benutzer des Webservers) haben root user:group Berechtigungen für seine Dateien.

  4. Testen Sie die Fähigkeit zum Hochladen von Dateien, indem Sie die folgenden Befehle ausführen:

    sftp> cd html
    sftp> put test.php
    Uploading test.php to /html/test.php
    test.php                                                                                                                                                                                                                                        
    100%    12K     20.0KB/s   00:00
    
  5. Testen Sie die Möglichkeit, Dateien herunterzuladen, indem Sie den folgenden Befehl ausführen:

    sftp> get test.php
    Fetching /test.php to test.php
    
  6. Zeigen Sie das aktuelle Arbeitsverzeichnis an, indem Sie den folgenden Befehl ausführen:

    sftp> pwd
    
    Remote working directory: /html
    

    SFTP sieht nur die Dateien in /var/www/vhosts/mywebsite.com/ Verzeichnis und betrachtet dieses Verzeichnis als das Root-Verzeichnis ('/') der höchsten Ebene.

  7. Verwenden Sie die folgenden Schritte, um eine Verbindung zu SFTP herzustellen und Ihren SFTP-Client einzurichten:

    1. Installieren Sie Cyberduck®.
    2. Öffnen Sie die Cyberduck-Anwendung.
    3. Klicken Sie oben im Fenster auf das Symbol für Verbindung öffnen .
    4. Wählen Sie im Dropdown-Menü SFTP (SSH File Transfer Protocol) aus .
    5. Auf dem Server Geben Sie im Feld IP-Adresse (Internet Protocol) des Servers ein.
    6. Geben Sie den Benutzernamen und das Passwort ein, die Sie für die Verbindung mit SFTP verwenden.
    7. Klicken Sie auf Verbinden .

Wichtig :Testen Sie Ihre Website immer, nachdem Sie die Dateiberechtigungen geändert haben.


Linux
  1. Benutzer und Gruppen

  2. So richten Sie einen SFTP-Server auf Debian 11 Server ein

  3. So listen Sie Benutzer in CentOS 7 auf

  4. Wie lege ich Desktop-Standardeinstellungen für neue Benutzer fest?

  5. So richten Sie SSH-Schlüssel unter Debian ein

So fügen Sie Benutzer zu einer Gruppe in Linux hinzu

So stellen oder ändern Sie den Benutzeragenten mit Curl

So verwalten Sie Benutzer in Plesk

So listen Sie Benutzer unter Linux auf

So ändern oder setzen Sie das Benutzerkennwort in Linux

Webmin-Benutzer