Imprimir

Proceso de instalación

Para que los usuarios puedan subir los archivos correspondientes a sus sitios web, habilitaremos un servidor FTP. En este caso vamos a instalar el servidor ProFTPD.

sudo apt-get install proftpd-basic

Durante la instalación se preguntará si se desea instalar como un servicio independiente o como parte de inetd. Se puede dejar como independiente (standalone) para no tener que configurar inetd.

Limitar usuarios a sus carpetas personales

Una vez finalizada la instalación, los usuarios que estén dados de alta en el sistema podrá acceder al servidor usando un cliente FTP. Por defecto, cualquier usuario podrá ver el contenido de carpetas que no son de su propiedad aunque no tendrá permisos para modificar su contenido. Si se desea que cada usuario quede encerrado en su carpeta home se debe editar el archivo /etc/proftpd/proftpd.conf decomentando la línea DefaultRoot ~.

sudo nano /etc/proftpd/proftpd.conf 

Reinicia el servidor ProFTPD y comprueba que los usuarios no pueden ver más allá de su carpeta personal.

sudo service proftpd restart

Habilitar acceso anónimo

Por defecto, para poder realizar una conexión con el servidor FTP es necesario indicar un nombre de usuario y contraseña de alguna cuenta que se encuentre creada en el sistema. El usuario que se conecte tendrá los mismos permisos (de lectura y escritura) a través de FTP que accediendo directamente al sistema.

Es frecuente que se autorice el acceso a cualquier persona para que pueda descargar archivos públicos desde el servidor. Lo normal es que sólo se permita realizar descargas de archivos y no subidas. Puedes probar, por ejemplo, a acceder mediante FTP a la dirección: ftp.rediris.es (comprueba que puedes realizar descargas, pero no subidas sin tener que indicar un nombre de usuario).

Para habilitar este tipo de acceso a tu servidor FTP, debes descomentar las siguientes líneas del archivo /etc/proftpd/proftpd.conf (excepto el bloque incoming que permitiría la subida de archivos):

<Anonymous ~ftp>
  User				ftp
  Group				nogroup
  # We want clients to be able to login with "anonymous" as well as "ftp"
  UserAlias			anonymous ftp
  # Cosmetic changes, all files belongs to ftp user
  DirFakeUser	on ftp
  DirFakeGroup on ftp
 
  RequireValidShell		off
 
  # Limit the maximum number of anonymous logins
  MaxClients			10
 
  # We want 'welcome.msg' displayed at login, and '.message' displayed
  # in each newly chdired directory.
  DisplayLogin			welcome.msg
  DisplayChdir		.message
 
  # Limit WRITE everywhere in the anonymous chroot
  <Directory *>
    <Limit WRITE>
      DenyAll
    </Limit>
  </Directory>
 
  # Uncomment this if you're brave.
  # <Directory incoming>
  #   # Umask 022 is a good standard umask to prevent new files and dirs
  #   # (second parm) from being group and world writable.
  #   Umask				022  022
  #            <Limit READ WRITE>
  #            DenyAll
  #            </Limit>
  #            <Limit STOR>
  #            AllowAll
  #            </Limit>
  # </Directory>
 
</Anonymous>

La carpeta a la que se accede es la que aparece en la primera línea (~ftp) que hace referencia a la carpeta del usuario ftp, la cual se crea de manera automática al instalar proftpd. Observando el archivo /etc/passwd puedes comprobar cuál es realmente la ruta a la carpeta propia de ese usuario. Por ejemplo, si aparece:

ftp:x:109:65534::/srv/ftp:/bin/false

puedes ver que la carpeta del usuario ftp se encuentra en /srv/ftp. Por tanto, todos los archivos que se alojen en esa carpeta podrán ser descargados por los usuarios anónimos.

La línea que se muestra a continuación indica que se puede acceder públicamente al servicio FTP usando los nombres de usuario anonymous o ftp. Es frecuente que las aplicaciones cliente FTP usen el nombre de usuario anonymous cuando no se indique ningún nombre de usuario.

UserAlias anonymous ftp