Die Nutzung dieser Anleitung erfolgt selbstverständlich auf eigene Verantwortung. Wir übernehmen keinerlei Haftung.
Warum SFTP statt MinIO oder S3 wählen?
Es gibt mehrere Gründe, SFTP als Dateiserverlösung zu wählen statt MinIO / S3:
- Einfachere und übersichtlichere Einrichtung
- Einfacher zu aktualisieren als ein MinIO-Server
- Verwendet nur Port 22 (oder einen anderen zugewiesenen Port)
Warum sollten Sie sich für TransIP oder einen VPS-Anbieter entscheiden?
Hier sind einige Vorteile der Verwendung von TransIP oder eines VPS-Anbieters für Ihren SFTP-Server:
- Vorhandene Infrastruktur mit Backups
- Möglichkeit zur Verlinkung großer Speicher für erhöhte Speicherkapazität
- Einfache Upgrade-Optionen für zusätzlichen Speicherplatz. Vergessen Sie nicht, den neuen Speicherplatz in Linux zuzuweisen.
Andere Parteien wie NetCup verfügt über dedizierte Speicherserver. Wir haben sie nicht getestet, daher sind wir nicht sicher, ob sie skalierbar sind. Wir haben einen TransIP VPS zusammen mit einem Großer Speicherzusatz.
Einrichten eines SFTP-Servers ohne großen Speicher
Schritt 1: Einrichten eines TransIP-/VPS-Servers mit SSD-SFTP-Gruppe
Wählen Sie TransIP als Ihren Serveranbieter und richten Sie eine SSD-SFTP-Gruppe ein:
sudo groupadd sftp
Schritt 2: SFTP-Server unter Ubuntu konfigurieren
Folgen Sie den Anweisungen unter https://linuxhint.com/setup-sftp-server-ubuntu/ um den SFTP-Server zu konfigurieren.
sudo nano /etc/ssh/sshd_config
Fügen Sie die folgenden Zeilen hinzu:
Match-Gruppe sftp ChrootDirectory /home X11Forwarding nein AllowTcpForwarding nein ForceCommand internal-sftp
sudo systemctl ssh neu starten
sudo addgroup sftp sudo useradd -m IHR BENUTZER -g sftp sudo passwd IHR BENUTZER sudo chmod 700 /home/IHR BENUTZER/
Schritt 3: SSH-Konfiguration bearbeiten
Bearbeiten Sie die SSH-Konfigurationsdatei:
sudo nano /etc/ssh/sshd_config
Ändern Sie die folgende Zeile:
PasswortAuthentifizierung ja
Dies ist weniger sicher, wählen Sie also zumindest ein sicheres Passwort. Aber noch besser: Verwenden Sie SSH-Schlüssel, die VIEL sicherer sind (wenn Sie sie nicht weitergeben).
SSH neu starten:
sudo systemctl ssh neu starten
Schritt 4: Firewall konfigurieren
Richten Sie Ihre Firewall so ein, dass eingehende Verbindungen nur über Port 22 von Ihrer Heim-IP, Büro-IP und ggf. Server-IPs zugelassen werden.
Schritt 5: Anmeldung über SFTP-Client
Verwenden Sie einen Client wie FileZilla, um eine Verbindung zu Ihrem SFTP-Server herzustellen:
sftp [email protected]
Schritt 6: Installieren Sie den SFTP Flysystem Laravel-Treiber
Installieren Sie die SFTP Flysystem Laravel-Treiber So aktivieren Sie die SFTP-Integration in Ihrer Laravel-Anwendung:
Komponist erfordert Liga/Flysystem-SFTP-V3 "^3.0"
Schritt 7: SFTP in Laravel konfigurieren
Bearbeiten Sie die Dateisystemkonfiguration Ihres Laravel (config/dateisysteme.php
):
'sftp' => [ 'driver' => 'sftp', 'host' => env('SFTP_HOST'), // Einstellungen für die grundlegende Authentifizierung... 'username' => env('SFTP_USERNAME'), 'password' => env('SFTP_PASSWORD'), 'throw' => env('APP_DEBUG'), 'root' => env('SFTP_USERNAME'), ],
Schritt 8: Skript zur Überprüfung des Speicherplatzes erstellen
Erstellen Sie ein Shell-Skript (disk-space-check.sh
), um den Speicherplatz auf Ihrem Server regelmäßig zu überprüfen. Hierfür gibt es verschiedene Anleitungen, wie zum Beispiel: https://www.cyberciti.biz/tips/shell-script-to-watch-the-disk-space.html
Schritt 9: Skript zu Cron hinzufügen
Fügen Sie der Crontab das Skript zur Überprüfung des Speicherplatzes hinzu, um es in angegebenen Intervallen auszuführen.
TransIP Big Storage bestellen
Wenn Sie zusätzliche Speicherkapazität benötigen, folgen Sie der Anleitung unter https://www.transip.nl/knowledgebase/artikel/195-big-storage-aan-linux-koppelen/ um großen Speicher bei TransIP zu bestellen. Auf Englisch: https://www.transip.eu/knowledgebase/entry/195-how-add-big-storage-linux/
Einrichten eines Big Storage-Benutzers oder eines alternativen Verzeichnisses
Wenn Sie ein anderes Verzeichnis oder TransIP Big Storage verwenden möchten, das beispielsweise unter /mnt/bigstorage gemountet ist, befolgen Sie diese Schritte. Beginnen Sie mit der Erstellung einer Big Storage-SFTP-Gruppe:
sudo groupadd sftpbigstorage sudo nano /etc/ssh/sshd_config
Fügen Sie die folgenden Zeilen hinzu:
Übereinstimmungsgruppe sftpbigstorage ForceCommand internal-sftp ChrootDirectory /mnt/bigstorage/%u PermitTunnel nein AllowAgentForwarding nein AllowTcpForwarding nein X11Forwarding nein
Führen Sie dann Folgendes aus (ersetzen Sie myuser01 durch Ihren Benutzernamen):
sudo mkdir /mnt/bigstorage/myuser01 sudo chown root:root /mnt/bigstorage sudo chown -R root:root /mnt/bigstorage/myuser01 sudo chmod -R 755 /mnt/bigstorage/myuser01 sudo adduser --home /mnt/bigstorage/myuser01 myuser01 sudo usermod -a -G sftpbigstorage myuser01 sudo usermod -s /sbin/nologin myuser01 sudo systemctl sshd neu starten sudo mkdir /mnt/bigstorage/myuser01/files/ sudo chown -R myuser01:myuser01 /mnt/bigstorage/myuser01/files/ sudo systemctl ssh neu starten
Beim Kopieren von Dateien über SFTP müssen Sie die Berechtigungen möglicherweise neu zuweisen:
sudo chown -R meinBenutzer01:meinBenutzer01 /mnt/bigstorage/meinBenutzer01/Dateien/
WICHTIGSTER HINWEIS: sftp erfordert, dass der Root /mnt/bigstorage und /mnt/bigstorage/USERNAME besitzt. Damit der Benutzer etwas bearbeiten kann, ist ein Unterverzeichnis wie /mnt/bigstorage/USERNAME/files oder /mnt/bigstorage/USERNAME/www erforderlich. Dies ist perfekt beschrieben in dieser BeitragAuch diese Anleitung ist hilfreich: https://thunderysteak.github.io/sftp-user-chroot
Wenn Sie diese Schritte befolgen, können Sie mit TransIP oder einem anderen VPS-Anbieter einen einfachen SFTP-Dateiserver auf Ihrem Server einrichten. SFTP bietet eine einfachere und weniger komplexe Alternative zu Diensten wie MinIO oder S3, während weiterhin sichere Dateiübertragungen möglich sind. Die Integration von SFTP mit Laravel/PHP ermöglicht eine nahtlose Dateiverwaltung in Ihren Anwendungen.
Andere Alternativen für Dateihosting mit SFTP
- Nutzung von Amazon S3: funktioniert gut, aber teuer
- Bunny Storage: interessante SFTP-Alternative, recht günstig und einfach zu aufstellen.
- MinIO: Selbstgehostete S3-Alternative