it-swarm-es.com

¿Qué puertos de cortafuegos debo abrir cuando utilizo FTPS?

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?
33
user3293

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

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á funcionando o no NAT y si es estático NAT o NAT dinámico. Si su máquina cliente tiene un estático dirección o está siendo NAT estáticamente, es posible que no necesite realizar ningún cambio de 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 DATA a un pequeño rango o puertos?

Con estas respuestas, puede comenzar a configurar su firewall.

19
pcapademic

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 unos pocos 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 one-to-one/static NAT a la IP interna y solo los puertos tcp 21, 21000-21010 abiertos.

29
David

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 de que el protocolo de enlace inicial omita el cifrado durante las transferencias de datos [si el cifrado de datos se mantiene es configurable en el lado del servidor con PROT P], mientras que el implícito también mantiene el cifrado de los datos después del protocolo de enlace. 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), por lo general, algo del rango 64000-65000.

11
Marin

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, p. uno que restringe 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, pretendiendo no entender que pueden escribirlo en un idioma de su elección, porque no saben cómo escribir un programa trivial desde cero).

2
carlito

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
Chris W. Rea

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).

0
djangofan