Imposta SFTP e Previeni SSH su Ubuntu 20.04. SFTP (Secure File transfer Protocol), un modo sicuro per trasferire file ai server utilizzando connessioni SSH crittografate. Tutti i server con SSH avranno SFTP abilitato per impostazione predefinita.
In questa guida imparerai come limitare l'accesso SFTP a una directory per un particolare utente e impedire l'accesso SSH.
Questa configurazione è testata su una macchina virtuale con sistema operativo Ubuntu 20.04. Quindi questo tutorial dovrebbe funzionare su qualsiasi server con Ubuntu.
Prerequisiti
Accesso SSH al server con privilegi sudo.
Fase 1:crea un nuovo utente
Crea un nuovo utente con accesso SFTP per eseguire determinate azioni su una directory particolare.
sudo adduser username
Ti verrà chiesto di impostare una password e altri dettagli facoltativi che puoi impostare o ignorare.
Se desideri utilizzare l'accesso basato su chiavi SSH, controlla come configurare l'accesso SSH su Ubuntu.
Fase 2:imposta l'accesso SFTP
Per configurare l'accesso SFTP è necessario configurare i permessi di directory corretti, la directory principale della nuova directory che stai per creare deve essere di proprietà di root e non di altri utenti.
Ad esempio, se stai per creare una directory denominata /sftp/folder
, il sftp
la directory dovrebbe essere di proprietà di root e il folder
la directory dovrebbe essere di proprietà del particolare utente chi vi accede.
Crea directory.
sudo mkdir -p /sftp/folder
Configura le autorizzazioni corrette.
sudo chmod 755 /sftp sudo chown root:root /sftp sudo chmod -R 755 /sftp/folder sudo chown username:username /sftp/folder
Fase 3:Impedisci l'accesso SSH e limita l'accesso SFTP
Ora possiamo modificare la configurazione SSH per impedire l'accesso SSH per l'utente e limitare l'accesso dell'utente solo a una directory particolare.
Modifica il file di configurazione SSH.
sudo nano /etc/ssh/sshd_config
Aggiungi quanto segue alla fine del file.
Match User username ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
Match User
indica al server SSH di applicare i seguenti comandi solo all'utente specificato.ForceCommand internal-sftp
forza il server SSH a eseguire il server SFTP all'accesso e impedisce l'accesso SSH.PasswordAuthentication yes
consente l'autenticazione tramite password per questo utente. Se utilizzi l'accesso basato su chiavi SSH, puoi impedire l'autenticazione basata su password impostando il valore suno
.ChrootDirectory /sftp
assicura che all'utente non sarà consentito l'accesso a qualsiasi cosa oltre a/sftp
directory.AllowAgentForwarding no
,AllowTcpForwarding no
eX11Forwarding no
disabilita rispettivamente il port forwarding, il tunneling e l'X11 forwarding.
Premi CTRL + X
seguito da Y
e poi ENTER
per salvare ed uscire dal file.
Ora sono disponibili le configurazioni che consentono solo l'accesso SFTP e impediscono l'accesso SSH per l'utente.
Riavvia il servizio SSH per rendere effettive le modifiche.
sudo systemctl restart sshd
Per maggiori dettagli sulla configurazione dell'accesso per più nomi utente, puoi seguire questa guida all'installazione di Chroot.
Fase 4:verifica la configurazione SFTP
Prova ad accedere al server usando i tuoi dettagli SFTP con il comando SSH. Ti verrà negato l'accesso a SSH.
ssh [email protected]_ip
Riceverai un output simile a quello qui sotto.
Output This service allows sftp connections only. Connection to server_ip closed.
Ora verifica usando il comando sftp.
sftp [email protected]_ip
Ora dovresti essere loggato al server e avere accesso alla directory che hai configurato in precedenza.
Output Connected to server_ip sftp>
Usa il ls
comando per elencare le directory vedrai la directory denominata folder
hai creato e configurato le autorizzazioni.
sftp> ls
Output folder
Conclusione
Ora hai imparato come configurare SFTP e impedire l'accesso SSH all'utente su una directory specifica.
Grazie per il tuo tempo. In caso di problemi o feedback, si prega di lasciare un commento qui sotto.