¿Realmente es mejor usar el puerto 80 o 443 para el tráfico saliente para evitar el firewall del usuario?

5

Recientemente he creado un shell de conexión inversa en C #. Lo probé con algunas computadoras y noté que algunas computadoras se conectaron correctamente y establecí una conexión con ellas, pero otra computadora que ejecuta Windows 7 parece no funcionar o establecer una conexión de nuevo conmigo.

Estaba usando el puerto 3001 como un puerto de comunicación, y estaba tratando de establecer una conexión inversa. ¿Alguna ayuda por qué esta computadora no funciona? Está utilizando el puerto 80 o 443, ya que un puerto de comunicación ayudará o ¡es lo mismo que la conexión es inversa! En otras palabras, ¿es realmente mejor usar el puerto 80 o 443 para el tráfico saliente en una conexión inversa?

    
pregunta mc2 27.02.2013 - 12:27
fuente

3 respuestas

4

El puerto 443 es para SSL. Dado que SSL es "opaco" para los forasteros, los firewalls no pueden ver lo que está dentro de él, y no pueden hacer un proxy transparente. Además, gran parte de la Web usa el puerto 443 (todos% https:// URL). Por lo tanto, el puerto 443 es uno de los puertos con mayor probabilidad de estar abierto para las conexiones salientes, incluso en sitios con reglas estrictas.

Tenga en cuenta, sin embargo, que algunos sitios bloquean todas las conexiones salientes, excepto las que van a un proxy específico. SSL no puede ser proxy de forma transparente , pero se puede hacer explícitamente (con un CONNECT llamada). Si desea implementar un "shell de conexión inversa" que funcionará en casi todas partes, debe poder detectar y utilizar un posible proxy para HTTPS.

    
respondido por el Thomas Pornin 27.02.2013 - 12:38
fuente
2

También debe comprender que los firewalls de hoy en día, especialmente con IDS incorporados, se basan en el concepto de protocol conformance , lo que significa que, si planea pasar manzanas en una caja que dice naranjas, es probable que las atrape. Esto es también lo que en algún contexto significa la inspección profunda de paquetes. Una vez que se verifica su cumplimiento con rfc, entonces, dependiendo de la respuesta del cortafuegos, se puede alertar, eliminar o rechazar su paquete.

Pero siempre puedes depurar la aplicación c # para ver qué sucede cuando intenta conectarse de nuevo; ¿recibe algún paquete RST o se interrumpe la conexión debido a algún error en los sockets (solicitud de manejo, terminación)?

    
respondido por el Saladin 27.02.2013 - 17:59
fuente
0

Es probable que su firewall personal, enrutador inalámbrico o firewall corporativo esté configurado para restringir qué puertos puede usar al establecer una conexión de salida, también conocido como filtrado de egreso . En su situación, usar los puertos 80 o 443 es una gran idea porque son los puertos más comunes en los que los servidores web escuchan a través de HTTP y HTTPS, respectivamente. Debido a esto, la mayoría de los firewalls, incluso en una configuración corporativa, permitirán la conectividad de salida en los puertos 80 y 443.

    
respondido por el Joe Gatt 28.02.2013 - 18:25
fuente

Lea otras preguntas en las etiquetas