Servidor FTP en Linux Mint con FileZilla Server

FTP (Linux Mint + FileZilla Server)

⬇️ Descargar PDF
Escenario

Esta práctica tiene como objetivo instalar, configurar y comprobar el funcionamiento de un servidor FTP en Linux Mint utilizando FileZilla Server, así como realizar pruebas de transferencia desde un cliente FTP de texto situado en otra máquina virtual.

Las conexiones se realizarán mediante IP local, en este caso:

  • Servidor FTP: 192.168.1.79
  • Cliente FTP: 192.168.1.56
Objetivo general
  • Instalar FileZilla Server en Linux Mint.
  • Habilitar el servicio y verificar el puerto 21.
  • Crear un directorio personalizado del alumno: /ftp_clara_montano_rodriguez.
  • Modificar settings.xml para permitir FTP sin cifrado.
  • Realizar pruebas de conexión y transferencia desde un cliente FTP.
  • Documentar el proceso mediante capturas.
Verificación previa de la conectividad entre servidor y cliente

Antes de iniciar la configuración del servidor FTP, realiza una comprobación inicial de conectividad entre las dos máquinas virtuales del entorno: servidor-dns (192.168.1.79) y cliente-dns (192.168.1.56).

El objetivo de esta verificación es asegurar que ambas máquinas se encuentran correctamente integradas en la red local mediante el Adaptador Puente de VirtualBox, y que pueden comunicarse entre sí sin restricciones, requisito indispensable para el funcionamiento posterior del servicio FTP.

Desde cliente-dns hacia el servidor:

ping -c 4 192.168.1.79

Desde servidor-dns hacia el cliente:

ping -c 4 192.168.1.56

En ambos casos, la respuesta fue satisfactoria, obteniéndose un 0% de pérdida de paquetes, lo que confirma que la comunicación entre ambas máquinas es estable y que la asignación correcta de direcciones IP dentro de la red local se realizó correctamente.

Esta validación garantiza que el entorno está preparado para continuar con la instalación y configuración del servidor FTP.

1. Instalación y verificación del servidor FTP

Todas las acciones de este apartado se realizan en la MÁQUINA SERVIDOR.


1.1 Instalación del paquete .deb

Para la instalación del servidor FTP se utiliza FileZilla Server, distribuido en formato paquete .deb, compatible con sistemas basados en Debian como Linux Mint.

Acceso al directorio donde se encuentra el paquete:

cd ~/Escritorio
            ls

El comando cd permite cambiar de directorio, mientras que ls muestra el contenido del directorio actual.

Instalación del paquete .deb:

sudo dpkg -i FileZilla_Server_1.12.0_x86_64-linux-gnu.deb

Resolución de dependencias:

sudo apt -f install


1.2 Inicio del servicio y verificación

sudo systemctl start filezilla-server
sudo systemctl status filezilla-server


1.3 Habilitar el inicio automático

sudo systemctl enable filezilla-server


1.4 Verificación del puerto 21

sudo ss -tulnp | grep :21
2. Creación del directorio personalizado

El servidor FTP debe disponer de un directorio específico para el almacenamiento de los archivos del alumno. Este directorio será el punto de trabajo durante las pruebas FTP y estará asociado al usuario del sistema.


2.1 Crear el directorio

Se crea un directorio personalizado en la raíz del sistema con el nombre correspondiente al alumno:

sudo mkdir /ftp_clara_montano_rodriguez

El uso de sudo es necesario porque el directorio se crea directamente bajo /, una ubicación protegida del sistema. Este directorio será utilizado como espacio de almacenamiento para las operaciones FTP realizadas posteriormente.


2.2 Asignar propiedad al usuario alumno

Para que el usuario del sistema alumno pueda gestionar los archivos dentro del directorio FTP, se asigna la propiedad del mismo:

sudo chown alumno:alumno /ftp_clara_montano_rodriguez

