Instalar un servidor FTP en Raspberry Pi (2 formas seguras)

Si hace clic en nuestros enlaces y realiza una compra, es posible que recibamos una comisión.. Más información

FTP significa “File Transfer Protocol” y es la primera opción en la que muchos de nosotros pensamos cuando se trata de transferir archivos a una Raspberry Pi o cualquier servidor Linux. Pero es un poco como HTTP en la web, no es un protocolo seguro. El propósito de este artículo es explicar cómo configurar un servidor FTP de manera segura.

La forma más sencilla de configurar un servidor FTP seguro en una Raspberry Pi es no usar ningún software de servidor FTP, sino utilizar SSH y el protocolo SFTP. Se puede habilitar SSH en un solo paso, y luego usar cualquier cliente FTP para acceder a los archivos de la Raspberry Pi.

Te recomiendo seguir este consejo, ya que supongo que la mayoría de ustedes son usuarios individuales en una red doméstica, porque simplemente es más fácil usar SSH. Pero no te preocupes, también explicaré la segunda opción, que es usar un servidor FTP tradicional para este proyecto.

Si estás empezando con Raspberry Pi o Linux, tengo algo que puede ayudarte de inmediato.
Descarga mi hoja de trucos de comandos Linux gratis – es una guía de referencia rápida con todos los comandos esenciales que necesitas para avanzar con tu Raspberry Pi. Haz clic aquí para obtenerla gratis!

Requisitos previos para el servidor FTP

Como siempre, demos un vistazo a lo que necesitas para empezar en términos de hardware y software.

Requisitos de hardware

No hay requisitos obligatorios en cuanto a hardware para configurar un servidor FTP en Raspberry Pi.

Estoy usando una Raspberry Pi 4 para todos mis proyectos porque es la mejor opción actualmente, así que no pienso mucho en ello. Pero si solo tienes una Raspberry Pi Zero, está bien.

El almacenamiento es más importante en mi opinión, así que trata de estimar cuánto espacio en disco requerirá tu servidor, especialmente si tienes muchos usuarios o deseas guardar archivos grandes. Podría ser una buena idea invertir en un disco duro externo desde el principio (aquí te dejo mi recomendación actual).

También se recomienda una conexión de red por cable para más estabilidad (será una experiencia terrible si la conexión es lenta o se desconecta todo el tiempo). Tengo una guía aquí sobre cómo configurar una IP estática.

Recomendaciones de software

Aquí están mis recomendaciones en términos de software antes de instalar un servidor FTP:

  • Sistema operativo: Las instrucciones de este tutorial deberían funcionar en la mayoría de las distribuciones, pero recomiendo usar Raspberry Pi OS si empiezas desde cero. Algunos de los pasos son más fáciles con él, y funciona tan bien como cualquier otra opción. Una versión Lite es suficiente, no necesitas un entorno de escritorio para un servidor FTP.
    Puedes leer mi guía sobre cómo instalar Raspberry Pi OS si necesitas algo de orientación.
  • Sistema actualizado: Para evitar cualquier conflicto más adelante, asegúrate de que tu sistema esté actualizado primero. Puedes hacerlo con estos comandos:
    sudo apt update
    sudo apt upgrade -y

    Reinicia la Raspberry Pi después de la instalación si hay muchas actualizaciones disponibles.
  • SSH habilitado: Como en la mayoría de mis tutoriales, recomiendo usar SSH para seguir el procedimiento desde tu computadora, mientras ejecutas los comandos (de forma remota) en la Raspberry Pi. Es simplemente más conveniente, especialmente con la versión Lite (copiar/pegar).
    Daré más detalles para la primera opción a continuación, pero puedes leer mi guía SSH si no sabes de qué estoy hablando.

Para tu información, probé este tutorial en mi Raspberry Pi 4 (4 GB), con la edición Lite del Raspberry Pi OS Bullseye (64-bits).

