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,
- tecmint – nome utente del sistema remoto.
- 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> pwd Remote working directory: / sftp> ls tecmint
Qui, tecmint
è la directory home. Passa alla directory tecmint e crea i file o le cartelle a tua scelta.
sftp> cd tecmint Remote working directory: / sftp> 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/