Cómo configurar pure-ftpd.

Autor: Joel Barrios Dueñas
Correo 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

© 1999-2014 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción.

Acerca del protocolo FTP.

FTP (File Transfer Protocol) o Protocolo de Transferencia de Archivos (o archivos 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 de pure-ftpd.

Pure-ftpd es un equipamiento lógico para servidor FTP originalmente creado por Arnt Gulbrandsen, miembro de Troll Tech, responsables de la biblioteca Qt, base de KDE. A pesar de su escasa popularidad, se distingue de otros proyectos porque ha tenido como objetivos el mantener el servicio con poco consumo de recursos, no utiliza llamadas de mandatos externos (origen de la mayoría de los problemas de seguridad en este tipo de equipamiento lógico), cumple con los estándares para el protocolo FTP, es fácil de instalar y configurar, es amistoso con el usuario y muy seguro.

URL: http://www.pureftpd.org/

Equipamiento lógico necesario.

Instalación a través de yum.

Pure-ftpd no está incluido en la instalación estándar de CentOS 5, Red Hat™ Enterprise Linux 5 ni White Box Enterprise Linux 5. Está disponible para dichos sistemas operativos utilizando el siguiente almacén Yum, mantenido por Alcance Libre.

[AL-Server]
name=AL Server para Enterprise Linux $releasever
mirrorlist=http://www.alcancelibre.org/al/el$releasever/al-server
gpgcheck=1
gpgkey=http://www.alcancelibre.org/al/AL-RPM-KEY

Una vez configurado lo anterior, si utiliza CentOS 5, Red Hat™ Enterprise Linux 5 o White Box Enterprise Linux 5, solo se necesita realizar lo siguiente para instalar o actualizar el equipamiento lógico necesario:

yum -y install pure-ftpd

Procedimientos.

Archivo de configuración /etc/pure-ftpd/pure-ftpd.conf

Los valores predeterminados del archivo /etc/pure-ftpd/pure-ftpd.conf hacen que el servicio funcione sin necesidad de cambio alguno y además lo haga de una forma segura. sin embargo existen varios parámetros que vale la pena conocer.

Parámetro MaxClientsNumber.

Establece el número máximo de usuarios conectados de forma simultánea. El valor predeterminado es 50. Puede modificarse de acuerdo a un propósito en particular y disponibilidad de ancho de banda. en el ejemplo a continuación, se limita el número de usuarios simultáneos a 25.

MaxClientsNumber            25

Parámetro MaxClientsPerIP.

establece el número máximo de conexiones desde una misma dirección IP. Considerando que muchos usuarios pudieran acceder desde un servidor intermediario (proxy), lo cual significa que lo harían con una misma dirección IP, el valor predeterminado de 8 puede ser modificado de acuerdo al criterio del administrador. En el ejemplo a continuación, se limita el número de conexiones desde una misma dirección IP a 5.

MaxClientsPerIP             5

Parámetro DisplayDotFiles.

Establece si se permitirá mostrar los archivos cuyo nombre inicia con un punto (archivos ocultos) cuando el usuario envíe un mandato de listado con la opción -a. En la mayoría de los casos, no es conveniente permitir mostrar los archivos ocultos.

en el ejemplo a continuación, se define que no se permita mostrar archivos ocultos.

DisplayDotFiles             no

Parámetro NoAnonymous.

Define si se permitirán o no los accesos anónimos. En la mayoría de los casos, como un servidor FTP público, es una función deseada. Si el administrador lo considera pertinente, puede desactivarse cambiando el valor predeterminado no por yes.

NoAnonymous             yes

Parámetro AnonymousCanCreateDirs.

Define si se permite a los usuarios anónimos crear directorios cuando está permitido que éstos puedan subir archivos al servidor FTP. el valor predeterminado es no.

Parámetro MaxLoad.

Define que los usuarios anónimos no podrán descargar desde el servidor FTP cuando éste tenga una carga igual o superior al valor establecido. El valor predeterminado es 4.

Parámetro AntiWarez.

Define que no sea posible descargar archivos cuyo propietario sea el usuario ftp, como una medida de seguridad que permitirá al administrador supervisar lo que se ha subido al servidor FTP antes de permitir su distribución. El valor predeterminado es no y se recomienda dejarlo de ese modo a fin de contar con una buena política de seguridad.

Parámetro AnonymousBandwidth.

Define la tasa de Kb por segundo de descarga permitida para los usuarios anónimos. En el siguiente ejemplo, se establece que los usuarios anónimos tendrán una tasa de hasta 12 Kb por segundo para descargar archivos desde el servidor FTP.

AnonymousBandwidth            12

Parámetro UserBandwidth.

Define la tasa de Kb por segundo de descarga permitida para todos los usuarios, incluyendo los anónimos. Su utilización junto con el parámetro AnonymousBandwidth hace que este último no tenga sentido. Se utiliza o bien UserBandwidth o bien AnonymousBandwidth. No puede combinarse su uso. En el siguiente ejemplo, se establece que todos los usuarios, incluyendo los anónimos, tendrán una tasa de hasta 12 Kb por segundo para descargar archivos desde el servidor FTP.

UserBandwidth            12

Parámetro umask.

Define la máscara predeterminada para los nuevos archivos y nuevos directorios en el servidor FTP. El valor predeterminado es 133:022. Si se desea que los archivos subidos por por un usuario solo sean leídos por ese mismo usuario, se puede utilizar 177:077. Si se desea que los archivos solo sean leíbles y ejecutables para su propietario, se puede utilizar 077:077Si se desea que los archivos subidos sean ejecutables, se puede utilizar 122:022. Si se desea que los archivo sean leíbles para otros usuarios, pero no puedan ser reescritos por éstos, se pude utilizar 022:022. El usuario, claro, puede cambiar desde el cliente FTP la máscara utilizada en sus archivos y directorios a través de SITE CHMOD. en el siguiente ejemplo, se establecen los valores predeterminados.

umask            133:022

Parámetro ProhibitDotFilesWrite.

Define si se permitirá sobreescribir archivos que inicien con punto. Su valor predeterminado es no. Si se trata de un servidor FTP que permite el acceso hacia el directorio raíz de un sitio virtual de un servidor HTTP, es conveniente permitir sobreescribir los archivos .htaccess, .htpasswd y otros contenidos, por lo que no conviene activar este parámetro. De ser otro tipo de servidor, puede activarse y añadir seguridad.

Parámetro AnonymousCantUpload.

Define si se permitirá a los usuarios anónimos subir contenido hacia el servidor FTP. De modo predefinido, este parámetro está activo para impedir lo anterior.

AnonymousCantUpload            yes

Parámetro CreateHomeDir.

Especifica si se debe crear automática el directorio de inicio de un usuarios en caso de no existir éste. En el siguiente ejemplo, se habilita esta función.

CreateHomeDir            yes

Parámetro Quota.

Define la cuota de número máximo de archivos y espacio utilizado por el usuario. Muy conveniente y útil si se tiene un servidor FTP que permite subir contenido para un servidor HTTP compartido por varios sitios de red virtuales. en el siguiente ejemplo se establece una cuota máxima de 1500 archivos y 50 MB de espacio a utilizar para los usuarios.

Quota            1500:50

Parámetro MaxDiskUsage.

Define el espacio máximo permitido en la partición que contiene /var/ftp para el servicio FTP donde se está permitiendo que los usuarios anónimos suban contenido. El valor predeterminado es 99. Conviene definir un límite más bajo si el servicio FTP no es prioritario en el sistema. en el siguiente ejemplo, se establece un uso máximo del 80% de la partición donde se localiza /var/ftp.

MaxDiskUsage            80

Parámetro CustomerProof.

este parámetro fue diseñado para lidiar con los usuarios ignorantes a fin de impedir que realicen operaciones que bloqueen el acceso hacia sus archivos y/o directorios de forma accidental. es decir, impiden que se realicen operaciones como chmod 0 public_html. Si se va a utilizar el servicio como parte de un servicio de hospedaje de sitios de red a través de HTTP, conviene que este parámetro esté activo.

CustomerProof              yes

Agregar el servicio al arranque del sistema.

Para hacer que el servicio de pure-ftpd esté activo con el siguiente inicio del sistema, en todos los niveles de ejecución (2, 3, 4 y 5) se utiliza lo siguiente

chkconfig pure-ftpd on

Iniciar, detener y reiniciar servicio.

Para iniciar por primera vez el servicio pure-ftpd, utilice:

service pure-ftpd start

Para hacer que los cambios hechos tras modificar la configuración surtan efecto, utilice:

service pure-ftpd restart

Para detener el servicio, utilice:

service pure-ftpd stop

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 archivo /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente:

#ACTION	SOURCE	DEST	PROTO 	DEST		SOURCE
#				PORT		PORT(S)1
ACCEPT	net	fw	tcp	20,21
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE