Come limitare gli utenti SFTP alle directory home utilizzando chroot Jail

In questo tutorial, discuteremo su come limitare gli utenti SFTP alle loro directory home o directory specifiche. Ciò significa che l’utente può accedere solo alla propria directory home, non all’intero file system.

Limitare le directory home degli utenti è vitale, specialmente in un ambiente di server condiviso, in modo che un utente non autorizzato non possa sbirciare nei file e nelle cartelle di altri utenti.

Importante: Si prega di notare anche che lo scopo di questo articolo è fornire solo l’accesso SFTP, non gli accessi SSH, seguendo questo articolo si avrà il permesso di trasferire file, ma non sarà consentito eseguire una sessione SSH remota.

Letture consigliate: Limitare l’Accesso degli Utenti SSH a una Determinata Directory Usando una Prigione Chroot

Il modo più semplice per fare questo è creare un ambiente di prigione chroot per l’accesso SFTP. Questo metodo è lo stesso per tutti i sistemi operativi Unix/Linux. Utilizzando l’ambiente chroot, possiamo limitare gli utenti alla propria directory home o a una directory specifica.

Limitare gli Utenti alle Directory Home

In questa sezione, creeremo un nuovo gruppo chiamato sftpgroup e assegneremo la proprietà e i permessi corretti agli account utente. Ci sono due modi per limitare gli utenti alle directory home o specifiche, vedremo entrambi i modi in questo articolo.

Creare o Modificare Utenti e Gruppi

Limitiamo l’utente esistente, ad esempio tecmint, alla sua directory home chiamata /home/tecmint. Per fare questo, è necessario creare un nuovo gruppo sftpgroup utilizzando il comando groupadd come mostrato:

# groupadd sftpgroup

Successivamente, assegna l’utente ‘tecmint’ al gruppo sftpgroup.

# usermod -G sftpgroup tecmint

Puoi anche creare un nuovo utente utilizzando il comando useradd, ad esempio senthil e assegnare l’utente al gruppo sftpusers.

# adduser senthil -g sftpgroup -s /sbin/nologin
# passwd tecmint

Modifica del file di configurazione di SSH

Apri e aggiungi le seguenti righe al file di configurazione /etc/ssh/sshd_config.

Subsystem sftp internal-sftp
 
   Match Group sftpgroup
   ChrootDirectory /home
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Salva ed esci dal file, riavvia il servizio sshd per rendere effettive le nuove modifiche.

# systemctl restart sshd
OR
# service sshd restart

Se chrooti più utenti nella stessa directory, è necessario modificare i permessi della directory home di ciascun utente per impedire a tutti gli utenti di esaminare le directory home degli altri utenti.

# chmod 700 /home/tecmint

Verifica dell’accesso degli utenti SSH e SFTP

È ora il momento di controllare l’accesso da un sistema locale. Prova a connetterti in remoto al tuo sistema locale.

# ssh [email protected]

Qui,

  1. tecmint – nome utente del sistema remoto.
  2. 192.168.1.150 – indirizzo IP del sistema remoto.
Output di esempio:
[email protected]'s password: 
Could not chdir to home directory /home/tecmint: No such file or directory
This service allows sftp connections only.
Connection to 192.168.1.150 closed.

Successivamente, accedi al sistema remoto utilizzando SFTP.

# sftp [email protected]
Output di esempio:
[email protected]'s password: 
Connected to 192.168.1.150.
sftp>

Verifichiamo la directory di lavoro corrente:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Qui, tecmint è la directory home. Passa alla directory tecmint e crea i file o le cartelle a tua scelta.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Limitare gli Utenti a una Directory Specifica

Nel nostro esempio precedente, abbiamo limitato gli utenti esistenti alla directory home. Ora vedremo come limitare un nuovo utente a una directory personalizzata.

Crea un Gruppo e Nuovi Utenti

Crea un nuovo gruppo sftpgroup.

# groupadd sftpgroup

Successivamente, crea una directory per il gruppo SFTP e assegna i permessi per l’utente root.

# mkdir -p /sftpusers/chroot
# chown root:root /sftpusers/chroot/

Successivamente, crea nuove directory per ciascun utente, a cui avranno pieno accesso. Ad esempio, creeremo l’utente tecmint e la sua nuova directory home con i permessi di gruppo corretti utilizzando la seguente serie di comandi.

# adduser tecmint -g sftpgroup -s /sbin/nologin
# passwd tecmint
# mkdir /sftpusers/chroot/tecmint
# chown tecmint:sftpgroup /sftpusers/chroot/tecmint/
# chmod 700 /sftpusers/chroot/tecmint/

Configura SSH per l’Accesso SFTP

Modifica o aggiungi le seguenti righe alla fine del file:

#Subsystem  	sftp	/usr/libexec/openssh/sftp-server
Subsystem sftp  internal-sftp
 
Match Group sftpgroup
   ChrootDirectory /sftpusers/chroot/
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Salva ed esci dal file. Riavvia il servizio sshd per rendere effettive le modifiche salvate.

# systemctl restart sshd
OR
# service sshd restart

È tutto, puoi controllare accedendo al tuo server SSH e SFTP remoto utilizzando i passaggi forniti sopra a Verifica l’accesso SSH e SFTP.

Stai attento che questo metodo disabiliterà l’accesso alla shell, cioè non potrai accedere alla sessione della shell del sistema remoto usando SSH. Puoi solo accedere ai sistemi remoti tramite SFTP e trasferire file da e verso i sistemi locali e remoti.

Conclusione

Ora sai come limitare le directory home degli utenti utilizzando un ambiente Chroot in Linux. Se trovi utile questa informazione, condividi questo articolo sui tuoi social network e faccelo sapere nella sezione commenti se ci sono altri metodi per limitare le directory home degli utenti.

Source:
https://www.tecmint.com/restrict-sftp-user-home-directories-using-chroot/