You are on page 1of 32

OpenVPN – Servidor Windows

MANUAL DE
INSTALAÇÃO E
CONFIGURAÇÃO DO
SERVIDOR OPENVPN NO
Preparado por:
WINDOWS
Ditador Nicastro
Analista de Segurança
Corporações Nicastro c.o.

Versão 1.0

Todos os direitos autorais que vão à merda.


D.N. c.o.
OpenVPN – Servidor Windows

1. Índice

1. ÍNDICE .............................................................................................. 2

2. VPN ................................................................................................. 3
2.1. Analogia ................................................................................................................................................ 3
2.2. Funcionamento...................................................................................................................................... 3
2.3. Segurança ............................................................................................................................................. 3

3. OPENVPN .......................................................................................... 4
3.1. Introdução ............................................................................................................................................. 4
3.2. Criptografia ............................................................................................................................................ 4
3.3. Autenticação ......................................................................................................................................... 4
3.4. A rede.................................................................................................................................................... 4
3.5. Segurança ............................................................................................................................................. 4

4. INSTALAÇÃO........................................................................................ 5
4.1. Instalando o pacote openvpn-2.0.9-install.exe ...................................................................................... 5
4.2. instalando o pacote Ethernet Bridge 2.0 ............................................................................................... 9
4.3. Instalando o pacote rktools ................................................................................................................. 14

5. CONFIGURAÇÃO ................................................................................. 17
5.1. Configurando o Ethernet Bridge para funcionar como serviço. ........................................................... 17

5.2. Configurando a OpenVPN................................................................................................................... 21

5.2.1. Configurando uma C.A. ................................................................................... 21


5.2.2. Criando o certificado/chave da C.A. e os parâmetros Diffie Hellman...................... 24
5.2.3. Criando o certificado/chave do servidor ............................................................ 25
5.2.4. Criando certificado/chave para os clientes ......................................................... 26
5.2.5. Criando o arquivo server.ovpn e finalizando as configurações .............................. 27
5.2.6. Criando o certificado de verificação crl.pem ....................................................... 29

6. INICIANDO OS SERVIÇOS....................................................................... 31

2
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

2. VPN

Uma Rede Privada Virtual (Virtual Private Network - VPN) é uma rede de
comunicações privada normalmente utilizada por uma empresa ou um conjunto de empresas
e/ou instituições, construída em cima de uma rede de comunicações pública (como por
exemplo, a Internet). O tráfego de dados é levado pela rede pública utilizando protocolos
padrão, não necessariamente seguros.
VPNs seguras usam protocolos de criptografia por tunelamento que fornecem a
confidenciabilidade, autenticação e integridade necessárias para garantir a privacidade das
comunicações requeridas. Quando adequadamente implementados, estes protocolos podem
assegurar comunicações seguras através de redes inseguras.
Deve ser notado que a escolha, implementação e uso destes protocolos não é algo
trivial, e várias soluções de VPN inseguras são distribuídas no mercado. Adverte-se os usuários
para que investiguem com cuidado os produtos que fornecem VPNs. Por si só, o rótulo VPN é
apenas uma ferramenta de marketing.

2.1. Analogia
Imagine que você esteja em Calais (França) e quer ir para Dover (Inglaterra). Se você
for de barco pelo Canal da Mancha, todos que estarão de fora poderão ver tudo o que você está
levando na mão, a roupa que está vestindo e o pior, que você está passando. Ou seja, você não
terá privacidade nem segurança realizando este trajeto. Já você utilizando o Eurotúnel para
fazer esse trajeto, só terá uma entrada e uma saída. Quem estiver do lado de fora não verá
absolutamente nada de você. Você estará trafegando com privacidade e segurança.

2.2. Funcionamento
Basicamente, quando uma rede quer enviar dados para a outra rede através da VPN,
um protocolo, exemplo IPSec, faz o encapsulamento do quadro normal com o cabeçalho IP da
rede local e adiciona o cabeçalho IP da Internet atribuída ao Roteador, um cabeçalho AH, que é
o cabeçalho de autenticação e o cabeçalho ESP, que é o cabeçalho que provê integridade,
autenticidade e criptografia à área de dados do pacote. Quando esses dados encapsulados
chegarem à outra extremidade, é feito o desencapsulamento do IPSec e os dados são
encaminhados ao referido destino da rede local.

