Red Hat Enterprise Linux se entrega con dos servidores FTP diferentes:
Red Hat Content Accelerator — 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 Red Hat Content Accelerator, 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 distribuído 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 (encontrado 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 en una prisión chroot — Siempre que sea posible, los procesos se ejecutan desde un root diferente (chroot) en el directorio compartido; este directorio es considerado una prisión chroot.
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 lo más cercano posible a 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 relativamente manejar 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 prisión chroot. — Debido a que estos procesos hijo no tienen privilegios y solamente acceden al directorio que está siendo compartido, cualquier proceso fallido solamente permitirá al atacante acceder a los archivos compartidos.