regla de firewall HTTPS

5

Configuración de la regla de Firewall para sitios web HTTPS en firewall de filtro de paquetes sin estado básico

Esto parece una pregunta estúpida, pero ¿cómo configuro una regla de cortafuegos para permitir HTTPS en un cortafuegos de filtro de paquetes básico? El objetivo es poder navegar a sitios como enlace y tener todas las imágenes cargadas, etc. ¿Cómo puedo configurar esta regla?

Tengo las reglas configuradas de esta forma:

yourPC- [highport] - > Servidor SSL: 443

src ip      any
dest ip     any
src port    any
dst port    443
inbound     block
outbound    allow

SSLServer: 443 - > YourPC- [highport]

src ip      any
dest ip     any
src port    443
dst port    any
inbound     allow
outbound    block

El tráfico saliente parece estar bien, pero estoy eliminando paquetes como este (este ejemplo está cargando una página de twitter, el contenido de akamai):

23.9.229.210:443 > XXX.XXX.XXX.XXX:62712, AS Seq=###, Ack=-### -Black List Defense
  • ¿Cómo debo configurar la regla para permitir la carga de sitios web https? (¿no funciona debido al orden en que las reglas son leídas por el firewall?)

Otros detalles:

  • estas reglas son para el filtro de paquetes integrado en mi enrutador
  • este no es un firewall con estado

Muchas gracias

    
pregunta jubberq 07.05.2013 - 10:48
fuente

4 respuestas

6

Suponiendo que está configurando el firewall para permitirle acceder a sitios web SSL, entonces la forma de configurar el firewall depende de si el firewall está activo o no.

como @TerryChia dice que los puertos en su máquina local son efímeros, por lo que la conexión es

yourPC- [highport] - > Servidor SSL: 443

y la ruta de retorno es SSLServer: 443 - > YourPC- [highport]

Por lo tanto, si su firewall es extremadamente anticuado, la forma de configurar esto sería permitir que todo el tráfico desde un puerto de origen de 443 a todos los puertos altos de su máquina.

Sin embargo, casi todos los firewalls en estos días son de estado, lo que significa que pueden reconocer cuando un paquete es parte de una conexión establecida.

Por lo tanto, solo debe permitir que su PC se conecte a 443 de salida y luego, para la entrada, permita todo el tráfico relacionado con la conexión establecida

por ejemplo para iptables

sudo iptables -A ENTRADA -m estado --estado ESTABLECIDO, RELACIONADO -j ACEPTAR

    
respondido por el Rоry McCune 07.05.2013 - 13:55
fuente
2

¿Está configurando este firewall en su servidor o su cliente? Sus reglas (solo de salida, de destino restringido) sugieren la configuración del cliente [y parecen correctas por cierto], pero usted pregunta y comenta la configuración del servidor.

Sé muy poco acerca de los firewalls, y hace un tiempo le pregunté a esta pregunta sobre SF para abordar una de mis dudas más elementales. . Por las respuestas que recibí, puedo decir que el servidor de seguridad de su servidor debería tener:

src ip (any)
src port (443)
inbound allow

Para impedir que alguien intente conectarse a él a través de un puerto que no sea 443 ( advertencia: también debe habilitar el puerto SSH / etc, o se le bloqueará el servidor. ). Haga esto si su preocupación es con proteger el servidor . Las reglas de salida y destino limitarán las solicitudes desde su servidor a otro lugar estarán disponibles, así que configúrelas de acuerdo con sus necesidades.

Si su preocupación es con proteger al cliente , entonces debe restringir el puerto de destino (y, aún mejor, la ip también) a 443 y no permitir conexiones entrantes (asumiendo que su cliente es No esperándolos). Entonces, el firewall de su cliente debería tener:

dest ip (any [or your server's])
dstn port (443)
inbound block
outbound allow

Nota: también se explica en esa otra pregunta, un firewall con estado permitirá que una máquina que recibió una solicitud envíe una respuesta al mismo ip / puerto independientemente de la configuración de salida , y viceversa, es por eso que su configuración no necesita preocuparse por los puertos efímeros. Ej .: el cliente envía un paquete al servidor (src: 55680, dest: 443), el firewall del cliente acepta (saliente ok, dstn ok), el paquete se envía; la respuesta llega al mismo puerto 55680, pero el firewall lo deja pasar. La regla para bloquear la entrada no se aplica aquí, ya que es una respuesta a una solicitud que inició en la máquina cliente .

Es por eso que, contraintuitivamente, usa las reglas de salida para proteger a el cliente , aunque le preocupan los paquetes entrantes . Mientras que también bloquea todos los paquetes entrantes, y sigue teniendo los que son importantes, las respuestas a sus solicitudes, que llegan normalmente.

    
respondido por el mgibsonbr 07.05.2013 - 13:53
fuente
1

Los puertos arbitrarios que está viendo en sus registros se conocen como Puertos efímeros .

Esto no es una situación específica de HTTPS. Cualquier comunicación con un servidor involucrará a su cliente utilizando un puerto efímero para comunicarse con un puerto definido en el lado del servidor.

Si desea restringir el acceso a los servidores web que escuchan en el puerto 443, simplemente ordene a su firewall que elimine los paquetes con un puerto de origen de 443. Por qué querría hacer esto es un misterio para mí.

    
respondido por el Ayrx 07.05.2013 - 10:53
fuente
1
  

Esto parece una pregunta estúpida, pero ¿cómo configuro una regla de firewall?   ¿Para permitir HTTPS en un firewall de filtro de paquetes básico?

En general, no hay preguntas tontas y esta es una pregunta bastante legítima, por lo que no es necesario que se disculpe. Permítame intentar explicarlo lo más claramente posible, sin sacrificar necesariamente la claridad y la corrección.

Nota: mientras pides una solución, te proporcionaré algunos antecedentes sobre por qué es posible que no quieras hacer lo que estás intentando. Si comprende completamente las consecuencias de su pregunta y todo lo que conlleva, sospecho que mi respuesta no es la que busca. Sin embargo, si quiere entender por qué la configuración no es tan buena, continúe leyendo.

Ya se ha explicado que lo que ves son los llamados puertos efímeros. Estos se asignan dinámicamente por la pila de red en su sistema operativo. ¿Por qué mi sistema operativo utiliza estos puertos con números altos en lugar de los 443 que puede preguntar?

Hay varias razones, permítame resaltar algunas que pueden ayudarlo a comprender por qué esto no es necesariamente un problema.

  1. Eficacia de navegación (red)
  2. Seguridad (permisos)

Si tuviera que hacer cumplir su sistema operativo (y el software cliente) para usar solo el puerto 443, reduciría significativamente la posibilidad de que el sistema operativo y el navegador utilicen el paralelismo de la red, algo que se utiliza para aumentar la velocidad de carga de páginas . Usted ve, hay una serie de limitaciones en la forma en que HTTP funciona como un protocolo, como una sola solicitud a la vez. Usar múltiples conexiones para descargar contenido es una forma de ayudar a superar esta limitación; como es HTTP-pipelining.

La segunda razón mencionada anteriormente es sobre la seguridad. La mayoría de los sistemas operativos consideran los puertos por debajo de 1024 (0-1023) con privilegios. Para que una aplicación de usuario pueda enlazar (usar) uno de estos puertos, la aplicación requiere privilegios adicionales (como ejecutar con privilegios administrativos o usar una capacidad particular en Linux, vea esto .).

Lo que has identificado no suele considerarse un problema (para HTTP) con los sistemas operativos modernos, ya que sus respectivas pilas de red sabrán qué paquetes están relacionados con qué paquetes.

Si aún está preocupado y simplemente no está convencido por ninguna de las respuestas proporcionadas para su pregunta, puede intentar lo siguiente. Investigue si su navegador puede estar limitado a un cierto rango de puertos efímeros, como 51000-51100. Luego cree una regla para permitir que solo estos puertos se utilicen como src-port en combinación con dst-port 443.

Sin embargo, tenga en cuenta que restringir su sistema operativo y el software cliente a estos puertos puede tener consecuencias imprevistas, ya que puede haber otras aplicaciones que usen estos puertos efímeros que acaba de asignar.

TL; DR: no se preocupe por los puertos efímeros que se utilizan al explorar, confíe en que el sistema operativo maneje los paquetes asociados y relacionados correctamente. Hacer cumplir el puerto de dst y ser feliz con eso. :-)

    
respondido por el Christoffer 07.05.2013 - 14:31
fuente

Lea otras preguntas en las etiquetas