Con este comando se establece al usuario alumno como propietario del directorio y de su grupo asociado, permitiendo la gestión correcta de archivos durante las conexiones FTP.

Antes de esto, necesitamos tener el usuario alumno ya que en la máquina virtual que estamos utilizando solo tenemos el usuario personal. Para crear el usuario alumno hay que ejecutar el siguiente comando:

sudo adduser alumno

Ahora que sí tenemos el usuario alumno podemos asignarle la propiedad del directorio a dicho usuario.

sudo chown alumno:alumno /ftp_clara_montano_rodriguez

Con este comando se establece al usuario alumno como propietario del directorio y de su grupo asociado, permitiendo la creación, modificación y eliminación de archivos durante las sesiones FTP.

Y verificamos que le hemos dado correctamente la propiedad con el siguiente comando:

ls -ld /ftp_clara_montano_rodriguez


2.3 Ajustar los permisos

Una vez creado el directorio y asignada su propiedad al usuario alumno, es necesario establecer los permisos adecuados para permitir el acceso controlado al directorio FTP.

sudo chmod 755 /ftp_clara_montano_rodriguez

Explicación técnica de los permisos

  • 7 (propietario) → lectura, escritura y ejecución
  • 5 (grupo) → lectura y ejecución
  • 5 (otros) → lectura y ejecución

Esta configuración permite que el usuario propietario (alumno) tenga control total del directorio, mientras que otros usuarios solo pueden acceder en modo lectura, cumpliendo con una configuración segura y estándar para servicios FTP.

Con el comando ls -ld /ftp_clara_montano_rodriguez podemos verificar los permisos.

3. Configuración del servidor (interfaz gráfica o fichero de texto)

Los ajustes del servidor podrán realizarse:

  • En la interfaz gráfica de FileZilla Server,
  • o bien editando el fichero de texto: /opt/filezilla-server/etc/settings.xml

En ambos casos deberá:

  • Realizarse captura gráfica de cada apartado relevante.
  • Exportarse un fichero adicional de configuración: settings_nombre_apellido.xml

Ejemplo: settings_juan_perez.xml

En este caso los ajustes del servidor FTP se van a realizar mediante la edición del fichero de configuración de FileZilla Server.


3.1 Modificación del fichero settings.xml

1. Localización y apertura del fichero de configuración

Primero tenemos que localizar el fichero principal de configuración de FileZilla Server que se encuentra en la siguiente ruta:

/opt/filezilla-server/etc/settings.xml

2. Apertura del fichero con editor de texto

sudo nano /opt/filezilla-server/etc/settings.xml


3.2 Cambios necesarios para permitir FTP sin cifrar

Para permitir el uso de un cliente FTP de texto, es necesario desactivar el uso obligatorio de TLS.

Cambios a realizar

Localizar las siguientes líneas:

<tls_mode>2</tls_mode>

y sustituirlas por:

<tls_mode>0</tls_mode>

Localizar también la línea:

<tls min_protocol_version="2" index="6">

y modificarla por:

<tls min_protocol_version="0" index="6">

Estos cambios permiten aceptar conexiones FTP sin cifrado TLS, requisito indispensable para el uso del cliente FTP de texto (ftp) desde terminal.


3.3 Guardar cambios y reiniciar

Guardar los cambios en el editor (CTRL + O, ENTER, CTRL + X) y reiniciar el servicio:

Tras realizar las modificaciones necesarias en el fichero de configuración settings.xml para permitir conexiones FTP sin cifrado, fue necesario reiniciar el servicio FileZilla Server para que los cambios se aplicaran correctamente.

El reinicio del servicio se realizó mediante el siguiente comando:

sudo systemctl restart filezilla-server
sudo systemctl status filezilla-server

Este comando detiene y vuelve a iniciar el servicio FTP, forzando la recarga del fichero de configuración actualizado.

4. Pruebas de funcionamiento con cliente FTP de texto

