GNU/Linux
 
 
OpenVPN Client
(Open Virtual Private Network Client)

Artigo relacionado: OpenVPN Server.

Primeiramente, faça download do cliente OpenVPN em http://www.openvpn.net (vá em "Community Software" e clique em "Download"), ou então, acesse esse link direto http://openvpn.net/index.php/open-source/downloads.html. Nesse mesmo site, existe um outro cliente VPN em "Client Software". Contudo, nos testes que fiz, ele não funcionou e pelo que vi não é software livre. Além desses, temos também outros sites: http://www.openvpn.se/ e http://sourceforge.net/projects/openvpn/. No entando, prefira aqueles primeiros, pois tem a versão mais recente do cliente VPN. Despois do download concluído, instale-o na sua máquina. Veja que ele é licenciado pela GPL, conforme figura abaixo:

Depois de instalado, vá no menu "INICIAR" e procure pelo cliente VPN chamado "OpenVPN GUI". Clique com o botão direito em cima dele e escolha a opção "Run as Administrator", conforme figura a seguir:

Depois disso, veja que um novo ícone aparecerá no "Systray" do Windows, conforme figura abaixo. Note que ele tem uma cor avermelhada, indicando que não existe uma conexão VPN ativa.

Agora, clique com o botão direito nesse ícone e veja que aparecerão poucas opções de configuração, como mostrado na figura a seguir. Na verdade, para configuração, só teremos o "Proxy Settings" que não nos ajuda muito. Isso acontece porque ainda não criamos um arquivo de configuração dentro do diretório de instalação do OpenVPN Client:


Pronto, a partir de agora voce deve escolher se quer configurar o cliente OpenVPN com criptografia com Chave Simetrica ou Chave Assimetrica.






OPENVPN CLIENT
(CHAVE SIMETRICA/UNICA/COMPARTILHADA/SECRETA/ESTATICA)


Para começar a configurar o cliente VPN, primeiro procedimento que devemos fazer é copiar a chave compartilhada (ex: shared.key) criada lá no servidor OpenVPN e colocá-la em "C:\>Arquivos de Programa\OpenVPN\config". Peça essa chave para a pessoa que administra o servidor VPN, geralmente é a mesma pessoa que cuida do Firewall. Para saber como criar essa chave compartilhada clique em OpenVPN Server. Devido as características de uma chave compartilhada, ela deve ser a mesma tanto no servidor quanto no cliente VPN. Geralmente os nomes dados para essa chave é shared.key ou static.key.

Depois da cópia da chave compartilhada, é necessário que nessa mesma pasta (C:\>Arquivos de Programa\OpenVPN\config) seja criado um arquivo texto com a extensão ".ovpn" (ex: filial.ovpn ou client.ovpn). Para criação desse arquivo use o "Notepad" e depois renomei a extensão para ".ovpn". O conteúdo dele deve ficar assim (próximo tópico):


