¿Qué puertos de firewall necesito abrir cuando utilizo FTPS?


33

Necesito acceder a un servidor FTPS (vsftpd) en el sitio de un proveedor. El vendedor tiene un firewall frente al servidor ftps. Tengo un firewall frente a mi cliente FTPS.

Entiendo que los puertos 990, 991 y quizás 989 deben abrirse para controlar el tráfico.

Tengo algunas preguntas:

  1. Al mirarlo desde la perspectiva del firewall del proveedor, ¿deberían abrirse estos puertos para el tráfico entrante y saliente?
  2. ¿Qué pasa con los puertos para el canal DATA?
  3. ¿Tengo que abrir todos los puertos por encima de 1000?
  4. ¿Debo hacerlo para el tráfico entrante y saliente?

Respuestas:


19

Entiendo que FTP sobre SSL (ftps) es que no funciona bien con firewalls y NAT. En una sesión FTP ordinaria, el cortafuegos lee la información sobre las conexiones de datos y el NAT modifica el NAT para que el cortafuegos abra dinámicamente los puertos necesarios. Si esa información está protegida por SSL, el firewall no puede leerla ni cambiarla.

El uso de SFTP, o scp, facilita mucho el trabajo del administrador de la red: todo sucede en el puerto 22 del servidor y la transacción sigue el modelo normal de cliente / servidor.

Una cosa que no se menciona es si su firewall está realizando NAT o no y si es NAT estático o NAT dinámico. Si su máquina cliente tiene una dirección estática o está estáticamente conectada a NAT, es posible que no necesite realizar ningún cambio en el firewall, suponiendo que permita todo el tráfico saliente y que el servidor funcione solo en modo Pasivo (PASV).

Para saber exactamente qué puertos necesitará abrir, deberá:

a) hable con el proveedor para obtener detalles sobre cómo se ha configurado su sistema.

b) Use un analizador de protocolos, como tcpdump o wireshark, para observar el tráfico, tanto desde fuera de su firewall como dentro de su firewall

Debe averiguar qué puerto es la conexión de control. Usted enumera 3, lo que me parece extraño. Suponiendo que el servidor solo funciona en modo PASV (pasivo), debe averiguar cómo está configurado el servidor para los puertos DATA asignados. ¿Han bloqueado el canal DATA en un solo puerto entrante? ¿Han bloqueado el canal de DATOS a un rango o puertos pequeños?

Con estas respuestas, puede comenzar a configurar su firewall.


3
El modo pasivo FTPS usaría un puerto de control sobre el puerto # 1024 y, por lo tanto, funcionaría mejor con un firewall que no pasivo. el cliente le dice al puerto 21 qué puerto de límite superior debe abrir, por lo que puede configurar el cliente para que diga "el control está en el puerto 2000 o 2001" y luego el servidor abrirá el puerto de salida 2000 o 2001. La mayoría de los clientes FTP admiten la definición de un rango específico de puertos para que el "control" esté activado y eso facilita las definiciones de firewall.
djangofan

27

Creo que los puertos alrededor del 990 eran para SSL implícito, que era una forma antigua y no estándar de hacer FTP / SSL. La forma "correcta" en estos días es SSL explícito, lo que significa que aún se conecta en el puerto 21 y luego negocia SSL antes de enviar sus regalos. Para admitir conexiones a través de un firewall, debe usar el modo PASV y configurar los puertos de datos que se utilizarán.

Creo que necesita al menos un puerto por conexión de datos que desee admitir. Si solo eres tú, probablemente estés bien solo abriendo algunos puertos adicionales. Específicamente para mí, uso 21000-21010.

En vsftpd.conf, tengo estas dos líneas (junto con todas las otras cosas para admitir SSL):

pasv_min_port=21000

pasv_max_port=21010

En mi firewall, tengo una IP estática pública con NAT uno a uno / estática a la IP interna y solo los puertos tcp 21, 21000-21010 abiertos.


10

Sé que este es un hilo extremadamente antiguo, sin embargo ...

Tenga en cuenta que SFTP es completamente diferente de FTPS. (SSH vs SSL)

FTPS trabaja de 2 maneras. Explícito e implícito. Explícito es menos seguro porque después del protocolo de enlace inicial omite el cifrado durante las transferencias de datos [si se mantiene el cifrado de datos es configurable en el lado del servidor con PROT P], mientras que el Implicto mantiene el cifrado de los datos después del protocolo de enlace también. El puerto FTPS explícito predeterminado es 21. El puerto implícito predeterminado es 990 (después del protocolo de enlace, cambiará automáticamente a 989 para la transmisión de datos, si no se configura de manera diferente). Si bien el puerto 21 generalmente se acepta como FTPS EXPLÍCITO y el 990 como FTPS IMPLÍCITO, en realidad cualquier puerto que configure, excepto el 990/989, conducirá a FTPS EXPLÍCITO, mientras que SOLO 990/989 se aceptará como FTPS IMPLÍCITO.

