Saltar al contenido

Acceso FTP seguro; mejores prácticas

Solución:

aunque @ mahbubut-r-aaman lo menciona de pasada, pensé en ampliar un poco sobre SSH. La respuesta que yo diría para asegurar FTP es no usar FTP. La razón es que (de forma predeterminada) envía nombres de usuario y contraseñas sin cifrar, lo que no se considera un enfoque muy seguro.

En su lugar, podría mirar SFTP (que usa el protocolo SSH) o FTP (S) que usa el protocolo FTP con SSL para el cifrado.

Además, sugiero buscar una solución como fail2ban para ayudar a bloquear los intentos de adivinar la contraseña.

cambiar el puerto en el que escucha es un poco útil para evitar el ruido en sus registros de ataques aleatorios, pero no debe confiar en él.

bloquear el acceso a direcciones IP de origen específicas es una buena idea si es práctico, ya que limitará quién puede intentar acceder al sitio.

El problema con el FTP estándar

El protocolo FTP estándar no está protegido. Cualquiera en la red (cualquier “hombre en el medio”, como se llama, que pueda leer y / o modificar los datos de la conexión) puede ver lo que está enviando y modificar los datos enviados. Un inicio de sesión FTP típico es el siguiente:

* TCP connection is made to the server
220 Welcome to this FTP server!
USER <username>
331 Password required for <username>
PASS <password>
<a positive or negative response>

Como puede ver, no existe protección alguna para la contraseña. Como cualquiera en la red puede leer esto, un atacante puede iniciar sesión fácilmente con un nombre de usuario y una contraseña robados.

Hay varias formas de solucionar este problema. Podrías usar algo más que FTP, pero como no se trata del tema aquí, no entraré en esto. El propio FTP conoce dos versiones seguras populares: FTPS y SFTP. Puede mantenerlos separados de la siguiente manera: FTPS tiene una S al final, al igual que HTTPS. Y, de hecho, funciona exactamente igual que HTTPS, que es mediante el protocolo SSL / TLS. SFTP, con un prefijo S, usa SSH para conectarse y es más popular en servidores Linux.

En este artículo me centraré en FTPS.

Sobre las medidas que has tomado hasta ahora

En primer lugar, es bueno que esté buscando activamente asegurar esto. ¡A muchas personas simplemente no les importaría!

  • Cambiar el número de puerto

    Esto ayuda de dos maneras, aunque no valen la pena.

    1. El uso de un puerto alternativo hace que sea un poco menos obvio que se trata de tráfico FTP, pero aún es muy trivial darse cuenta cuando alguien está buscando activamente piratearlo y puede monitorear su red.
    2. Regularmente veo gente escaneando servidores aleatorios en el puerto 21 para ver si hay cuentas no seguras activas, pero una contraseña como “1Q3XX” ya no sería adivinada por ellos (la mayoría de ellos hacen ataques de diccionario). Por lo tanto, no es realmente ventajoso cambiar el puerto si sus contraseñas son mejores que “admin” o “123456”.
  • La carga se puede realizar desde una IP fija (nuestra local)

    Esto ayuda un poco más, pero también te limita. Si está en casa y nota un gran agujero de seguridad en su sitio web, deberá conducir. Con una contraseña decente, no debería ser necesario limitar la IP, especialmente si tiene un servidor que admite la prohibición automática después de demasiados intentos de inicio de sesión no válidos.

    Puede configurar una VPN para evitar tener que conducir, pero ¿de qué sirve si simplemente pudiera elegir una contraseña FTP segura?

Sugerencia de software

Como no lo mencionó, asumiré que está abierto a cualquier implementación de servidor y cliente FTP disponible para cualquier sistema operativo.