Arquivo de configuração
remote SERVER_IP (endereço IP do servidor VPN)
dev NET_INTERFACE (nome da interface de rede que será criada e usada pelos IPs definidos nesse mesmo arquivo na opção logo abaixo chamada "ifconfig". O nome da interface de rede deve ser único (ex: tun0))
ifconfig IP2 IP1 (IP1 é endereço IP privado da VPN do servidor e IP2 é endereço IP privado da VPN deste cliente. Lembre-se que uma VPN como o próprio nome sugere é uma rede privada, ou seja, uma rede interna. Mesmo que o cliente esteja na Internet, ele será exergado como se estivesse na LAN ou em alguma rede dentro da infra-estrutura da empresa. Por isso, é importante usar endereços privados como: 10.0.0.1-10.255.255.254, 172.16.0.1-172.31.255.254 e 192.168.0.1-192.168.255.254. É interessante evidenciar também que os endereços definidos nessa opção terão como máscara "255.255.255.252". Devido à isso, os dois IPs usados nessa opção devem estar na mesma rede, ou seja, se o IP1 for 10.11.13.45, o IP2 deve ser 10.11.13.46, não podendo ser usado algo do tipo como 10.11.13.1 e 10.11.13.242, pois devida a máscara ser "255.255.255.252" eles estariam em rede diferentes. Além disso, não se esqueça que com uma máscara dessa "255.255.255.252" se pode ter somente 4 endereços, sendo 2 reservadosi, 1 para rede e 1 para broadcast. Então, só sobrarão dois endereços para usar no cliente e no servidor VPN)
proto udp|tcp-client (protocolo que será usado para a troca de pacotes criptografados entre esse cliente e o servidor VPN. É interessante usar o "udp" para evitar o famoso TCP over TCP, visto que dentro de um túnel VPN roda todos os tipos de protocolos e a VPN não tem a obrigação de fazer a entrega de pacotes corretamente e nem de realizar conexão. Isso deve ser feito pelos protocolos dentro do túnel)
port SERVER_PORT (porta do servidor (porta de destino) que receberá as conexões deste cliente VPN)
route NETWORK NETMASK (SEMPRE SE DEVE USAR ESSA OPÇÃO. Ela inseri/cria uma rota no cliente para alcançar a rede interna do destino (ex: da LAN da empresa). A tradução dessa linha ficaria assim: para alcançar a rede "NETWORK" que tem a máscara "NETMASK" vá pelo "IP1". Veja que ao inserir uma rota, o gateway dela será o último IP da opção "ifconfig", ou seja, "IP1". Pode-se inserir mais de uma rota para alcançar outras redes dentro da infra-estrutura da empressa (ex: DMZ, WLAN etc)
dhcp-option DNS IP_dns (opcional. Define um servidor DNS primario. Para definir um DNS secundario e/ou terciario se deve repetir essa linha)
dhcp-option DOMAIN mydomain (opcional. Define um dominio)
secret shared.key (chave compartilhada que foi criada lá no servidor OpenVPN e que deve ser copiada para este cliente)


Arquivo de configuração de exemplo (sem comentários para cópia)
remote 200.200.200.200
dev tun0
ifconfig 192.168.150.2 192.168.150.1
proto udp
port 35000
route 172.16.0.0 255.255.255.0
secret shared.key

Veja que depois dos procedimentos acima o ícone do OpenVPN no systray do Windows oferece muitas outras opções ao ser clicado com o botão direito do mouse:

Agora clique na opção "Connect" para realização a conexão e abrir um túnel VPN entre o cliente e o servidor. Vá no ícone do OpenVPN no systray e clique com o botão direito e selecione a oção "View Log" para te mostrar um resumo do que aconteceu durante a conexão, conforme figura a seguir:

Pronto, para testar se tudo funcionou, tente pingar algum equipamento interno (ex: ping 172.16.0.9). Se conseguir é porque tudo funcionou. Se não conseguir, primeiramente veja as informações que aparecem na figura anterior (principalmente as relacionadas a rotas -> route), verifique com o administrador do servidor VPN se ele inseriu regras de liberação no Firewall (iptables) para a VPN (use o "tcpdump" para monitorar o que acontece), veja o Firewall Local da máquina que está tentando pingar.

Agora que já foi visto toda a parte de configuração de um Cliente VPN, veja nesse link OpenVPN Server como é feita a configuração de um Servidor VPN para trabalhar com chave simetrica/secreta/compartilhada.






OPENVPN CLIENT
(CHAVE ASSIMETRICA/PUBLICA E PRIVADA)


Depois de instalado o cliente VPN, conforme mostrado no inicio desse artigo, o primeiro procedimento que devemos fazer é copiar o certificado da CA (ca.crt), o certificado ou chave pública do cliente (client.crt) e a chave privada do cliente (client.key) criadas lá no Servidor OpenVPN e colocá-las em "C:\>Arquivos de Programa\OpenVPN\config". Peça esses arquivos para a pessoa que administra o servidor VPN, geralmente é a mesma pessoa que cuida do Firewall. Para saber como criar esses arquivos clique em OpenVPN Server.

Depois da cópia dos arquivos acima, é necessário que nessa mesma pasta (C:\>Arquivos de Programa\OpenVPN\config) seja criado um arquivo texto com a extensão ".ovpn" (ex: filial.ovpn ou client.ovpn). Para criação desse arquivo use o "Notepad" e depois renomei a extensão para ".ovpn". O conteúdo dele deve ficar assim:


Arquivo de configuração
remote SERVER_IP (endereço IP do servidor VPN)
dev NET_INTERFACE (nome da interface de rede que será criada e usada pelo range de IPs definidos nesse arquivo na opção logo abaixo chamada "client". Ela deve ser única, não podendo existir outra com o mesmo nome (ex: tun0))
client NETWORK MASK (especifica uma subrede (privada) e máscara que serao usadas por esse cliente. O cliente ao se conectar no servidor VPN irá receber um IP dentro dessa faixa de endereçamento. Essa opção deve ser usada no lugar do "ifconfig" quando se tem mais de um cliente VPN acessando o servidor VPN, ficando assim mais fácil de gerenciar.
proto udp|tcp-client (protocolo que será usado para a troca de pacotes criptografados entre esse cliente VPN e o servidor VPN. É interessante usar o "udp" para evitar o famoso TCP over TCP, visto que dentro de um túnel VPN roda todos os tipos de protocolos e a VPN não tem a obrigação de fazer a entrega de pacotes corretamente e nem de realizar conexão. Isso deve ser feito pelos protocolos dentro do túnel)
Obs: ao usar a opção "client SUBNET MASK" em conjunto com a opção "proto tcp" a porta aberta continuará aberta (LISTEN) mesmo depois da conexão ter sido realizada (ESTABLISHED). Totalmente o contrário ao se usar a opção "ifconfig IP1 IP2" + "proto tcp".
port SERVER_PORT (porta do servidor (porta de destino) que receberá as conexões deste cliente VPN)
route NETWORK NETMASK (SEMPRE SE DEVE USAR ESSA OPÇÃO. Ela inseri/cria uma rota no cliente para alcançar a rede interna do destino (ex: da LAN da empresa). A tradução dessa linha ficaria assim: para alcançar a rede "NETWORK" que tem a máscara "NETMASK" vá pelo "IP1". Veja que ao inserir uma rota, o gateway dela será o último IP da opção "ifconfig", ou seja, "IP1". Pode-se inserir mais de uma rota para alcançar outras redes dentro da infra-estrutura da empressa (ex: DMZ, WLAN etc)
ca ca.crt (certificado da CA)
cert client.crt (certificado ou chave pública do cliente)
key client.key (chave privada do cliente)
tls-client ()
comp-lzo ()
persist-tun ()
persist-key ()


Arquivo de configuração de exemplo (sem comentários para cópia)
remote 200.200.200.200
dev tun0
client 192.168.150.0 255.255.255.0
proto tcp
port 35000
route 172.16.0.0 255.255.255.0
ca ca.crt
cert client.crt
key client.key
tls-client
comp-lzo
persist-tun
persist-key

Veja que depois dos procedimentos acima o ícone do OpenVPN no systray do Windows oferece muitas outras opções ao ser clicado com o botão direito do mouse:

Agora clique na opção "Connect" para realização a conexão e abrir um túnel VPN entre o cliente e o servidor. Vá no ícone do OpenVPN no systray e clique com o botão direito e selecione a oção "View Log" para te mostrar um resumo do que aconteceu durante a conexão, conforme figura a seguir:

Pronto, para testar se tudo funcionou, tente pingar algum equipamento interno (ex: ping 172.16.0.9). Se conseguir é porque tudo funcionou. Se não conseguir, primeiramente veja as informações que aparecem na figura anterior (principalmente as relacionadas a rotas -> route), verifique com o administrador do servidor VPN se ele inseriu regras de liberação no Firewall (iptables) para a VPN (use o "tcpdump" para monitorar o que acontece), veja o Firewall Local da máquina que está tentando pingar.

Agora que já foi visto toda a parte de configuração de um Cliente VPN, veja nesse link OpenVPN Server como é feita a configuração de um Servidor VPN para trabalhar com chave assimetrica/puplica e privada.






Referências Bibliográgicas

 
 


ETI - Especialista em Tecnologia
da Informação