OpenVPN para Mac OS X

Atualmente meu nível de paranoia esta muito alto, certo dia estava navegando na net de um daqueles cafés que oferecem acesso gratuito e resolvi abrir o meu MacStubler só para ver o que estava por perto. Pronto !! foi o suficiente, o que apareceu de coisa. E eu lá, colocando minha senha de email, banco e tudo mais, achando que estava em casa.

Passados os peimeiros tremores, resolvi pensar em uma solução que me deixasse mais tranquilo. Na minha casa tenho uma máquina rodando openBSD e acabei encontrando um projeto chamdo OpenVPN, este pequeno deamon é o responsável pela minha tranquilidade agora.

Bom mas, e o que ele faz? Como o próprio nome nos sugere, ele é um servidor/cliente de VPN multiplataformas, ou seja até pra windows tem. Neste pequeno tutorial vou presumir que você já instalou o OpenVPN em seu servidor e que iremos instalar somente no Mac. Se você tiver dúvida com relação a instalação do servidor, pode ler o how-to da própria página do OpenVPN.

Há duas formas de você usar o OpenVPN no seu Mac mas, as duas vão precisar que você baixe o OpenVPN. A primeira opção é como linha de comando direto, funcional mas não prático a outra é usando um aplicativo chamado TunnelBlick, que nada mais é do que uma frontend para o OpenVPN.

Bem, vamos partir para a instalção do OpenVPN no Mac.

Instalando o drive TUN/TAP no Mac.

Um cara chamado Mattias Nissler criou um drive para habilitar estes divices no Mac OS X. assim que você baixar o arquivo tuntap.tar.gz, coloque-o em um diretório temporário e após descompactar, execute o arquivo tuntap_installer.mpkg isso vai instalar os divices TUN e TAP.

Instalando o GCC

Bom o OpenVPN exige que você tenha o gcc 3.3, no mínimo, instalado mas, se você instalar o Xcode que vem no cd do Tiger já vem com o GCC 4.0 então, podemos passar desta faze. Se você não tiver o 10.4.4 ou o .5 você terá que instalar o GCC 3.3 ou o 4.0. Isso pode ser feito baixando o Xcode atualizado da Apple.

Instalando as libs da SSL
O Mac OS X 10.4 já vem com o SSL por padrão mas, sempre é bom atualizar os arquivos necessários. Assim, siga o comando para instalar a atualização a partir do fink.

fink install openssl097 openssl097-dev openssl097-shlibs

Se não tiver instalado o SSL na sua máquina isso vai instalar, se já tiver instalado isso vai comparar e atualizar as libs do SSL.

Instalando o OpenVPN 2.0

Baixe o arquivo openvpn-2.0.tar.gz do site do OpenVPN e coloque em um diretório temporário. Ao descompactar o arquivo entre no diretório e execute os seguintes comandos

./configure --with-ssl-lib=/sw/include/ --with-ssl-headers=/sw/include/ --disable-lzo

E depois

make
sudo make install

Bom, tendo finalizado esse processo, o executável openvpn vai esta em /usr/local/sbin
Presumindo que você já tenha um servidor do OpenVPN, copie os certificados gerados para o seu cliente e coloque em /etc/openvpn. Aqui neste arquivo estarão os certificados e o arquivo de configuração openvpn.conf. Exemplo de openvpn.conf:

client
dev tap0
# In the next line, specify the IP address and subnet mask of the tap0 device
ifconfig [IP Address] [Subnet Mask]
proto udp
remote [OpenVPN Server DNS Address] [port]
resolv-retry infinite
# Downgrade privileges after initialization (non-Windows only)
user nobody
group nobody
persist-key
persist-tun
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
mute-replay-warnings
# If using SSL Certificates, use the following 3 lines:
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client.crt
key /etc/openvpn/client.key
# If using a SSL static key, use the following line:
secret “/etc/openvpn/vpn.key”
# Use the next line if utilizing LZO compression:
verb 3
mute 20

Assim, para iniciar nossa vpn

sudo /usr/local/sbin/openvpn --config /etc/openvpn/vpn.conf

Isso se quizer executar direto do terminal, senão utilize o TunnelBlick.

Espero que ajude.

Advertisements

7 thoughts on “OpenVPN para Mac OS X

  1. Rafael says:

    Fala Rodrigo,

    Estou com um tunel tap funcionando, o unico problema parece ser que nem OpenVPN nem Tunnelblick consequem ativar o DNS servidor da minha LAN.

    Quando uso no config file:
    route-gateway 10.0.0.1
    redirect-gateway

    praticamente mato a conexão, já que o DNS do meu servidor não chega. Sem o redirect gateway não há problema algum já que que o DNS chega do servidor que está te oferecendo conectividade.

    Você tem alguma idéia?

    Abraços!

  2. Rafael,

    Muito estranho isso, quando se usa o redirect-gateway ele deveria colocar TODO o tráfego dentro do túnel sem distinção, assim o seu DNS deveria funcionar corretamente.

    Vou dar uma olhada e se tiver alguma solução posto aqui.

  3. Edson says:

    Eu consegui iniciar a VPN através do seu tutorial, o único problema é que conecto na VPN e não consigo atribuir um DHCP, já tentei de tudo, acredito que seja o Tun Tap, pois no windows aparece um ícone de rede para ele, você poderia me ajudar na configuração do Tun Tap ?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s