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

Anleitung zum Einrichten eines SFTP-Servers unter Linux

Was ist SFTP?

SFTP steht für SSH File Transfer Protocol. Du hast es richtig erraten. Es ist eine Version von FTP, die zusätzlich SSH verwendet. Es ermöglicht Benutzern das Hoch- und Herunterladen von Dateien zu und von einem Linux-Server über eine verschlüsselte Verbindung. FTP macht dasselbe ohne Verschlüsselung und deshalb wird SFTP heutzutage gegenüber FTP bevorzugt.

Sehen wir uns an, wie Sie einen SFTP-Server auf einem Linux-System einrichten können.

Einrichten des SFTP-Servers unter Linux

Ich habe Ubuntu in diesem Tutorial verwendet. Die Installationsbefehle sind spezifisch für Ubuntu und Debian, aber die restlichen Schritte können in jeder anderen Linux-Distribution befolgt werden.

Um die Schritte auszuführen, benötigen Sie sudoer-Rechte. Wenn Sie also keine sudo-Rechte haben, wenden Sie sich an Ihren Systemadministrator. Wenn Sie derjenige sind, lesen Sie bitte über das Erstellen eines sudo-Benutzers in Ubuntu.

Die Einrichtung von SFTP ist sehr einfach. Bevor Sie dazu gehen, müssen Sie OpenSSH auf der Serverseite und das SSH-Paket auf der Clientseite installiert haben.

Ich habe die Einrichtung von SSH unter Ubuntu ausführlich in einem separaten Artikel besprochen, ich erwähne hier nur die wichtigen Schritte.

Um OpenSSH auf dem Server zu installieren, können Sie den folgenden Befehl verwenden:

sudo apt install openssh-server

Sie benötigen außerdem SSH auf dem System, von dem aus Sie auf den SFTP-Server zugreifen möchten.

sudo apt install ssh

Danach haben Sie alles bereit, um SFTP einzurichten. Es ist in drei Schritten erledigt und ich werde es Ihnen einen nach dem anderen zeigen.

Schritt 1:Gruppen, Benutzer, Verzeichnisse erstellen

Zur Verwendung von SFTP (oder jeden anderen Dienst im Allgemeinen) sicher ist, ist es am besten, Gruppen und Benutzer zu erstellen, um diesen Dienst und nur diesen Dienst zu verwenden. „Es ist am besten, einem bestimmten Unternehmen ein bestimmtes Recht zu geben“ .

Falls Sie SFTP-Zugriff und auch normalen Systemzugriff gewähren möchten, erstellen Sie Benutzer so, dass sie leicht nach Dienst identifiziert werden können. Wenn beispielsweise seeni Für den normalen Systemzugriff wird dann seenisftp verwendet kann für den SFTP-Zugriff verwendet werden. Die Verwendung dieser Methode ist für die Administration einfacher.

Lassen Sie uns eine Gruppe mit dem Namen „sftpg“ erstellen ” mit dem groupadd-Befehl:

sudo groupadd sftpg

Lassen Sie uns einen Benutzer namens „seenisftp“ erstellen und fügen Sie ihn der obigen Gruppe hinzu und geben Sie ihm ein Passwort.

sudo useradd -g sftpg seenisftp 
sudo passwd seenisftp

Im useradd-Befehl -g Option teilt der Gruppe mit, welcher Benutzer hinzugefügt werden soll. Sie können alle Benutzer in Linux auflisten und überprüfen, ob der neue Benutzer hinzugefügt wurde.

Nehmen wir an, Sie möchten das Verzeichnis /data/ verwenden als Root für sftp und /data/USERNAME für jeden Benutzer. Wenn sich Benutzer also über sftp anmelden, sollten sie sich in /data/USERNAME befinden als ihr Standardverzeichnis (genauso wie Sie sich in /home/USERNAME befinden Verzeichnis, wenn Sie sich über SSH beim Linux-System anmelden). Nehmen Sie außerdem an, dass sie Dateien aus diesem Verzeichnis lesen, aber nur auf Uploads hochladen können Verzeichnis.

Lassen Sie uns die Verzeichnisse erstellen und ihren Zugriff und Besitz wie folgt ändern (lesen Sie über Dateiberechtigungen in Linux, um mehr darüber zu erfahren).

sudo mkdir -p /data/seenisftp/upload
sudo chown -R root.sftpg /data/seenisftp
sudo chown -R seenisftp.sftpg /data/seenisftp/upload

Eine Sache, die verwirren könnte, ist, dem Root selbst den Besitz des Benutzerverzeichnisses zu geben. Dies ist für das Chrooting in SFTP obligatorisch. Stellen Sie also sicher, dass der Eigentümer von /data/USERNAME ist root .

