Sftp con Rssh e Chroot su Mandriva 2007
Pubblicato da Massj il 29 Novembre 2006 alle 01:15 in Open Source
L’obiettivo è di avere account utente su mandriva 2007 che accedono via sftp solo ad alcune cartelle del file system su protocollo SFTP.
Questo si ottiene facilmente su protocollo FTP, per esempio con proFTTD, che ha la funzione nativa di chrootare gli utenti ftp. Tuttavia ho scartato il protocollo ftp per ovvi motivi di bassa sicurezza.
OpenSSH che fornisce anche un sftp-server invece non ha la funzione nativa di chroot per gli utenti sftp e così è necessario fare un bel casino per ottenere di non far gironzolare gli utenti per il file system.
Una volta installato OpenSSH e aver abilitato l’sftp (di solito lo è di default), si installa rssh, disponibile come RPM su mandriva 2007.
Si crea quindi un nuovo utente linux (o si modifica un utente esistente che si desidera chrootare), e si edita il file /etc/passwd dandogli come shell proprio rssh al posto di bash:
nomeutente:x:502:503::/home/nomeutente:/usr/bin/bash
diventa
nomeutente:x:502:503::/home/nomeutente:/usr/bin/rssh
Quindi si edita il file /etc/rssh.conf scommentando questa riga:
allowsftp
e impostando la chroot, esempio:
chrootpath = /percorso-che-si-desidera-come-root-del filesystem
Fatto questo viene impedito l’accesso shell via ssh all’utente e ne viene consentito solo l’accesso via sftp. Accedendo però via sftp l’utente si trova un filesystem vuoto senza cartelle. Gli va ricreato un piccolo ambiente con librerie e altri file proprio nella chroot.
Questo compito viene assolto da uno script, mkchroot.sh, che però misteriosamente non è incluso nell’RPM di mandriva 2007.
Lo si può recuperare dall’RPM di un’altra distribuzione, per esempio questo.
Lo si scarica, ma anziché installarlo lo si apre come archvio e si estrae il file mkchroot.sh nella cartella:
/usr/share/doc/rssh-2.3.2/
e magari lo si rende eseguinbile con un
chmod 755 (eseguito come root)
All’interno del file, vanno modificati i percorsi di alcuni file, ovvero i riferimenti a rssh e openssh devono diventare così:
sftp_server_path=”/usr/lib/ssh/sftp-server”
rssh_path=”/usr/bin/rssh”
chroot_helper_path=”/usr/lib/rssh_chroot_helper”
Quindi si lancia lo script:
./mkchroot.sh /percorso-che-si-desidera-come-root-del filesystem
che crea tutta una serie di cartelle e di file proprio nella chroot.
Fatto questo, va copiata nella chroot l’intera cartella /lib/ di sistema. Metodo grezzo, ma non facendo così poi l’accesso non funziona.
Da ultimo, se provando ad accedere in sftp con l’utente chrootato si ottiene un connection close, lanciare questo comando:
mknod -m 666 /percorso-che-si-desidera-come-root-del filesystem/dev/null c 1 3
A questo punto l’utente chrootato può accedere via sftp senza andare a rompere i coglioni in giro per il file system.
Ringrazio caldamente me stesso per aver trovato questa soluzione e tutti quelli (tanti) di cui ho raccolto i suggerimenti a pezzi, ma nessuno aveva a che fare con Mandriva 2007.




























modesto, come sempre…eh?
deb
A questo punto l’utente chrootato può accedere via sftp senza andare a rompere i coglioni in giro per il file system.
bella storia. Non ho idea di cosa voglia dire ma bella storia. Bravo Massj.
Detta così sembra che hai compiuto chissà quale impresa…
Per me questo post è arabo
Alex: Beh, dal mio punto di vista ho compiuto un’impresa, sono riuscito a far funzionare una cosa per nulla facile.
Forum e newsgroup sono pieni di gente che ha lo stesso problema, cioè chrootare ssh/sftp.
Sono i classici post lunghi tre chilometri con la spiegazione della configurazione e degli errori a cui nessuno o quasi risponde.
M.: il concetto è molto semplice. Una persona viene a casa tua e vuoi farla entrare solo in soggiorno ed evitare che giri per le altre stanze ma tu non hai le porte. Questo sistema fa questo, siccome le stanze non hanno porte, le rende invisibili, così nessuno ci va.
amore, complimenti..hanno pubblicato la tua scoperta nella guida di Mandriva!
Lo sapevo: sei un genio dell’informatica, altro che Bill Gates!
ti amo
deb
Peccato, fossi stato Bill Gates ora saremmo su una spiaggia tropicale.
mi sento un idiota. non capisco nulla del tuo testo informatico. ad esempio: cosa vuol dire 2007? e file? e percorsi?
mah.
eh, sapessi di quante cose sono ignorante io…
ciao, io uso debian è ho risolto con debootstrap e libpam
l’unico problema che mi è rimasto è l’sftp che non funziona ora provo copiando nell’ambiente chrooted anche le librerie associate…. grazie per lo spunto
Prego salvatore, molto probabilmente si tratta delle librerie non accessibili, di fatto l’utente può accedere solo a quello che c’è nella chroot, in bocca al lupo!