Un saludito de antemano.
--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Hola
On Sunday 19 January 2003 06:30, David Prieto Marcos wrote:
> Necesito hacer una jaula chroot para los usuarios por ssh, para
> que no puedan salir de su jaula y andar libremente por el sistema. Por
> la poca documentacion que he encotrado sobre el tema se que en lugar de
> copiar todos los archivos y librerias necesarias en cada cuenta de
> usuario que estaria en jaulas, con mount --bind se pueden montar
> directorios ya montados del sistema en las jaulas en modo de solo
> lectura. Con ACLs se restringirian los accesos a archivos y comandos.
> Pero no se ni por donde empezar, he hecho unas pruebas pero no me
> funciona. El sshd estaria en la jaula en la que estubieran los usuarios?
> ¿Seria una jaula para todos los usuarios o una jaula por cada usuario?
> En definitiva aver si alguien me pudiera explicar un poco el temas este
> o si alguien ha montado algo parecido que me pudiera decir como.
>
Yo empezaría directamente por aquí:
http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html
> Un saludito de antemano.
un saludo
VIctor
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE+K7sREzqHF8R72ekRAnHoAJ9Zjuz+q00oyuhWz9UBPxqMC066mwCeO3UP
wVkUf6UWrt9TVCzDA28+/M8=
=x2AN
-----END PGP SIGNATURE-----
bin
dev
etc
lib
tmp
usr
En el tmp del directorio del usuario habra que meter un passwd
con los usuarios de sistema para que linux pueda reemplazar los UID de
usuario por los nombres.
Pero sigo teniendo un problema y es que para ahorrar espacio
naturalmente no voy a copiar todos los archivos y librerias necesarias
en cada home, por lo tanto monto con la opcion --bind los directorios
necesarios y uso como punto de montaje los directorios dentro del home.
Ejemplo : mount --bind /lib /home/user/lib
Montar las librerias no es problema y respecto a los ejecutables, estoy
considerando la idea de crear un directorio solamente con los
ejecutables que yo quiera y que sea el que semonte en el /bin le las
jaulas. Para ello quiero meter un script en /home/user/.ssh/rc (segun he
visto en el man de sshd) para que al conectarse el usuario se monten los
directorios dentro del home pero no consigo que se ejecute. Asi que
nuevamente admito sujerencias de como hacer que se ejecute y despues
como hacer que se desmonten una vez se acabe la conexion.
> Necesito hacer una jaula chroot para los usuarios por ssh, para
> que no puedan salir de su jaula y andar libremente por el sistema. Por
> la poca documentacion que he encotrado sobre el tema se que en lugar de
> copiar todos los archivos y librerias necesarias en cada cuenta de
> usuario que estaria en jaulas, con mount --bind se pueden montar
> directorios ya montados del sistema en las jaulas en modo de solo
> lectura. Con ACLs se restringirian los accesos a archivos y comandos.
> Pero no se ni por donde empezar, he hecho unas pruebas pero no me
> funciona. El sshd estaria en la jaula en la que estubieran los usuarios?
> ¿Seria una jaula para todos los usuarios o una jaula por cada usuario?
> En definitiva aver si alguien me pudiera explicar un poco el temas este
> o si alguien ha montado algo parecido que me pudiera decir como.
>
> Un saludito de antemano.
Efectivamente usando chroot se puede hacer que una shell
arranque tomando como directorio raiz uno de los subdirec-
torios del sistema. Esto implica que a partir de ese sub-
directorio hay que montar absolutamente todo lo necesario
para que un sistema funcione limitando la funcionalidad a
la estrictamente necesaria para los usuarios elegidos.
Tendrías que configurar los directorios (bin, dev, etc,
home, lib, tmp, var) colgando del nuevo directorio raiz y
dejando el mínimo de ficheros imprescindibles para que los
usuarios puedan funcionar.
A todos los efectos para el usuario solo existirá ese
nuevo sistema y el resto es como si no existiera pero nue-
vamente tienes que ser consciente de que el acceso a un
servicio vulnerable, o a un ejecutable stuid vulnerable
permitirán que el atacante escape de esta caja lograda con
chroot.
Entre otras consideraciones no debería quedar ni un solo
ejecutable con setuid o stegid. Sería muy largo de detallar
la configuración de un sistema de este tipo pero en caso
de dudas elimina todo lo que parezca innecesario porque
en caso de que surja la necesidad de incluirlo podrás
hacerlo más tarde sin dificultad.
Como ves tu jaula es bastante flojita. Hay que currarselo
muy bien para tapar un montón de agujeros y puede que un
tío bien preparado se te cuele por donde menos te lo piensas.
Vigila que ninguno de tus usuarios use claves de acceso
demasiado triviales. Bueno no me enrrollo más.
Un saludo
Antonio Castro
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/\ /\ Ciberdroide Informática (Tienda de Linux)
\\W// <<< http://www.ciberdroide.com >>>
_|0 0|_
+-oOOO--(___o___)--OOOo----------------------------------------------------+
| . . . . U U . . . . Antonio Castro Snurmacher aca...@ciberdroide.com |
| . . . . . . . . . . |
+()()()----------()()()----------------------------------------------------+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** |
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>> |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Por lo tanto repito ¿Flojita? :) . El unico tema que me falta
por solucionar es que el sistema monte automaticamente los directorios
dentro de la jaula al efectuarse la conexion y que los desmonte una vez
finalice esta. Se que sshd ejecuta el ~/.ssh/rc si existe este al
efectuarse la conexion. Tendria acceso de lectura para todos (como es
logico) y solo root tendria acceso de escritura sobre el. Dentro de este
archivo habria que poner el script que montaria los directorios (cosa
que no he conseguido aun) y no se si al finalizar la conexion los
directorios se desmontarian automaticamente.
Como ya dije antes, para ahorrar espacio en el sistema en lugar
de copiar todo lo necesario en cada home, uso la opcion --bind del mount
para montar "directorios" que ya existen como /lib /dev etc, en los
respectivos de las jaulas pero me falta que el .ssh/rc se ejecute para
que se monten automaticamente. Lo que tengo en el .ssh/rc de cada home
es:
if [ -d etc ] ; then
if [ -d usr/lib ] ; then mount --bind /usr/lib usr/lib ; fi
if [ -d lib ] ; then mount --bind /lib lib ; fi
if [ -d dev ] ; then mount --bind /dev dev ; fi
if [ -d bin ] ; then mount --bind /bin bin ; fi
No se si el script esta bien acabado o si hace falta el
#!/bin/bash al principio (lo he provado de todas las maneras) pero no me
funciona. Aver si alguien lo hare rular.
Un saludo.