Server SFTP Ubuntu Laravel

Stel SFTP-server in op Ubuntu + verbinding maken met Laravel

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

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

nl_NLNederlands
Scroll naar boven