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
smime.p7s
Description: S/MIME cryptographic signature