Creación de un servidor FTP simple con una Raspberry Pi

Aunque FTP (Protocolo de transferencia de archivos) es una tecnología antigua, muchos sistemas y dispositivos de hardware todavía la utilizan. Algunas cámaras IP le permiten guardar fotos en un servidor FTP y puede crear uno usando una Raspberry Pi. Si tiene la opción, sería mejor usar SFTP, pero si su dispositivo solo admite FTP, esta guía lo ayudará a crear un servidor FTP.

Usaremos vsftpd ya que es una aplicación popular de Linux que es segura, estable y extremadamente rápida.

Configuración inicial

Necesitará :

  • una raspberry pi
  • Tarjeta SD con la última imagen de Raspbian
  • Fuente de alimentación
  • Teclado y monitor (opcional)

Comience con una nueva tarjeta SD que contenga la última imagen de Raspbian. La guía Cómo crear una nueva tarjeta SD para Raspberry Pi en Windows explicará cómo hacerlo en Windows. Configure su Pi y conéctelo a su red mediante Ethernet o WiFi. Si desea realizar la configuración de FTP de forma remota, siga esta guía para habilitar SSH.

Obtenga la dirección IP de la red usando:

ifconfig

Lo más probable es que tenga el formato 192.168.###.###.

Paso 1: instalar vsftpd

Use el siguiente comando para actualizar sus repositorios e instalar el software vsftpd:

sudo apt-get update sudo apt-get install vsftpd

Paso 2: actualizar el archivo de configuración

Una vez instalado, ahora puede editar el archivo de configuración vsftpd usando:

sudo nano /etc/vsftpd.conf

En este archivo, busque las siguientes líneas y elimínelas eliminando el carácter #:

anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES

Agregue las siguientes líneas al final del archivo:

user_sub_token=€USER local_root=/home/€USER/ftp

Guarde y salga usando CTRL-X, Y y ENTER.

Paso 3: crear un directorio FTP para el usuario de Pi

Para permitirle conectarse al servidor FTP usando el usuario Pi predeterminado, necesitamos crear algunos directorios:

mkdir /home/pi/ftp mkdir /home/pi/ftp/files

Cambie los permisos en el directorio ftp usando:

chmod a-w /home/pi/ftp

Paso 4: crear un nuevo usuario (opcional)

Si desea iniciar sesión en el servidor con otro nombre de usuario, podemos crear un nuevo usuario. En este ejemplo, crearemos un nuevo usuario llamado «cámara»:

sudo adduser camera

Se te solicitará una contraseña. ¡Asegúrate de que sea bueno!

Los demás detalles se pueden dejar en blanco o completar como mejor le parezca.

Deberías ver algo como esto en tu pantalla:

Este nuevo usuario también necesitará un conjunto de directorios FTP:

mkdir /home/camera/ftp mkdir /home/camera/ftp/files

Una vez creado, cambie los permisos usando:

chmod a-w /home/camera/ftp

Esto no es necesario para la transferencia de archivos básica, pero al nuevo usuario se le puede dar la misma capacidad de usar «sudo» ejecutando el comando:

sudo adduser camera sudo

Paso 5: reiniciar el servidor FTP

Finalmente reinicie el servicio vsftpd para que nuestros cambios surtan efecto:

sudo service vsftpd restart

Paso 6: probar el servidor FTP

Todo lo que queda es comprobar que puede conectarse al servidor y transferir archivos.

Obtenga la dirección IP de su Pi usando:

ifconfig

Ejecute su cliente FTP preferido en su PC/portátil. Los usuarios de Windows pueden usar WinSCP. Los usuarios de Windows, Mac o Linux pueden usar FileZilla. Si se ha estado conectando a la línea de comandos a través de SSH, tal vez pueda usar el mismo cliente para FTP.

Para conectarse en su cliente, proporcione el nombre de host (dirección IP) de su Pi, el nombre de usuario (por ejemplo, pi o cámara) y la contraseña. Asegúrese de que esté configurado para usar el protocolo FTP y el puerto 21.

Aquí está el administrador del sitio WinSCP:

Aquí hay una captura de pantalla de WinSCP conectado a mi Pi usando el nombre de usuario de «cámara».

Navegue al directorio «archivos» y debería poder transferir archivos a él. Si esto funciona, su servidor FTP está listo para cualquier dispositivo que desee conectar.

Registros de sesión FTP

Puede consultar los registros de sesión de vsftpd para ver un historial de conexiones realizadas a su servidor FTP.

cat /var/log/vsftpd.log

Otras lecturas

Hay una lista completa de opciones de archivo de configuración de vsftpd aquí:
https://security.appspot.com/vsftpd/vsftpd_conf.html

Protocolo de transferencia de archivos (Wiki):
https://en.wikipedia.org/wiki/File_Transfer_Protocol