Attivare l’accesso SSH in chroot su Debian Lenny

Innanzitutto due parole sul chroot. Attivare il chroot su una connessione ssh, significa costringere un utente a restare all’intero della sua home directory senza porter andare a “spasso” sul server.
In pratica viene creato un ambiente contenente le librerie ed i programmi necessari all’utente, che sarà limitato ad operazioni solo all’interno di questo ambiente.
Dalla versione 4.8 di openssh è possibile attivare questa funzionalità sfruttando una direttiva interna chiamata ChrootDirectory.

Ipotizziamo di avere un utente chiamato test (gruppo test) per cui vogliamo attivare il chroot. Basta modificare il file /etc/ssh/sshd_config, aggiungendo:

e poi riavviare il server ssh con:
/etc/init.d/ssh reload

Per attivare anche sftp sembre per l’utente test (gruppo test), bisogna inserire in  /etc/ssh/sshd_config:

A questo punto bisogna inserire nella root directory dell’utente i necessari files per far funzionare il chroot. Piuttosto che fare l’operazione a mano, vi segnalo un semplice script chiamato ssh-scp-sftp-chroot-jail (mirror locale forse non aggiornato) che consente di automatizzare questo processo, che altrimenti avremmo dovuto fare manualmente, cercando le librerie necessarie alla bash (con il comando ldd /bin/bash) e creare alcuni devices (es. /dev/null con mknod).
Scarichiamo lo script:

ed utilizziamolo:

dove test sarà chiaramente l’utente per cui attivare il chroot

Attenzione: è buona norma modificare i permessi a 700 della home directory dell’utente per cui si è attivato il chroot .

Nota: nel caso sia necessario gestire opzioni particolari (es transfer rate in upload/download, limitare il numero di connessioni massime e per IP) vi consiglio di visionare http://mysecureshell.sourceforge.net/

Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂



Taggato su: ,

Commenta