|
|
Cómo configurar vsftpd (Very Secure FTP Daemon).Autor: Joel Barrios DueñasCorreo electrónico: darkshram en gmail punto com Sitio de Red: http://www.alcancelibre.org/ Jabber ID: darkshram@jabber.org Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
Introducción.Acerca del protocolo FTP.FTP (File Transfer Protocol) o Protocolo de Transferencia de Archivos (o ficheros informáticos) es uno de los protocolos estándar más utilizados en Internet siendo el más idóneo para la transferencia de grandes bloques de datos a través de redes que soporten TCP/IP. El servicio utiliza los puertos 20 y 21, exclusivamente sobre TCP. El puerto 20 es utilizado para el flujo de datos entre cliente y servidor. El puerto 21 es utilizando para el envío de órdenes del cliente hacia el servidor. Prácticamente todos los sistemas operativos y plataformas incluyen soporte para FTP, lo que permite que cualquier computadora conectada a una red basada sobre TCP/IP pueda hacer uso de este servicio a través de un cliente FTP. URL: http://tools.ietf.org/html/rfc959 Acerca del protocolo FTPS.FTPS (también referido como FTP/SSL) es la forma de designar diferentes formas a través de las cuales se pueden realizar transferencias seguras de ficheros a través de FTP utilizando SSL o TLS. Son mecanismos muy diferentes a los del protocolo SFTP (SSH File Transfer Protocol). Existen dos diferentes métodos para realizar una conexión SSL/TLS a través de FTP. La primera y más antigua es a través del FTPS Implícito (Implicit FTPS), que consiste en cifrar la sesión completa a través de los puertos 990 (FTPS) y 998 (FTPS Data), sin permitir negociación con el cliente, el cual deberá conectarse directamente al servidor FTPS con el inicio de sesión SSL/TLS. El segundo método, que es el recomendado por el RFC 4217 y el utilizado por Vsftpd, es FTPS Explícito (Explicit FTPS o FTPES), donde el cliente realiza la conexión normal a través del puerto 21 y permitiendo negociar opcionalmente una conexión TLS. Acerca de RSA.RSA, acrónimo de los apellidos de sus autores, Ron Rivest, Adi Shamir y Len Adleman, es un algoritmo para el ciframiento de claves públicas que fue publicado en 1977, patentado en EE.UU. en 1983 por el el Instituto Tecnológico de Michigan (MIT). RSA es utilizado en todo el mundo para los protocolos destinados para el comercio electrónico. URL: http://es.wikipedia.org/wiki/RSA Acerca de OpenSSL.OpenSSL es una implementación libre, de código abierto, de los protocolos SSL (Secure Sockets Layer o Nivel de Zócalo Seguro) y TLS (Transport Layer Security, o Seguridad para Nivel de Transporte). Está basado sobre el extinto proyecto SSLeay, iniciado por Eric Young y Tim Hudson, hasta que éstos comenzaron a trabajar para la división de seguridad de EMC Corporation. Acerca de X.509.X.509 es un estándar ITU-T (estandarización de Telecomunicaciones de la International Telecommunication Union ) para infraestructura de claves públicas (PKI, o Public Key Infrastructure). Entre otras cosas, establece los estándares para certificados de claves públicas y un algoritmo para validación de ruta de certificación. Este último se encarga de verificar que la ruta de un certificado sea válida bajo una infraestructura de clave pública determinada. Es decir, desde el certificado inicial, pasando por certificados intermedios, hasta el certificado de confianza emitido por una Autoridad Certificadora (CA, o Certification Authority). URL: http://es.wikipedia.org/wiki/X.509Acerca de vsftpd.Vsftpd (Very Secure FTP Daemon) es un equipamiento lógico utilizado para implementar servidores de archivos a través del protocolo FTP. Se distingue principalmente porque sus valores predeterminados son muy seguros y por su sencillez en la configuración, comparado con otras alternativas como ProFTPD y Wu-ftpd. Actualmente se presume que vsftpd es quizá el servidor FTP más seguro del mundo. URL: http://vsftpd.beasts.org/ Equipamiento lógico necesario.Instalación a través de yum.Si utiliza CentOS 4 o White Box Enterprise Linux 4, solo se necesita realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario:
Instalación a través de up2date.Si se utiliza Red Hat™ Enterprise Linux 4, solo bastará realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario:
Ficheros de configuración.
Procedimientos.SELinux y el servicio vsftpd.SELinux controla varias funciones de el servicio vsftpd incrementando el nivel de seguridad de éste. Para permitir que los usuarios anónimos puedan realizar procesos de escritura sobre el sistema de ficheros, utilice el siguiente mandato:
Para hacer que SELinux permita al servicio vsftpd acceder a los usuarios locales a sus directorios de inicio, utilice el siguiente mandato:
Si se necesita permitir acceder con las cuentas de usuarios locales a sus directorio de inicio de éstos, se debe habilitar la política ftp_home_dir:
Para permitir que el servicio vsftpd pueda hacer uso de sistemas de ficheros remotos a través de CIFS (Samba) o NFS, y que serán utilizados para compartir a través del servicio, utilice cualquiera de los siguientes mandatos:
Para que SELinux permita al servicio vsftpd funcionar normalmente, haciendo que todo lo anteriormente descrito en esta sección pierda sentido, utilice el siguiente mandato:
Fichero /etc/vsftpd/vsftpd.conf.Utilice un editor de texto y modifique el fichero /etc/vsftpd/vsftpd.conf. A continuación analizaremos los parámetros a modificar o añadir, según se requiera para necesidades particulares. Parámetro anonymous_enable.Se utiliza para definir si se permitirán los accesos anónimos al servidor. Establezca como valor YES o NO de acuerdo a lo que se requiera.
Parámetro local_enable.Es particularmente interesante si se combina con la función de jaula (chroot). Establece si se van a permitir los accesos autenticados de los usuarios locales del sistema. Establezca como valor YES o NO de acuerdo a lo que se requiera.
Parámetro write_enable.Establece si se permite el mandato write (escritura) en el servidor. Establezca como valor YES o NO de acuerdo a lo que se requiera.
Parámetro anon_upload_enableEspecífica si los usuarios anónimos tendrán permitido subir contenido al servidor. Por lo general no es una función deseada, por lo que se acostubra desactivar ésta.
Parámetro anon_mkdir_write_enableEspecífica si los usuarios anónimos tendrán permitido crear directorios en el servidor. Al igual que la anterior, por lo general no es una función deseada, por lo que se acostumbra desactivar ésta.
Parámetro ftpd_banner.Este parámetro sirve para establecer el banderín de bienvenida que será mostrado cada vez que un usuario acceda al servidor. Puede establecerse cualquier frase breve que considere conveniente.
Estableciendo jaulas para los usuarios: parámetros chroot_local_user y chroot_list_file.De modo predeterminado los usuarios del sistema que se autentiquen tendrán acceso a otros directorios del sistema fuera de su directorio personal. Si se desea recluir a los usuarios a solo poder utilizar su propio directorio personal, puede hacerse fácilmente con el parámetro chroot_local_user que habilitará la función de chroot() y los parámetros chroot_list_enable y chroot_list_file para establecer el fichero con la lista de usuarios que quedarán excluidos de la función chroot().
Con lo anterior, cada vez que un usuario local se autentique en el servidor FTP, solo tendrá acceso a su propio directorio personal y lo que este contenga. No olvide crear el fichero /etc/vsftpd/vsftpd.chroot_list, ya que de otro modo no arrancará el servicio vsftpd.
Control del ancho de banda.Parámetro anon_max_rate.Se utiliza para limitar la tasa de transferencia en bytes por segundo para los usuarios anónimos, algo sumamente útil en servidores FTP de acceso público. En el siguiente ejemplo se limita la tasa de transferencia a 5 Kb por segundo para los usuarios anónimos:
Parámetro local_max_rate.Hace lo mismo que anon_max_rate, pero aplica para usuarios locales del servidor. En el siguiente ejemplo se limita la tasa de transferencia a 5 Kb por segundo para los usuarios locales:
Parámetro max_clients.Establece el número máximo de clientes que podrán acceder simultáneamente hacia el servidor FTP. En el siguiente ejemplo se limitará el acceso a 5 clientes simultáneos.
Parámetro max_per_ip.Establece el número máximo de conexiones que se pueden realizar desde una misma dirección IP. Tome en cuenta que algunas redes acceden a través de un servidor intermediario (Proxy) o puerta de enlace y debido a esto podrían quedar bloqueados innecesariamente algunos accesos. en el siguiente ejemplo se limita el número de conexiones por IP simultáneas a 5.
Soporte SSL/TLS para VFSTPD.VSFTPD puede ser configurado fácilmente para utilizar los protocolos SSL (Secure Sockets Layer o Nivel de Zócalo Seguro) y TLS (Transport Layer Security, o Seguridad para Nivel de Transporte) a través de un certificado RSA. Acceda al sistema como el usuario root. Se debe crear el directorio donde se almacenarán los certificados para todos los sitios SSL. El directorio, por motivos de seguridad, debe ser solamente accesible para el usuario root.
A fin de mantener cierta organización, y un directorio dedicado para cada sitio virtual SSL, es conveniente crear un directorio específico para almacenar los certificados de cada sitio virtual SSL. Igualmente, por motivos de seguridad, debe ser solamente accesible para el usuario root.
Acceder al directorio que se acaba de crear.
El certificado se puede generar fácilmente utilizando el siguiente mandato, donde se generará un certificado con estructura X.509, algoritmo de ciframiento RSA de 1024 kb, sin Triple DES, la cual permita iniciar normalmente, sin interacción alguna, al servicio >vsftpd, con una validez por 730 días (dos años) en el fichero /etc/ssl/mi-dominio.org/vsftpd.pem.
Lo anterior solicitará se ingresen varios datos:
La salida devuelta sería similar a la siguiente:
El fichero de certificado debe tener permisos de solo lectura para el usuario root.
Finalmente se añaden las siguiente líneas al final del fichero /etc/vsftpd/vsftpd.conf:
Los clientes recomendados para acceder a FTPS son LFTP (compilado con la opción --with-openssl, y ejecutando conla opción -e 'set ftp:ssl-force true'), Filezilla 3.3.x (configurar conexión como FTPES - FTP sobre TLS/SSL explícito) y WinSCP. Clientes como FireFTP o gFTP tienen roto el soporte para FTP sobre TLS/SSL, por lo que por el momento es preferible evitarlos. Iniciar, detener y reiniciar el servicio vsftpd.A diferencia de otros servicios FTP como Wu-ftpd, el servicio vsftpd no requiere configurarse para trabajar sobre demanda, aunque tiene dicha capacidad. Por lo tanto no depende de servicio xinetd. La versión incluida en distribuciones como CentOS 5, Red Hat™ Enterprise Linux 5 y White Box Enterprise Linux 5 puede iniciar, detenerse o reiniciar a través de un guión similar a los del resto del sistema. Para iniciar por primera vez el servicio, utilice:
Para hacer que los cambios hechos a la configuración surtan efecto, utilice:
Para detener el servicio, utilice:
Agregar el servicio al arranque del sistema.Para hacer que el servicio de vsftpd esté activo con el siguiente inicio del sistema, en todos los niveles de corrida (2, 3, 4, y 5), se utiliza lo siguiente:
Modificaciones necesarias en el muro cortafuegos.Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo Shorewall, es necesario abrir los puerto 20 y 21 por TCP (FTP-DATA y FTP, respectivamente). Las reglas para el fichero /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente:
Adicionalmente, sí se va a utilizar FTPS, el muro cortafuegos debe estar abierto para todos los puertos a partir del 30000, debido a que la implementación de
|
Comentarios Recientes