💡 Si quieres aprender más sobre Raspberry Pi sin perderte entre cientos de tutoriales, echa un vistazo a mi guía “Domina Raspberry Pi en 30 días”.

Opción 1: Usar SFTP (FTP a través de SSH)

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

Como expliqué en la introducción, mi recomendación es usar SSH en lugar de FTP cuando sea posible. Esta es mi opción favorita porque es rápida, segura y, como habilito SSH en todas mis instalaciones, está disponible directamente.

Configurar el acceso SFTP a una Raspberry Pi se puede hacer en unos pocos pasos simples:

  • Habilitar el servidor SSH (se puede hacer con raspi-config en RPI OS).
  • Probar que SSH esté funcionando.
  • Usar SFTP desde un cliente compatible.

Veamos todos estos pasos en detalle.

Habilitar SSH

Para habilitar SSH en Raspberry Pi OS, puedes hacerlo a través de la herramienta de configuración del software Raspberry Pi (raspi-config):

En una terminal, escribe el comando:
sudo raspi-config

Aparece un asistente, ve a Interfaces > SSH, y elige “Yes” para habilitar el servicio.

Si estás usando otra distribución, puede que necesites instalar el servidor SSH primero. Esto generalmente se puede hacer durante la instalación del sistema, o a través del gestor de paquetes, por ejemplo:
sudo apt install ssh

Nota: Si usas Raspberry Pi Imager para instalar Raspberry Pi OS, también es posible habilitar SSH directamente en el primer arranque a través de las opciones avanzadas (más detalles aquí).

Probar la conexión SSH

Una vez que el servidor SSH está instalado e iniciado, haz una prueba rápida para asegurarte de que el acceso SSH funciona correctamente. Usa cualquier cliente SSH para esto, ya que es solo una prueba.

En Windows, generalmente se recomienda usar PuTTY, pero en todos los sistemas ahora puedes usar la línea de comandos directamente para conectarte a otro ordenador a través de SSH:
ssh <user>@<ip_address>

Si usas PuTTY, la pantalla se ve así:

Si está funcionando como se espera, deberías obtener acceso a un prompt como este:

Si es la primera vez que usas SSH probablemente necesites más orientación, así que te recomiendo leer mi guía completa de SSH para Raspberry Pi. Explico la teoría, estos pasos con más detalle y mi cliente favorito para acceder a todos mis servidores con un solo clic.

Opcional: crear un usuario específico

En un servidor FTP tradicional, generalmente crearemos un nuevo usuario para cada persona, cliente o tipo de acceso. Es posible hacer lo mismo con SFTP.

Es incluso más fácil que con algunos programas FTP, ya que solo necesitas crear nuevos usuarios del sistema para cada caso y utilizar los permisos del sistema estándar para restringir su acceso si es necesario.

Digo que es opcional porque supongo que la mayoría de los que están leyendo esto solo quieren acceder a su Raspberry Pi mediante un cliente FTP (en inglés), no necesariamente tener 50 usuarios con diferentes accesos y permisos. Si es solo para ti, ya tienes una cuenta y puedes simplemente usar este usuario y contraseña para conectarte vía SFTP.

Si necesitas crear un nuevo usuario en tu Raspberry Pi, haz clic en este enlace para ver mi guía sobre el tema. Explico todos los pasos para hacerlo con unos pocos comandos.

Probar la conexión SFTP

Ahora estamos listos para hacer una prueba con un cliente FTP que soporte SFTP y ver si podemos acceder a los archivos de Raspberry Pi desde él.

Usar Termius como cliente SSH para conectarte a tus servidores y aprovechar su función de SFTP es una opción conveniente, especialmente si ya lo tienes configurado para el acceso SSH. Aunque no sea el mejor cliente SFTP, la simplicidad y la integración con tu configuración existente lo hacen una herramienta práctica.

