Criando VPN’s com OpenVPN
Como última parte da série de artigos sobre a criação de VPN’s, vamos fazer um túnel utilizando o OpenVPN.
O OpenVPN usa criptografia de chaves ao invés de usuário e senha para fechar um túnel de VPN. Atualmente, o OpenVPN roda nas seguintes plataformas: Linux, Windows 2000/XP ou superior, OpenBSD, FreeBSD, NetBSD, Mac OS X, e Solaris. É, por assim dizer, um projeto Open Source licenciado pela GPL.
A instalação do OpenVPN pode ser feita através da utilização de uma das ferramentas de gerenciamento de pacotes como apt-get, yum ou yast, ou você pode dar uma olhada no site http://openvpn.net/install.html.
A nossa configuração de rede é a seguinte:
rede A —> Roteador A ========================== Roteador B
10.10.1.X 10.10.1.20____200.1.1.1 IP de Internet qualquer____10.10.2.X
Primeiro vamos criar a chave de conexão a ser utilizada.
# openvpn –genkey -secret /etc/openvpn/chave
Agora vamos configurar o servidor de conexão.
# vim /etc/openvpn/matriz.conf
# A interface será chamada de TUN
dev tun
# 10.0.0.1 ip matriz
# 10.0.0.2 ip filial
ifconfig 10.0.0.1 10.0.0.2
cd /etc/openvpn
# Chave de criptografia
secret chave
# Porta 5000/UDP padrão.
port 5000
# Usuário
user nobody
# Grupo
group nobody
# Biblioteca lzo
comp-lzo
# Envia um ping via UDP para a parte remota a cada 15 segundos para manter
# a conexão de pé em firewall statefull. Muito recomendado, mesmo se você não usa
# um firewall baseado em statefull.
ping 15
# Nível de log
verb 3
Agora poderemos iniciar o serviço no servidor principal.
# openvpn –config /etc/openvpn/matriz.conf -daemon
# ifconfig tun0
tun0 Link encap:Point-to-Point Protocol
____inet addr:10.0.0.1 P-t-P:10.0.0.2 Mask:255.255.255.255
____UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1255 Metric:1
____RX packets:1383257 errors:0 dropped:0 overruns:0 frame:0
____TX packets:1144968 errors:0 dropped:0 overruns:0 carrier:0
____collisions:0 txqueuelen:10
____RX bytes:82865921 (79.0 Mb) TX bytes:383951667 (366.1 Mb)
Agora na filial é importante que façamos a cópia da chave de criptografia gerada no servidor principal.
# scp /etc/openvpn/chave ip_filial:/etc/openvpn
Agora vamos editar o arquivo de configuração da filial.
# vim /etc/openvpn/filial.conf
dev tun
# 10.0.0.1 ip matriz
# 10.0.0.2 ip filial
ifconfig 10.0.0.2 10.0.0.1
# IP real do PC Matriz.
remote 200.1.1.1
cd /etc/openvpn
secret chave
port 5000
user nobody
group nobody
comp-lzo
ping 13
verb 3
Vamos iniciar o serviço na filial e verificar a interface.
# openvpn –config /etc/openvpn/filial.conf -daemon
# ifconfig tun0
tun0 Link encap:Point-to-Point Protocol
____inet addr:10.0.0.2 P-t-P:10.0.0.1 Mask:255.255.255.255
____UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1255 Metric:1
____RX packets:1383257 errors:0 dropped:0 overruns:0 frame:0
____TX packets:1144968 errors:0 dropped:0 overruns:0 carrier:0
____collisions:0 txqueuelen:10
____RX bytes:82865921 (79.0 Mb) TX bytes:383951667 (366.1 Mb)
Para finalizarmos a configuração basta habilitarmos o roteamento de pacotes e adicionarmos as rotas em cada um dos servidores.
(Sevidor Matriz)
# echo 1 > /proc/sys/net/ipv4/ip_forward
# route add -net 10.10.2.0/24 gw 10.0.0.2
(Servidor Filial)
# echo 1 > /proc/sys/net/ipv4/ip_forward
# route add -net 10.10.1.0/24 gw 10.0.0.1
Agora coloque as configurações na inicialização do sistema e está tudo pronto. Boa sorte!

June 2nd, 2008 at 14:58
———-Dica – Experiência prória———-
Caso haja um firewall no caminho, pode ocorrer alguns erros.
Ex.: A Matriz pinga e acessa tudo da Filial , mas o inverso não ocorre.
Para corrigir isso, basta adicionar uma regrinha simples no firewall:
iptables -A INPUT -s (IP Externo do Servidor da Filial) -j ACCEPT
December 1st, 2008 at 16:36
Cara Colega:
Você teria algum manual que eu possa fazer uma VPN Client to Server, (Usando WIndows XP) com Servidor Linux?
Abraços
Eduardo
http://www.vivenciaemtecnologia.com
October 16th, 2009 at 1:01
e ae galera
so para alertar .. tem um pequeno erro … na verdade deve ter sido erro de digitação … aonde ta escrito dev tun … seria dev tun0 ok ? abraços…. bom artigo