Saltar la navegación

2.5.- Configurar el servidor ftp con múltiples dominios.

Anteriormente hemos visto cómo poder configurar el servidor ftp con múltiples usuarios, pero todos pertenecientes al mismo sitio/dominio, entonces, ¿no se puede configurar usuarios pertenecientes a distintos dominios en el mismo servidor ftp? La respuesta es que sí, sí se puede, ¿cómo?, mediante la configuración de hosts virtuales o virtualhosts. Éstos básicamente lo que hacen es permitir que un mismo servidor ftp pueda alojar múltiples dominios, así configurando hosts virtuales podemos alojar: empresa1.com, empresa2.com,…, empresaN.com en el mismo servidor ftp. Cada empresa tendrá su virtualhost único e independiente de los demás.

Aunque como se ha comentado anteriormente cada virtualhost es único e independiente de los demás, todo aquello que no esté incluido en la definición de cada virtualhost se heredará de la configuración principal: proftpd.conf (/etc/proftpd/proftpd.conf). Así, si quieres definir una directiva común en todos los virtualhost no debes modificar cada uno de los virtualhost introduciendo esa directiva sino que debes definir esa directiva en la configuración principal del servidor ftp ProFTPD, de tal forma que todos los virtualhost heredarán esa directiva, por ejemplo en proftpd.conf puedes encontrar la directiva TimeoutIdle 1200, que establece la directiva TimeoutIdle igual a 1200 segundos, esto es, indica el número máximo de segundos que puede estar un usuario sin hacer nada, pasado ese tiempo se cierra la conexión ftp.

En la definición de la directiva VirtualHost podemos poner la IP del servidor FTP ó bien el nombre DNS correspondiente. En nuestro escenario, la IP_Servidor_FTP=192.168.200.250, ftp.empresa1.com y ftp.empresa2.com identifican a la misma máquina.

Hay que tener en cuenta que si las IP empleadas son IP privadas, sin existencia en Internet, siempre que se haga referencia a las mismas a través de nombre de dominios, deberá existir un servidor DNS que las resuelva en local o bien, en su defecto, deberán existir las entradas correspondientes en el fichero del sistema local /etc/hosts.

Independientemente de si configuras virtualhosts basados en IP o en nombre, puedes utilizar usuarios del sistema, pero también puedes crear los usuarios virtuales que quieras en un fichero similar a /etc/passwd y llamarlo en la configuración mediante la directiva AuthUserFile, entonces:

  • Ejecuta el siguiente comando que creará un fichero de autenticación para usuarios virtuales,
    ftpasswd --passwd --name user-empresa1 --file /etc/passwd.usuarios.virtuales --uid 107 --home /var/ftp/empresa1 --shell /bin/false

    donde,

    • ftppasswd, es el comando que permite crear los usuarios virtuales.
    • - -passwd, es el parámetro que pedirá la contraseña del usuario.
    • - -name user-empresa1, identifica al usuario virtual de nombre user-empresa1.
    • - -file /etc/passwd.usuarios.virtuales, creará, en caso de no existir, o modificará, en caso de existir el fichero de autenticación de usuarios virtuales.
    • - -uid 107, es el identificador perteneciente al usuario del sistema ftp. Se puede saber ejecutando el comando: id ftp .
    • - -home /var/ftp/empresa1, identifica a donde se conecta el usuario.
    • - -shell /bin/false, identifica una consola de comandos que no permite conexión como usuario del sistema.
  • Ejecuta también el comando:
    ftpasswd --passwd --name user-empresa2 --file /etc/passwd.usuarios.virtuales --uid 107 --home /var/ftp/empresa2 --shell /bin/false

A continuación prosigues, dependiendo si deseas configurar virtualhosts basados en IP o virtualhosts basados en nombre.