VPN IPSEC Linux Racoon / CheckPoint

Neste post vou demonstrar a configuração da VPN Ipsec entre um servidor Linux Ubuntu Server LTS com o serviço Racoon e um firewall CheckPoint (versão R75.40).

Topologia utilizada para demonstrar as configurações:

vpn_racoon_01

Darei foco maior na configuração do Racoon, pois no site já existe o procedimento abaixo do CheckPoint.

VPN CheckPoint: https://vsoc.com.br/vpn-ipsec-checkpoint/

Primeiramente iremos garantir que o servidor Linux  se comporte como um firewall para os hosts da rede 10.30.0.0/24.

Endereçando o servidor

ifconfig eth0 192.168.2.10 netmask 255.255.255.0 up
ifconfig eth1 10.30.0.1 netmask 255.255.255.0 up
route add default gw 192.168.2.1

Para o que servidor possa ser utilizado como gateway, e encaminhe os pacotes será necessário habilitar o IP_FORWARD.

sysctl -w net.ipv4.ip_forward=1

O próximo passo é habilitar o Proxy ARP na interface eth0 (Wan).

sysctl -w net.ipv4.conf.eth0.proxy_arp=1

Para que está configuração fique salva em caso de um reboot, é necessário  editar o arquivo abaixo.

/etc/sysctl.conf

Para habilitar a alteração após a edição do arquivo.

sysctl -p /etc/sysctl.conf

Agora através do iptables iremos permitir que os hosts da rede privada 10.30.0.0/24 saiam para a Internet através da interface eth0 (Wan).

iptables -t nat -A POSTROUTING -o eth0 ! -d "10.31.0.0/24" -j MASQUERADE

vpn_racoon_02

Antes de iniciarmos a configuração do Racoon, iremos configura um host da rede 10.30.0.0/24 para sair através do nosso firewall Linux.

HostA – 10.30.0.0/24

ifconfig eth0 10.30.0.10 netmask 255.255.255.0 up
route add default gw 10.30.0.1

vpn_racoon_03

Como pode ser visualizado, o HostA obteve acesso a Internet através do nosso servidor Linux.

O próximo passo consiste em realizar a instalação e configuração do serviço Racoon, responsável por estabelecer nosso túnel Ipsec com o CheckPoint.

Realizando a instalação dos pacotes necessários.

aptitude install racoon ipsec-tools

No processo de instalação será exibido a tela abaixo, selecionem a opção “direct”

vpn_racoon_04

Após isso a instalação será concluída.

vpn_racoon_05

Antes de iniciarmos a configuração do Racoon iremos definir as propostas trocadas na VPN.

vpn_racoon_06

Uma vez definido as propostas iremos configurar o Racoon.

O nosso primeiro passo será definir a pre-shared key, onde iremos remover os exemplos do arquivo deixando apenas as linhas abaixo.

vi /etc/racoon/psk.txt

192.168.2.20 123mudar@

vpn_racoon_07

O próximo passo é configurar os parâmetros do túnel VPN, onde iremos acrescentar  as linhas abaixo.

  vi /etc/racoon/racoon.conf

remote 192.168.2.20 {
exchange_mode main;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
lifetime time 28800 seconds;
dh_group 5;
}
}

sainfo address 10.30.0.0/24 any address 10.31.0.0/24 any {
pfs_group 5;
lifetime time 3600 seconds;
encryption_algorithm 3des;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}

vpn_racoon_08

Agora iremos configurar o arquivo do ipsec-tools.

vi /etc/ipsec-tools.conf

spdadd 10.30.0.0/24 10.31.0.0/24 any -P out ipsec
esp/tunnel/192.168.2.10-192.168.2.20/require;

spdadd 10.31.0.0/24 10.30.0.0/24 any -P in ipsec
esp/tunnel/192.168.2.20-192.168.2.10/require;

vpn_racoon_09

Após este procedimento finalizamos a configuração do Racoon, agora é necessário reiniciar os serviços.

/etc/init.d/racoon restart
/etc/init.d/setkey restart

vpn_racoon_10

Agora iremos configurar uma rota no servidor informando que os pacotes com destino a rede 10.31.0.0/24 deve ser encaminhado através da interface eth1 (10.30.0.1).

ip route add 10.31.0.0/24 via 10.30.0.1 src 10.30.0.1

Agora iremos realizar a validação da VPN com o outro peer CheckPoint, que já se encontra configurado.

Host_B – 10.31.0.0/24 – CheckPoint

ifconfig eth0 10.31.0.10 netmask 255.255.255.0 up
route add default gw 10.31.0.2

vpn_racoon_11

CheckPoint – 10.31.0.2

vpn_racoon_12

Agora através do Racoon iremos forçar o túnel VPN, lembrando que o peer remoto CheckPoint é 192.168.2.20.

racoonctl vpn-connect 192.168.2.20

Para verificar os tuneis estabelecidos através do Racoon, usaremos o comando abaixo.

setkey -D

vpn_racoon_13

Como é possível visualizar o túnel esta estabelecido.

Porém caso não estabelecesse para melhor troubleshooting é possível habilitar o debug do Racoon, para isso é necessário editar o arquivo abaixo.

vi /etc/racoon/racoon.conf

E modificar a linha log notify para debug.

vpn_racoon_14

Após isso será necessário um restart do serviço racoon.

Com está opção habilitada os logs serão gerados no arquivo abaixo.

tail -f /var/log/syslog

vpn_racoon_15

Outro comando muito útil é o próprio tcpdump.

tcpdump -ni any host 192.168.2.20

vpn_racoon_16

Agora iremos validar a comunicação entre os hosts através do túnel VPN, primeiramente partindo da rede 10.30.0.0/24 – Racoon.

HostA

vpn_racoon_17

HostB

vpn_racoon_18

Agora partindo da rede 10.31.0.0 – CheckPoint

HostB

vpn_racoon_19

HostA

vpn_racoon_20

Log do Tracker CheckPoint

vpn_racoon_21

E com isso finalizamos mais um post.

Tags: