Guía completa para configurar un servidor y cliente FTP en Linux y comandos de uso

Artículos Guías Manuales Sistemas Linux Windows Binario 0

1. Introducción a FTP en Linux

FTP (File Transfer Protocol) es un protocolo estándar utilizado para transferir archivos entre computadoras a través de una red TCP/IP, como Internet. En Linux, se puede configurar un servidor FTP y usar un cliente FTP tanto desde la línea de comandos como con aplicaciones gráficas. Esta guía cubrirá los pasos para configurar un servidor FTP en Linux y utilizar un cliente FTP, junto con ejemplos de los comandos básicos.

2. Requisitos previos

Antes de empezar, asegúrate de cumplir con los siguientes requisitos:

  • Un servidor con acceso root o privilegios sudo.
  • Un cliente Linux para conectarse al servidor (puede ser otro sistema Linux o el mismo servidor).
  • Conexión a Internet.

3. Configuración de un servidor FTP en Linux usando vsftpd

vsftpd (Very Secure FTP Daemon) es uno de los servidores FTP más populares y seguros en sistemas Linux. A continuación se describen los pasos para instalar y configurar vsftpd.

Paso 1: Instalar vsftpd

Primero, actualiza los repositorios de tu sistema e instala vsftpd:

En Debian/Ubuntu:

sudo apt update
sudo apt install vsftpd

En CentOS/RHEL:

sudo yum install vsftpd

Paso 2: Configurar vsftpd

Una vez instalado, edita el archivo de configuración de vsftpd:

sudo nano /etc/vsftpd.conf

Ajusta las siguientes opciones según tus necesidades:

  • Permitir acceso local: Esto permite que los usuarios del sistema se conecten a través de FTP.

    local_enable=YES
  • Permitir escritura: Permite a los usuarios subir archivos al servidor.

    write_enable=YES
  • Chroot para usuarios locales: Limita a los usuarios a su propio directorio de inicio, evitando que naveguen por otros directorios del sistema.

    chroot_local_user=YES
  • Deshabilitar acceso anónimo: Si no deseas permitir el acceso de usuarios anónimos, asegúrate de que esta línea esté deshabilitada o agregada:

    anonymous_enable=NO

Guarda y cierra el archivo (en nano, presiona CTRL+X, luego Y para confirmar los cambios, y Enter).

Paso 3: Iniciar y habilitar el servicio vsftpd

Inicia el servicio vsftpd y asegúrate de que se inicie automáticamente al reiniciar el servidor.

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

Paso 4: Configuración del firewall

Si tienes un firewall activo, permite las conexiones FTP a través del puerto 21.

En Debian/Ubuntu (usando UFW):

sudo ufw allow 21/tcp
sudo ufw reload

En CentOS/RHEL (usando firewalld):

sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload

4. Configuración del cliente FTP en Linux

Uso del cliente FTP en la terminal

El cliente FTP viene preinstalado en muchas distribuciones de Linux. Si no lo tienes, puedes instalarlo con:

En Debian/Ubuntu:

sudo apt install ftp

En CentOS/RHEL:

sudo yum install ftp

Para conectarte a un servidor FTP, usa el comando:

ftp <dirección_del_servidor>

Por ejemplo, si tu servidor FTP tiene la dirección IP 192.168.1.100, el comando sería:

ftp 192.168.1.100

Luego se te pedirá que ingreses el nombre de usuario y la contraseña.

5. Comandos básicos de FTP en la terminal

Una vez que te conectes al servidor FTP, puedes utilizar los siguientes comandos básicos para gestionar tus archivos.

Comandos comunes:

  • Listar archivos y directorios del servidor remoto:

    ls
  • Cambiar de directorio en el servidor remoto:

    cd <directorio>
  • Subir un archivo desde el sistema local al servidor remoto:

    put <archivo_local>
  • Descargar un archivo desde el servidor remoto al sistema local:

    get <archivo_remoto>
  • Subir varios archivos al servidor remoto:

    mput *.txt
  • Descargar varios archivos del servidor remoto:

    mget *.jpg
  • Crear un directorio en el servidor remoto:

    mkdir <nombre_directorio>
  • Eliminar un archivo del servidor remoto:

    delete <archivo_remoto>
  • Salir de la sesión FTP:

    bye

6. Uso de clientes FTP gráficos (Opcional)

Si prefieres una interfaz gráfica, existen clientes FTP gráficos para Linux, como FileZilla. A continuación te explicamos cómo instalar y usar FileZilla.

Instalación de FileZilla en Linux

En Debian/Ubuntu:

sudo apt install filezilla

En CentOS/Fedora:

sudo yum install filezilla

Conectarse a un servidor FTP con FileZilla

  1. Abre FileZilla.
  2. En el campo "Host", introduce la dirección IP o dominio del servidor.
  3. Ingresa el nombre de usuario y la contraseña.
  4. Deja el puerto en 21 (puerto predeterminado para FTP).
  5. Haz clic en "Conexión rápida".

Ahora deberías estar conectado al servidor, y podrás transferir archivos arrastrando y soltando entre los paneles (izquierdo: archivos locales, derecho: archivos remotos).

7. Consejos de seguridad para FTP

FTP transmite información en texto plano, lo que significa que es susceptible a ser interceptada. Aquí algunos consejos de seguridad para mejorar tu configuración FTP:

  • Usa SFTP (FTP sobre SSH): A diferencia de FTP, SFTP cifra las comunicaciones, haciendo la transferencia de archivos mucho más segura.Para usar SFTP, necesitarás tener instalado OpenSSH en el servidor (ya suele venir instalado en la mayoría de distribuciones). Puedes conectarte usando el comando:

    sftp <usuario>@<dirección_del_servidor>
  • Deshabilitar acceso anónimo: Evita que usuarios no autenticados accedan a tu servidor.
  • Limitar el acceso por IP: Utiliza reglas de firewall para restringir el acceso FTP solo a ciertas IPs o rangos de IPs confiables.

8. Conclusión

Configurar un servidor FTP en Linux con vsftpd es un proceso relativamente sencillo que permite compartir archivos de manera eficiente entre máquinas. Sin embargo, es importante tomar en cuenta los aspectos de seguridad, especialmente al usar FTP en redes públicas. Si la seguridad es una preocupación, se recomienda utilizar SFTP o FTPS (FTP sobre SSL/TLS). Con esta guía, deberías estar listo para configurar y utilizar FTP en Linux tanto para servidores como clientes.