Aunque el servidor FTP se encuentra instalado en una máquina virtual Linux Mint denominada servidor-dns, las pruebas de funcionamiento se realizan desde una máquina virtual cliente independiente, con el objetivo de verificar el correcto funcionamiento del servicio FTP en un entorno de red real.

La utilización de una máquina cliente permite comprobar que el servidor FTP:

  • Acepta conexiones remotas a través de la red
  • Autentica correctamente a los usuarios del sistema
  • Permite la transferencia y gestión de archivos mediante el protocolo FTP

Por lo tanto, todas las acciones de este apartado se realizan en la MÁQUINA CLIENTE (192.168.1.56).


Preparación previa de ficheros

Crear en el directorio local del CLIENTE los siguientes ficheros:

touch prueba_clara_montano_rodriguez.txt
touch fichero4.log
touch fichero1.txt fichero2.txt fichero3.txt

4.1 Inicio del cliente FTP

Antes de ejecutar la secuencia de comandos FTP desde el cliente, es necesario configurar correctamente el usuario “alumno” y sus permisos desde la interfaz gráfica de administración de FileZilla Server.

Si este paso no se realiza previamente:

  • El usuario puede no autenticarse, mostrando el error: “530 Login incorrecto”
  • bien puede autenticarse, pero no podrá crear ni modificar archivos, apareciendo el error: “550 Permission denied”

Para evitar estos errores, realiza la siguiente configuración antes de iniciar el cliente FTP.


4.1.1 Acceder a la interfaz de administración de FileZilla Server

  • Abre FileZilla Server – Administration interface.
  • Pulsa Connect to Server….

Conéctate al servidor local:

  • Host: localhost
  • Puerto: 14148

Comprueba que el estado indica Successfully connected to server localhost.

Este paso es imprescindible para poder gestionar usuarios y permisos.


4.1.2 Seleccionar el usuario del sistema “alumno”

  • Accede a Server → Configure….
  • En el panel izquierdo, entra en Rights management → Users.
  • Selecciona el usuario alumno en la lista de usuarios disponibles.

Este usuario corresponde a un usuario real del sistema Linux, por lo que FileZilla Server puede usar su autenticación mediante PAM.


4.1.3 Habilitar el usuario y definir la autenticación

  • Marca la opción User is enabled.
  • En el apartado Authentication, selecciona:
  • Require a password to log in
  • Introduce la contraseña del usuario alumno.

Si no se introduce la contraseña aquí, aunque el usuario exista en el sistema, al conectarse por FTP aparecerá el error correspondiente.


4.1.4 Configurar el directorio de trabajo mediante Mount points

Por defecto, el usuario no tiene asignado ningún directorio remoto. Si no se configura un mount point, al ejecutar comandos como ls o mkdir aparecerán errores.

Para evitarlo:

  • En el apartado Mount points, pulsa Add.
  • Configura:
  • Virtual path: /
  • Native path: /ftp_clara_montano_rodriguez

Con esta configuración:

  • El usuario verá / como directorio raíz remoto.
  • En realidad, estará trabajando dentro de /ftp_clara_montano_rodriguez.


4.1.5 Asignar permisos de lectura y escritura

  • En Mount options, selecciona:
  • Access mode: Read + Write
  • Marca las opciones:
  • Apply permissions to subdirectories
  • Writable directory structure

Si estos permisos no se activan, el usuario podrá iniciar sesión pero no podrá crear carpetas ni subir archivos.


4.1.6 Guardar la configuración

  • Pulsa Aplicar.
  • Pulsa Aceptar.

Una vez guardada la configuración, el usuario alumno queda correctamente preparado para ejecutar todas las operaciones FTP del ejercicio.

Solo después de completar este apartado 4.1, se debe continuar con la secuencia completa de comandos FTP.


4.2 Secuencia completa de operaciones FTP


1. Iniciar el cliente FTP

ftp 192.168.1.79

Para verificar el correcto funcionamiento del servidor FTP, se utiliza un cliente FTP en modo texto desde una máquina cliente independiente.


