So installierst du sFTPGo auf Rocky Linux
sFTPGo ist ein hochgradig konfigurierbarer SFTP-Server mit zusätzlichen sicheren Protokollen wie HTTP/S, FTP/S und WebDAV-Unterstützung. Er ermöglicht es dir, FTP-Server mit verschiedenen Backends zu erstellen, z. B. mit lokalen Dateisystemen und Speicheranbietern wie Amazon S3, Google Storage Engine und Azure Blog Storage.
FTP bietet eine sichere Möglichkeit, Dateien über verschiedene Protokolle zu senden und zu empfangen. Es unterstützt virtuelle Ordner, unterstützt Datenbank-Backends wie SQLite, MariaDB und PostgreSQL, bietet eine REST-API, unterstützt Zwei-Faktor-Authentifizierungen und vieles mehr.
In diesem Lernprogramm werden wir einen sicheren FTP-Server mit der modernen FTP-Server-Software sFTPGo auf einem Rocky-Linux-Server einrichten. Außerdem lernst du, wie du Webdav auf sFTPGo aktivierst.
Voraussetzungen
Du brauchst die folgenden Voraussetzungen, um diesen Lehrgang zu absolvieren:
- Ein Rocky Linux Server – Du kannst Rocky Linux v8 oder v9 verwenden.
- Ein Nicht-Root-Benutzer mit aktivierten sudo/root-Rechten.
- Einen Domainnamen, der auf die IP-Adresse des Servers zeigt – insbesondere für die Produktion.
Installation von sFTPGo
sFTPGo ist eine moderne und voll ausgestattete FTP-Server-Software, die mehrere Sicherheitsprotokolle wie FTP/S, Webdav und HTTP/S unterstützt. Außerdem unterstützt es mehrere Backend-Datenbanken, darunter PostgreSQL, MySQL und SQLite (Standard).
sFTPGo kann auch mit mehreren Backends integriert werden, um Dateien für die Nutzer bereitzustellen, darunter lokale Dateisysteme (die verschlüsselt werden können), Cloud-Speicherdienste wie Google Cloud Storage, Azure Blob Storage und Amazon S3.
Es gibt mehrere Möglichkeiten, sFTPGo auf dem Rocky Linux Server zu installieren. Du kannst diejenige wählen, die für deinen Einsatz geeignet ist.
Installation über DNF
Das sFTPGo stellt sein Repository für mehrere Linux-Distributionen zur Verfügung, darunter Debian, Ubuntu, CentOS/RockyLinux/AlmaLinux.
Unter Rocky Linux kannst du sFTPGo über den DNF-Paketmanager installieren.
Führe den folgenden Befehl aus, um das sFTPGo-Repository zu deinem Rocky Linux-Server hinzuzufügen.
ARCH=`uname -m` curl -sS https://ftp.osuosl.org/pub/sftpgo/yum/${ARCH}/sftpgo.repo | sudo tee /etc/yum.repos.d/sftpgo.repo
Aktualisiere nun dein Paket-Repository mit dem unten stehenden dnf-Befehl.
sudo dnf update
Sobald das Paketupdate installiert ist, führe den folgenden dnf-Befehl aus, um das sFTPGo-Paket zu installieren.
sudo dnf install sftpgo
Wenn du aufgefordert wirst, die Installation zu bestätigen, gib Y ein und drücke ENTER, um fortzufahren.
Wenn du außerdem die Aufforderung erhältst, die GPG-Schlüssel des sFTPGo-Repositorys zu akzeptieren, gibst du erneut Y ein.
Nachdem sFTPGo installiert ist, führe den folgenden Befehl aus, um den Dienst„sftpgo“ zu starten und zu aktivieren. Dadurch wird der sFTPGo-Dienst gestartet und kann beim Systemstart automatisch ausgeführt werden.
sudo systemctl start sftpgo sudo systemctl enable sftpgo
Zum Schluss führst du den folgenden systemctl-Befehl aus, um den sFTPGo-Dienst zu überprüfen. Wenn deine Installation erfolgreich war, siehst du, dass der FTP-Dienst läuft.
sudo systemctl status sftpgo
Installation über RPM
Eine andere Möglichkeit, sFTPGo auf dem Rocky Linux Server zu installieren, ist, das RPM-Paket von sFTPGo aus dem GitHub-Repository herunterzuladen und es mit dem RPM-Befehl zu installieren.
Das sFTPGo bietet Binärpakete .deb für Debian/Ubuntu-Nutzer und das Binärpaket .rpm für CentOS/RockyLinux-Nutzer.
Lade die sFTPGo rpm-Datei mit dem wget-Befehl unten herunter. Die Variable „VER“ steht für die neueste Version des sFTPGo-Pakets.
Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste Version von sFTPGo v2.3.5. Du solltest also die neue Datei„sftpgo-2.3.5-1.x86_64.rpm“ in deinem aktuellen Arbeitsverzeichnis sehen.
VER=$(curl -s https://api.github.com/repos/drakkan/sftpgo/releases/latest|grep tag_name | cut -d '"' -f 4 |sed 's/v//g') wget https://github.com/drakkan/sftpgo/releases/download/v$VER/sftpgo-$VER-1.x86_64.rpm
Nachdem du sFTPGo heruntergeladen hast, führe den folgenden Befehl aus, um die RPM-Datei „sftpgo-2.3.5-1.x86_64.rpm“ zu installieren.
sudo rpm -Uvh sftpgo-2.3.5-1.x86_64.rpm
Wenn die Installation abgeschlossen ist, siehst du eine Ausgabe wie die folgende:
Als Nächstes führst du den folgenden systemctl-Befehl aus, um den sFTPGo-Dienst zu starten und zu aktivieren. Der Dienst sollte laufen und wird auch automatisch beim Systemstart ausgeführt.
sudo systemctl enable sftpgo sudo systemctl start sftpdgo
Überprüfe nun den sFTPGo-Dienst mit dem folgenden systemcyl-Befehl. Du solltest sehen, dass der sFTPGo-Dienst auf deinem Rocky Linux-System läuft.
sudo systemctl status sftpdgo
Firewalld einrichten
sFTPGo ist eine FTP-Server-Software, die mit mehreren Protokollen verwendet werden kann. Diese Flexibilität ermöglicht es den Kunden, ihre bevorzugten Anwendungen für den Zugriff auf ihre Dateien zu nutzen.
Die Kunden können über FTP-Clients wie FileZilla, über den Webbrowser mit dem sicheren HTTP/HTTPS-Protokoll oder über ihren Dateimanager mit dem Webdav-Protokoll auf ihre Dateien zugreifen.
Im Folgenden sind einige sFTPGo-Ports aufgeführt, die du für den Zugriff von Clients und Administratoren öffnen musst.
Protocol Port Access via ----------------------------------- TCP 8080 HTTP/HTTPS TCP 2022 SFTP TCP 8090 Webdav
Führe die folgenden Firewall-cmd-Befehle aus, um sFTPGo-Ports zur Firewall hinzuzufügen.
sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --permanent --add-port=8090/tcp sudo firewall-cmd --permanent --add-port=2022/tcp
Lade nun die Firewall-Regeln mit dem unten stehenden Befehl neu.
sudo firewall-cmd --reload
Überprüfe abschließend die sFTPGo-Ports und stelle sicher, dass die Ports hinzugefügt wurden.
sudo firewall-cmd --list-ports
Du solltest sehen, dass die Ports für sFTPGo hinzugefügt wurden.
Einrichten von sFTPGo
Nachdem du sFTPgo installiert und Firewalld konfiguriert hast, musst du die sFTPGo-Installation einrichten. Dazu gehört die Aktivierung von Protokollen wie HTTP/HTTPS, SFTP und WebDAV. Außerdem wird sFTPGo über SSL-Zertifikate gesichert.
Bevor du sFTPGo einrichtest, solltest du sicherstellen, dass du die SSL/TLS-Zertifikate bereit hast. Du kannst kostenloses SSL von Letsencrypt verwenden.
Bearbeite die Standardkonfigurationsdatei von sFTPGo „/etc/sftpgo/sftpgo.json“ mit dem Editor nano.
sudo nano /etc/sftpgo/sftpgo.json
SFTP ist standardmäßig auf dem sFTPGo aktiviert, der über den TCP-Port 2022 läuft.
Gehe zur Option„webdavd“ und gib den Port„8090“ ein, aktiviere HTTP und gib dann den Pfad für SSL-Zertifikate ein. Du kannst auch die IP-Adresse für das webdavd-Protokoll durch deine interne IP-Adresse ersetzen.
"webdavd": { "bindings": [ { "port": 8090, "address": "", "enable_https": true, "certificate_file": "/etc/letsencryt/live/sftp.hwdomain.io/fullchain.pem", "certificate_key_file": "/etc/letsencryt/live/sftp.hwdomain.io/privkey.pem", "min_tls_version": 12, "client_auth_type": 0, "tls_cipher_suites": [], "prefix": "", "proxy_allowed": [], "client_ip_proxy_header": "", "client_ip_header_depth": 0 } ],
Als Nächstes wählst du die Option„httpd„, aktivierst die sichere HTTPS-Unterstützung und gibst dann den Pfad der SSL-Zertifikate ein. Du kannst auch die IP-Adresse der„httpd„-Option angeben, wenn du mehrere IP-Adressen hast.
"httpd": { "bindings": [ { "port": 8080, "address": "", "enable_web_admin": true, "enable_web_client": true, "enabled_login_methods": 0, "enable_https": true, "certificate_file": "/etc/letsencryt/live/sftp.hwdomain.io/fullchain.pem", "certificate_key_file": "/etc/letsencryt/live/sftp.hwdomain.io/privkey.pem", "min_tls_version": 12, "client_auth_type": 0, "tls_cipher_suites": [], "proxy_allowed": [], "client_ip_proxy_header": "", "client_ip_header_depth": 0, "hide_login_url": 0, "render_openapi": true, "web_client_integrations": [],
Speichere die Datei und beende deinen Editor, wenn du fertig bist.
Starten Sie abschließend den sFTPGo-Dienst neu, um die Änderungen mit dem unten stehenden systemctl-Befehl zu übernehmen.
sudo systemctl restart sftpgo
Jetzt ist sFTPGo auf dem Rocky-Linux-Server eingerichtet und läuft. Außerdem hast du mehrere Protokolle für Clients aktiviert, darunter SFTP (standardmäßig aktiviert), WebDAV und httpd. Alle diese Protokolle sind außerdem durch SSL-Zertifikate gesichert.
sFTPGo Benutzer einrichten
Nachdem du die Installation von sFTPGo abgeschlossen hast, musst du den Admin-Benutzer über das „httpd“-Protokoll einrichten, das über den Standardport 8080 läuft. Außerdem musst du über das Administrations-Dashboard einen neuen Benutzer in sFTPGo anlegen.
Öffne den Webbrowser und rufe die URL-Domain deiner sFTPGo-Installation auf (z.B.: https://sftp.hwdomain.io „8080/).
Auf dem ersten Bildschirm wirst du aufgefordert, einen neuen Admin-Benutzer für sFTPGo anzulegen. Gib die Daten admin user und password ein und klicke dann auf„Create admin„.
Jetzt solltest du das Administrations-Dashboard von sFTPGo sehen.
Als Nächstes erstellst du eine neue Gruppe für deine sFTPGo-Nutzer.
Klicke auf das Menü„Gruppen“ auf der linken Seite, gib den Namen und die Beschreibung der neuen Gruppe ein und klicke dann auf„Absenden„. In diesem Beispiel erstellst du eine neue Gruppe mit dem Namen„Manager„. Außerdem kannst du zusätzliche Konfigurationen wie ACLs (Access Control Lists) hinzufügen und für jede Gruppe ein bestimmtes Festplattenkontingent und eine bestimmte Bandbreite einrichten.
Nachdem die Gruppe erstellt wurde, klicke auf das Menü„Benutzer“ auf der linken Seite, um einen neuen Benutzer zu erstellen.
Gib den Benutzernamen, das Passwort und die Gruppe ein und klicke dann auf„Absenden„, um fortzufahren. In diesem Beispiel erstellst du einen neuen Benutzer „alice“ mit der primären Gruppe„Manager„.
Jetzt solltest du die Liste der Benutzer auf dem sFTPGo Administrations-Dashboard sehen.
Jetzt hast du einen sFTPGo-Benutzer erstellt. Als Nächstes erfährst du, wie Benutzer über verschiedene Clients auf sFTPGo zugreifen oder Dateien hochladen können. Dazu gehören der sFTPGo WebClient (über httpd), FileZilla (über SFTP) oder ein Dateimanager (über Webdav).
Verbinden über SFTP und FileZilla
Im ersten Beispiel erfährst du, wie du dich als Client über das FileZilla- und SFTP-Protokoll mit dem sFTPGo-Server verbinden kannst. Bevor du beginnst, stelle sicher, dass der FTP-Client FileZilla auf deinem lokalen Computer installiert ist.
Öffne nun die FileZilla-Anwendung und klicke auf das Menü„Datei“ und wähle„Site Manager“ – oder du drückst einfach„Strg+S„.
Klicke auf„Neue Website“ und gib Benutzer, Passwort, die IP-Adresse oder den Domainnamen des SFTP-Servers und den Port ein.
- Protokoll: SFTP – SSH File Transfer Protocol
- Host: sftp.hwdomain.io
- Anschluss: 2022
- Anmeldetyp: Normal
- Benutzer: alice
- Passwort: DeinPasswort
Klicke auf„Verbinden„, um zu bestätigen und dich mit dem SFTP-Server zu verbinden.
Jetzt wirst du aufgefordert, das Zertifikat deines SFTP-Servers zu bestätigen. Klicke zur Bestätigung auf„OK„.
Nachdem du dich über das SFTP-Protokoll verbunden hast, kannst du versuchen, die Datei auf deinen sFTPGo-Server hochzuladen. Das folgende Beispiel zeigt, dass die ISO-Datei über den FileZilla-Client auf den sFTPGo-Server hochgeladen wird.
Zugriff über den sFTPGo WebClient
Standardmäßig bietet sFTPGo den Clients den Zugang über den WebClient, der auf dem„httpd„-Port 8080 läuft. Mit dem sFTPGo WebClient kannst du deine Dateien hochladen und verwalten, eine zusätzliche Zwei-Faktor-Authentifizierung einrichten und Dateien zwischen Benutzern innerhalb des sFTPGo-Servers austauschen.
Öffne den Webbrowser und rufe den Domainnamen deiner sFTPGo-Installation mit dem httpd-Port„8080“ und dem Pfad wie folgt auf (z.B.: https://sftp.hwdomain.io:8080/web/client/login). Du solltest die Anmeldeseite für den Client-Zugang erhalten.
Gib den Benutzernamen„alice“ und das Passwort ein und klicke dann auf„Anmelden„.
Wenn der Benutzername und das Passwort korrekt sind, solltest du das sFTPGo Benutzer-Dashboard sehen. Außerdem kannst du die ISO-Datei sehen, die du gerade über FileZilla und SFTP hochgeladen hast.
Du kannst Dateien auch über den WebClient hochladen und eine zusätzliche Zwei-Faktor-Authentifizierung hinzufügen oder Dateien mit anderen Nutzern über den sFTPGo WebClient teilen.
Verbinden mit sFTPGo über Webdav
Um eine Verbindung über das WebDAV-Protokoll herzustellen, kannst du den Dateimanager deines Computers verwenden. Für Windows kannst du File Explored verwenden, für Linux-Nutzer Nautilus, Thunar oder Dolphin und für macOS-Nutzer den offiziellen Dateimanager.
Du kannst die WebDAV-Adresse des Dateimanagers verwenden, den du benutzt, z. B. „davs://sftp.hwdomain.io:8090/“. Das „davs“ ist die sichere Version des „dav“ Webdav-Protokolls.
Jetzt wirst du nach dem Benutzernamen und dem Passwort gefragt. Gib den Benutzer alice mit deinem Passwort ein und klicke dann auf„Verbinden„.
Sobald du verbunden bist, solltest du sehen, dass das Webdav-Protokoll zum Abschnitt Netzwerk hinzugefügt wurde. In diesem Beispiel siehst du die ISO-Datei, die über das SFTP-Protokoll und FileZilla hochgeladen wurde.
Fazit
In diesem Lernprogramm hast du einen modernen und sicheren FTP-Server mit sFTPGo auf einem Rocky Linux Server eingerichtet. Außerdem hast du sFTPGo mit mehreren Protokollen, SFTP, httpd und Webdav, konfiguriert und die sicheren Verbindungen aktiviert.
Am Ende dieses Tutorials hast du auch gelernt, wie du dich mit dem sFTPGo-Server über mehrere Client-Anwendungen verbinden kannst: mit FileZilla mit SFTP-Protokoll, mit dem sFTPGo WebClient mit sicheren HTTPS-Verbindungen und mit dem Dateimanager mit Webdav/s.