Otras opciones incluyen FileZilla (el cliente FTP más popular), o WinSCP si estás en Windows. FileZilla es probablemente la herramienta que recomendaría, especialmente si tienes usuarios normales conectándose a tus servidores. Puedes configurarlo una vez, y luego es fácil de usar para el usuario final.

Cuando digo “usuarios normales”, estoy pensando en familiares, clientes, etc. Cualquiera que no tenga un título en informática o pase los fines de semana jugando con una Raspberry Pi :-).

En la mayoría de los clientes FTP, encontrarás una opción para gestionar el acceso a varios servidores. En FileZilla, hay un “Site Manager” donde puedes agregar un nuevo sitio, completando la dirección IP del host, usuario y contraseña. Así es como debes llenar este formulario para tu servidor SFTP de Raspberry Pi:

Solo cambia el protocolo de FTP a SFTP y completa el formulario con la dirección IP de la Raspberry Pi, tu usuario y contraseña. Luego puedes hacer clic en “Connect”. Si funciona como se espera, deberías ver tu directorio principal en el lado derecho:

Desde allí, puedes transferir archivos de un lado a otro. A la izquierda, están los archivos de tu computadora, a la derecha los archivos de la Raspberry Pi.

Si tienes otros usuarios, solo necesitarán entender cómo usar esta vista. Nunca tendrán que rellenar la dirección IP, el usuario ni la contraseña nuevamente. Todo queda guardado en el administrador de sitios con un nombre amigable, y pueden simplemente conectarse con este nombre, no necesitan saber más.

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

Espera, ¡tengo algunas recomendaciones para ti!

Antes de continuar, te invito a descubrir algunos productos que he seleccionado cuidadosamente para ti. Creo que son esenciales para tu Raspberry Pi. Échales un vistazo y pídelos directamente en Amazon.

Una caja silenciosa y práctica Un SSD de alto rendimiento para potenciar tu Pi Una pantalla genial para liberar el televisor Un teclado dedicado con touchpad

Opción 2: configurar un servidor FTP tradicional

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

Si por alguna razón prefieres utilizar un servidor FTP tradicional en tu sistema, aquí está la guía que estás buscando.

Solo recuerda que la opción 1 es más segura y no tan complicada de configurar, incluso si tienes muchos usuarios que no están acostumbrados a ese tipo de tecnología. La vista del usuario será la misma con las opciones 1 y 2.

Elige un software de servidor FTP

Cuando se trata de instalar un servidor FTP en un servidor Linux (Raspberry Pi o no), hay muchas opciones disponibles:

  • ProFTPD: La solución todo en uno, con muchas características disponibles y opciones de configuración avanzadas.
  • Pure-FTPd: Una alternativa más ligera a ProFTPD, con más opciones de seguridad.
  • vsftpd: “Very Secure FTP Daemon“. Un servidor FTP ligero y seguro que es fácil de instalar.
  • Etc.

Para ser honesto, no tengo suficiente experiencia con todas estas soluciones como para recomendar una más que otra, pero después de leer algunos artículos sobre este tema, me parece que para los usuarios de Raspberry Pi, vsftpd es probablemente la mejor combinación de seguridad, simplicidad y rendimiento.

Entonces, te mostraré cómo instalar vsftpd en esta guía, pero no dudes en cambiar a otra opción si por alguna razón no se adapta bien a tus necesidades.

Instalar el servidor FTP

Ya está disponible vsftpd en el repositorio predeterminado de Raspberry Pi OS y en la mayoría de las distribuciones de Linux. Se puede instalar con un solo comando a través del gestor de paquetes:
sudo apt install vsftpd

Si se requieren dependencias, el gestor de paquetes las instalará al mismo tiempo, así que es bastante sencillo. Copia/pega el comando y listo.

Configurar el servidor FTP

Desde aquí, necesitamos configurar algunas cosas antes de usar nuestro nuevo servidor FTP.