Ab sofort haben wir den Benutzer namens seenisftp mit der Gruppe sftpg und mit Zugriffsberechtigungen für /data/seenisftp .

Schritt 2:Konfigurieren Sie sshd_config

Als nächstes müssen Sie den ssh-Server so konfigurieren, dass er/sie jedes Mal, wenn sich ein Benutzer, der zur sftpg-Gruppe gehört, anmeldet, zu sftp gelangt statt der normalen Shell kommt man über ssh. Hängen Sie das folgende Snippet an /etc/ssh/sshd_config an falls noch nicht vorhanden.

Match Group sftpg
        ChrootDirectory /data/%u
        ForceCommand internal-sftp

Im obigen Snippet ermöglicht ChrootDirectory, dass das angegebene Verzeichnis als Stammknoten („/“ Verzeichnis ) im Verzeichnisbaum erstellt wird. Der angemeldete Benutzer kann oberhalb dieses Verzeichnisses nichts sehen. Dadurch wird verhindert, dass der aktuelle Benutzer über sftp auf die Dateien anderer Benutzer zugreift . %u ist der Escape-Code zum Füllen mit dem aktuellen Benutzernamen zum Zeitpunkt der Anmeldung. Wenn seenisftp Anmeldungen über sftp , er befindet sich in /data/seenisftp als sein Stammverzeichnis. Er wird darüber nichts sehen können.

Schritt 3:Dienst neu starten

Um Änderungen vorzunehmen, haben wir sshd_config vorgenommen live, starten Sie den Dienst wie folgt neu.

sudo systemctl restart sshd

Zugriff auf SFTP über die Linux-Befehlszeile

Sie können sich bei SFTP anmelden, wie Sie es normalerweise mit SSH tun würden.

sftp [email protected]

Beispiele für SFTP-Befehle

SFTP-Befehle haben normalerweise das folgende Format.

COMMAND [SOURCE] [DESTINATION]

Für jeden Befehl können Argumente entweder lokale Systempfade oder entfernte Systempfade sein. Es gibt keinen spezifischen sichtbaren Unterschied zwischen ihnen. Sie können den Pfad wie gewohnt angeben, nachdem Sie berücksichtigt haben, ob das Argument lokal oder entfernt ist.

GET – Herunterladen von Inhalten vom Remote-Server auf das lokale System. Der folgende Befehl lädt die Remote-Datei poster.img herunter zu ~/Pictures des lokalen Systems Verzeichnis.

GET poster.img ~/Pictures

PUT – Inhalte vom lokalen System auf das entfernte System hochladen. Der folgende Befehl lädt ~/Pictures/poster2.jpg hoch in meine Uploads Verzeichnis.

PUT ~/Pictures/poster2.jpg uploads/

RM – Zum Entfernen der Dateien im Remote-System. Dies ist rm sehr ähnlich Befehl. Sie können den folgenden Befehl sehen, der ein Bild unter uploads/poster3.jpg löscht

RM uploads/poster3.jpg

Die oben genannten Befehle sind sehr einfach und reichen aus, um den FTP/SFTP-Server zu erkunden. Wenn Sie mehr wissen möchten, verwenden Sie entweder help Befehl oder verwenden Sie diese Ressource.

Ich hoffe, dieser Artikel hat Ihnen beim Einrichten des SFTP-Servers unter Linux geholfen.

Teilen Sie uns in Kommentaren mit, wie Ihr SFTP-Dateisystem eingerichtet ist. Ist es wie in diesem Artikel erwähnt oder ein gepooltes Verzeichnis oder etwas anderes?

Wenn Sie diesen Artikel nützlich fanden, teilen Sie ihn mit Ihren Freunden. Wenn Sie Vorschläge haben, können Sie diese gerne unten hinterlassen.


Linux
  1. Eine Anleitung zum Linux-Terminal für Anfänger

  2. 7 Schritte zur Sicherung Ihres Linux-Servers

  3. Was ist Linux? Ein Leitfaden für nicht-technische Benutzer

  4. So installieren Sie Borgmatic für einfache Linux-Server-Backups

  5. 11 Beste CAD-Software für Linux

10 nützliche Sudoer-Konfigurationen zum Einstellen von „sudo“ in Linux

So konfigurieren Sie den Chroot SFTP-Server unter Linux

Einrichten einer LVM-Partition auf einem Linux-Server

Kurzanleitung zu Ansible für Linux-Systemadministratoren

Graylog-Überwachungsserver unter Ubuntu Linux für Überwachungsserver/-dienste

Zeitzoneneinstellung in Linux