2.3. Segurança
Quando adequadamente implementados, estes protocolos podem assegurar
comunicações seguras através de redes inseguras. Hoje diversas empresas interligam suas
bases operacionais através de um VPN na internet. Um sistema de comunicação por VPN tem
um custo de implementação e manutenção insignificantes, se comparados aos antigos sistemas
de comunicação física, como o frame-relay por exemplo - que tem um custo exorbitante e
segurança muito duvidosa. Por este motivo muitos sistemas de comunicação estão sendo
substituídos por uma VPN, que além do baixo custo, oferece também uma alta confiabilidade,
integridade e disponibilidade dos dados trafegados. Sistemas de comunicação por VPN estão
sendo amplamente utilizados em diversos setores, até mesmo os setores governamentais no
mundo inteiro utilizam este recurso. As Polícias Federais em todo mundo já substituiram seu
sistema de comunicação de dados pela VPN. O caso serve de exemplo de como o sistema é
viável e oferece absoluta segurança e muita confiabilidade.

3
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

3. OpenVPN
3.1. Introdução
OpenVPN permite pares de chaves, certificados para autenticar a si ou nome de
usuário e senha. Ele usa a biblioteca OpenSSL criptografia extensivamente, bem como o
protocolo SSLv3/TLSv1. Encontra - se disponível no Solaris, Linux, OpenBSD, FreeBSD,
NetBSD, Mac OS X e Windows 2000/XP. Ele contém muitos recursos de segurança e controle.
Não se trata de um "on - line" VPN, e não é compatível com IPsec ou qualquer outro pacote
VPN. O pacote completo consiste de um binário para as conexões entre ambos, os clientes e
servidores, um ficheiro de configuração opcional, e um ou mais ficheiros - chave, dependendo
do método utilizado autenticação.

3.2. Criptografia
OpenVPN usa a biblioteca OpenSSL para fornecer criptografia de ambos os canais de
dados e controle. Deixando as bibliotecas OpenSSL fazendo todo o trabalho de criptografia e de
autenticação, permitindo a OpenVPN usar todas as cifras disponíveis no pacote OpenSSL. Ele
também pode usar o HMAC para autenticação como recurso para uma camada adicional de
segurança para a conexão (referido como um "HMAC Firewall" pelo criador). Ele também pode
usar a aceleração de hardware para conseguir um melhor desempenho de criptografia.

3.3. Autenticação

A OpenVPN tem várias maneiras de autenticação entre as estações e o servidor, oferecendo


uma autenticação com chaves e certificados com base em uma autoridade certificadora ou o
método de usuário e senha. O uso de chaves e certificados além de facilitar o uso é
extremamente seguro.

3.4. A rede
A OpenVPN multiplexa todas as comunicações ao longo de um único IP. Pode funcionar
sobre o protocolo UDP ou TCP. Tem a capacidade de trabalhar através de servidores proxy
(incluindo HTTP), através de NAT e sair através de firewalls. O servidor de configuração tem a
capacidade de "empurrar" algumas opções de configuração de rede para os clientes. Estes
incluem endereços IP, comandos de roteamento, e algumas opções de conexão. A OpenVPN
oferece dois tipos de interfaces de rede através do driver Universal Tun / Tap. Pode criar uma
camada - 3 baseado em um IP túnel, ou uma camada - 2 baseado na interface "tap", que pode
transportar qualquer tipo de tráfego. OpenVPN pode opcionalmente usar as bibliotecas de
compressão LZO para comprimir o fluxo de dados. A porta 1194 é oficial IANA atribuído para a
OpenVPN. Uma característica da versão 2.0 permite um processo para gerenciar vários túneis
simultâneos, em contraste com o original "um túnel por processo" restrição à 1.x série.

3.5. Segurança

A OpenVPN usa pares de chaves e certificados para autenticação, cirando um túnel de


comunicação totalmente criptografado entre a estação e o servidor, existe também o método
de autenticação via usuário e senha, mas este pode ser facilmente quebrado via keyboards-
scanners.

4
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

4. Instalação
4.1. Instalando o pacote openvpn-2.0.9-install.exe
Baixe o instalador na página oficial em:
http://openvpn.net/download.html

A última versão encontrada até o final da edição deste material foi a 2.0.9.

Após o download feito dê um duplo clique no instalador:

Na tela de apresentação do programa clique em Next>.

Na próxima tela clique em I Agree para aceitar a licença do produto.


5
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Na tela de escolha de componentes não é necessário mudar nada, apenas clique em Next>.

Utilize o local de instalação padrão, apenas clique em Install.

6
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Em servidores que rodam o Windows XP ou superior uma tela de aviso da instalação dos drivers
tun/tap irá aparecer, clique em Continue Anyway para que os drivers sejam instalados.

Ao final da instalação clique em Next>.

7
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

E em Finish para finalizar este processo.

8
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

4.2. Instalando o pacote Ethernet Bridge 2.0


Baixe o pacote Ethernet Bridge no site oficial em:
http://www.ntkernel.com/downloads/ebridge_x86.zip

Esta é a única versão disponibilizada pelo desenvolvedor.

Descompacte o arquivo.

E dê um duplo clique no instalador.

Na tela de apresentação, clique em Next>.


9
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Na próxima tela clique em I accept the agreement para aceitar a licença do produto, e clique
em Next> para iniciar a instalação.

Deixe o diretório default para a instalação e clique em Next>.

10
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Selecione a opção Don’t create a start up folder e clique em Next>.

De selecione a opção Create a desktop icon e clique em Next>.


11
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Clique em Install e aguarde o final da instalação.

Ao final da instalação será necessário reiniciar o sistema, clique em Finish.


12
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

13
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

4.3. Instalando o pacote rktools


Baixe o pacote em:
ftp://ftp.idp.net/Windows2003/ResourceKitTools/rktools.exe

Após o download dê um duplo clique no instalador.

Na tela de apresentação do produto clique em Next>.

Selecione a opção I Agree para aceitar a licença do produto e clique em Next>.


14
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Entre com suas informações de usuário e clique em Next>.

Utilize o diretório default de instalação e clique em Install Now.


15
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Clique em Finish para finalizar a instalação.

16
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

5. Configuração
5.1. Configurando o Ethernet Bridge para funcionar como
serviço.
Abra um prompt de comando, clique no menu start/iniciar -> Run/Executar e na caixa de
diálogo digite cmd.

Entre no diretório de instalação do Windows Resource Kit em: %ProgramFiles%\Windows


Resource Kits\Tools.

No prompt, digite o comando: instsrv.exe "Ethernet Bridge" "C:\Program Files\Windows


Resource Kits\Tools\srvany.exe", e tecle enter.
17
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Instsrv.exe – É um aplicativo do resource kits para criar novos serviços.


“Ethernet Bridge” – Nome do novo serviço criado.
"C:\Program Files\Windows Resource Kits\Tools\srvany.exe" – Aplicativo que irá
simular o funcionamento do serviço.

A partir de agora iremos configurar os parâmetros no registro do sistema, clique no menu


start/iniciar -> Run/Executar e na caixa de diálogo digite regedit.

Com o editor de registro do sistema aberto, navegue até a pasta


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ethernet Bridge

18
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Clique no menu Edit -> New -> Key

E nomeie a nova chave com o nome de Parameters.

Selecione a chave e clique no menu Edit -> New -> String Value

19
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

E nomeie a string como Application. Dê um duplo clique para atribuir um valor a esta string.
Na caixa de diálogo que aparecerá coloque o caminho (path) com o nome do programa
executável do “ethernet bridge” anexado, seguido pelas duas interfaces de rede. Abra um
prompt de comando e navegue até o diretório C:\Program Files\Ethernet Bridge\bin. Execute o
programa bridge_cmd.exe.

As duas linhas que aparecerão \DEVICE\... são as interfaces de rede local e a tap criada pela
OpenVPN. Para que o serviço implemente uma bridge entre as duas interfaces é preciso colocar
o caminho completo do execuável, seguido dos devices \DEVICE\{56C72BA4-E173-445F-A3ED-
458836BC1A55} e \DEVICE\{12648A08-E1DF-4A3E-820E-DD4DB3826020}, ficando assim:

C:\Program Files\Ethernet Bridge\bin\bridge_cmd.exe \DEVICE\{56C72BA4-E173-


445F-A3ED-458836BC1A55} \DEVICE\{12648A08-E1DF-4A3E-820E-
DD4DB3826020}

Digite isso dentro da caixa de diálogo do editor de registro.

20
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Clique em Ok feche o editor.

5.2. Configurando a OpenVPN

5.2.1. Configurando uma C.A.

Em uma janela de prompt de comando navegue até a pasta da OpenVPN em: C:\Program
Files\OpenVPN\easy-rsa\

21
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Edite no final do arquivo vars.bat.sample as variáveis que serão incluídas no DN dos


certificados.

set KEY_COUNTRY=BR – Sigla do país


set KEY_PROVINCE=SP – Sigla do estado
set KEY_CITY=Sao Paulo - Cidade
set KEY_ORG=Intersix Technologies – Organização/Empresa
set KEY_EMAIL=monitoramento@intersix.com.br - Email

Salve o documento e saia.

22
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

De volta ao prompt execute o script init-config.bat. Este script irá renomear os arquivos
vars.bat.sample para vars.bat e openssl.cnf.sample para openssl.cnf.

Então execute o script vars.bat e em seguida clean-all.bat. O script vars.bat irá setar as
variáveis de ambiente para as bibliotecas openssl e o script clean-all.bat irá criar a pasta dos
certificados key, o arquivo index.txt e serial dentro da pasta.

23
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

5.2.2. Criando o certificado/chave da C.A. e os parâmetros Diffie Hellman.

Agora criaremos o certificado/chave da C.A., no prompt digite vars.bat e em seguida build-


ca.bat.

O script build-ca.bat irá criar o certificado e chave da C.A., será necessário informar alguns
parâmetros como:

Organizational Unit Name (eg, section) []:VPN – Nome da seção.