2. Conexión al servidor

En la máquina cliente abre una terminal e inicia la conexión FTP indicando la dirección IP local del servidor FTP, evitando expresamente el uso de localhost o 127.0.0.1.

Tras ejecutar el comando, el cliente establece conexión con el servidor FTP y se recibe la respuesta del servicio FileZilla Server.

En pantalla podemos ver el mensaje de bienvenida del servidor, incluyendo el código de estado 220, que indica que el servicio FTP está disponible y preparado para aceptar conexiones.

A continuación, el servidor solicita el nombre de usuario y contraseña para proceder con la autenticación.


3. Introducir el usuario del sistema


4. Introducir la contraseña del usuario alumno

Si volvemos a la interfaz gráfica de FileZilla Server en el servidor podemos ver que se ha realizado la conexión con éxito.


5. Mostrar el directorio remoto inicial

pwd

Muestra el directorio remoto en el que el usuario se encuentra tras iniciar sesión. Inicialmente el servidor sitúa al usuario en /, donde no tiene permisos de escritura.


6. Mostrar el directorio local

lpwd

Muestra el directorio local del cliente FTP desde el que se realizarán las subidas y descargas de archivos.


7. Mostrar listado remoto

ls

Lista los archivos y directorios del directorio remoto actual para comprobar su contenido y los permisos disponibles.


8. Crear directorio remoto remoto1

mkdir remoto1
ls

Se crea el directorio remoto remoto1 dentro del directorio raíz virtual asignado al usuario FTP.


9. Acceder a remoto1

cd remoto1


10. Crear directorio remoto3

mkdir remoto3
ls


11. Subir el fichero fichero4.log a remoto3

put fichero4.log remoto3/fichero4.log
ls remoto3


12. Subir todos los ficheros .txt

cd ..
mput *.txt
ls

Para subir el archivo pulsa “y” y luego Enter.


13. Descargar fichero4.log renombrándolo a fichero4.nue

get remoto1/remoto3/fichero4.log fichero4.nue
ls


14. Eliminar el fichero remoto fichero4.log

delete remoto1/remoto3/fichero4.log
ls


15. Eliminar todos los ficheros .txt remotos

mdelete *.txt
ls


16. Eliminar el directorio remoto3

rmdir remoto1/remoto3


17. Eliminar el directorio remoto1

rmdir remoto1
ls

Se elimina el directorio remoto remoto1 tras haber eliminado todo su contenido.


18. Cerrar la sesión FTP

bye

Se cierra correctamente la conexión con el servidor FTP.

El servidor devuelve el código de estado 221, indicando que la sesión ha finalizado correctamente.

5. Conclusión

A lo largo de esta práctica se ha realizado la instalación y configuración de un servidor FTP en Linux Mint mediante FileZilla Server, comprobando su correcto funcionamiento dentro de la red local.

Se ha verificado especialmente que el servicio se encuentra activo, escucha en el puerto estándar 21 y que el usuario dispone de un directorio de trabajo personalizado con los permisos adecuados para la gestión de archivos.

Las pruebas se han llevado a cabo desde una máquina cliente independiente utilizando un cliente FTP en modo texto, lo que ha permitido confirmar que el servidor acepta conexiones remotas, autentica correctamente al usuario y permite la transferencia y gestión de archivos.

Durante estas pruebas se han ejecutado operaciones como la creación y eliminación de directorios, la subida y descarga de ficheros y la eliminación de archivos remotos, validando cada acción mediante los códigos de respuesta devueltos por el servidor FTP.

Por último, se ha modificado y exportado la configuración del servidor para permitir conexiones FTP sin cifrado, garantizando la compatibilidad con el cliente utilizado.

En conjunto, esta práctica ha servido para afianzar conceptos como el funcionamiento del protocolo FTP, la gestión de permisos en sistemas Linux y la administración básica de servicios de red en entornos virtualizados, aportando una visión práctica y aplicada de estos contenidos.

← Volver al portfolio