VPN com Openswan e Iptables (fazendo NAT)

Nesse artigo irei explicar como instalar uma VPN com Openswan criando regras do IPTABLES, fazendo NAT.

[ Hits: 60.721 ]

Por: Luiz Felipe Resende Tavares em 14/05/2008


Instalação



Primeiro deveremos instalar o openswan. Ele pode ser baixado em:
Depois começa a configuração da VPN.

Criando do arquivo ipsec.secrets

Devemos gerar uma chave para cada máquina. Para isso deveremos executar o comando, nas duas máquinas:

# ipsec newhostkey --output /etc/ipsec.secrets --bits 2048 --hostname nomedamáquina.domínio

Caso haja alguma dúvida quanto ao nome da máquina, basta digitar 'hostname' no terminal.

OBS:
  • --output significa onde será criado o arquivo com a chave;
  • --bits significa com quantos bits será gerada a chave (o mínimo é 512);
  • --hostname é o nome da máquina como já havia comentado.

Editando o arquivo ipsec.conf

config setup
   # Debug-logging controls:  "none" for (almost) none, "all" for lots.
   klipsdebug=none
   plutodebug=none
   nat_traversal=yes
   uniqueids=yes
   interfaces="ipsec0=eth1"  # eth1 é a interface de saída das máquinas

include /etc/ipsec.d/*.conf

conn nomedasuavpn
   type=tunnel
   left=ip_de_saida_da_maquina1
   leftsubnet=subrede_maquina1
   leftrsasigkey=0sAQPbbUaC/......    # é a linha "pubkey" que foi gerada em /etc/ipsec.secrets da máquina 1
   leftnexthop=gateway_da_máquina1
   leftsourceip=ip_interno_da_máquina1
   rightnexthop=gateway_da_máquina2
   right=ip_saída_da_máquina2
   rightsubnet=subrede_da_máquina2
   rightsourceip=ip_interno_da_máquina2
   rightrsasigkey=0sAQOOV.......   # é a linha "pubkey" que foi gerada em /etc/ipsec.secrets da máquina 2"    
   authby=rsasig
   auto=add

OBS:
  • authby=rsasig (significa que vamos usar chave "do tipo" rsa para fazer a comunicação entre as 2 pontas do túnel);
  • auto=add (significa que a máquina irá "receber a conexão" vpn).

Esse arquivo deve ser idêntico nas 2 máquinas do túnel.

IMPORTANTE: Deve-se deixar um espaço (tab) no começo de todas as linhas abaixo de 'coon nomedasuavpn'.

    Próxima página

Páginas do artigo
   1. Instalação
   2. Criando as regras do iptables
   3. Levantando e testando o serviço da VPN
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Screen, eita ferramenta porreta!

Instalando Debian através de um win32 executável

Instalando programas utilizando os fontes no seu Slackware com o checkinstall

Instalando e deixando o Torsmo mais bonito

C# no Slackware

  
Comentários
[1] Comentário enviado por irado em 22/10/2008 - 09:40h

algo não funcionou, creio eu que faltou no artigo:

# /usr/sbin/ipsec auto --up VPN-01
whack: Pluto is not running (no "/var/run/pluto/pluto.ctl")

uso slackware 12.1 e toda a instalação seguiu o recomendado na documentação do OpenSWAN e neste artigo.

alguma sugestão?

[2] Comentário enviado por luizfelipert em 22/10/2008 - 09:47h

bom dia IRADO... você poderia dar uma olhada na parte do arquivo /etc/ipsec.conf e dar uma conferida no leftnexthop e rightnexthop.... você deve colocar os ips dos gateways...

[3] Comentário enviado por irado em 22/10/2008 - 10:29h

foi (tri)conferido; nada falta. O que falta mesmo é o tal de pluto, que não faço a minima idéia do que seja (e no artigo não é mencionado)

[4] Comentário enviado por luizfelipert em 22/10/2008 - 10:43h

você já iniciou o serviço? # /etc/init.d/ipsec start

[5] Comentário enviado por irado em 22/10/2008 - 14:22h

oi, luiz.

revisei os problemas, googlei pra kct e conclui pelo seguinte:

a) embora mencionados até mesmo nos man/docs do OpenSWAN, NÃO se deve
usar as expressões
klipsdebug=none
plutodebug=none

eu as removi e a coisa começou a andar; depois

b) usei a expressão %defaultroute, ao invés de
interfaces="ipsec0=eth1"
ficando:
interfaces=%defaultroute

também é mencionado no ipsec.conf default, mas enfim.. não funciona, dá
pau e o ipsec não sobe sem essas alterações.

depois disso o treco vai direitinho :)

[6] Comentário enviado por segalla em 02/11/2008 - 06:49h

o X da questão resolveu meu problema após 20 horas, sem essa po**a minhas lans só se pingavam mas nao acessava nada.

pena que não vi isso antes.

valeu

segalla

[7] Comentário enviado por flph2 em 27/11/2008 - 10:40h

Isso ocorreu devido o Openswan isntalado estar utilizando a Stack nativa do kernel.. netkey (aka26), os parametros para debug adicionados são utilizados somente para o Klips que no Openswan só pode ser utilizado nas versões 2.4.X através de patch e nas versões superiores deve ser adicionado um parâmetro em tempo de compilação, por isso o debug nao funcionou.... (nao tem klips, vai debugar o que?)

att..
Felipe Santos - Rasputin
Comunidade Openswan-BR
www.br.openswan.br

[8] Comentário enviado por diter em 09/04/2009 - 11:20h

Oi Felipe, muito obrigado por suas dicas, mas infelizmente não consigo pingar as estações, quando uso o comando:
tail /etc/log/auth.log | grep -i pluto
Apresenta varias msg e uma delas me chama a atenção:
I did not send a certificate because I do not have one.

Abes o que poderia ser?

Obrigado

[9] Comentário enviado por luizfelipert em 13/04/2009 - 13:48h

Boa tarde Diter, você criou os certificados usando o seguinte comando?

ipsec newhostkey --output /etc/ipsec.secrets --bits 2048 --hostname nomedamáquina.domínio


abraços

[10] Comentário enviado por lf_sm em 29/08/2012 - 16:42h

boa tarde

como eu faço para criar apos subir a VPN uma interface virtual IPSEC0?

[11] Comentário enviado por snak-hat em 16/02/2015 - 19:18h

Olá, saudações a todos.
Pessoal estou fazendo um lab em cima da plataforma CentOS.
já instalei todos os pacotes necessários para casa host do CentOS, mas parece que não tiver sucesso.
Segue a topologia que eu uso.Tenho um PFsense no meio dos dois hosts com a rede, ele também tem acesso a internet, então assim ele tem três interfaces de rede.
ele é como se fosse uma internet para os hosts, sei que já deu para entender. : ) Ele tem uma interface para a rede 10.10.10.0/24 e outra para a rede 10.30.30.0/24, cada Linux já está configurado o arquivo do /etc/ipsec.conf. Cada uma das Distros consegue pingar a outra, então está tudo ok, mas não sei o que está acontecendo. nunca usei o openswan antes.
segue o link que postei no fórum.
http://www.vivaolinux.com.br/topico/CentOSBR/Configuracao-do-Openswan-site-to-site/?pagina=1


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts