Como enjaular usuarios con wu-ftpd
Yo quize enjaular a los usuarios en un servidor web, entonces de esa
forma no podrian dejar sus directorios home. Me dijieron que podria hacer esto con el ftpd standard de FreeBSD, pero que tendria que, recompilarlo con INTERNAL_LS="YES".
No tuve suerte, aun asi luego de darle cvsup al source. EN vez de seguir peleando con el standard ftpd, decidi intentar wu-ftpd. Primero que todo, wu-ftpd tenia una cadena de exploits, asi que asegurate
de checkear el sitio oficial para ver cualquier tipo de avisos sobre seguridad y actualizaciones del mismo. Tambien dale cvsup a tus ports para tener las ultimas verciones y patches del puerto de wu-ftpd.
Yo pensaba que wu-ftpd me daria instrucciones con detalles acerca de como instalarlo con las opciones correctas, pero se ve que wu-ftpd esta en el proceso de mover a autoconf. Esto es lo que funciono para
mi. Tenes que hacer el make con la opcion --enable -ls para que pueda listar los archivos del usuario una vez que este con chroot. Podes bajar el tarball o darle untar, luego cd al directorio. Typea ./configure
--enable-ls para comenzar. Luego hice un ./build fbs para hacerlo para FreeBSD. Luego manualmente instale el binario haciendo "cd" en /bin y copiandolo el ftpd a /usr/local/libexec.
Ahora vas
a tener que hacer que el FreeBSD llame a wu-ftpd en vez del al ftpd standard. Edita /etc/inetd.conf y agrega esta linea
ftp stream tcp nowait root /usr/local/libexec/ftpd ftpd -a -L
(esto quizas sea diferente dependiendo de tcp wrappers y demas)
Ahora vas a tener que typear kill -HUP 'cat /var/run/inetd.pid' para que el sistema use el nuevo inetd.conf ya editado anteriormente.
El archivo /usr/local/etc/ftpaccess es muy importante para poder darle
chroot a los usuarios. Tambien podes configurar muchos aspectos del ftpd en este archivo, y creo que debreias gastar algo de tiempo libre leyendo el man de ftpaccess, pero solamente ahora lo
que queremos es darle chroot a los usuarios. Deberias buscar un ftpaccess.sample en /usr/local/etc para comenzar..
Necesitas una linea en /usr/local/etc/ftpaccess que sea asi
guestuser <usuario o grupo>
Esto le dice a el wu-ftpd que trate a los usuarios listeados o miembros de grupos como guests y darles chroot a la vez.
En tu archivo passwd necesitas que el home dir
del usuario termine con una barra /. Tambien podes especificar el directorio donde queres que vallan luego de logearse, cualquier otro que el que este en su home dir por default.
Un ejemplo:
ftptest:*:1001:1001:ftptest:/usr/home/ftptest/./:/etc/ftponly
Este comando va a darle chroot al usuario al directorio /usr/home/ftptest. No va a poder ir mas lejos que /usr/home/ftptest.
ftptest:*:1001:1001:ftptest:/usr/home/ftptest/./public_html:/etc/ftponly
Este va a darle chroot al usuario a /usr/home/ftptest pero lo va a llevar a /usr/home/ftptest/public_html
Esto es util para un servidor web, hace que el usuario no tenga que moverse entre directorios, y facilita la tarea de solo subir paginas web.
Paginas para mirar mas informacion: http://www.wu-ftpd.org
http://www.landfield.com/wu-ftpd
Tambien, no olvides ver las paginas man. Cualquier consulta/comentario puede ser enviado a technoid@defcon1.org
|