VPN básica site-to-site com IPsec

Publicado por Rodrigo Garcia em 26/02/2013

[ Hits: 43.381 ]

 


VPN básica site-to-site com IPsec



Olá a todos!

Este case surgiu de uma necessidade de ligar uma unidade distante com a nossa sede, sem precisar gastar muito, pois no lugar existem apenas dois funcionários.

Meu último desafio (nem foi tão grande assim) foi conectar uma unidade do litoral à nossa sede. Os usuários conectavam-se via PPTP, mas não estava muito legal dessa forma. A solução encontrada: criar um túnel site-to-site através de IPsec.

Para a unidade foi utilizado um roteador Cisco RV042 pelo fato de ser uma unidade bem pequena, não tendo muito espaço para comportar equipamentos maiores (como é de minha preferência). Na sede, utilizei uma máquina com Ubuntu Server.

Na ponta da sede, o que fiz foi instalar o pacote OpenSwan:

# apt-get install openswan

E editar os seguintes arquivos: /etc/ipsec.conf

config setup
     plutodebug=all
     #nat_traversal=on #Caso a máquina que conectará esteja atrás de um firewall
     oe=off
     protostack=netkey
     interfaces=%none

conn Unidade  #Trocar o nome "Unidade" para qualquer outro que desejar
     left=0.0.0.0  #IP público local
     leftsourceip=1.1.1.1  #IP da máquina que fará a conexão
     leftsubnet=1.1.1.0/24  #IP da rede que a outra ponta deverá enxergar
     leftnexthop=0.0.0.1  #Gateway do IP público local
     right=2.2.2.2  #IP público da unidade
     rightsourceip=3.3.3.3  #IP da máquina da unidade que fará a conexão
     rightsubnet=3.3.3.0/24  #IP da rede da unidade
     rightnexthop=2.2.2.1  #Gateway do IP público da unidade
     authby=secret
     auto=start
     auth=esp
     rekey=yes
     keyingtries=0
     keyexchange=ike
     ike=3des-md5;modp1024
     ikelifetime=3600s
     esp=3des-md5;modp1024
     keylife=28800s
     pfs=no

Em seguida, devemos configurar o arquivo /etc/ipsec.secrets (no Ubuntu, o arquivo é: /var/lib/openswan/ipsec.secrets.inc):

0.0.0.0 %any : PSK "chavequevocequiser"

A configuração acima permite que qualquer máquina que tenha as configurações adequadas e a mesma chave configurada acima, conecte-se ao túnel. Caso não queira essa configuração, basta alterar "%any" para o IP público da outra ponta.

Caso o túnel esteja configurado no firewall, é necessário adicionar a seguinte regra:

iptables -A INPUT -p udp --dport 500 -j accept

Caso esteja em uma máquina atrás do firewall, a regra muda para:

iptables -t nat -A PREROUTING -p udp -d ip_publico --dport 500 -j DNAT --to ip_da_máquina

E também essa:

iptables -t nat -A PREROUTING -p udp -d ip_publico --dport 4500 -j DNAT --to ip_da_máquina

Agora é só configurar a outra ponta, que pode ser outra máquina GNU/Linux ou um equipamento, como o Cisco RV042, utilizando as mesmas configurações, porém não esquecendo de fazer as devidas alterações de IPs.

* Lembrando: Essa é uma VPN básica. Existem muito mais recursos de segurança a serem explorados, e cabe a cada um decidir o que é necessário para cada caso.

Esta dica também foi publicada em: ::Unix for Life::: IPSec

Espero que tenha sido útil.
Até a próxima!

Outras dicas deste autor

Mudando tipo de autenticação do Squid para algumas máquinas

Discos de storage em Red Hat EL5

Firewall pessoal com IPtables

Comandos úteis do HP-UX para administradores GNU/Linux

Utilizando delay_class 4 do Squid 3 Integrado ao AD

Leitura recomendada

SMTP Relay Gmail ou SMTP Externo no FreeBSD 10

Problemas com campos maiores que 300MB no pg_dump

Personalizando o Fluxbox

SSH - Máquina nova, configuração antiga

Criptografando Shell Script

  

Comentários
[1] Comentário enviado por yorkb4l4 em 08/06/2013 - 23:23h

rodrigo achei seu artigo muito interessante e estarei enfrentando um problema similar daqui a alguns dias, criarei uma vpn no centos(simples-procurando bom tutorial) para uma matriz onde terei 5 notebooks usando windows e gostaria de me conectar atraves de meu portatil na mesma rede teria como me dar uma luz?

obrigado antecipadamente, raphael

[2] Comentário enviado por jptudobem em 24/09/2013 - 23:26h

O parametro left onde eu configuro o IP público, eu tenho que necessariamente configurar um endereço IP ou posso configurar com um hostname?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts