Site menu OpenVPN - parte 6

OpenVPN - parte 6

Configurando o cliente windows.

A empresa XYZ possui um quiosque de atendimento em um Shopping Center, e para realizar suas funções, ela necessita de acesso ao servidor SQL que está localizado na matriz.

Esse quiosque nada mais é do que uma bancada em um corredor do Shopping, com uma tomada de energia elétrica, e um ponto de acesso a rede local do condomínio, que possui acesso a internet. No quiosque, existe um computador com windows 2000 instalado, e com o programa de consulta SQL.

Note que não temos controle sobre o link de internet em si, apenas solicitamos ao administrador da rede, que liberasse o trafego UDP na rede.

Existe um cliente em fase beta do OpenVPN para windows. Para fazer uso dele, faça o donwload do cliente aqui.

Sua instalação é basicamente apertar Next -> um par de vezes. Quando ele terminar sua instalação, ele irá pedir para reiniciar o computador. Dica: Faça isso ;)

Quando o windows voltar, você verá um cabo de rede desconectado.

Isso significa que a instalação foi bem sucedida, e que o windows carregou o driver da "placa de rede" da vpn.

A configuração do OpenVPN no windows é similar à configuração no linux. Existe um arquivo, em que todas as configurações estão setadas. No caso, o arquivo está no diretorio de instalação do OpenVPN, que você acha no atalho que ele criou no menu iniciar.

Você deve criar os certificados de segurança, da mesma maneira que fez nos túneis com o linux, e copiar eles para o diretorio de configuração do OpenVPN que você encontra no atalho que ele criou no Menu Iniciar.

A configuração em si, não se altera muito da configuração usada no linux.

# Exemplo de configuração do OpenVPN
# para a Filial, usando o modo SSL/TLS e
# chaves RSA.
#
# '#' ou ';' são comentarios.
#
# Obs: Tradução livre do arquivo
# sample-config-files/tls-office.conf
# no diretorio de sources do OpenVPN.

# Usar como interface o driver tun.
dev tun

# Ip da parte remota.
remote vpn.empresa.com.br

# 10.10.3.2 é o nosso IP local (quiosque).
# 10.10.3.1 é o IP remoto (matriz).
ifconfig 10.10.3.2 10.10.3.1

# em vez de rodar um script para setar as rotas,
# vamos setar no arquivo de configuração.
route 10.0.0.0 255.0.0.0 10.10.3.1

# No modo SSL/TLS a matriz irá
# assumir a parte do servidor,
# e a filial será o cliente.
tls-client

# Certificado da CA
ca my-ca.crt

# Certificado publico da Filial
cert w2k.crt

# Certificado privado da Filial
key w2k.key

# OpenVPN usa a porta 5000/UDP por padrão.
# Cada tunel do OpenVPN deve usar
# uma porta diferente.
# O padrão é a porta 5000
 port 5001

# Envia um ping via UDP para a parte
# remota a cada 15 segundos para manter
# a coneção em firewall statefull
# Muito recomendado, mesmo se você não usa
# um firewall baseado em statefull.
 ping 15

# Nivel dos logs.
# 0 -- silencioso, exeto por erros fatais.
# 1 -- quase silencioso, mas mostra erros não fatais da rede.
# 3 -- médio, ideal para uso no dia-a-dia
# 9 -- barulhento, ideal para solução de problemas
verb 3

Você deve salvar esse arquivo no diretorio de configurações do OpenVPN, com uma extenção ".ovpn".

Um dos defeitos do OpenVPN, é a sua necessidade de rodar um processo para cada tunel. Então, vamos ter que fazer outra configuração no servidor. Essa configuração não muda muito da configuração feita anteriormente. Basicamente a unica coisa que se muda são os ips, a porta, e os certificados, caso você queira usar certificados diferentes, o que é recomendado, mas não obrigatório.

# Exemplo de configuração do OpenVPN
# para a Matriz, usando o modo SSL/TLS e
# chaves RSA.
#
# '#' ou ';' são comentarios.
#
# Obs: Tradução livre do arquivo
# sample-config-files/tls-office.conf
# no diretorio de sources do OpenVPN.

# Usar como interface o driver tun.
dev tun

# 10.10.3.1 é o nosso IP local (matriz).
# 10.10.3.2 é o IP remoto (filial).
ifconfig 10.10.3.1 10.10.3.2

# Diretorio onde estão todas as configurações
cd /etc/openvpn

# No modo SSL/TLS a matriz irá
# assumir a parte do servidor,
# e a filial será o cliente.
tls-server

# Parametros Diffie-Hellman (apenas no servidor)
dh dh.pem

# Certificado da CA
ca my-ca.crt

# Certificado publico da Matriz
cert matriz-w2k.crt

# Certificado privado da Matriz
key matriz-w2k.key

# OpenVPN usa a porta 5000/UDP por padrão.
# Cada tunel do OpenVPN deve usar
# uma porta diferente.
# O padrão é a porta 5000
port 5001

# Mudar UID e GID para
# "nobody" depois de iniciado
# para uma segurança exta.
; user nobody
; group nobody

# Envia um ping via UDP para a parte
# remota a cada 15 segundos para manter
# a coneção em firewall statefull
# Muito recomendado, mesmo se você não usa
# um firewall baseado em statefull.
 ping 15

# Nivel dos logs.
# 0 -- silencioso, exeto por erros fatais.
# 1 -- quase silencioso, mas mostra erros não fatais da rede.
# 3 -- médio, ideal para uso no dia-a-dia
# 9 -- barulhento, ideal para solução de problemas
verb 3

Agora basta rodar o daemon no servidor.

[root@matriz root]# /usr/local/sbin/openvpn --config \
	 /etc/openvpn/matriz-w2k.conf --daemon
[root@matriz root]#

Com o processo já rodando na matriz, podemos fazer um teste no windows. Para isso, vamos rodar o OpenVPN na "mão". Abra um console, entre no diretorio do OpenVPN (normalmente "Arquivos de Programas/OpenVPN/config") e execute:

E:\Arquivos de programas\OpenVPN\config> openvpn --config w2k.ovpn
Mon Nov 03 19:33:18 2003 0: OpenVPN 1.5_beta13 Win32-MinGW
[SSL] [LZO] built on Nov  3 2003
Mon Nov 03 19:33:18 2003 1: Control Channel MTU parms
[ L:1541 D:138 EF:38 EB:0 ET:0 ]
Mon Nov 03 19:33:19 2003 2: TAP-WIN32 device
[Conexão de rede local 4] opened: \
\.\{72015FC0-61D0-46F8-9265-E5D0B9EAF16B}.tap
CORTA......
CORTA......
CORTA......
Mon Nov 03 19:33:25 2003 19: Data Channel Decrypt: Using
160 bit message hash 'SHA1' for HMAC authentication
Mon Nov 03 19:33:25 2003 20: Control Channel: TLSv1,
cipher TLSv1/SSLv3 DHE-RSA AES256-SHA, 2048 bit RSA
Mon Nov 03 19:33:25 2003 21: Peer Connection Initiated
with 200.0.0.1:5001

Pronto. Agora você está na rede local da sua empresa ;)

Parte 7: Rodando o OpenVPN automaticamente no boot -->