chrooting sftp è una funzionalità fornita dal pacchetto OpenSSH in Linux. È possibile configurare un ambiente chroot per evitare alterazioni indesiderate del sistema, inclusi caricamenti in posizioni indesiderate quando gli utenti utilizzano sftp. Quando esegui il chroot sftp per un utente specifico o per tutti gli utenti, gli utenti possono accedere solo alle loro directory home e sottodirectory sotto di esso.
Metodo 1 (da openssh nativamente)
A partire dalla versione openssh-5.x, sftp potrebbe eseguire il chroot in una directory specifica. I seguenti passaggi potrebbero implementare il chroot di openssh nativo per sftp.
1. Crea la directory jail.
# mkdir /chroot/home
2. Montalo su /home come segue:
# mount -o bind /home /chroot/home
3. Modifica /etc/ssh/sshd_config come segue:
# vi /etc/ssh/sshd_config ChrootDirectory /chroot Subsystem sftp internal-sftp
4. riavvia il servizio sshd:
# service sshd restartNota :Assicurati che la directory jail sia di proprietà di root e non possa essere scrivibile da nessun altro utente o gruppo.
Metodo 2 (usando pam_chroot)
1. Aggiungi chroot in /etc/pam.d/sshd file:
# vi /etc/pam.d/sshd session required pam_chroot.so
2. Modifica /etc/security/chroot.conf per includere la directory chroot.
# vi /etc/security/chroot.conf user /chroot_dir
3. Modifica /etc/ssh/ssh_config
# vi /etc/ssh/ssh_config Subsystem sftp /usr/libexec/openssh/sftp-server
4. Riavvia sshd per applicare la nuova configurazione:
# service sshd restart