Configurando uma VPN IPSec Openswan no SUSE Linux 9.3

Neste artigo veremos como instalar e configurar uma VPN utilizando o IPSec e Openswan. A distribuição utilizada foi o SUSE Linux 9.3.

[ Hits: 82.461 ]

Por: Sandro Venezuela em 17/04/2007


Instalação



Para instalação dos pacotes utilizaremos o YaST, através do comando apresentado abaixo:

# yast sw_single

O pacote que deve ser instalado é openswan, que apresenta como dependência o pacote ipsec-tools.

OBS.: Para instalação dos pacotes será preciso os CDs ou DVD de instalação do SUSE Linux 9.3. Se foram configuradas outras fontes de instalação que utilizem a internet, é necessário que o acesso a internet esteja disponível.

Configuração

Os arquivos de configuração utilizados pelo IPSec são ipsec.conf e ipsec.secrets, localizados no diretório /etc. O arquivo ipsec.conf armazena as configurações gerais do IPSec e também as configurações das VPNs.

Antes de começar a configuração é sempre interessante manter uma cópia de segurança deste arquivo.

# cd /etc
# cp -p ipsec.conf ipsec.conf.default
# cp -p ipsec.secrets ipsec.secrets.default


A VPN criada interliga 2 servidores entre a matriz e a filial, conforme esquema abaixo:

Subnet1      <=>    Gateway1    (Internet)    Gateway2    <=>      Subnet2
192.168.172.0/24     200.153.247.71            200.153.247.70     192.168.173.0/24

A partir do arquivo original, vamos inserir alguns parâmetros e alterar outros, conforme apresentado abaixo:

# /etc/ipsec.conf - Openswan IPsec configuration file
# RCSID $Id: ipsec.conf.in,v 1.13 2004/03/24 04:14:39 ken Exp $

# This file:  /usr/share/doc/packages/openswan/ipsec.conf-sample
#
# Manual:     ipsec.conf.5


version 2.0     # conforms to second version of ipsec.conf specification

# basic configuration
config setup
# Debug-logging controls:  "none" for (almost) none, "all" for lots.
#klipsdebug=all
#plutodebug="control parsing"
#plutodebug=all
# Certificate Revocation List handling
#crlcheckinterval=600
#strictcrlpolicy=yes
# Change rp_filter setting, default = 0 (switch off)
#rp_filter=%unchanged
# Switch on NAT-Traversal (if patch is installed)
#nat_traversal=yes

# default settings for connections
conn %default
# Default: %forever (try forever)
keyingtries=3
# Sig keys (default: %dnsondemand)
leftrsasigkey=%cert
rightrsasigkey=%cert
# Lifetimes, defaults are 1h/8hrs
#ikelifetime=20m
#keylife=1h
#rekeymargin=8m
authby=rsasig

# Linux2Business VPN
conn matriz-filial
# Left security gateway, subnet behind it, next hop toward right.
left=200.153.247.71
leftsubnet=192.168.172.0/24
# RSA 2048 bits
leftrsasigkey=0sAQOwK8vxtiHMURv...
# Right security gateway, subnet behind it, next hop toward left.
right=200.153.247.70
rightsubnet=192.168.173.0/24
# RSA 2048 bits
rightrsasigkey=0sAQOU3S8FUzrBtE...
# To authorize this connection, but not actually start it, at startup,
# uncomment this.
auto=start

#Disable Opportunistic Encryption
include /etc/ipsec.d/examples/no_oe.conf

OBS.: Não estarei entrando em detalhes sobre cada parâmetro da configuração, onde caso necessário existe uma boa documentação disponível no diretório /usr/share/doc/packages/openswan.

Este arquivo deve ser idêntico em ambos os lados da VPN, somente com o parâmetro auto diferente, onde no lado da matriz deixamos com o valor add e no lado da filial com o valor start.

Os parâmetros leftrsasigkey e rightrsasigkey são conseguidos com o seguinte comando, sendo executado em cada lado da VPN:

# ipsec showhostkey --left
RSA 2048 bits
leftrsasigkey=0sAQOwK8vxtiHMURv...

ou

# ipsec showhostkey --right
RSA 2048 bits
rightrsasigkey=0sAQOU3S8FUzrBtE...

Esta chave está disponível também no arquivo ipsec.secrets, onde é possível gerar uma nova chave RSA com o seguinte comando:

# ipsec newhostkey --output /etc/ipsec.secrets

Uma vez configurado, vamos iniciar os serviços em ambos os lados, através do comando:

# rcipsec start

É possível observar o que está acontecendo através do arquivo de log /var/log/messages ou através do comando:

# ipsec auto --status

Caso algum problema aconteça, é recomendado alterar os parâmetros start, em ambos os lados, para add e iniciar a comunicação da VPN manualmente. Sempre que o arquivo ipsec.conf for alterado é preciso reiniciar o serviço ipsec.

# rcipsec restart
# ipsec auto --up matriz-filial


