Hello,

I succeed to do what I wanted using this : 
http://fixunix.com/bsd/87865-nat-ipsec-openbsd-pf-isakmpd.html

Many thanks for the help !


--
Cordialement,
Pierre BARDOU

-----Message d'origine-----
De : Claer [mailto:[EMAIL PROTECTED] 
Envoyé : dimanche 9 novembre 2008 12:39
À : BARDOU Pierre
Objet : Re: NAT + IPsec problem

Le jeudi 06 novembre 2008 a 15:30, BARDOU Pierre ecrivait :
> Hello,
Bonjour,

> I am trying to setup an IPsec connection.
> Here is the ipsec.conf :
> ike esp from 10.63.61.0/26 to 193.164.151.0/28 peer 193.164.151.35 \
>        main auth hmac-sha1 enc aes-256 \
>        quick auth hmac-sha1 enc aes-256 group modp1024 psk "xxxxxxxx"
> 
> Tunnels go up well :
> flow esp in from 193.164.151.0/28 to 10.63.61.0/26 peer 193.164.151.35 
> srcid
> 212.99.28.26/32 dstid 10.3.2.2/32 type use flow esp out from 
> 10.63.61.0/26 to 193.164.151.0/28 peer 193.164.151.35 srcid 
> 212.99.28.26/32 dstid 10.3.2.2/32 type require esp tunnel from 
> 193.164.151.35 to 212.99.28.26 spi 0x1fd5f292 auth hmac-sha1 enc aes 
> esp tunnel from 212.99.28.26 to 193.164.151.35 spi 0xa0b3fc57 auth 
> hmac-sha1 enc aes
> 
> As my LAN is adressed using 10.31.0.0/16, I need to nat to 
> 10.63.61.xxx before the tunnel.
> So I put this in my pf.conf :
> nat from 10.31.30.1 to 193.164.151.1 -> 10.63.61.2
> 
> The problem is tha packets going from 10.31.30.1 to 193.164.151.1 
> don't go through the tunnel, they are going to the internet.
> 
> Here is the pflog :
> Nov 06 15:16:16.932324 rule 532/(match) pass in on bge0: 10.31.30.1 >
> 193.164.151.1: icmp: echo request
> Nov 06 15:16:16.932362 rule 1/(match) block out on em0: 10.63.61.2 >
> 193.164.151.1: icmp: echo request
> 
> -> Packets are going out through em0 (my inet interface) instead of 
> -> enc0
> 
> As pf doc says translation occurs before filtering, I don't understand 
> why pf can see my real adress (10.31.30.1).
> And the most important : why outgoing packets -with "good" adresses- 
> don't go through the tunnel ?
> Have I misconfigured something ?
Oui et non. Cette config ne peut pas fonctionner.

l'action NAT est faite sur l'interface de sortie aprÚs le filtrage l'action 
RDR est faite sur l'interface d'entree  avant le filtrage

Quand un paquet arrive sur l'openbsd, en gros, il se passe ceci :

- analyse du paquet par pf (in)
 - est ce que le paquet doit etre nate (rdr)
 - est ce que le paquet est autorise (nouvelle session ou session
   existante)
 - est ce que le paquet doit etre redirige sur une if particuliere
   (route-to)

- traitement du routage par le kernel
 - le paquet doit il etre encapsuledans un flux ipsec ?
 - Le paquet est analyse facea la table de routage correspondante

- analyse du paquet sur l'interface de sortie (out)
 - est ce que le paquet est autorise (nouvelle session ou session
   existante)
 - est ce que le paquet doit etre redirige sur une if particuliere
   (route-to)
 - est ce que le paquet doit etre nate (nat)

Vue que le paquet est encapsule avant le nat, ce dernier ne peut pas 
s'appliquer. Comme indique dans un reply a ce thread, la solution est de passer 
par une loopback pour appliquer le nat avant le routage. De ce fait, le paquet 
passe 2x dans la table de routage.

Apres je peux pas me permettre de donner plus de confs ce serait aider un 
concurrent ;-) (NextiraOne)

Bonne chance !

Cdlt,

Claer
BEGIN:VCARD
VERSION:2.1
N:Bardou;Pierre
FN:BARDOU Pierre
ADR;WORK:;B011
LABEL;WORK:B011
EMAIL;PREF;INTERNET:[EMAIL PROTECTED]
REV:20070806T072621Z
END:VCARD

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to