Entonces, para responder a su pregunta: - dependiendo de la configuración del servidor FTPS, deberá abrir el puerto 21 o 990/989. Sin embargo, solo para estar seguro, debe comunicarse con el administrador del servidor FTPS y solicitar instrucciones. Además, tenga en cuenta que para el modo pasivo, como con cualquier otro software FTP, tendrá que abrir puertos adicionales (TCP / UDP), generalmente algo del rango 64000-65000.


2

Básicamente, ftps es casi inútil, ya que debe realizar solicitudes embarazosas a los administradores de firewall. El consejo para restringir los puertos a 10 es bueno. Mucho más, se vuelve patético.

sftp es mucho mejor en teoría. Pero necesita un servidor sftp viable, por ejemplo, uno que restrinja a los clientes a su propio directorio personal.

Dependiendo de la aplicación, considere HTTPS. La carga de un archivo es realmente simple, y una descarga obviamente también lo es. Si de todos modos está creando una secuencia de comandos de FTP, probablemente será más fácil crear una secuencia de comandos para cargar un archivo HTTPS.

El FTP automatizado es un signo de un problema de diseño. Me di cuenta de esto cuando traté con un total de aproximadamente una docena de vendedores que 'requirieron' un lugar donde trabajé para hacer FTP automatizado (para cosas MUY importantes), y al hacer que docenas de clientes lo hicieran con esa misma tienda (una falla de diseño por aproximadamente 20 usos distintos que presencié). Fue fácil convencer a la mayoría de los usuarios de aplicaciones para que usen HTTPS (por lo general, con la mención, dijeron "espera, ¿no hay ninguna razón por la que no solo hagamos que lo obtengan con HTTPS desde el servidor web en el que ya les estamos sirviendo datos?" ), excepto algunos que dieron respuestas como "bueno, ya tenemos estos scripts que parecen funcionar, y nadie en nuestro equipo es realmente bueno con los scripts, por lo que no podemos hacer ningún cambio" (un equipo de 5-10 programadores,


1

El proveedor puede configurar un rango de puertos estrecho para los puertos de conexión DATA, si aún no lo han hecho. Luego puede abrir el mismo rango en su extremo, para los hosts que necesitan dicho acceso. Se debe usar el modo PASV.


-1

El puerto 22 es estándar ya que el demonio SSH en UNIX tiene un módulo SFTP que puede habilitar básicamente para hacer un servidor SFTP explícito. Si desea ejecutar un servidor FTP implícito con Filezilla, puede ejecutarlo en cualquier puerto que desee, pero hay un problema: si usa el cliente FileZilla, debe especificar la URL del sitio ftp como ftps: //mysite.com: 8086 en lugar de poner el puerto en el campo de puerto separado que proporciona el cliente FileZilla.

Para la opción explícita, solo necesita UN puerto: 22. Para la opción implícita, solo necesita tener el firewall abierto para el puerto de control: 8086 (que reenvía internamente al puerto 21 en su servidor filezilla).


66
La pregunta se hizo sobre FTPS, no sobre SFTP.
Michael Lang

-7

si ftps es lo mismo que sftp , entonces solo necesita poder acceder al puerto 22 en el sitio del proveedor.

Por su parte, debe configurar su firewall para permitir el tráfico saliente del puerto 22 y entrante relacionado . Esto permitirá la comunicación en cualquier puerto entrante que esté relacionado con la conexión saliente inicial en el puerto 22.


11
SFTP no es lo mismo que ftps ( codeguru.com/csharp/.net/net_general/internet/article.php/… ). SFTP es el protocolo de transferencia de archivos utilizado con SSH. FTPS es FTP con SSL, FTPS inicia una nueva conexión DATA en un nuevo puerto aleatorio, lo que dificulta la implementación detrás de firewalls, pero no puedo eliminar el firewall en esta situación.

2
Perdón entonces. Sin embargo, dejaré esta publicación, en caso de que otros tengan la misma confusión.
Brent

Es una confusión muy común. Desde el lado del cortafuegos, sftp es mucho más fácil de permitir, excepto que se basa en un protocolo destinado al acceso de inicio de sesión. Negligente para que los grupos de seguridad independientes lo permitan sin una validación independiente significativa. Difícil para los administradores de sistemas encontrar / configurar un servidor sftp razonable para clientes no confiables. Cualquier discusión sobre sftp o ftps debe mencionar el otro protocolo porque la confusión es TAN común.
carlito
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.