Common Name (eg, your name or your server's hostname) []:Trasher – Nome do
servidor.

Com relação aos outros parâmetros. basta dar Enter, pois já os configuramos nas varáveis das
bibliotecas openssl.
Agora iremos criar o certifocado Diffie Hellman. No prompt digite, vars.bat e em seguida
build-dh.bat.

24
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Pronto.

5.2.3. Criando o certificado/chave do servidor


No prompt de comando, digite vars.bat e em seguida build-key-server.exe <nome>.

Onde:

<nome> é o nome do certificado.

O certificado/chave do servidor será criado e assinado pela C.A.

25
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

5.2.4. Criando certificado/chave para os clientes


No prompt digite vars.bat e em seguida build-key <nome_cliente>.

Onde:

<nome_ciente> é o nome do certificado do cliente.

Pronto, um novo certificado para cliente foi criado e assinado pela C.A.

26
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

5.2.5. Criando o arquivo server.ovpn e finalizando as configurações


Abra o Wordpad do Windows e crie um novo documento com o nome de server.ovpn. Salve-o
na pasta C:\Program Files\OpenVPN\config e edite-o conforme o exemplo abaixo:

Leia a explicação que se encontra após este exemplo.

port 1194
proto tcp
dev tap
tls-server
ca "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\trasher.crt"
key "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\trasher.key"
dh "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\dh1024.pem"
ifconfig-pool-persist ipp.txt
server-bridge 192.168.30.150 255.255.255.0 192.168.30.100 192.168.30.250
push "route-gateway 192.168.30.254"
push "route 192.168.10.0 255.255.255.0"
push "route 192.168.20.0 255.255.255.0"
push "dhcp-option DNS 192.168.30.1"
push "dhcp-option WINS 192.168.30.1"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status "C:\\Program Files\\OpenVPN\\log\\openvpn-status.log"
log "C:\\Program Files\\OpenVPN\\log\\openvpn.log"
verb 3
mute 20
crl-verify "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\crl.pem"

Onde:

port 1194 – porta de comunicação da Openvpn

proto tcp – Protocolo de comunicação da OpenVPN

dev tap – Interface tap da OpenVPN

tls-server – Parâmetro que será passado ao cliente durante o handshake

ca "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt" – Caminho do


certificado da C.A.

cert "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\trasher.crt" – Caminho


do certificado do servidor.

key "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\traher.key" –Caminho da


chave do certificado do servidor.

dh "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\dh1024.pem" – Caminho do


parâmetro Diffie Hellman

27
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

ifconfig-pool-persist ipp.txt – este comando faz com que os ip’s


atruídos aos clientes da OpenVPN sejam gravados do arquivo ipp.txt
fazendo com que cada usuário tenho um ip “fixo” dentro da OpenVPN.

server-bridge 192.168.30.150 255.255.255.0 192.168.30.100 192.168.30.250


– ip do servidor mascara ip-inicail e ip-final de arranjo da OpenVPN

push "route-gateway 192.168.30.254" – Se a rede tiver um gateway todos


utilizarão, caso contrário apague esta linha, o próprio servidor será o
gateway.

push "route 192.168.10.0 255.255.255.0" – Comando de rota para incluir


na máquina cliente.

push "route 192.168.20.0 255.255.255.0" – idem ao anterior.

push "dhcp-option DNS 192.168.30.1" – Se a rede tiver um servidor DNS


indique-o aqui, caso contrário apague esta linha.

push "dhcp-option WINS 192.168.30.1" – Se a rede tiver um servidor WINS


indique-o aqui, caso contrário apague esta linha.

client-to-client – Comando para que um cliente “enxergue” o outro.

keepalive 10 120 – Mantém uma conexão persistente.

comp-lzo – Utiliza as bibliotecas lzo para compressão dos pacotes.

persist-key -
persist-tun – Se por acaso a conexão cair não será necessário reler o
conteúdo das chaves e reconectar a device.

status "C:\\Program Files\\OpenVPN\\log\\openvpn-status.log" – Local


onde será gravado o log de status da OpenVPN.

log "C:\\Program Files\\OpenVPN\\log\\openvpn.log" – Local onde serão


gravados os logs de conexão dos clientes.

verb 4 – Modo de verbose dos logs.

mute 20 – Comando para deletar linhas com mesma informação.

crl-verify "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\crl.pem" –


Comando para verificar a validade dos certificados dos clientes.

28
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

5.2.6. Criando o certificado de verificação crl.pem


Abra novamente o prompt de comando e navegue até a pasta C:\Program
Files\OpenVPN\easy-rsa.

Cire um arquivo com o nome build-crl.bat, através do comando edit, com o conteúdo a
seguir:

@echo off
cd %HOME%
rem generate new crl
openssl ca -gencrl -out %KEY_DIR%\crl.pem -config %KEY_CONFIG%
rem concatinate ca cert with newly generated crl
copy %KEY_DIR%\ca.crt+%KEY_DIR%\crl.pem %KEY_DIR%\revoke_test_file.pem
rem delete temporary test file
del /q %KEY_DIR%\revoke_test_file.pem

29
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

Salve e saia do edit, e de volta ao prompt digite vars.bat e em seguida build-crl.bat.

30
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

6. Iniciando os serviços

Clique no menu start/iniciar -> Run/Executar e na caixa de diálogos digite services.msc,


clique em OK.

A janela de serviços do Windows irá abrir. Navegue até o serviço Ethernet Bride e clique em
start para iniciar o serviço.

Depois navegue até o serviço OpenVPN e faça a mesma coisa.


31
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island
D.N. c.o.
OpenVPN – Servidor Windows

32
Dinastia Nicastro Corporation
Avenida da verdade sem números
Nicastro Island