vsftpd y el error «500 OOPS: Vsftpd: Refusing to Run With Writable Root Inside Chroot»
Hoy vamos a ver cómo corregir un «famoso» y recurrente error que produce el servidor de FTP vsftpd. Me ha pasado en Debian, y les comparto la solución que me fue útil.
A muchos les habrá pasado de recibir, en el server vsftp, el siguiente mensaje de error al tratar de iniciar login:
500 OOPS: Vsftpd: Refusing to Run With Writable Root Inside Chroot () Login failed.El mensaje hace referencia a que no puede iniciar el servicio cuando estamos haciendo chroot a nuestros usuarios locales… en palabras simples, cuando tratamos de enjaular a los usuarios en sus directorios /home para que no vean el resto del sistema de archivos.
A mi me ha ocurrido esto en la versión 2.3.5-10~update.1 de vsftp server en un Debian Wheezy (7.5 precisamente) con kernel 3.2.0-4-amd64.
El error no se produce si deshabilitamos la característica de chroot, pero claro, los usuarios verían todo el filesystem, y eso no es bueno, no no 🙂
El error fue documentado y corregido en la versión 3.0 en adelante de vsftpd… el problema lo tenemos quienes mantenemos servidores Debian Wheezy, un Debian old-estable, puesto que en los repositorios de Debian 7 vsftpd llega a su versión 2.3.5 🙁
Para permitir el chroot de usuarios locales, y además lograr que puedan loguarse, es necesario entonces parcharlo, instalando una versión corregida.
Podemos descargar la versión corregida por la gente de The Frontier Group simplemente agregando su repositorio Debian a nuestro sistema:
echo "deb http://ftp.cyconet.org/debian wheezy-updates main non-free contrib" >> /etc/apt/sources.list.d/wheezy-updates.cyconet.list
Luego actualizamos la lista de paquetes:
aptitude update
E instalamos vsftpd desde el nuevo repositorio:
aptitude install -t wheezy-updates debian-cyconet-archive-keyring vsftpd
Por último, agregamos, ahora sí, la opción allow_writeable_chroot a nuestro archivo de configuración:
echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf
y reiniciamos, como es debido, el servicio, para cargar los cambios:
/etc/init.d/vsftpd restart
Y luego, nuestros usuarios podrán loguearse, y tendrán chroot… y todos felices 🙂
Espero les sea de utilidad!
Cualquier inconveniente, consulta o sugerencia saben que pueden comentar este artículo! Así los aportes de cada uno quedan disponibles para la comunidad!