Como devo usar a VPN em um Mac para evitar comprometimentos antes do início da VPN?

11

Como muitos usuários experientes já ouviram falar, o uso de um Mac em um Wi-Fi público não confiável pode ser potencialmente prejudicial. Uma ferramenta como o Firesheep 1 tornou muito fácil interceptar a comunicação não criptografada.

O uso de uma VPN de túnel completo para criptografar toda a comunicação é frequentemente mencionado como uma solução mágica para a interceptação, mas é claro que não é tão fácil:

  • Dependendo do protocolo e da configuração da conexão VPN, a conexão pode cair mais facilmente. (por exemplo, TLS vs UDP)
  • A conexão VPN não é estabelecida instantaneamente quando você se conecta a uma rede pública.

Eu acho que os dois últimos pontos importam muito, porque sempre que as configurações da sua rede mudam, os vários aplicativos conversam imediatamente com os servidores - presumo que é isso configdque os informa, certo?

Antes de o túnel VPN ser estabelecido, a maioria dos processos (em execução) que requerem Internet se comunicará.

Vejo dois componentes para ser um bom usuário de VPN:

  1. Certificando-se de que as coisas não sejam enviadas de forma clara antes de serem estabelecidas.
  2. Garantir que as coisas não sejam enviadas mais tarde se a VPN falhar .

Como posso usar a VPN em um Mac em uma rede pública para restringir o tráfego não criptografado antes da inicialização da VPN?

gentmatt
fonte
É bom revisitar isso - a pergunta mais antiga à qual me vinculei parece mais focada em saber quando uma VPN interrompe a conexão do que em como configurar as coisas para iniciar com segurança - para que possamos nos beneficiar de várias perguntas pontuais sobre práticas para aumentar a segurança ao usar um VPN.
bmike

Respostas:

2

Vamos deixar de lado qualquer solução em que você traga uma segunda peça de equipamento de rede para o problema. Vamos também deixar o problema de interromper o tráfego depois que a VPN falha nessa questão relacionada, mas diferente .

Encaro esse problema como uma solução centrada no usuário e não como algo que é facilmente conseguido modificando o comportamento do OS X.

Configure duas contas no seu Mac (nem precisam ser contas de administrador, mas se houver, você não precisará de uma terceira conta para alterar as configurações do sistema).

  1. Uma conta shell que existe para executar nada e apenas estabelecer a conexão VPN.
  2. Uma conta principal que executará os programas que você deseja garantir só terá acesso à rede depois que ela estiver devidamente protegida com uma VPN.

Portanto, com a troca rápida de usuário ativada, você pode sair da conta principal. Isso garante que nenhum programa ou processo desse usuário continue sendo executado em segundo plano. A maioria dos aplicativos OS X é bem comportada e suspende o acesso à rede quando não possui uma janela ativa na tela, mas você precisa monitorar e testar isso para sempre para garantir que nada aconteça - é mais fácil manter o logout.

Agora, você também pode substituir a "conta" acima pelo SO e executar um sistema de virtualização como o Fusion (ou Parallels ou qualquer outro) e iniciar o SO convidado apenas quando o SO host tiver protegido tudo em uma VPN. Dependendo do software da VM que você escolher, você também poderá ter controle sobre a rede e ativar e desativar o acesso, mesmo quando o SO (ou SO) convidado estiver em execução. Isso simula basicamente o hardware extra que eu inicialmente disse que não consideraria.

Espero que isso mostre uma maneira de você estar mais seguro ao viajar e usar uma rede em que não confia, minimizando o risco que isso sempre implica. Se outra pessoa possuir a rede - ela possui DNS, pode registrar pacotes, pode tentar ataques MITM (man-in-the-middle), além de inspecionar profundamente todos os pacotes para tentar determinar o que está fluindo dentro do túnel da VPN.

bmike
fonte
11
Esta é uma resposta bastante razoável. É fácil configurar o uso de uma VM em uma segunda conta de usuário. Embora o sistema operacional ainda permita tráfego de rede não seguro, não importa se ele está no ambiente restrito de uma conta de usuário redundante.
gentmatt
Eu gostaria que houvesse um botão fácil, mas como você pode ver - não é trivial controlar pré ou pós-tráfego em uma camada do kernel, uma vez que o OS X foi projetado para usar qualquer caminho ativo. O sistema operacional não foi projetado para desligar tudo, mas o equipamento de rede é.
bmike
3

Aqui está uma abordagem totalmente fora da GUI do MacOS X. Portanto, essa abordagem do problema não interferirá em nenhuma configuração de rede ou VPN.

Digamos que eu queira usar uma VPN IPSEC (com base no uso de 500 / udp == isakmp & 50 / ip == esp).

Crie um ipfwarquivo de configuração apenas permitindo que os protocolos necessários construam a VPN:

/usr/bin/sudo cat <<____eof >/etc/ipfw.vpn.rules
# VPN trafic contention
#
# DHCP
add 00100 permit udp from any to any src-port bootpc dst-port bootps
# DNS
add 01000 permit udp from me to any dst-port domain
add 01010 permit udp from any to me dst-port domain
# isakmp
add 01050 permit udp from me to any dst-port isakmp
add 01060 permit udp from any to me dst-port isakmp
# esp
add 01100 permit esp from me to any
add 01110 permit esp from any to me
# all other ip go to the central black hole
add 20000 deny ip from any to any
____eof

Verifique se a sintaxe está correta:

/usr/bin/sudo /sbin/ipfw -n /etc/ipfw.vpn.rules

Instale-o no kernel:

/usr/bin/sudo /sbin/ipfw /etc/ipfw.vpn.rules

Verifique se o seu sistema operacional pode reiniciar e obtenha seu endereço IP através do DHCP habitual. Verifique se a maioria dos protocolos IP está bloqueada:

ping www.google.com

Obviamente, se você quiser usar uma VPN sobre SSL, precisará adaptar esse arquivo de configuração (isakmp + esp → https).

dan
fonte