Come creare un utente solo SFTP in Debian 11

7 ott 2021 3 min di lettura
Come creare un utente solo SFTP in Debian 11
Indice dei contenuti

Introduzione

SFTP (SSH File Transfer Protocol) è un protocollo di file sicuro utilizzato per accedere, gestire e trasferire file su una sessione di trasporto SSH crittografata. La sicurezza prima di tutto è una regola pratica per gli amministratori di sistema. In alcuni casi, dobbiamo consentire agli utenti remoti di accedere al filesystem sul nostro sistema, ma non vuoi consentire loro di ottenere una shell. Ciò ti consentirà di un canale sicuro per fornire un accesso limitato a file e directory specifici.

Questo tutorial ti aiuterà a configurare solo l'accesso SFTP (senza accesso alla shell) sul sistema Debian 11. Creerà un ambiente chroot sul tuo sistema per limitare l'utente SFTP solo a una directory specifica. Inoltre, consentirà solo l'accesso SFTP senza l'accesso SSH all'utente.

Prerequisiti

  • Un sistema Debian 11 Bullseye Linux in esecuzione
  • Devi avere un account privilegiato sudo con accesso alla shell

Se desideri installare creare un utente solo SFTP su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh root@IP_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh nome_utente@IP_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Creare un nuovo utente

Prima di tutto, crea un nuovo utente per connetterti con il server sftp. Il seguente comando creerà un nuovo account denominato sftpuser senza accesso alla shell. Puoi usare qualsiasi nome di tua scelta o requisito.

sudo adduser --shell /bin/false sftpuser 

Creare una directory per l'accesso SFTP

Hai creato un utente per sftp. Ora, crea una directory da configurare come chroot per sftp. Per questo esempio, creerò una directory /var/sftp. La directory deve avere la proprietà di root per essere configurata come directory chroot. Quindi creeremo una sottodirectory sotto /var/sftp con accesso in scrittura all'account sftp.

Creare la struttura della directory con il seguente comando:

sudo mkdir -p /var/sftp/files 

Successivamente, dobbiamo impostare i permessi appropriati sulle directory da configurare come accesso chroot con accesso in scrittura all'utente. Qui /var/sftp deve avere la proprietà root e il gruppo con i permessi appropriati. Per impostare tale autorizzazione, digita:

sudo chown root:root /var/sftp 
sudo chmod 755 /var/sftp 

Ora, cambia l'autorizzazione per la directory "files" per consentire l'accesso in scrittura a sftpuser. Per impostare tali autorizzazioni, digita:

sudo chown sftpuser:sftpuser /var/sftp/files 

Una volta che sftpuser si connette al server, otterrà /var/sftp come directory principale. Non può accedere al filesystem al di fuori di esso. Inoltre, l'utente può leggere/scrivere file solo nella directory "files".

Configurare sshd solo per SFTP

Successivamente, è necessario configurare il server SSH per consentire a "sftpuser" di connettere il server solo con sFTP senza accesso alla shell. Per apportare le modifiche necessarie, modificare il file di configurazione SSH:

sudo nano /etc/ssh/sshd_config 

Aggiungi le seguenti impostazioni alla fine del file.

Match User sftpuser
	ForceCommand internal-sftp
	PasswordAuthentication yes
	ChrootDirectory /var/sftp
	PermitTunnel no
	AllowAgentForwarding no
	AllowTcpForwarding no
	X11Forwarding no

Ricontrolla che tutte le impostazioni siano corrette. Quindi salvare le modifiche e riavviare il servizio SSH per applicare le modifiche.

sudo systemctl restart ssh 

Tutto fatto, l'uso del solo SFTP è stato creato con successo sul tuo sistema Debian. Ora prova ad accedere al sistema remoto con le credenziali del nuovo utente e controlla se tutto funziona correttamente.

Connettersi a SFTP

È possibile connettersi a un server SFTP remoto utilizzando una riga di comando o applicazioni grafiche come Filezilla o WinSCP. In questo tutorial, ti mostrerò entrambi i modi per connettere il server SFTP.

Gli utenti Linux possono utilizzare l'utilità della riga di comando sftp per connettersi a istanze sftp remote:

sftp [email protected] 
[email protected]'s password:
sftp>

L'interfaccia GUI o gli utenti Windows possono utilizzare client sftp grafici. Ad esempio, utilizzare il client Filezilla per connettere solo l'account sftp remoto sul sistema remoto.

Poiché questo account è configurato solo per la connessione SFTP. Quindi, se un utente ha provato a connettersi tramite SSH, verrà disconnesso immediatamente dopo l'autenticazione riuscita. L'utente riceverà il messaggio di seguito:

ssh [email protected]
[email protected]'s password:
This service allows sftp connections only.
Connection to sftp.noviello.it closed.

Conclusione

In questa guida, hai imparato a creare un ambiente jail chroot per utenti SFTP senza accesso shell al server. L'ambiente Chroot protegge il filesystem impedendo agli utenti di accedere ai file al di fuori della directory definita. Questo tutorial è stato creato e testato con il sistema Debian 11 Bullseye ma funzionerà su altre versioni di Debian.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.