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