Aunque no he probado muchos servidores FTP, Servidor FileZilla funciona bien para mis propósitos y supongo que funcionaría bien para cualquier organización pequeña. Las características incluyen:

  • Múltiples usuarios y grupos de usuarios
  • Permitir o denegar el acceso desde determinadas direcciones IP, tanto por usuario como globalmente para el servidor
  • FTPS. Al igual que HTTPS es HTTP seguro, FTPS es FTP seguro. Funciona completamente sobre SSL / TLS y protege los datos que se envían. Los datos (el inicio de sesión y el código) no puede ser leído o cambiado por alguien en el medio (como un pirata informático en una red wifi pública, o incluso su gobierno o ISP). Simplemente puede instalar su propio certificado.
  • Puede forzar el uso de FTPS por usuario y también forzar el envío de archivos cifrados (algunos clientes solo cifran los datos de inicio de sesión)
  • Es posible la prohibición automática después de demasiados inicios de sesión no válidos (prohíbe la IP durante algún tiempo, que puede configurar)
  • Se admite el registro y puede establecer cuánto tiempo se almacenan los registros, qué tan grandes pueden llegar a ser, etc.
  • Muchas más funciones no relacionadas con la seguridad, como la aceleración / limitación de velocidad, la limitación del número de clientes simultáneos, la configuración del puerto en el que escucha, la configuración de un mensaje de bienvenida, etc.
  • La configuración está en XML y hay un panel de administración (el panel de administración se puede conectar de forma remota y está protegido por una contraseña). Esto significa que también puede automatizar la adición de usuarios al archivo XML si lo desea.
  • Una desventaja es que es solo para Windows.

Si está utilizando un servidor Linux, puede buscar servidores FTP con opciones similares. Con mucho, la característica más importante que se debe buscar en un servidor es FTPS o SFTP, y la posibilidad de forzar eso para que nadie pueda conectarse accidentalmente sin cifrado. Además de eso, el bloqueo automático y el registro son bastante importantes.

Entonces para el cliente, De nuevo pienso que FileZilla es una muy buena opción.

  • Es compatible con FTPS y SFTP e incluso certificados de cliente para autenticación.
  • Debe confiar explícitamente en el certificado enviado por el servidor, almacenando y confiando opcionalmente en el certificado. Si un pirata informático falsifica un certificado, lo sabrá porque le preguntará de nuevo “¿desea confiar en este certificado desconocido?”.
  • Multiplataforma (se ejecuta en Windows, Mac y Linux)
  • Muchas más opciones como navegación sincronizada de directorios, un administrador de sitio (almacenar inicios de sesión para diferentes servidores), comparar archivos en la lista de directorios local y remoto según el tamaño y la fecha de modificación, velocidades límite y transferencias simultáneas, etc.

Los siguientes pasos le ayudarán a proteger el acceso FTP

  • Deshabilitar el acceso anónimo
  • Configure su sitio FTP como Blind Put
  • Habilitar cuotas de disco
  • Usar restricciones de tiempo de inicio de sesión
  • Restringir el acceso por IP
  • Auditar eventos de inicio de sesión
  • Habilitar el requisito de contraseña segura
  • Habilitar bloqueo de cuenta y umbral de bloqueo de cuenta
  • Hacer obligatorio el acceso SSH

EDITAR:

  • Una buena investigación en IBM sobre seguridad FTP

EDITAR: Ejemplo de implementación

  • Integración de SFTP en servidores de producción FreeBSD utilizando el enfoque de criptografía de clave pública

  • FTP seguro

EDITAR: Me gusta la respuesta de @Rory McCune. Buena y gran explicación.

En lugar de usar FTP, mejor si pudiera mirar SFTP (que usa el protocolo SSH) o FTP (S) que usa el protocolo FTP con SSL para el cifrado.

fail2ban es una buena solución para ayudar a bloquear los intentos de adivinar la contraseña.

Cambiar el puerto en el que escucha es un poco útil para evitar el ruido en sus registros de ataques aleatorios.

EDITAR: Prefiero el comentario de @ Rook

don't use ftp! Your password and your code in in plain text!
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *