pf.conf para bloquear * solo * una dirección IP específica cuando VPN no está conectada

1

Estoy tratando de configurar un servidor de seguridad de filtro de paquetes para bloquear el acceso a un pequeño rango de direcciones IP cuando una VPN no está conectada.

Mis reglas deben permitir el tráfico https / http aparte de esta pequeña lista específica de direcciones IP. Es importante que el dispositivo no pueda alcanzar estas direcciones IP cuando la VPN no está conectada.

Estoy usando la VPN macOS incorporada en 10.13

Hasta ahora tengo algunas cosas bastante estándar en mis reglas:

vpn_ifs = "{ utun1 ipsec0 }"
hw_ifs = "{ en0 en1 en2 }"
...
pass quick on $vpn_ifs

El motivo de mi solicitud es que tengo un recurso basado en web al que solo puedo acceder una vez que la VPN está conectada. Permitir la conectividad a este recurso antes de que se conecte la VPN desactiva el acceso a mi cuenta.

Necesito acceso al tráfico http y https antes de que se establezca la VPN para habilitar los servicios que deben funcionar antes de que se establezca la conexión VPN. Incluyendo, pero no limitado a soporte de portal cautivo.

    
pregunta John 27.03.2018 - 19:40

1 respuesta

0

Cada paquete se evalúa contra el conjunto de reglas de filtro de arriba a abajo y la última regla coincidente gana. La palabra clave quick es la única excepción: el paquete se bloqueará o se pasará de inmediato sin ser perturbado por ninguna regla posterior.

Suponiendo que está utilizando el enfoque negar todo , debe permitir explícitamente que los paquetes pasen o entren.

Conjunto de reglas:

block all
...

Para cumplir con el requisito de "recurso basado en la web", debe permitir / denegar paquetes rápidamente según la interfaz:

pass out quick on $vpn_ifs from any to { <web_res1>, <web_res2> } no state  
block out quick on $hw_ifs from any to { <web_res1>, <web_res2> } no state

Para cumplir con el requisito de "tráfico http y https", debe permitir el tráfico saliente al puerto 80/443:

pass out on $hw_ifs from any to any port { 80, 443 }

Al utilizar el enfoque denegar todo , ha agregado algunas reglas más (por ejemplo, para permitir el tráfico desde / hacia las redes locales).

El conjunto de reglas final se ve así:

block all
...
rules
...
pass out quick on $vpn_ifs from any to { <web_res1>, <web_res2> } no state  
block out quick on $hw_ifs from any to { <web_res1>, <web_res2> } no state
...
pass out on $hw_ifs from any to any port { 80, 443 }
...
more rules

Aquí es un ejemplo de un denegar todos pf.conf con una gran cantidad de reglas explicadas Sin embargo, las reglas se utilizan en una puerta de enlace de FreeBSD: algunas no deben aplicarse o no son útiles en su entorno. Las reglas individuales no funcionan en absoluto (por ejemplo, funciones relacionadas con ALTQ).

    
respondido por el klanomath 29.03.2018 - 20:15

Lea otras preguntas en las etiquetas