segunda-feira, 7 de outubro de 2013

Tutorial OpenVpn no Linux com Cliente Windows

Olá pessoal, esse tutorial é bem simples.
O lance é, configurar o OpenVpn num servidor Linux e conectar usando o Cliente Windows.
Esse tutorial vai ser apresentando usando o Debian Lenny
1. Passo Instalar OpenVpn
# apt-get install openvpn
2. Adcionar o driver Tun nos modulos do Linux
# echo tun >> /etc/modules
3. Levantar modulo TUN
# modprob tun
4. Criar chave de acesso
# cd /etc/openvpn/
# openvpn –genkey –secret chave.key
5. Criar arquivo de configuração dentro do diretório
# cd /etc/openvpn
# touch server.conf
5.1. Que deverá ter esse conteúdo.
dev tun
ifconfig 10.0.0.1 10.0.0.2
secret chave.key
port 5000
comp-lzo
keepalive 10 120
float
verb 3
5.2. Explicação
Dev Tun –> Modulo de tunelamento
ifconfig –> Endereçamento a ser utilizado, primeiro o do Servidor depois do Cliente
secret.key –> A chave que criamos
port 5000 –> Porta de comunicação UDP (Obs ser for TCP deverá ser especificado)
comp-lzo –> Biblioteca de criptográfia
keepalive 10 120 –> Monitora a conexão e reestabelece caso caia
float –> Caso use ip dinâmico, mantem o tunel aberto caso ocorra a mudaça de IP
verb3 –> Nivel de log
6. Otimo agora nosso servidor está configurado faça o teste
# openvpn –config /etc/openvpn/server.conf
6.1. – Aguarde essa mensagem
Wed Nov 17 21:59:58 2010 OpenVPN 2.1_rc11 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] built on Sep 18 2008
Wed Nov 17 21:59:58 2010 /usr/sbin/openvpn-vulnkey -q chave
Wed Nov 17 21:59:58 2010 Static Encrypt: Cipher ‘BF-CBC’ initialized with 128 bit key
Wed Nov 17 21:59:58 2010 Static Encrypt: Using 160 bit message hash ‘SHA1′ for HMAC authentication
Wed Nov 17 21:59:58 2010 Static Decrypt: Cipher ‘BF-CBC’ initialized with 128 bit key
Wed Nov 17 21:59:58 2010 Static Decrypt: Using 160 bit message hash ‘SHA1′ for HMAC authentication
Wed Nov 17 21:59:58 2010 LZO compression initialized
Wed Nov 17 21:59:58 2010 TUN/TAP device tun0 opened
Wed Nov 17 21:59:58 2010 TUN/TAP TX queue length set to 100
Wed Nov 17 21:59:58 2010 /sbin/ifconfig tun0 10.0.0.1 pointopoint 10.0.0.2 mtu 1500
Wed Nov 17 21:59:58 2010 Data Channel MTU parms [ L:1545 D:1450 EF:45 EB:135 ET:0 EL:0 AF:3/1 ]
Wed Nov 17 21:59:58 2010 Local Options hash (VER=V4): ’099d04aa’
Wed Nov 17 21:59:58 2010 Expected Remote Options hash (VER=V4): ‘f1025742′
Wed Nov 17 21:59:58 2010 Socket Buffers: R=[111616->131072] S=[111616->131072]
Wed Nov 17 21:59:58 2010 UDPv4 link local (bound): [undef]:5000
Wed Nov 17 21:59:58 2010 UDPv4 link remote: [undef]
Ok, muito bacana, agora temos um servidor esperando conexão.
7. Realizer o download do cliente para Windows no site da OpenVpn.net
http://openvpn.net/index.php/open-source/downloads.html
8. Após instalado, navegue em
C:\Arquivos de programas\OpenVPN\config
9. Crie um arquivo com o bloco de notas chamado client.ovpn, lembrando que não pode ser client.ovpn.txt nem client.txt.ovpn tem que ser client (ou nome que quizer dar).ovpn . OK?
10. Adcione o seguinte contúdo dentro do arquivo criado
remote minha.empresa.com.br
dev tun
proto udp
port 5000
comp-lzo yes
secret chave.key
route 192.168.0.0 255.255.255.0 10.0.0.1
ifconfig 10.0.0.2 10.0.0.1
11. Vamos as explicações
remote –> Endereço do servidor VPN
dev tun –> O mesmo modelo do servidor
proto udp –> Define Protocolo
port 5000 –> A memsa porta que configuramos no servidor
comp-lzo yes –> Habilita a biblioteca lzo
secret chave.key  –> Chave de acesso que criamos no servidor
route 192.168.0.0 255.255.255.0 10.0.0.1 –> Quando estabelecer conexão cria rota da sua rede para a rede da VPN
ifconfig 10.0.0.2 10.0.0.1 –> Endereçamento a ser utilizado primeiro o seu IP depois o do Servidor
12. Ótimo, já estamos quase no fim, agora pegamos o conteúdo do arquivo chave.key que criamos no servidor, e copiaremos para a pasta config do cliente windows.
# cat /etc/openvpn/chave.key
Teremos algo parecido com isso.
#
# 2048 bit OpenVPN static key
#
—–BEGIN OpenVPN Static key V1—–
63ab006b9b0eef9a1ab4033c7cfd7039
70e6d189689179a1ec73096d85ffb545
95c487654806785f61e3399d5669bcd6
32c813e57a3cfb1aa02ff54a3e0108a4
d4ab3756f129f8c0d65f81e6d79ef1bc
b62811e14dcad4c05761efd1bfdba582
—–END OpenVPN Static key V1—–
13. Crie um arquivo chamado chave.keu dentro de :
C:\Arquivos de programas\OpenVPN\config\
Cole o conteúdo do chave.key que criamos no servidor.
14. Ficou assim então.
Criamos os arquivos de configuração no servidor;
Criamos os arquivos de configuração no cliente windows;
Testamos o arquivo com comando # openvpn –config /etc/openvpn/server.conf
15. Vamos adicionar rota no servidor.
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -s 10.0.0.2 -A POSTROUTING -o eth0 -j MASQUERADE
# route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.1 dev tun0
15.1. Vamos as explicações
echo 1 > /proc/sys/net/ipv4/ip_forward –> Habilita roteamento no kernel
iptables -t nat -s 10.0.0.2 -A POSTROUTING -o eth0 -j MASQUERADE –> permite que dados vindo do cliente possa trafegar pela internet
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.1 dev tun0 –> Adiciona uma rota na tabela dizendo que que o cliente os computadores da rede local (192.168.1.0/24) pode ter acesso a rede 10.0.0.1 usando o adptador tun0
16. Assim que terminado tudo isso, acesse a pasta config no seu windows, clique com o botão direito em cima do client.ovpn vá na opção:
Start OpenVpn using this config file.
17. Nesse momento você ja deve ter uma sessão vpn, com rota para o servidor.