Te explicaré los pasos para utilizar usuarios del sistema como usuarios FTP y restringirlos para acceder a su directorio principal. Si tienes pensado implementar una configuración diferente, te recomiendo revisar la documentación de vsftpd para adaptar los ajustes según tus necesidades.

Comienza editando el archivo de configuración del servidor, que se encuentra en /etc/vsftpd:
sudo nano /etc/vsftpd/vsftpd.conf

Descomenta estas tres opciones en el archivo (elimina el carácter # al comienzo de cada línea):
write_enable=YES
local_umask=022
chroot_local_user=YES

Agrega esta línea (después de la opción chroot, por ejemplo):
allow_writeable_chroot=YES

Al hacer esto, limitamos los usuarios a su directorio personal, permitiéndoles crear nuevos archivos (incluso en la raíz del directorio personal). Por ejemplo, el usuario “pat” que tengo solo verá archivos bajo /home/pat; puede crear archivos aquí, pero no podrá acceder a archivos del sistema ni a archivos de otros usuarios.

Una vez hecho esto, guarda y sal (CTRL+X si usas Nano).

Reinicia el servicio para aplicar los cambios:
sudo service vsftpd restart

Opcional: crear un nuevo usuario

Nuestro servidor FTP utilizará usuarios del sistema por defecto. Si necesitas crear accesos específicos para diferentes usuarios, simplemente crea nuevos usuarios del sistema en la Raspberry Pi.

Puedes consultar mi tutorial sobre cómo crear nuevos usuarios en una Raspberry Pi.

Asígnales una contraseña fuerte y crea un directorio personal para cada uno de ellos, con los archivos que verán una vez conectados a través de FTP.

Solo necesitas hacer esto si tendrás varios usuarios accediendo a tu servidor FTP. Si es solo para ti, lo más probable es que ya tengas una cuenta personal y puedas usarla para acceder a FTP.

Probar la conexión

Ahora que el servidor FTP está instalado, puedes usar cualquier cliente FTP para acceder a los archivos de forma remota.

Como se explicó en la opción 1, mi recomendación es obtener FileZilla para todos los usuarios. Es la opción más popular y fácil de usar para cualquier usuario, incluso si no saben nada sobre FTP.

Abre el administrador de sitios y añade la configuración para tu servidor FTP:

Es casi lo mismo que la primera opción. Mantenemos “FTP” como protocolo, completamos la dirección IP de la Raspberry Pi, nombre de usuario y contraseña.

Una vez hecho, utiliza el atajo para acceder rápidamente a tu servidor desde el administrador de sitios (también puedes hacer clic en “Connect” una vez que la configuración está guardada) y tendrás acceso al directorio home de la Raspberry Pi:

Nota que el usuario ve “/” en lugar de “/home/pat” porque, de acuerdo con nuestra configuración, el usuario solo puede crear archivos y directorios en su carpeta de inicio.

Creé una carpeta “test”, que veo como “/test” en FileZilla, pero que en realidad es “/home/pat/test” en la Raspberry Pi. Desde el punto de vista del usuario, no tengo idea de dónde está ubicada esa carpeta, y podrías tener otros 50 usuarios en el mismo servidor FTP.

Obtiene mi hoja de trucos de comandos
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar

Consideraciones adicionales (en ambos casos)

Tu servidor FTP (o SFTP) ya está instalado y listo para usar. Cualquiera que sea la opción que hayas elegido, es un buen momento para pensar un poco más sobre el futuro de tu proyecto, especialmente si no eres el único usuario.

Si el objetivo era solo transferir archivos de Python desde tu computadora, y eres el único usuario, probablemente puedas detenerte ahí. Pero si tienes alguna preocupación sobre la seguridad o el uso de almacenamiento, deberías seguir leyendo esta sección.

Implementar medidas de seguridad

Mientras tengas un nombre de usuario aleatorio y una contraseña fuerte, FTP ya es bastante seguro para el uso en el hogar. Pero si alojas datos críticos, información personal y, especialmente, si tienes varios usuarios, podría ser una buena idea pensar en la seguridad.

Como con cualquier servidor alojado en una Raspberry Pi, hay algunas cosas a tener en cuenta que probablemente deberías configurar para proteger tu servidor. Las he resumido en este artículo que deberías leer ahora:
17 Consejos de Seguridad Para Proteger tu Raspberry Pi.

Va desde usar contraseñas seguras hasta instalar una aplicación para detectar y bloquear ataques de fuerza bruta. No tienes que seguir todas las recomendaciones, depende de tu situación. Lo importante es al menos conocer la lista y configurar lo que consideres útil en tu caso.

Si usas un servidor FTP (como vsftpd), es posible utilizar un certificado SSL para cifrar las conexiones. Verifiqué el procedimiento y parece complicado, así que cambiar a SFTP probablemente sea una mejor idea.

Programar copias de seguridad regulares

Esto no está relacionado con el proyecto en sí, pero si tienes varios usuarios utilizando tu nuevo servidor FTP para compartir archivos, es posible que esperen que los archivos se queden allí para siempre. No necesariamente es el caso, especialmente cuando el servidor es una Raspberry Pi y no tienes un buen plan de copias de seguridad en marcha.

Tan pronto como hospedes un servidor de cualquier tipo, especialmente con varios usuarios accediendo a él, pensar en copias de seguridad y restauración es un requisito.

Si todos los usuarios están subiendo archivos a sus carpetas /home, al menos haría una copia de seguridad diaria de /home en otro ordenador. Explico cómo hacerlo en este tutorial: Copia de Seguridad y Restauración de tu Raspberry Pi (Guía).

Una vez más, si eres el único usuario y solo transfieres archivos que tienes en tu computadora a la Raspberry Pi siguiendo este método, no tienes que preocuparte por eso (la computadora ya es tu respaldo de alguna manera).

Mejorar la ubicación de almacenamiento y el hardware

Si seguiste este tutorial, probablemente tienes el sistema configurado en la tarjeta SD de la Raspberry Pi, y todos los archivos almacenados bajo /home para tus usuarios de FTP. Eso está bien, pero no es necesariamente la mejor opción.

Una tarjeta SD no es en absoluto el método de almacenamiento más fiable, y tampoco es lo suficientemente grande. Cambiar a un disco duro externo podría ser una buena idea con varios usuarios accediendo a tu servidor FTP.

En términos de hardware, generalmente recomiendo este disco externo de SanDisk, que es rápido, pequeño (del mismo tamaño que la Raspberry Pi) y no tan caro. Usarlo en lugar de la tarjeta SD es una buena idea, incluso si eres el único usuario.

La tarjeta SD también puede estar limitada en tamaño. Si comienzas con 16 o 32 GB, como recomiendo actualmente (más detalles aquí, en inglés), puedes quedarte sin espacio rápidamente cuando tus usuarios suben archivos grandes todos los días.

Por lo tanto, no solo es más seguro usar un disco externo, sino que también es más fácil tener algunos terabytes de espacio disponibles en disco para evitar problemas a largo plazo. Si haces esto, necesitas montar el disco externo en la Raspberry Pi y configurar los directorios de inicio en este disco en lugar del directorio predeterminado /home/user (hazlo directamente al crear los usuarios, aunque es posible cambiar el directorio de inicio después, en inglés).

Espero que este proyecto sea un éxito de tu parte, y si estás buscando más proyectos de red, revisa mis otros artículos:

Cuando estés preparado, aquí tienes un atajo para ti:

Domina tu Raspberry Pi en 30 días: Si buscas los mejores consejos para convertirte en un experto en Raspberry Pi, este libro es para ti. Aprende habilidades útiles de Linux y practica múltiples proyectos con guías paso a paso.

Publicaciones Similares