Risposte:
SSH Supporta il chrooting nativo di un utente SFTP. Hai solo bisogno di fornire
ChrootDirectory
Nel tuo file di configurazione sshd e riavvia sshd.
Se stai solo facendo sftp, non devi fare altro. Sfortunatamente, questo non funziona per SCP. Per la shell interattiva, dovrai copiare i binari e i nodi / dev nel chroot.
Un esempio di configurazione, per un solo utente, testuser:
Match User testuser
ChrootDirectory /home/testuser
ForceCommand internal-sftp
Alcune cose da tenere presenti, dalla pagina man sshd_config:
Tutti i componenti del percorso devono essere directory di proprietà root che non lo sono scrivibile da qualsiasi altro utente o gruppo. Dopo il chroot, sshd (8) cambia il directory di lavoro nella home directory dell'utente.
Cerca ChrootDirectory in man sshd_config per ulteriori informazioni.
Subsystem sftp /usr/lib/openssh/sftp-server
linea inSubsystem sftp internal-sftp -f AUTH -l VERBOSE
Match
sezione.
Un chroot è un metodo ragionevolmente semplice. Poiché il sistema operativo dispone già di questa funzionalità di sicurezza, gli autori di demoni tendono a non tentare di reimplementarla.
Rssh viene fornito con una guida per l'impostazione di un carcere chroot. È nel CHROOT
file nella distribuzione di origine. In poche parole, devi avere:
/usr/bin/scp
, /usr/libexec/openssh/sftp-server
,/usr/bin/rssh_chroot_helper
{/usr,}/lib/lib*.so.[0-9]
) che usano, allo stesso modo copiate/etc/passwd
(molto probabilmente non una copia ma derivata dal master)/dev/null
, /dev/tty
, e anche una /dev/log
presa per la registrazione (e avete bisogno di informare il demone di syslog per l'ascolto su quel socket)Suggerimento extra che non è nella documentazione di rssh: se hai bisogno di alcuni file per essere accessibili in un jroot chroot, puoi usare bindfs o Linux mount --bind
per creare gerarchie di directory esterne al di fuori del jail. bindfs
consente alla directory rimontata di disporre di autorizzazioni più restrittive, ad esempio di sola lettura. (A mount --bind
meno che non si applichi una patch del kernel; Debian ha incluso questa patch da East Lenny ma la maggior parte delle altre distribuzioni non lo hanno dal 2011.)
Potresti voler guardare scponly (o più recentemente, rssh ); è essenzialmente una shell di login che può essere usata solo per avviare scp o il sottosistema sftpd. Nella scponlyc
variante esegue un chroot prima di attivare il sottosistema in questione.