Red Hat Enterprise Linux se entrega con dos servidores FTP diferentes:
Acelerador de Contenidos Red Hat — Un servidor Web basado en el kernel que ofrece un servidor web y servicios FTP de alto rendimiento. Puesto que la velocidad es su objetivo principal de diseño, su funcionalidad es limitada y solamente se ejecuta como FTP anónimo. Para más información sobre la configuración y administración del Acelerador de Contenidos Red Hat, consulte la documentación disponible en línea en http://www.redhat.com/docs/manuals/tux/.
vsftpd — un demonio FTP rápido y seguro, preferido para Red Hat Enterprise Linux. El resto de este capítulo se enfoca en vsftpd.
El demonio FTP vsftpd (o Very Secure FTP Daemon) está diseñado desde la base para ser rápido, estable y lo más importante, seguro. Su habilidad para manejar grandes números de conexiones de forma eficiente y segura es lo que hace que vsftpd sea el único FTP independiente distribuido con Red Hat Enterprise Linux.
El modelo de seguridad utilizado por vsftpd tiene tres aspectos principales:
Clara separación de procesos privilegiados y sin privilegios — Procesos separados manejan tareas diferentes y cada uno de estos procesos se ejecuta con los privilegios mínimos requeridos para la tarea.
Las tareas que requieren altos privilegios son manejadas por procesos con los mínimos privilegios necesarios — Influenciando las compatibilidades encontradas en la biblioteca libcap, las tareas que usualmente requieren privilegios de superusuario se pueden ejecutar de forma más segura desde un proceso menos privilegiado.
La mayoría de los procesos se ejecutan enjaulados en un ambiente chroot — Siempre que sea posible, se cambia la raíz de los procesos al directorio compartido; este directorio se considera luego como la jaula chroot. Por ejemplo, si el directorio /var/ftp/ es el directorio compartido principal, vsftpd reasigna /var/ftp/ al nuevo directorio raíz, conocido como /. Esto previene actividades maliciosas de cualquier hacker potencial en algún directorio que no estén por debajo del nuevo directorio root.
El uso de estas prácticas de seguridad tiene el efecto siguiente en cómo vsftpd trata con las peticiones:
El proceso padre se ejecuta con el mínimo de privilegios requerido — El proceso padre calcula dinámicamente el nivel de privilegios requerido para minimizar el nivel de riesgos. Los procesos hijo manejan la interacción directa con los clientes FTP y se ejecutan casi sin ningún privilegio.
Todas las operaciones que requieren altos privilegios son manejadas por un pequeño proceso padre — Similar a Servidor Apache HTTP, vsftpd lanza procesos hijos sin privilegios para manejar las conexiones entrantes. Esto permite al proceso padre privilegiado, ser tan pequeño como sea posible y manejar relativamente pocas tareas.
El proceso padre no confia en ninguna de las peticiones desde procesos hijos sin privilegios — Las comunicaciones con procesos hijos se reciben sobre un socket y la validez de cualquier información desde un proceso hijo es verificada antes de proceder.
La mayor parte de la interacción con clientes FTP la manejan procesos hijo sin privilegios en una jaula chroot. — Debido a que estos procesos hijo no tienen privilegios y solamente tienen acceso al directorio que está siendo compartido, cualquier proceso fallido solamente permitirá al atacante acceder a los archivos compartidos.