Openswan - Configurando uma conexão VPN Site-to-Site e simulando com GNS3

O Openswan é uma ferramenta indispensável para conectar dois sites de forma segura através da internet. Nesse artigo além de mostrar a instalação e configuração do Openswan no Debian Jessie, será simulado todo o ambiente utilizando o GNS3.

[ Hits: 18.495 ]

Por: Sergei Martao em 23/11/2015


Instalação e configuração do Openswan



Quando comecei a montar o ambiente tive uma surpresa ao descobrir que o Openswan não está disponível no repositório oficial do Debian 8 Jessie, para instalar precisei usar o sources.list do Debian 7 Wheezy.

Caso utilize Openswan no Debian 8 deixe nos comentários como está o funcionamento do serviço, pois não testei a fundo se existia alguma incompatibilidade ou instabilidade.

Instalando o Openswan, executar nos servidores D8-FW01 e D8-FW02:

# apt-get update
# apt-get install openswan

Configurando o Openswan, editar arquivo ipsec.conf, deixar a mesma configuração em ambos os servidores.

# vim /etc/ipsec.conf

Esse é o principal arquivo de configuração do IPsec, poderíamos configurar todos os túneis aqui, porém acho pouco prático, por isso sempre adiciono a linha include "/etc/ipsec.d/ipsec.*",com isso qualquer arquivo salvo no diretório /etc/ipsec.d/ e que comece com ipsec é lido e pode se tornar uma conexão VPN, bem interessante para quando temos muitos túneis VPN com empresas e escritórios diferentes. Deixe o arquivo com o seguinte conteúdo:

# /etc/ipsec.conf - Openswan IPsec configuration file
# This file:  /usr/share/doc/openswan/ipsec.conf-sample
#
# Manual:     ipsec.conf.5
version 2.0
# basic configuration
config setup
dumpdir=/var/run/pluto/
nat_traversal=yes
nhelpers=0
protostack=netkey
plutodebug=none
klipsdebug=none
# Add connections here
include /etc/ipsec.d/ipsec.*

Devemos criar o arquivo de conexão VPN IPsec, a única regra nesse caso é que o nome do arquivo deve começar com ipsec. É interessante colocar um nome para identificar a conexão de formar fácil, gosto de usar a seguinte nomenclatura:

ipsec.empresa.destino

Sendo assim o nome do arquivo ficará:
  • Site-A: ipsec.xpto.site-b
  • Site-B: ipsec.xpto.site-a

Criar o arquivo de conexão do IPsec com o Site-B, para o servidor D8-FW02:

# vim /etc/ipsec.d/ipsec.xpto.site-b

Deixar com o seguinte conteúdo:

conn xpto-site-b1
   type=tunnel
   left=201.27.8.2
   leftsubnets={172.16.0.0/24172.16.10.0/24}
   leftnexthop=201.27.8.1
   right=187.8.230.2
   rightsubnet=192.168.0.0/24
   authby=secret
   auth=esp
   keylife=24h
   keyexchange=ike
   ike=3des-md5-modp1024
   esp=3des-md5-96
   rekey=no
   rekeymargin=8h
   rekeyfuzz=25%
   pfs=no
   auto=start

Criar o arquivo de conexão do IPsec com o Site-A, para o servidor D8-FW01:

# vim /etc/ipsec.d/ipsec.xpto.site-a

Deixar com o seguinte conteúdo:

conn xpto-site-a
    type=tunnel
    left=187.8.230.2
    leftsubnets=192.168.0.0/24
    leftnexthop=187.8.230.1
    right=201.27.8.2
    rightsubnets={172.16.10.0/24,172.16.0.0/24}
    authby=secret
    auth=esp
    keylife=24h
    keyexchange=ike
    ike=3des-md5-modp1024
    esp=3des-md5-96
    rekey=no
    rekeymargin=8h
    rekeyfuzz=25%
    pfs=no
    auto=start

Os únicos itens que precisam ser alterados são:
  • conn - Nome do túnel VPN, muito utilizada para troubleshooting, uso o mesmo conceito do nome do arquivo, empresa-destino. Todavia pode-se deixar igual o nome em ambos os sites que não causa problema, é mais questão de identificação.
  • left - É o IP válido do site em que se está (Peer).
  • leftsubnets - Redes que o site possui e entraram no túnel, caso seja mais de uma deve se utilizar chaves e vírgula para separar as redes.
  • leftnexthop - IP do gateway do IP válido.
  • right - IP válido do site remoto que fará a conexão (Peer).
  • rightsubnet - Redes que o site remoto possui ao entrar no túnel, caso seja mais de uma deve se utilizar chaves e vírgula para separar as redes.

Precisamos ainda configurar o arquivo ipsec.secrets, responsável pela senha usado entre os Peers.

Editar o arquivo ipsec.secrets em ambos os hosts:

# vim /etc/ipsec.secrets

A configuração é simples:

left right: PSK "senha"

No D8-FW02 deixar com o seguinte conteúdo:

201.27.8.2 187.8.230.2: PSK "123456"

No D8-FW01 deixar com o seguinte conteúdo:

187.8.230.2 201.27.8.2: PSK "123456"

Basta habilitar e iniciar o serviço IPsec em ambos os servidores

# systemctl enable ipsec
# systemctl start ipsec

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configurando VMs e host hospedeiro
   3. Instalação e configuração do Openswan
   4. Validar funcionamento da VPN IPsec
Outros artigos deste autor

Planejando e migrando softwares do Windows para o Linux

Simulando redes com o GNS

Utilizando o script vpnautomatica

Configurando o segundo default gateway para um link de entrada específico

Criando um template customizado para o CACTI

Leitura recomendada

Docker e Flannel

Análise de Desempenho: Web API - Recursos técnicos

Criando e Consumindo Rede de Compartilhamento NFS

A camada de enlace de dados

IPv6 completo Net Virtua

  
Comentários
[1] Comentário enviado por weidsom em 05/12/2015 - 19:44h


Valeu fera belo artigo!

[2] Comentário enviado por sergeimartao em 07/12/2015 - 23:14h

Fico feliz que tenha gostado, vlw!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts