¿Sabes qué es el protocolo FTP?
FTP es el acrónimo de «Protocolo de Transferencia de Ficheros» (en inglés, File Transfer Protocol). FTP es un protocolo que se utiliza para transferir todo tipo de archivos entre equipos conectados a una red, ya sea por la Intranet o por Internet.
Las cuentas de FTP nos permiten enviar archivos, descargarlos, crear directorios, borrar ficheros y más en el servidor en el que tengamos dichos permisos.
Cada cuenta FTP se identifica con un nombre de usuario y se valida utilizando una contraseña estando, cada cuenta de FTP, está asociada a un directorio que se comporta como su raíz: el usuario que conecta por FTP puede acceder a los ficheros creados en directorios y subdirectorios a partir de su raíz, pero no más más atrás, siempre y cuando esté bien configurado.
¿Servidor FTP entornos Debian?
Para Debian, los servicios ftp más utilizados son vsftpd y ProFTPd. En nuestro caso utilizaremos ProFTPd, que es suficiente para configurar unas fotocopiadoras Ricoh Aficio que gestiono en mi centro de trabajo, y las necesitan para escanear.
Estas máquinas funcionan bien en entornos Windows para escanear, y lo hacen mediante el protocolo SAMBA. Pero por alguna razón el protocolo que usan es el SMBv1, y parece que no se entiende del todo bien con mis clientes Linux actualizados y da problemas de comunicación.
Lo que haremos será configurar un servidor FTP alojado en las máquinas que necesitemos y enviar allí los datos escaneados desde la máquina.
Instalación ProFTP
Partimos de un sistema actualizado:
administrador@lmd6-vm:~$ sudo apt update && apt upgrade -y
administrador@lmd6-vm:~$ sudo apt install proftpd
Si nos pregunta si lo queremos instalar como servicio o inetd, seleccionar como servicio por defecto.
Configuración inicial
ProFTPD se gestiona a través del archivo proftpd.conf, ubicado en /etc/proftpd/
administrador@lmd6-vm:~$ sudo nano /etc/proftpd/proftpd.conf
Aquí cambiaremos los siguientes valores:
- ServerName: Nombre de tu servidor FTP.
- MaxInstances: Número máximo de conexiones simultáneas.
- User y Group: El usuario y grupo bajo los cuales se ejecuta el servidor.
- DefaultRoot: Limita a los usuarios a su directorio home por razones de seguridad.
# Nombre de nuestro servidor ftp
ServerName “lmde6-vm”
# Descomentamos este campo, para que los usuarios no puedan navegar por todo el árbol de directorios y sólo estén en las carpetas de su HOME.
DefaultRoot ~
# Si queremos que SOLO acceda a una carpeta concreta creada y no a todo el /home/usuario
DefaultRoot /home/usuario/escaner usuario
# Crearemos usuarios para que se conecten solo vía FTP, no necesitan login, solo definir un shell:
RequireValidShell off
# Número máximos de instancias que usaremos, por defecto 30
MaxInstances 30
Crearemos la carpeta que vamos a compartir por FTP, en este caso estará dentro del /home del propio usuario “administrador”.
Al final del archivo agregaremos el siguiente código para controlar los permisos sobre las carpetas ubicadas dentro de ftp-files:
<Directory /home/usuario/escaner*>
Umask 022 022
AllowOverwrite on
<Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD>
AllowAll
</Limit>
</Directory>
Guardamos el archivo.
Habilitar, iniciar y parar el servicio
# Habilitar en el arranque del sistema
administrador@lmd6-vm:~$ sudo systemctl enable proftpd.service
# Para iniciar ProFTPD:
administrador@lmd6-vm:~$ sudo systemctl start proftpd.service
# Para detener ProFTPD:
administrador@lmd6-vm:~$ sudo systemctl stop proftpd.service
# Deshabilitar el servicio
administrador@lmd6-vm:~$ sudo systemctl enable proftpd.service
# Comprobar el estado del servicio
administrador@lmd6-vm:~$ sudo systemctl status proftpd.service
● proftpd.service – ProFTPD FTP Server
Loaded: loaded (/lib/systemd/system/proftpd.service; enabled; preset: enabled)
Active: active (running) since Fri 2024-10-04 12:30:39 CEST; 16min ago
Docs: man:proftpd(8)
Process: 2090 ExecStartPre=/usr/sbin/proftpd –configtest -c $CONFIG_FILE $OPTIONS (code=exited, status=0/SUCCESS)
Process: 2091 ExecStart=/usr/sbin/proftpd -c $CONFIG_FILE $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 2092 (proftpd)
Tasks: 1 (limit: 4595)
Memory: 1.9M
CPU: 171ms
CGroup: /system.slice/proftpd.service
└─2092 «proftpd: (accepting connections)»
Crear usuarios que puedan acceder al sólo al FTP de sus HOME
Si queremos crear varios usuarios pero sin HOME de Escritorio, podemos añadirlos y asociar una carpeta a cada uno.
$ sudo useradd usuario -d /home/usuario -s /bin/false
$ sudo passwd usuario
$ chown -R usuario:usuario /home/usuario
$ sudo service proftpd restart
Configuración fotocopiadoras Ricoh Aficio para escaneo
Una vez tenemos nuestro servidor ftp montado y funcionando podemos configurar cada usuario para que escanee a la carpeta que le digamos.
Autenticación de carpeta:
Usuario de la sesión: usuario
Contraseña de inicio de sesión: la del usuario
Carpeta:
Protocolo: FTP
Puerto: 21
Nombre del servidor: ip o dns
Ruta: /
No ponemos la ruta completa porque de eso se encargará el servidor ftp
Configuración fotocopiadoras Ricoh Aficio para escaneo
Una vez tenemos nuestro servidor ftp montado y funcionando podemos configurar cada usuario para que escanee a la carpeta que le digamos.
Autenticación de carpeta:
- Usuario de la sesión: usuario
- Contraseña de inicio de sesión: la del usuario
Carpeta:
Protocolo: FTP
Puerto: 21
Nombre del servidor: ip o dns
Ruta: /
No ponemos la ruta completa porque de eso se encargará el servidor ftp