FTP
Significa Protocolo de Transferencia de Archivos (File Transfer Protocol en inglés), se trata de un estándar de red utilizado para transferir archivos de un host a otro a través de una red TCP/IP, como Internet en un modelo cliente-servidor. El cliente es la aplicación que se utiliza para conectarse al servidor FTP y realizar operaciones de transferencia de archivos y el servidor es el sistema que aloja los archivos y proporciona acceso a ellos a través de la red.
Conexión
Antes de realizar cualquier transferencia de archivos, el cliente debe establecer una conexión con el servidor.
La conexión FTP puede ser en modo activo o pasivo. En modo activo, el cliente abre un puerto para recibir datos, mientras que en modo pasivo, el servidor abre un puerto para la transferencia de datos.
Una vez establecida la conexión, el cliente envía comandos al servidor y el servidor responde a esos comandos. Algunos comandos FTP comunes incluyen:
USER
yPASS
: para autenticación del usuario.PWD
yCWD
: para conocer y cambiar el directorio de trabajo.LIST
oNLST
: para listar archivos en el directorio actual.GET
yPUT
: para descargar y cargar archivos, respectivamente.
FTP admite dos modos de transferencia de datos ASCII y binario. El primero se utiliza para archivos de texto, mientras que el modo binario se utiliza para archivos como imágenes o programas ejecutables.
Seguridad
El puerto estándar para conexiones FTP no seguras es el puerto 21.
FTPS puede funcionar en dos modos: explícito y implícito:
En el modo explícito, el más común, se utiliza el mismo puerto 21 que FTP no seguro, y la seguridad se inicia mediante un comando específico (por ejemplo,
AUTH TLS
).En el modo implícito, el servidor FTPS espera conexiones seguras directamente en el puerto 990.
SFTP no utiliza el mismo protocolo que FTP. En lugar de eso, se ejecuta sobre una conexión segura SSH (Secure Shell) en el puerto 22.
Instalación y configuración de vsftpd
en Ubuntu:
vsftpd
en Ubuntu:VSFTPD (Very Secure FTP Daemon) es un servidor FTP de código abierto y ampliamente utilizado que se centra en la seguridad y la eficiencia. Está diseñado para minimizar el riesgo de ataques y vulnerabilidades.
A continuación te enseño como instalar y configurar el servicio en un servidor Debian/Ubuntu:
1- Instalar vsftpd: Abre una terminal en tu servidor Ubuntu y ejecuta los siguientes comandos para instalar vsftpd
:
2- Haz una copia de respaldo:
3- Configurar vsftpd: Edita el archivo de configuración (vsftpd.conf
) para ajustar la configuración según tus necesidades:
Asegúrate de tener las siguientes líneas descomentadas o añade estas configuraciones al final del archivo:
Al terminar, guarda los cambios y cierra el editor.
4- Reiniciar vsftpd: Después de realizar cambios en la configuración, reinicia el servicio vsftpd para aplicarlos:
5- Creamos usuario FTP
Con la sintaxis de debajo podemos crear un usuario de svftpd
:
6- Conecta al servidor FTP
Conecta el servidor FTP usando:
Reemplaza[system_name]
con el nombre de tu servidor.
Por ejemplo:
Después de conectar con el servidor, haz login con la cuenta que hemos creado.
Conexión desde FileZilla Client
Abrir FileZilla Client: Inicia FileZilla Client en tu máquina cliente.
Configurar la conexión:
En la barra superior de FileZilla, ves a "Gestor de sitios" y crea un sitio nuevo encontrarás campos para introducir la información de conexión.
Ingresa la dirección IP o el nombre de dominio de tu servidor en el campo "Host".
Selecciona "FTP - File Transfer Protocol" en el campo "Protocolo" y añade el puerto 21 para una conexión FTP normal.
Ingresa tu nombre de usuario y contraseña que configuraste en el servidor
vsftpd
.Haz clic en el botón "Conectar" para establecer la conexión.
Transferir archivos:
Una vez conectado, verás dos paneles. El de la izquierda es tu sistema local y el de la derecha es el sistema remoto (tu servidor). Puedes arrastrar y soltar archivos entre estos paneles para transferirlos.
Configurar conexión SFTP con VSFTP
Recuerda, como he explicado arriba, FTPS implícito es un método de FTPS que permite a los clientes conectarse a un puerto implícito (Puerto 990, que ya tiene conexiones seguras integradas) sin tener que solicitar que haya una. El FTPS implícito utiliza un puerto dedicado para permitir que el puerto 21 quede abierto. Este se considera mucho más estricto cuando se trata de establecer una conexión segura.
Lo primero va a ser comprobar que está instalado openssh, esto lo podemos hacer con el siguiente comando:
Cambiar la configuración SSHD
Una vez instalado ssh y vsftpd, puedes editar el archivo de configuración del SSH daemon. Puedes abrirlo usando el editor Nano:
Luego añade lo siguiente:
Esto permitirá a los usuarios del sftpgroup
a acceder al directorio de home a través de SFTP.
Reinicia el servicio para aplicar los cambios:
Crea usuarios, contraseñas y directivas
El siguiente paso es crear un nuevo grupo sftpgroup
y un nuevo usuario sftpuser
, quienes por motivos de seguridad sólo podrán acceder al servidor SFTP de Ubuntu y no al servicio SSH.
El nuevo usuario se agrega al grupo SFTP con la opción -G
. -d
establece el directorio de inicio y -s
establece las reglas de acceso al shell.
Establecemos la contraseña ahora:
Ahora vamos a crear el directorio Chroot
con el objetivo de crea una zona de pruebas para los procesos que se están ejecutando actualmente. Primero que nada necesitamos configurar una nueva carpeta:
Y ahora podemos crear una subcarpeta y poner el sftpuser
como propietarios:
Conexión con Ubuntu server
Puedes crear una conexión al servidor SFTP a través de la barra de comandos SFTP o mediante un cliente FTP con GUI como Filezilla.
Ingrese el comando sftp, seguido del usuario y nombre de host o la dirección IP del servidor SFTP.
Deberás reemplazar PORT por el puerto que hayas puesto o el 22 por defecto. Cambia sftpuser
por el usuario creado anteriormente y SERVER-IP
por la IP del servidor o el host configurado.
Acciones dentro de FTP
put
put /path/to/file1/on/local1 /data/
Subir archivos, recuerda que el usuario solo se ha configurado para tener permisos de escritura en ciertos directorios.
ls
ls /data
Listar archivos y directorios
Última actualización