Estou tentando configurar um firewall de filtro de pacotes para bloquear o acesso a um pequeno intervalo de endereços IP quando uma VPN não está conectada.
Minhas regras devem permitir tráfego https / http além dessa pequena lista específica de endereços IP. É importante que o dispositivo não consiga acessar esses endereços IP quando a VPN não estiver conectada.
Estou usando a VPN integrada do macOS na 10.13
Até agora, tenho algumas coisas bastante padrão em minhas regras:
vpn_ifs = "{ utun1 ipsec0 }"
hw_ifs = "{ en0 en1 en2 }"
...
pass quick on $vpn_ifs
O motivo da minha solicitação é que eu tenho um recurso baseado na Web que só posso acessar quando a VPN está conectada. Permitir a conectividade com este recurso antes da conexão da VPN desativa o acesso à minha conta.
Preciso de acesso ao tráfego http e https antes que a VPN seja estabelecida para habilitar os serviços que precisam funcionar antes que a conexão VPN esteja ativa. Incluindo, mas não limitado ao suporte de portal cativo.
pass out quick on $vpn_ifs from any to { <web_res1> <web_res2> } no state
e depois 2.block out quick on $hw_ifs from any to { <web_res1> <web_res2> } no state
funciona?Respostas:
Cada pacote é avaliado em relação ao conjunto de regras de filtro de cima para baixo e a última regra correspondente vence. A palavra-chave rápida é a única exceção: o pacote será bloqueado ou passado imediatamente sem ser perturbado por nenhuma regra posterior.
Supondo que você esteja usando a abordagem negar tudo , você precisa permitir explicitamente que os pacotes entrem ou saiam.
Conjunto de regras:
Para atender aos seus requisitos de "recurso baseado na Web", é necessário permitir / negar pacotes rapidamente, dependendo da interface:
Para atender ao seu requisito "tráfego http e https", você deve permitir o tráfego de saída na porta 80/443:
Usando a abordagem negar tudo , você adiciona mais algumas regras (por exemplo, para permitir tráfego de / para redes locais).
O conjunto de regras final é assim:
Aqui está um exemplo de negar todo o pf.conf com muitas regras explicadas. As regras são usadas no Gateway FreeBSD: algumas não devem ser aplicadas ou não são úteis no seu ambiente. Regras únicas não funcionam (por exemplo, recursos relacionados ao ALTQ).
fonte