[eside-ghost] debate tecnico sobre chroot, ssh, shell limitada, ...
Eduardo González de la Herrán
eduardo.gonzalez en nht-norwick.net
Mie Mayo 17 18:28:03 CEST 2006
Aupa!!
He estado montando lo que comenté el otro día de accesos ssh (realmente
sólo necesitaba sftp) donde el usuario esté chrooteado y me he
encontrado con 2 métodos diferentes... quería comentarlos para ver qué
pegas podíais ver al segundo de ellos, ya que es muy sencillo de montar
y utilizar...
1) El primero de ellos es el típico yo creo: Parchear el ssh (nota: para
debian sarge hay un paquete .deb ([1]) que tira perfecto), y en
el /etc/passwd a los usuarios se les pone el típico hack "/./" en el
directorio donde el demonio ssh hará el chroot.
Para cada usuario chrooteado tendremos que generarle la jaula de manera
apropiada... esto me parece lo más coñazo de este método si no
tuvieramos un script o algo que nos lo generara de forma sencilla.
2) El segundo método consiste en utilizar un shell script ([2] y [3])
que ha hecho un pavo, al que mandandole 3 parametros (nombre del
usuario, nombre que dar a la shell y directorio donde chrootear) crea el
usuario, una shell especial para el usuario y genera todo el esqueleto
para que el chroot funcione adecuadamente.
El script es bastante guapo, porque dependiendo de las cosas que quieras
permitir (pones las aplicaciones que quieres que pueda ejecutar el
usuario en una variable) mete unas cosas u otras (hace bucles con ldd y
la mofa, muy guapo).
La shell del usuario edu3 sería algo así...
debian:~/scripts# cat /bin/shell-edu3
#!/bin/sh
/usr/bin/sudo /usr/sbin/chroot /home/jail-edu3 /bin/su - $USER "$@"
Por lo que se basa en ejecutar con sudo el comando chroot para su propio
directorio... sobre esto es lo que quería hablar.... (por supuesto el
script ha metido al usuario en /etc/sudoers ).
¿Formas de hackear esa shell? (con la "$@"...)
Sin más, si esta forma os parece segura es super fácil generar usuarios
chrooteados con su entorno con el script, incluso se me ocurre que para
chrootear procesos como bind o el que fuera se podría hacer así, siempre
que se metiera en la jaula todo lo necesario...
Nu se, a ver si le encontráis las cosquillas al sudo... o al script (muy
guapo, echadle un vistazo...)
Saludos!!
Ender
------------
[1] wget http://debian.home-dn.net/sarge/ssh/ssh_3.8.1p1-8.sarge.4
+chroot3.8.1p1_i386.deb
[2] y [3]
http://www.fuschlberger.net/programs/ssh-scp-chroot-jail/make_chroot_jail.sh
http://www.fuschlberger.net/programs/ssh-scp-chroot-jail/
---------
--
Eduardo González de la Herrán
NHT-Norwick
Tel: +34 944 355 440
e-Mail: egonzalez en nht-norwick.net
Más información sobre la lista de distribución eside-ghost