FTP
● Intercambio de datos○ Usa dos canales de intercambio
conocidos como canal de datos y canal de comandos.
FTP
○ El canal de comandos funciona sobre el puerto 21 y es el responsable de aceptar conexiones clientes y enlazar el intercambio mediante simples comandos entre un cliente FTP y un servidor.
FTP○ El canal de datos, se ejecuta bajo demanda,
en puertos temporales escuchando al servidor (modo pasivo) o al cliente (modo activo) y es el responsable de intercambiar datos entre directorios y de la transferencia de archivos.
FTP
● SeguridadUsa ambos canales (datos y comandos) de manera desencriptada. Cualquier dato enviado por estos canales podría ser interceptado y leído.
FTP
● Firewall○ Servidor. Permite conexiones de llegada al puerto
21. Declara un rango de puertos pasivos para la transferencia de ficheros y directorios escuchando.
○ Cliente. Permite conexiones de salida al puerto 21 y un rango de puertos pasivos definidos por el servidor.
FTPS
Cuando el protocolo FTP se redactó inicialmente, la seguridad no era una preocupación.
Desde entonces muchas cosas han cambiado, y el envío de datos por una red pública sin cifrado se considera muy arriesgado.
FTPS
● SSL implícitoSe establece una sesión SSL requerida
entre el cliente y el servidor antes de que se intercambien los datos.Cualquier intento de conexión hecho por un cliente sin conexión SSL es rechazado por el servidor.
FTPS
● SSL explícitoEl cliente y el servidor negocian el nivel de
protección utilizado.El servidor soporta tanto conexiones cifradas como sin cifrar.Es el cliente el que solicita cambiar de canal.
FTPS
● Firewall○ Servidor: Permite conexiones entrantes en el
puerto 21 y/o 990.Puede definir rangos de puertos pasivos para la transferencia de archivos y listas de directorios.
○ Cliente: Permite conexiones salientes hacia el puerto 21 y el rango de puertos pasivos definidos por el servidor.
SFTP
SFTP se suele confundir con FTPS y viceversa incluso cuando estos protocolos no tienen nada en común excepto la transferencia de archivos. SFTP está basado actualmente en el protocolo SSH (Secure Shell) que es el más adecuado para distribuir acceso seguro entre servidores remotos.
SFTP
● Intercambio de datos. ○ SFTP no utiliza canales separados de comandos y
datos como FTPS. Ambos son transferidos en paquetes de un formato especial a través de una conexión individual.
SFTP
● SeguridadTodos los datos enviados entre el cliente y
el servidor se cifran mediante un acuerdo sobre la cifra de encriptación.
SFTP
● Firewall○ Servidor: permite conexiones entrantes en el puerto
22.○ Cliente: permite conexiones salientes hacia el
puerto 22.
proftpd seguro
Una vez tenemos nuestro servidor proftpd configurado la manera de hacerlo seguro se procede así:● Editamos el archivo proftpd.conf del
directorio /etc/proftpd/ y descomentamos la siguiente línea:
proftpd seguro
● Creamos un directorio donde almacenar las key y los certificados para el servidor FTP. Se ha optado por ponerlo en el mismo directorio que proftpd:
proftpd seguro● Ejecutamos el siguiente comando para crear la clave y
el certificado y llenamos los datos:
proftpd seguro● Después configuramos el archivo tls.conf del directorio
de proftpd y descomentamos o añadimos las siguientes líneas. Es importante poner bien el nombre de las claves:
proftpd seguro● Comprobamos su funcionamiento desde el cliente
Filezilla. Para ello creamos una nueva conexión y modificamos los datos para que sea una conexión segura (TSL explícita). Al conectarnos nos aparecerá una ventana para aceptar el certificado y realizar la conexión: