Social Icons

twitterfacebookgoogle plusrss feedemail

segunda-feira, 19 de agosto de 2013

VPN Site-to-site Debian - OpenSwan

Buenas!
Nesse artigo vamos ver a implementação de uma VPN Site-To-Site em um servidor Debian com Ipsec. 
Uma solução free para sua empresa e muito comum quando se precisa ligar uma sede distante a unidade principal.

Ambiente:


Será abordado somente as configurações no servidor Debian, ambiente SEDE.
Na unidade foi usado um roteador Cisco ASA 5520.

IKE Parameters:
Método de Autenticação:         Pre-shared key
Pre-Shared Key:         123@123
Authentification Algorithm:         SHA1
Encryption Algorithm:         3DES
DH-Group:          2
Life Time ( Seconds ):         86400
Life Time ( KB ):         No
Mode (Aggressive/Main):         Main

IPSEC Parameters  
Encapsulation Protocol:         ESP
Encryption Algorithm:         3DES
Authentication Algorithm:         SHA1
PFS / DH-group:         2
Life Time ( Seconds ):         28800
Life Time ( KB ):         No
Encapsulation Mode:         Tunnel

Instalação e configuração do Ipsec


# aptitude install openswan ipsec-tools -y

Arquivos:

/etc/ipsec.conf - Aqui estará toda a configuração para fechar a VPN
/etc/ipsec.secrets - Arquivo que guarda a chave de autenticação.

Configurando:


Primeiro passo é editar o arquivo /etc/ipsec.conf:

# vi /etc/ipsec.conf
version 2.0     # conforms to second version of ipsec.conf specification

# Configuração
config setup  
interfaces=%defaultroute   
plutodebug=control   
nat_traversal=yes   
protostack=netkey   
oe=off   
force_keepalive=yes

conn Unidade  # Nome da Conexão VPN
type=tunnel   # Encapsulation Mode
authby=secret # Método de autenticação via Pre-shared Key  
forceencaps=yes   
dpdaction=restart_by_peer   
dpdtimeout=10   
dpddelay=10   
rekey=yes

left= 3.3.3.3 # IP Externo servidor Debian   
leftsubnet= 192.168.2.0/24 # LAN Sede   
leftnexthop= %defaultroute
leftsourceip=192.168.2.97 # IP interno servidor Debian  
right= 4.4.4.4 # IP Externo Cisco (Unidade)
rightsubnet= 10.14.0.0/16   # Rede LAN Unidade
rightnexthop= %defaultroute

keyexchange=ike   
ike=3des-sha1;modp1024   
phase2=esp   
phase2alg=3des-sha1;modp1024   
pfs=yes   
keylife=28800s
ikelifetime=86400s   
auto=start
#You may put your configuration (.conf) file in the "/etc/ipsec.d/" and uncomment this.
#include /etc/ipsec.d/*.conf

Próximo passo é editar o arquivo /etc/ipsec.secrets.

# vi /etc/ipsec.secrets
# RCSID $Id: ipsec.secrets.proto,v 1.3.6.1 2005/09/28 13:59:14 paul Exp $
# This file holds shared secrets or RSA private keys for inter-Pluto
# authentication.  See ipsec_pluto(8) manpage, and HTML documentation.
# RSA private key for this host, authenticating it to any other host
# which knows the public part.  Suitable public keys, for ipsec.conf, DNS,
# or configuration of other implementations, can be extracted conveniently
# with "ipsec showhostkey".
# this file is managed with debconf and will contain the automatically created RSA keys
include /var/lib/openswan/ipsec.secrets.inc
4.4.4.4 3.3.3.3 : PSK "123@123"

Aplicar essas regras no firewall:
# iptables -t nat -A POSTROUTING -s 0/0 ! -d 10.14.0.0/16 -j MASQUERADE
# iptables -A INPUT -p udp --dport 500 -j accept

E também:
# echo 1 > /proc/sys/net/ipv4/ip_forwad

Reiniciando o serviço:
# service ipsec restart

Startando a VPN:
# ipsec auto --up Unidade

Verificando status:
# ipsec auto --status


3 comentários:

  1. Muito bom!

    Precisei diversas vezes disso no meu trabalho e nunca encontrei uma documentação boa!

    Continue assim!
    Abraços

    ResponderExcluir
  2. Excelente artigo!

    Tirei minhas dúvidas com teu post.

    Abraço

    ResponderExcluir
  3. cara estou quase, fechou a conexão, mas usando o seu exemplo nao estou conseguindo chegar na rede 10.14.0.0/16, o nat tambem foi blz, vc faz ideia???

    ResponderExcluir