Server SFTP Ubuntu Laravel

Konfigurera SFTP-server på Ubuntu + Ansluta med Laravel

Denna guide är givetvis på egen risk. Vi har inget ansvar.

Varför välja SFTP framför MinIO eller S3?

Det finns flera skäl att välja SFTP som filserverlösning istället för MinIO / S3:

  • Enklare, enklare och mindre rörig installation
  • Lättare att uppdatera än en MinIO-server
  • Använder endast port 22 (eller annan tilldelad port)

Varför välja TransIP eller en VPS-leverantör?

Här är några fördelar med att använda TransIP eller en VPS-leverantör för din SFTP-server:

  • Befintlig infrastruktur med backuper
  • Möjlighet att länka stort förråd för ökad lagringskapacitet
  • Enkla uppgraderingsalternativ för extra diskutrymme. Glöm inte att allokera det nya diskutrymmet i Linux.

Andra partier gillar NetCup har dedikerade lagringsservrar. Vi har inte testat dem, så vi är inte säkra på om de är skalbara. Vi testade en TransIP VPS tillsammans med en Stort lagringstillägg.

Konfigurera SFTP-server utan stort lagringsutrymme

Steg 1: Konfigurera TransIP / VPS Server med SSD SFTP Group

Välj TransIP som din serverleverantör och ställ in en SSD SFTP-grupp:

sudo groupadd sftp

Steg 2: Konfigurera SFTP-server på Ubuntu

Följ instruktionerna på https://linuxhint.com/setup-sftp-server-ubuntu/ för att konfigurera SFTP-servern.

sudo nano /etc/ssh/sshd_config

Lägg till följande rader:

Matcha grupp sftp ChrootDirectory /home X11Vidarebefordran nej AllowTcpVidarebefordran ingen ForceCommand internal-sftp
sudo systemctl starta om ssh
sudo addgroup sftp sudo useradd -m DIN ANVÄNDARE -g sftp sudo passwd DIN ANVÄNDARE sudo chmod 700 /hem/DIN ANVÄNDARE/

Steg 3: Redigera SSH-konfiguration

Redigera SSH-konfigurationsfilen:

sudo nano /etc/ssh/sshd_config

Ändra följande rad:

Lösenordsautentisering ja

Detta är mindre säkert, så välj åtminstone ett starkt lösenord. Men ännu bättre, använd SSH-nycklar, som är MYCKET säkrare (om du inte läcker dem).

Starta om SSH:

sudo systemctl starta om ssh

Steg 4: Konfigurera brandväggen

Konfigurera din brandvägg för att endast tillåta inkommande anslutningar på port 22 från din hem-IP, kontors-IP och server-IP om det behövs.

Steg 5: Logga in via SFTP-klient

Använd en klient som FileZilla för att ansluta till din SFTP-server:

sftp DIN ANVÄ[email protected]

Steg 6: Installera SFTP Flysystem Laravel-drivrutinen

Installera Drivrutinen för SFTP Flysystem Laravel för att aktivera SFTP-integration i din Laravel-applikation:

kompositör kräver league/flysystem-sftp-v3 "^3.0"

Steg 7: Konfigurera SFTP i Laravel

Redigera din Laravels filsystemkonfiguration (config/filsystem.php):

'sftp' => [ 'drivrutin' => 'sftp', 'host' => env('SFTP_HOST'), // Inställningar för grundläggande autentisering... 'username' => env('SFTP_USERNAME'), 'lösenord' => env('SFTP_PASSWORD'), 'throw' => env('>) ],

Steg 8: Skapa diskutrymmeskontrollskript

Skapa ett skalskript (disk-utrymme-check.sh) för att regelbundet kontrollera diskutrymmet på din server. Det finns olika guider för detta, som: https://www.cyberciti.biz/tips/shell-script-to-watch-the-disk-space.html

Steg 9: Lägg till skript till Cron

Lägg till diskutrymmeskontrollskriptet till crontab för att köra det med angivna intervall.

Beställer TransIP Big Storage

Om du behöver ytterligare lagringskapacitet, följ guiden på https://www.transip.nl/knowledgebase/artikel/195-big-storage-aan-linux-koppelen/ för att beställa stor lagring från TransIP. På engelska: https://www.transip.eu/knowledgebase/entry/195-how-add-big-storage-linux/

Konfigurera Big Storage User eller alternativ katalog

Om du vill använda en annan katalog eller vill använda TransIP Big Storage, som är monterad på till exempel /mnt/bigstorage, följ dessa steg. Börja med att skapa en stor sftp-grupp för lagring:

sudo groupadd sftpbigstorage sudo nano /etc/ssh/sshd_config

Lägg till följande rader:

Matcha grupp sftpbigstorage ForceCommand intern-sftp ChrootDirectory /mnt/bigstorage/%u PermitTunnel ingen AllowAgentForwarding nej AllowTcpForwarding nej X11Forwarding nej

Kör sedan (ersätt myuser01 med ditt användarnamn):

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/bighome /bigstorage/myuser01 myuser01 sudo usermod -a -G sftpbigstorage myuser01 sudo usermod -s /sbin/nologin myuser01 sudo systemctl starta om sshd sudo mkdir /mnt/bigstorage/myuser01/files/ sudo chown -R myuser011:mnage/mnt/mnt/mnt/mnt/mn sudo systemctl starta om ssh

När du kopierar filer via sftp kan du behöva omtilldela behörigheterna:

sudo chown -R myuser01:myuser01 /mnt/bigstorage/myuser01/files/

VIKTIGASTE ANMÄRKNING: sftp kräver att roten äger /mnt/bigstorage och /mnt/bigstorage/USERNAME . För att användaren ska kunna redigera något krävs en underkatalog som /mnt/bigstorage/USERNAME/filer eller /mnt/bigstorage/USERNAME/www. Detta är perfekt beskrivet i detta inlägg. Den här guiden är också användbar: https://thunderysteak.github.io/sftp-user-chroot

Genom att följa dessa steg kan du ställa in en grundläggande SFTP-filserver på din server med TransIP eller annan VPS-leverantör. SFTP ger ett enklare och mindre komplext alternativ till tjänster som MinIO eller S3, samtidigt som det tillåter säkra filöverföringar. Att integrera SFTP med Laravel/PHP möjliggör sömlös filhantering i dina applikationer.

Andra alternativ för filvärd med SFTP

  • Att använda Amazon S3: fungerar bra, men dyrt
  • Kaninförvaring: intressant SFTP-alternativ, ganska anständigt prissatt och lätt att inrätta.
  • MinIO: Egen värd S3-alternativ

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESvenska
Bläddra till toppen