Chroot Jail per OpenSSH
Avete bisogno di consentire l’accesso via ssh sul vostro server ad un utente ma siete intimoriti dal fatto che in qualche modo sia in grado di effettuare una scalata di privilegi fino all’utente root? Creando un accesso ssh in jail sara’ possibile evitare che cio’ accada!
Per la creazione del chroot jail utilizzeremo questo script
E’ necessario eseguirlo come utente root e che siano installati sul sistema questi comandi:
which,chroot,sudo,dirname,awk
Vediamo adesso come creare un utente di nome ‘luca’ e configurarlo in jail:
1) Creiamo l’utente
adduser luca
2) Creiamo e configuriamo il jail
chmod 755 ./make_chroot_jail.sh
./make_chroot_jail.sh luca
N.B. Verra’ modificata la home dell’utente che puntera’ in /home/jail/home/luca quindi fate attenzione se state lavorando con un utente che ha dati nella propria home
A questo punto non vi resta che collegarvi via ssh.
La struttura del jail e’ contenuta in /home/jail, dove troverete le librerie, i binari che l’utente puo’ eseguire, ecc.
Di default e’ concesso un set minimale di comandi, c’e’ installato solamente:
bash cp ls mkdir mv rm rmdir sh su unix_chkpwd dircolors groups id scp ssh
Vediamo quindi come poter aggiungerne di nuovi. Per far cio’ dobbiamo copiare nel jail sia i binari che le librerie utilizzate dall’applicazione. Per visualizzare le librerie da cui dipende un binario si utilizza ‘ldd’. Nell’esempio di seguito viene aggiunto “gzip” al nostro jail:
Si vede quali librerie utilizza gzip
root@www.lucaercoli.it# ldd /bin/gzip
linux-vdso.so.1 => (0×00007fff689fe000)
libc.so.6 => /lib/libc.so.6 (0×00007f2760300000)
/lib64/ld-linux-x86-64.so.2 (0×00007f2760653000)
/lib64/newlibrary.so.2 (0×00007f2760653fff)
Se non sono gia’ presenti nel jail si copiano:
N.B. linux-vdso.so.1 su amd64 e’ una libreria virtuale parte del kernel quindi non dobbiamo preoccuparci di copiarla
libc.so.6 e’ gia’ presente in /home/jail/lib/libc.so.6
/lib64/ld-linux-x86-64.so.2 e’ gia’ presente in /home/jail/lib64/ld-linux-x86-64.so.2
/lib64/newlibrary.so.2 dovremo copiarla semplicemente con
cp /lib64/newlibrary.so.2 /home/jail/lib64/
Adesso non rimane che copiare il binario ‘gzip’ nel jail:
cp /bin/gzip /home/jail/bin/


