Cos'è SFTP?
SFTP sta per SSH File Transfer Protocol. Hai indovinato correttamente. È la versione di FTP che utilizza SSH in alto. Consente agli utenti di caricare e scaricare file da e verso un server Linux tramite una connessione crittografata. FTP fa lo stesso senza crittografia ed è per questo che SFTP è preferito a FTP in questi giorni.
Vediamo come puoi configurare un server SFTP su un sistema Linux.
Configurazione del server SFTP su Linux
Ho usato Ubuntu in questo tutorial. I comandi di installazione sono specifici per Ubuntu e Debian, ma il resto dei passaggi può essere seguito in qualsiasi altra distribuzione Linux.
Per eseguire i passaggi, è necessario disporre dei diritti sudoer. Quindi, se non sudo diritti, contatta il tuo amministratore di sistema. Se sei l'unico, leggi come creare un utente sudo in Ubuntu.
La configurazione di SFTP è molto semplice. Prima di procedere, devi avere OpenSSH installato sul lato server e il pacchetto SSH sul lato client.
Ho discusso in dettaglio della configurazione di SSH su Ubuntu in un articolo separato, menzionerò solo i passaggi importanti qui.
Per installare OpenSSH nel server, puoi utilizzare il seguente comando:
sudo apt install openssh-server
Hai anche bisogno di SSH sul sistema da cui intendi accedere al server SFTP.
sudo apt install ssh
Al termine, avrai tutto pronto per configurare SFTP. È fatto in tre passaggi e te lo mostrerò uno per uno.
Passaggio 1:crea gruppi, utenti, directory
Per utilizzare SFTP (o qualsiasi altro servizio in generale) in modo sicuro, è meglio creare gruppi e utenti per utilizzare quel servizio e solo quel servizio. "È meglio concedere un diritto specifico a un'entità specifica" .
Nel caso in cui si desideri concedere l'accesso SFTP e anche il normale accesso al sistema, creare utenti in modo tale che sia facile identificarli in base al servizio. Ad esempio, se seeni viene utilizzato per il normale accesso al sistema, quindi seenisftp può essere utilizzato per l'accesso SFTP. L'utilizzo di questo metodo sarà più semplice dal punto di vista amministrativo.
Creiamo un gruppo chiamato "sftpg ” usando il comando groupadd:
sudo groupadd sftpg
Creiamo un utente chiamato "seenisftp" e aggiungilo al gruppo sopra e forniscigli una password.
sudo useradd -g sftpg seenisftp
sudo passwd seenisftp
Nel comando useradd, -g opzione dice al gruppo a quale utente deve essere aggiunto. Puoi elencare tutti gli utenti in Linux e verificare che il nuovo utente sia stato aggiunto.
Supponiamo che tu voglia utilizzare la directory /data/ come root per sftp e /data/USERNAME per ogni utente. Pertanto, quando gli utenti accedono tramite sftp, dovrebbero trovarsi in /data/USERNAME come directory predefinita (proprio come in /home/USERNAME directory quando si accede al sistema Linux tramite SSH). Inoltre, presupponi un vincolo per cui possono leggere i file da quella directory ma possono caricare solo su caricamenti directory.
Creiamo le directory e cambiamo il loro accesso e la loro proprietà come segue (leggi sui permessi dei file in Linux per saperne di più).
sudo mkdir -p /data/seenisftp/upload
sudo chown -R root.sftpg /data/seenisftp
sudo chown -R seenisftp.sftpg /data/seenisftp/upload
Una cosa che potrebbe confondere è dare la proprietà della directory dell'utente alla radice stessa. Questo è obbligatorio per il chroot in SFTP. Quindi assicurati che il proprietario di /data/USERNAME è root .
A partire da ora, abbiamo un utente chiamato seenisftp con il gruppo sftpg e con i permessi di accesso impostati per /data/seenisftp .
Fase 2:configura sshd_config
Successivamente è necessario configurare il server ssh in modo che ogni volta che un utente appartenente al gruppo sftpg accede, acceda a sftp invece della normale shell ottieni ssh. Aggiungi il seguente snippet a /etc/ssh/sshd_config
se non è già presente.
Match Group sftpg
ChrootDirectory /data/%u
ForceCommand internal-sftp
Nel frammento di codice sopra, ChrootDirectory consente di creare la directory specificata come nodo radice ("/" directory ) nell'albero delle directory. L'utente che ha effettuato l'accesso non può vedere nulla al di sopra di quella directory. Quindi impedirà all'utente corrente di accedere ai file di altri utenti tramite sftp . %u è il codice di escape per riempirlo con il nome utente corrente al momento del login. Quando seenisftp accessi tramite sftp , sarà in /data/seenisftp come sua directory principale. Non sarà in grado di vedere nulla al di sopra.
Passaggio 3:riavvia il servizio
Per apportare modifiche a sshd_config live, riavvia il servizio come segue.
sudo systemctl restart sshd
Accesso a SFTP tramite la riga di comando di Linux
Puoi accedere a SFTP come faresti normalmente con SSH.
sftp [email protected]
Comandi SFTP di esempio
I comandi SFTP sono generalmente del seguente formato.
COMMAND [SOURCE] [DESTINATION]
Per qualsiasi comando, gli argomenti possono essere percorsi di sistema locali o percorsi di sistema remoti. Non vi è alcuna distinzione visibile specifica tra di loro. Puoi specificare il percorso come normale dopo aver considerato se l'argomento è locale o remoto.
OTTIENI – scaricare i contenuti dal server remoto al sistema locale. Il comando seguente scarica il file remoto poster.img alle ~/Immagini del sistema locale directory.
GET poster.img ~/Pictures
METTI – Carica i contenuti dal sistema locale al sistema remoto. Sotto il comando carica il ~/Pictures/poster2.jpg nei miei caricamenti directory.
PUT ~/Pictures/poster2.jpg uploads/
RM – Per rimuovere i file nel sistema remoto. È molto simile a rm comando. Puoi vederlo dal comando sottostante che elimina un'immagine su uploads/poster3.jpg
RM uploads/poster3.jpg
I comandi di cui sopra sono molto semplici e sono sufficienti per esplorare il server FTP/SFTP. Se vuoi saperne di più, usa help
comandare o utilizzare questa risorsa.
Spero che questo articolo ti abbia aiutato a configurare il server SFTP su Linux.
Raccontaci nei commenti qual è la configurazione del tuo file system SFTP. È come menzionato in questo articolo o una directory in pool o qualcos'altro?
Se hai trovato utile questo articolo, condividilo con i tuoi amici. Se hai suggerimenti, lasciali cadere di seguito.