Como fazer uma VPN kill-switch para o Mac OS X

3

O que eu quero fazer é ter a conexão com a internet desativada completamente quando a conexão VPN cair. Estou me conectando à minha VPN (privatevpn.com) através da Viscosity.

Eu tentei tudo no livro. Eu tentei ter um script de desconexão em Viscosidade, mas eles nunca são acionados ou acionados de forma inconsistente e deixam minha conexão vulnerável. Eu também tentei truques de roteamento em Viscosidade, mas também não funciona.

Nas minhas máquinas Ubuntu tenho uma solução que funciona perfeitamente, uso as regras do ufw para controlar o firewall. Para se conectar à minha VPN, preciso desabilitar o UFW e, depois que a VPN estiver conectada, habilito o UFW e ele mantém a conexão sem vazamentos.

Existe algo chamado pf no Mac. Eu posso ser capaz de configurar o pf para funcionar da mesma forma que as minhas regras do ufw funcionam, mas eu não entendo como configurá-lo.

Aqui estão minhas regras do UFW que eu gostaria de executar no Mac também, talvez alguém possa me ajudar a configurar o pf para usar as mesmas regras?

Status: ativo Registro: ligado (baixo) Padrão: deny (incoming, deny (outgoing), disabled (roteado) Novos perfis: pule

Para a ação de Em qualquer lugar PERMITIR EM 193.180.119.0/24 Em qualquer lugar PERMITIR 193.180.119.0/24

    
por John Schlong 02.10.2016 / 03:10

2 respostas

3

A melhor coisa que eu encontrei é usar PF disponível em mac os X , após conectar-se ao seu provedor de VPN, basta alterar o IP.

Crie um arquivo ~/killswitch/pf.conf contendo este

# Options
set block-policy drop
set ruleset-optimization basic
set skip on lo0

# Interfaces
wifi = "en1"
vpn = "utun1"

# Block everything
block out all
block in all

# Outbound: Allow only VPN 
pass out on $wifi proto {tcp, udp} from any to 81.171.71.XX

# Allow traffic for VPN
pass out on $vpn all

Verifique suas interfaces, no meu caso en1 é o WiFi e uten1 do túnel VPN.

Altere 81.171.71.XX para o IP que você recebe quando se conecta.

ativar pf

$ sudo pfctl -e 

Carregue as regras:

$ sudo pfctl -Fa -f /path/to/pf.conf 

Desativar pf:

$ sudo pfctl -d

Eu tive que implementar isso devido a um problema com o ipvanish, principalmente porque o aplicativo estava travando, fazendo com que a VPN caísse e o tráfego voltasse ao padrão, nenhuma rota criptografada.

atualizar

Você pode tentar killswitch fazer tudo isso para você automaticamente.

    
por 10.11.2016 / 20:33
0

Este roteiro poderia fazer o truque?

#!/bin/bash

while true 
do
  result=$(scutil --nc list | grep Connected)
  if [ -z "$result" ]; then
     killall Transmission
     exit
  fi 
done
    
por 22.02.2018 / 16:00