GNU/Linux >> Linux Esercitazione >  >> Debian

Come creare un utente solo SFTP in Debian 11

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, è necessario consentire agli utenti remoti di accedere al filesystem sul nostro sistema, ma non si desidera consentire loro di ottenere una shell. Ciò ti consentirà un canale sicuro per fornire un accesso limitato a file e directory specifici.

Questo tutorial ti aiuterà a configurare l'accesso solo 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 sudo privilegiato con accesso alla shell

Fase 1:crea un nuovo utente

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

sudo adduser --shell /bin/false sftpuser 

Fase 2:crea 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ò un /var/sftp directory. La directory deve avere la proprietà root per essere configurata come directory chroot. Quindi creeremo una sottodirectory in /var/sftp con accesso in scrittura all'account sftp.

Crea la struttura delle directory con il seguente comando:

sudo mkdir -p /var/sftp/files 

Successivamente, dobbiamo impostare l'autorizzazione appropriata 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 i "files" directory 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".

Passaggio 3:configura 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, modifica il file di configurazione SSH.

sudo nano /etc/ssh/sshd_config 

e 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 salva le modifiche e riavvia il servizio SSH per applicare le modifiche.

sudo systemctl restart ssh 

Fatto tutto, l'uso 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.

Fase 4:connessione 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, utilizza il client Filezilla per connettere un account solo sftp remoto sul sistema remoto.

Non verificare l'accesso alla shell:

Poiché questo account è configurato per la sola connessione SFTP. Pertanto, se un utente ha tentato di 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.tecadmin.net closed.

Conclusione

In questa guida pratica, 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.


Debian
  1. Come creare un utente Sudo su CentOS, Ubuntu e Debian

  2. Come configurare un server SFTP su Debian 11 Server

  3. Come creare un nuovo utente con accesso Ssh?

  4. Come creare ed eliminare un utente su Debian 9

  5. Come creare un utente SFTP senza accesso alla shell su CentOS 8

Come creare un utente ssh in jail con Jailkit su Debian/Ubuntu

Come aggiungere un utente a Sudoer su Debian 10

Come installare Fathom su Debian 11

Come installare Git su Debian 10

Come creare un utente Sudo su Ubuntu e Debian

Come creare un utente o un contatto