| Subcribe via RSS

Criando VPN’s com OpenVPN

May 15th, 2008 Posted in Geral


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!

Tags: , ,

3 Responses to “Criando VPN’s com OpenVPN”

  1. Vinícius Santoro Says:

    ———-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


  2. Eduardo Says:

    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


  3. carlitus Says:

    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


Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes