Ubuntu è una piat­ta­for­ma sicura e af­fi­da­bi­le su cui con­fi­gu­ra­re un server SFTP. Questa di­stri­bu­zio­ne Linux offre strumenti e pacchetti integrati che puoi uti­liz­za­re per il pro­to­col­lo SFTP. Nella nostra guida ti mostriamo come in­stal­la­re e con­fi­gu­ra­re un server SFTP su Ubuntu per il tra­sfe­ri­men­to di dati crit­to­gra­fa­ti.

Server SFTP su Ubuntu: i requisiti di sistema

Se con­fron­tia­mo FTP e SFTP, il pro­to­col­lo SFTP è net­ta­men­te la scelta migliore. Basato su FTP, il pro­to­col­lo SFTP utilizza metodi crit­to­gra­fi­ci per la codifica dei dati. Per l’in­stal­la­zio­ne è quindi ne­ces­sa­rio uti­liz­za­re ulteriori com­po­nen­ti come Secure Shell (SSH). Per con­fi­gu­ra­re un server SFTP sull’attuale versione 22.04 di Ubuntu è ne­ces­sa­rio sod­di­sfa­re i seguenti requisiti di sistema:

  • Pro­ces­so­re (CPU): 2 GHz (dual core)
  • Memoria RAM: 4 GB
  • Spazio su disco fisso: a seconda delle di­men­sio­ni dei dati
  • Sistema operativo: Ubuntu, utente con permessi di root
  • Pacchetto software: OpenSSH
  • Con­nes­sio­ne internet per scaricare i pacchetti e col­le­gar­si al server SFTP
Consiglio

Con un server Secure FTP di IONOS puoi accedere a un file hosting sicuro, completo di backup regolari e as­si­sten­za 24/7.

Guida: in­stal­la­zio­ne di un server SFTP su Ubuntu

Per in­stal­la­re un server FTP che utilizzi il pro­to­col­lo SFTP devi con­trol­la­re in­nan­zi­tut­to che sia in­stal­la­to OpenSSH. I pacchetti sono già di­spo­ni­bi­li su Ubuntu per im­po­sta­zio­ne pre­de­fi­ni­ta. Se non lo fossero, puoi ottenere i pacchetti dal re­po­si­to­ry ufficiale.

Apri il terminale sul tuo sistema Ubuntu ed esegui i seguenti comandi:

Primo passaggio: con­trol­la­re i pacchetti OpenSSH

Questo comando elenca tutti i pacchetti in­stal­la­ti fil­tran­do­li per ssh:

$ dpkg -l | grep ssh
bash

Nel nostro esempio, il risultato è il seguente:

Immagine: Terminale: pacchetti OpenSSH installati
Terminale: pacchetti OpenSSH in­stal­la­ti

Se compare la scritta ii, significa che i pacchetti sono in­stal­la­ti.

Secondo passaggio: in­stal­la­re SSH

Se OpenSSH non è presente, puoi in­stal­lar­lo con il gestore di pacchetti APT:

$ sudo apt install ssh
bash

Terzo passaggio: mo­di­fi­ca­re la con­fi­gu­ra­zio­ne di SSHD

Dopo l’in­stal­la­zio­ne è ne­ces­sa­rio mo­di­fi­ca­re il file di con­fi­gu­ra­zio­ne del demone SSH. Ad esempio è possibile farlo con l’editor Nano:

$ sudo nano /etc/ssh/sshd_config
bash

Digita quindi la riga seguente:

Match Group sftpgroup
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
bash

In questo modo gli utenti del gruppo SFTP possono accedere alla loro cartella Home tramite SFTP.

Server dedicati
Per­for­man­ce e in­no­va­zio­ne
  • Pro­ces­so­ri al­l'a­van­guar­dia di ultima ge­ne­ra­zio­ne
  • Hardware dedicato ad alte pre­sta­zio­ni
  • Data center cer­ti­fi­ca­ti ISO

Quarto passaggio: riavviare il servizio SSH

Dopo aver mo­di­fi­ca­to il file di con­fi­gu­ra­zio­ne, è ne­ces­sa­rio riavviare il servizio SSH:

$ sudo systemctl restart sshd
bash

Quinto passaggio: creare gli utenti SFTP e il gruppo

Nel passaggio suc­ces­si­vo creiamo un nuovo gruppo di nome sftpgroup e un nuovo utente sftpuser che, per motivi di sicurezza, può accedere solo al server SFTP su Ubuntu e non al servizio SSH.

$ sudo groupadd sftpgroup
bash

Il nuovo utente è assegnato al gruppo SFTP con l’opzione -G. Con l’opzione -d si definisce la cartella Home e con -s si regola l’accesso alla shell.

$ sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuser
bash

Sesto passaggio: creare la password utente SFTP

Digita una password sicura per l’utente SFTP con il comando passwd:

$ passwd sftpuser
bash

Settimo passaggio: con­fi­gu­ra­re la chroot

La creazione di una cartella chroot ti permette di creare una sandbox per i processi in ese­cu­zio­ne. Per prima cosa devi creare una nuova cartella:

$ mkdir -p /srv/sftpuser
bash

Quindi, at­tri­bui­sci la proprietà della cartella all’utente root con chown:

$ sudo chown root /srv/sftpuser
bash

Assegna i permessi di lettura ed ese­cu­zio­ne al gruppo:

$ sudo chmod g+rx /srv/sftpuser
bash

Quindi crea una sot­to­car­tel­la e definisci sftpuser come pro­prie­ta­rio:

$ mkdir -p /srv/sftpuser/data
$ chown sftpuser:sftpuser /srv/sftpuser/data
bash

In questo modo l’utente SFTP può caricare file nella sot­to­car­tel­la “data”, ma dispone solo di permessi limitati nella cartella sftpuser. L’utente dispone di permessi di lettura per quest’ultima cartella, ma per motivi di sicurezza non ha i permessi di scrittura.

Ottavo passaggio: col­le­ga­men­to con il server SFTP su Ubuntu

Per il col­le­ga­men­to con il server SFTP puoi uti­liz­za­re la riga di comando SFTP oppure un client FTP dotato di GUI. Nel terminale, digita il comando sftp, seguito dal nome dell’utente e dell’host oppure dall’indirizzo IP del server SFTP.

$ sftp sftpuser@SERVER-IP
bash

Se utilizzi una porta definita dall’utente, puoi spe­ci­fi­car­la nel modo seguente:

$ sftp -P PORT ftpuser@SERVER-IP
bash

Suc­ces­si­va­men­te il sistema ti chiede di digitare la password dell’utente SFTP.

Nono passaggio: caricare i file sul server SFTP

Per caricare i file su SFTP utilizza il comando put.

Prova a tra­sfe­ri­re un file nella cartella /:

put /path/to/file/on/local /
bash

Se il comando non va a buon fine, il motivo è che si tratta della cartella chroot: l’utente SFTP non ha permessi di scrittura per questa cartella.

Adesso prova con la cartella data:

put /path/to/file1/on/local1 /data/
bash

Decimo passaggio: vi­sua­liz­za­re i file sul server SFTP su Ubuntu

Puoi vi­sua­liz­za­re un elenco dei file nella riga di comando SFTP con il comando ls:

ls /data/
bash

Questa schermata mostra i dati che si trovano sul server SFTP:

Immagine: Terminale: elenco dei file sul server SFTP
Terminale: elenco dei file sul server SFTP
Consiglio

Nella nostra guida trovi anche le istru­zio­ni per con­fi­gu­ra­re un server SFTP su Windows.

Vai al menu prin­ci­pa­le