Montar FTP remotos en Linux

De todos es conocida la flexibilidad de los entornos GNU/Linux referente a las opciones de sistemas de archivos que permite:
FAT (en cualquiera de sus versiones) NFS, las diferentes versiones de EXT, ReiserFS, etc.

Pero no tan conocida es la posibilidad de montar un sistema FTP remoto. Para ello se usa el módulo del kernel CurlFtpFS, que a su vez está basado en FUSE (más conocido normalmente por ser la herramienta utilizada para el intercambio de archivos a través de Bluetooth) y libcurl.

Para ello, primeramente deberemos instalar el soporte del kernel. En los sistemas Debian (y derivados) lo podemos instalar a través de apt. Para los sistemas basados en Red Hat, podemos usar yum, que lo instalará también sin problemas.

Una vez instalado, procederemos a editar el fichero /etc/fuse.conf

# Set the maximum number of FUSE mounts allowed to non-root users.
# The default is 1000.
#
#mount_max = 1000

# Allow non-root users to specify the 'allow_other' or 'allow_root'
# mount options.
#
#user_allow_other

Y descomentamos la última línea. Esto nos permitirá usar la opción allow_other en el fichero fstab que editaremos a continuación, y que así otros usuarios diferentes de root puedan acceder al recurso.

Por último en /etc/fstab/ añadiremos la siguiente línea:

curlftpfs#jbahillo:Y^z4RcuCD@ftp.tuservidor.com/httpdocs /mnt/tuservidor fuse rw,allow_other,auto,users 0 0

Procedemos a explicar cada opción, aunque la mayor parte de ellas son bastante comunes (nótese el parecido con una línea de fstab con NFS):

  • culftpfs#: especificamos que el montaje se hará a través de curlftpfs
  • jbahillo:Y^z4RcuCD@ftp.tuservidor.com/directorio : aquí especificamos el usuario, contraseña, servidor y ruta al modo del protocolo ftp, esto es: usuario:contraseña@servidor/ruta
  • /mnt/tuservidor: indicamos aquí la ruta local donde lo montaremos (que habremos creado previamente)
  • fuse: especificamos el sistema de archivos
  • rw,allow_other,auto,users: especificamos las opciones de montaje, que no son diferentes a las de cualquier otra línea de fstab, excepto la allow_other, que ya comentamos previamente
  • Grabamos y ya podríamos montar el sitio remoto a través del comando mount /mnt/tuservidor, o bien a través de curlftpfs jbahillo:Y^z4RcuCD@ftp.tuservidor.com/directorio.

    Ahora bien, si bien esto en un entorno particular no es demasiado importante, este sistema plantea un problema de seguridad, dado que el fichero /etc/fstab tiene permisos de lectura para todos los usuarios (-rw-r–r–) y así cualquiera que tuviese acceso al ordenador podría conocer el usuario y contraseña de dicho FTP. Además debemos tener en cuenta que el proyecto curlftpfs no recibe actualizaciones desde hace casi cuatro años.

    Por ello, para entornos más profesionales, resulta mucho más aconsejable usar sshfs (cuyo soporte también debemos instalar si queremos usarlo), ya que así no es necesario incluir la contraseña en el archivo fstab, sino que sencillamente activando la autenticación a través de authorized_keys, nos validará automáticamente, contando además con los beneficios de una comunicación cifrada.

    2 comments for “Montar FTP remotos en Linux

    Deja un comentario