Outros parâmetros do comando ipsec podem ser visualizados através do parâmetro --help:

# ipsec auto --help

Página anterior     Próxima página

Páginas do artigo
   1. Conceito de VPN
   2. Instalação
   3. Firewall para VPN
Outros artigos deste autor

Instalando a placa de rede wireless DWL-G520+ no Fedora Core 3

Construindo um Firewall / Proxy com o Fedora Core 4

Integrando o Amavisd-new, SpamAssassin e ClamAV com o Postfix no SuSE 9.3

Instalando o QEMU no Fedora Core 4

Leitura recomendada

Honeypot Kippo 0.8 - Instalação e utilização

Intrusão simples com Metasploit

Scanners de portas e de vulnerabilidades

Vault: SSH com OneTimePassword

Arpwatch - Detecte em sua rede ataques de Arp Spoofing/Arp Poisoning

  
Comentários
[1] Comentário enviado por mbmaciel em 20/04/2007 - 08:16h

Olá!

Antes de mais nada ... ótimo artigo!

E qual a principal diferença entre essa solução de vpn e outra com o openvpn?

[]'s
MM

[2] Comentário enviado por s4ndr0 em 23/04/2007 - 14:28h

A principal diferença entre Openswan e OpenVPN está no padrão de conexão utilizado, onde enquanto o Openswan utiliza o protocolo IPSec, o OpenVPN é uma solução baseada em SSL/TLS.

A solução OpenVPN ainda é relativamente nova e poucos hardwares suportam, pois preferem utilizar o IPSec, que é um padrão.

Para maiores detalhes, aconselho os sites dos projetos:

http://www.openswan.org
http://openvpn.net

Até mais,
Sandro

[3] Comentário enviado por brlukas em 17/10/2007 - 10:44h

Muito bem explicado.

Como ficaria a configuração para uma situação onde é necessário conectar um note com IP Dinâmico via internet a um SERVIDOR com ip fixo EX.: 200.246.217.17?

abraço.
Luiz Rodrigues

[4] Comentário enviado por cassioseffrin em 30/03/2008 - 16:39h

Olá Sandro,

Gostaria de saber se seria possível conectar diversas filiais a uma matriz? Ou seja, criar diversos gateways com o ipsec.conf utilizando o parametro auto=start (filial), e apenas na matriz usando o auto=add.

Obrigado,

Cássio

[5] Comentário enviado por xcyclops em 12/01/2010 - 09:51h


Olá Sandro e Galera do Forum,

Estou com o seguinte problema:
LOG do meu FIREWALL

====>>>>

fw:/var/log # tail -f /var/log/messages | grep vpn
Jan 12 10:36:54 fw pluto[13188]: "vpn" #5: max number of retransmissions (2) reached STATE_MAIN_I1. No response (or no acceptable response) to our first IKE message
Jan 12 10:36:54 fw pluto[13188]: "vpn" #5: starting keying attempt 2 of at most 3, but releasing whack
Jan 12 10:36:54 fw pluto[13188]: "vpn" #6: initiating Main Mode to replace #5
Jan 12 10:36:54 fw ipsec__plutorun: 104 "vpn" #5: STATE_MAIN_I1: initiate
Jan 12 10:36:54 fw ipsec__plutorun: 010 "vpn" #5: STATE_MAIN_I1: retransmission; will wait 20s for response
Jan 12 10:36:54 fw ipsec__plutorun: 010 "vpn" #5: STATE_MAIN_I1: retransmission; will wait 40s for response
Jan 12 10:36:54 fw ipsec__plutorun: 031 "vpn" #5: max number of retransmissions (2) reached STATE_MAIN_I1. No response (or no acceptable response) to our first IKE message
Jan 12 10:36:54 fw ipsec__plutorun: 000 "vpn" #5: starting keying attempt 2 of at most 3, but releasing whack
Jan 12 10:36:54 fw ipsec__plutorun: ...could not start conn "vpn"
Jan 12 10:38:04 fw pluto[13188]: "vpn" #6: max number of retransmissions (2) reached STATE_MAIN_I1. No response (or no acceptable response) to our first IKE message
Jan 12 10:38:04 fw pluto[13188]: "vpn" #6: starting keying attempt 3 of at most 3
Jan 12 10:38:04 fw pluto[13188]: "vpn" #9: initiating Main Mode to replace #6
Jan 12 10:39:14 fw pluto[13188]: "vpn" #9: max number of retransmissions (2) reached STATE_MAIN_I1. No response (or no acceptable response) to our first IKE message


<<<<======


MEU AMBIENTE É:
MATRIZ: Firewall OpenSuse
FILIAL: Router Planet MH-2001 VPN ( http://www.planet.com.tw/en/product/product_ov.php?id=7708 )

Ja fiz muitas alteraçoes e testes e nao sobe a VPN.

SERÁ QUE ALGUÉM PODE ME AJUDAR?
Obrigado.

Att. xcyclops


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts