Deze gids is uiteraard op eigen risico. Wij hebben geen enkele verantwoordelijkheid.
Waarom kiezen voor SFTP boven MinIO of S3?
Er zijn verschillende redenen om SFTP te kiezen als bestandsserveroplossing in plaats van MinIO /S3:
- Gemakkelijkere, eenvoudigere en minder rommelige installatie
- Makkelijker te updaten dan een MinIO-server
- Gebruikt alleen poort 22 (of een andere toegewezen poort)
Waarom kiezen voor TransIP of een VPS-provider?
Hier zijn enkele voordelen van het gebruik van TransIP of een VPS-provider voor uw SFTP-server:
- Bestaande infrastructuur met backups
- Mogelijkheid tot koppelen grote opslag voor verhoogde opslagcapaciteit
- Eenvoudige upgrade-opties voor extra schijfruimte. Vergeet niet om de nieuwe schijfruimte in Linux toe te wijzen.
Andere partijen zoals NetCup heeft speciale opslagservers. We hebben ze niet getest, dus we weten niet zeker of ze schaalbaar zijn. We hebben wel een TransIP VPS getest samen met een Grote opslaguitbreiding.
SFTP-server instellen zonder grote opslag
Stap 1: TransIP/VPS-server instellen met SSD SFTP-groep
Kies TransIP als uw serverprovider en stel een SSD SFTP-groep in:
sudo groupadd sftp
Stap 2: SFTP-server configureren op Ubuntu
Volg de instructies op https://linuxhint.com/setup-sftp-server-ubuntu/ om de SFTP-server te configureren.
sudo nano /etc/ssh/sshd_config
Voeg de volgende regels toe:
Match groep sftp ChrootDirectory /home X11Forwarding nee AllowTcpForwarding nee ForceCommand internal-sftp
sudo systemctl herstart ssh
sudo addgroup sftp sudo useradd -m UWGEBRUIKER -g sftp sudo passwd UWGEBRUIKER sudo chmod 700 /home/UWGEBRUIKER/
Stap 3: SSH-configuratie bewerken
Bewerk het SSH-configuratiebestand:
sudo nano /etc/ssh/sshd_config
Wijzig de volgende regel:
WachtwoordAuthenticatie ja
Dit is minder veilig, dus kies in ieder geval een sterk wachtwoord. Maar nog beter, gebruik SSH-sleutels, die VEEL veiliger zijn (als je ze niet lekt).
SSH opnieuw opstarten:
sudo systemctl herstart ssh
Stap 4: Firewall configureren
Stel uw firewall zo in dat inkomende verbindingen alleen via poort 22 vanaf uw thuis-IP, kantoor-IP en indien nodig server-IP's zijn toegestaan.
Stap 5: Inloggen via SFTP-client
Gebruik een client zoals FileZilla om verbinding te maken met uw SFTP-server:
sftp [email protected]
Stap 6: Installeer SFTP Flysystem Laravel Driver
Installeer de SFTP Flysystem Laravel-stuurprogramma om SFTP-integratie in uw Laravel-applicatie in te schakelen:
componist vereist league/flysystem-sftp-v3 "^3.0"
Stap 7: SFTP configureren in Laravel
Bewerk de bestandssysteemconfiguratie van je Laravel (config/bestandssystemen.php
):
'sftp' => [ 'driver' => 'sftp', 'host' => env('SFTP_HOST'), // Instellingen voor basisauthenticatie... 'username' => env('SFTP_USERNAME'), 'password' => env('SFTP_PASSWORD'), 'throw' => env('APP_DEBUG'), 'root' => env('SFTP_USERNAME'), ],
Stap 8: Maak een script voor schijfruimtecontrole
Maak een shellscript (schijfruimte-controle.sh
) om periodiek de schijfruimte op uw server te controleren. Hiervoor zijn verschillende handleidingen, zoals: https://www.cyberciti.biz/tips/shell-script-to-watch-the-disk-space.html
Stap 9: Script toevoegen aan Cron
Voeg het script voor schijfruimtecontrole toe aan de crontab om het op bepaalde intervallen uit te voeren.
TransIP Big Storage bestellen
Als u extra opslagcapaciteit nodig hebt, volgt u de handleiding op https://www.transip.nl/knowledgebase/artikel/195-big-storage-aan-linux-koppelen/ om grote opslag te bestellen bij TransIP. In het Engels: https://www.transip.eu/knowledgebase/entry/195-how-add-big-storage-linux/
Grote opslaggebruiker of alternatieve directory instellen
Als u een andere directory wilt gebruiken of TransIP Big Storage wilt gebruiken, die bijvoorbeeld is gemount op /mnt/bigstorage , volgt u deze stappen. Begin met het maken van een big storage sftp-groep:
sudo groupadd sftpbigstorage sudo nano /etc/ssh/sshd_config
Voeg de volgende regels toe:
Match Group sftpbigstorage ForceCommand internal-sftp ChrootDirectory /mnt/bigstorage/%u PermitTunnel nee AllowAgentForwarding nee AllowTcpForwarding nee X11Forwarding nee
Voer vervolgens het volgende uit (vervang myuser01 door uw gebruikersnaam):
sudo mkdir /mnt/bigstorage/mijngebruiker01 sudo chown root:root /mnt/bigstorage sudo chown -R root:root /mnt/bigstorage/mijngebruiker01 sudo chmod -R 755 /mnt/bigstorage/mijngebruiker01 sudo adduser --home /mnt/bigstorage/mijngebruiker01 mijngebruiker01 sudo usermod -a -G sftpbigstorage mijngebruiker01 sudo usermod -s /sbin/nologin mijngebruiker01 sudo systemctl restart sshd sudo mkdir /mnt/bigstorage/mijngebruiker01/bestanden/ sudo chown -R mijngebruiker01:mijngebruiker01 /mnt/bigstorage/mijngebruiker01/bestanden/ sudo systemctl restart ssh
Wanneer u bestanden kopieert via sftp, moet u mogelijk de machtigingen opnieuw toewijzen:
sudo chown -R myuser01:myuser01 /mnt/bigstorage/myuser01/files/
BELANGRIJKSTE OPMERKING: sftp vereist dat de root eigenaar is van /mnt/bigstorage en /mnt/bigstorage/USERNAME . Om de gebruiker iets te laten bewerken, is een subdirectory zoals /mnt/bigstorage/USERNAME/files of /mnt/bigstorage/USERNAME/www vereist. Dit wordt perfect beschreven in dit bericht. Deze gids is ook nuttig: https://thunderysteak.github.io/sftp-user-chroot
Door deze stappen te volgen, kunt u een basis SFTP-bestandsserver op uw server instellen met behulp van TransIP of een andere VPS-provider. SFTP biedt een eenvoudiger en minder complex alternatief voor services zoals MinIO of S3, terwijl veilige bestandsoverdrachten nog steeds mogelijk zijn. Integratie van SFTP met Laravel/PHP maakt naadloos bestandsbeheer in uw applicaties mogelijk.
Andere alternatieven voor bestandshosting met SFTP
- Amazon S3 gebruiken: werkt goed, maar prijzig
- Bunny Storage: interessant SFTP-alternatief, redelijk geprijsd en gemakkelijk te gebruiken opzetten.
- MinIO: Zelf gehoste S3-alternatief