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.720 ]

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


Criando as regras do iptables



#!/bin/bash

rede1=192.168.10.0/25 # é a subrede de uma das pontas da VPN
rede2=10.0.0.0/25 # subrede de outra ponta da vpn

modprobe ip_nat_ftp
modprobe iptable_nat

if [ "$#" = 0 ]
then
echo "Sintaxe: rc.nat start ou rc.nat stop"
exit 2
fi

if [ "$1" = start ]
then

# Fornece acesso a internet. Esse é o "X" da questão. Só vai mascarar o que não for para $rede1

iptables -t nat -A POSTROUTING -d ! $rede1 -o eth1 -j MASQUERADE

# Habilita as portas do IPSEC
iptables -A INPUT -p udp --sport 500 --dport 500 -j ACCEPT
iptables -A OUTPUT -p udp --sport 500 --dport 500 -j ACCEPT
iptables -A INPUT -p 50 -j ACCEPT
iptables -A OUTPUT -p 50 -j ACCEPT
iptables -A INPUT -p 51 -j ACCEPT
iptables -A OUTPUT -p 51 -j ACCEPT
iptables -A INPUT -p tcp --sport 2020 --dport 2020 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 2020 --dport 2020 -j ACCEPT

exit 0
fi

if [ "$1" = stop ]
then
iptables -t nat -F
exit 0
fi

Editando o arquivo /etc/sysctl.conf

...

net.ipv4.ip_forward = 1

...

net.ipv4.conf.default.rp_filter = 0

Deixar as outras linhas desse arquivo iguais, apenas alterar esses 2 valores. Deixar o resto como está.

Página anterior     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

Como contribuir para projetos abertos no GitHub

Acessando computadores remotos protegidos por NAT ou firewall com túnel SSH reverso direcionado por DNS dinâmico

Servidor de monitoramento Nagios

Terceira experiência com o Basic Linux

Transmissão de áudio e vídeo via Multicast

  
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