Hi !<br>
<br>
I'm trying to get a connection with NATed clients using either Linux/Openswan and Windows 2000/XP.<br>
<br>
I've followed the instructions from <a href="http://www.natecarlson.com/linux/ipsec-x509.php">http://www.natecarlson.com/linux/ipsec-x509.php</a>. <br>
<br>
I have to mention that we had SuSE linux 9.0 with FreeSwan 1.99 + X.509
Patch, and it was running smoothly for over a year with NATed and
non-NATed clients. Now, we upgraded to Fedora Core 4 running Openswan
2.4.4 and the VPNs connections are not working. Only works if the
client is not NATed.<br>
<br>
I'm using X.509 certificates (the same certificates used with SuSE and FreeSWAN). Here is my configuration:<br>
<br>
version 2.0<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
config setup<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; interfaces=%defaultroute<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nat_traversal=yes<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; virtual_private=%v4:<a href="http://10.0.0.0/8,%v4:172.16.0.0/12,%v4:192.168.0.0/16"></b></font><font color="red"><b>MailScanner has detected a possible fraud attempt from "10.0.0.0" claiming to be</b></font> <font color="red"><b>MailScanner warning: numerical links are often malicious: 10.0.0.0/8,%v4:172.16.0.0/12,%v4:192.168.0.0/16</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
conn %default<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keyingtries=1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; compress=yes<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disablearrivalcheck=no<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; authby=rsasig<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; leftrsasigkey=%cert<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rightrsasigkey=%cert<br>
<br>
conn block<br>
&nbsp;&nbsp;&nbsp; auto=ignore<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
conn private<br>
&nbsp;&nbsp;&nbsp; auto=ignore<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
conn private-or-clear<br>
&nbsp;&nbsp;&nbsp; auto=ignore<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
conn clear-or-private<br>
&nbsp;&nbsp;&nbsp; auto=ignore<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
conn clear<br>
&nbsp;&nbsp;&nbsp; auto=ignore<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
conn packetdefault<br>
&nbsp;&nbsp;&nbsp; auto=ignore<br>
<br>
conn roadwarrior-net<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; leftsubnet=(local ip net)/(local subnet)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; also=roadwarrior<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
conn roadwarrior<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; left=%defaultroute<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; leftcert=(vpn gateway x.509 certificate file)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; right=%any<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rightsubnet=vhost:%no,%priv<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; auto=add<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pfs=yes<br>
<br>
So, when i try to initiate a manual connection from a Linux NATed client, here are the steps:<br>
<br>
ipsec auto --verbose --up roadwarrior<br>
002 &quot;roadwarrior&quot; #1: initiating Main Mode<br>
104 &quot;roadwarrior&quot; #1: STATE_MAIN_I1: initiate<br>
003 &quot;roadwarrior&quot; #1: ignoring unknown Vendor ID payload [4f45647c6b5d646e6a744347]<br>
003 &quot;roadwarrior&quot; #1: received Vendor ID payload [Dead Peer Detection]<br>
003 &quot;roadwarrior&quot; #1: received Vendor ID payload [RFC 3947] method set to=109<br>
002 &quot;roadwarrior&quot; #1: enabling possible NAT-traversal with method 3<br>
002 &quot;roadwarrior&quot; #1: transition from state STATE_MAIN_I1 to state
STATE_MAIN_I2106 &quot;roadwarrior&quot; #1: STATE_MAIN_I2: sent MI2, expecting
MR2<br>
003 &quot;roadwarrior&quot; #1: NAT-Traversal: Result using 3: i am NATed<br>
002 &quot;roadwarrior&quot; #1: I am sending my cert<br>
002 &quot;roadwarrior&quot; #1: I am sending a certificate request<br>
002 &quot;roadwarrior&quot; #1: transition from state STATE_MAIN_I2 to state
STATE_MAIN_I3108 &quot;roadwarrior&quot; #1: STATE_MAIN_I3: sent MI3, expecting
MR3<br>
003 &quot;roadwarrior&quot; #1: discarding duplicate packet; already STATE_MAIN_I3<br>
010 &quot;roadwarrior&quot; #1: STATE_MAIN_I3: retransmission; will wait 20s for response<br>
003 &quot;roadwarrior&quot; #1: discarding duplicate packet; already STATE_MAIN_I3<br>
010 &quot;roadwarrior&quot; #1: STATE_MAIN_I3: retransmission; will wait 40s for response<br>
031 &quot;roadwarrior&quot; #1: max number of retransmissions (2) reached
STATE_MAIN_I3. Possible authentication failure: no acceptable response
to our first encrypted message<br>
<br>
And, on the gateway side (which it's not NATed) here is the log:<br>
<br>
Jan 30 14:30:33 zeus pluto[8239]: packet from x.y.z.w:500: ignoring unknown Vendor ID payload [4f457a7d4646466667725f65]<br>
Jan 30 14:30:33 zeus pluto[8239]: packet from x.y.z.w:500: received Vendor ID payload [Dead Peer Detection]<br>
Jan 30 14:30:33 zeus pluto[8239]: packet from x.y.z.w:500: received Vendor ID payload [RFC 3947] method set to=109<br>
Jan 30 14:30:33 zeus pluto[8239]: packet from x.y.z.w:500: received
Vendor ID payload [draft-ietf-ipsec-nat-t-ike-03] meth=108, but already
using method 109<br>
Jan 30 14:30:33 zeus pluto[8239]: packet from x.y.z.w:500: received
Vendor ID payload [draft-ietf-ipsec-nat-t-ike-02] meth=107, but already
using method 109<br>
Jan 30 14:30:33 zeus pluto[8239]: packet from x.y.z.w:500: received Vendor ID payload [draft-ietf-ipsec-nat-t-ike-00]<br>
Jan 30 14:30:33 zeus pluto[8239]: &quot;roadwarrior&quot;[1] x.y.z.w #1: responding to Main Mode from unknown peer <a href="http://201.240.76.12"></b></font><font color="red"><b>MailScanner has detected a possible fraud attempt from "201.240.76.12" claiming to be</b></font> <font color="red"><b>MailScanner warning: numerical links are often malicious: 201.240.76.12</a><br>
Jan 30 14:30:33 zeus pluto[8239]: &quot;roadwarrior&quot;[1] x.y.z.w #1: transition from state STATE_MAIN_R0 to state STATE_MAIN_R1<br>
Jan 30 14:30:33 zeus pluto[8239]: &quot;roadwarrior&quot;[1] x.y.z.w #1: STATE_MAIN_R1: sent MR1, expecting MI2<br>
Jan 30 14:30:34 zeus pluto[8239]: &quot;roadwarrior&quot;[1] x.y.z.w #1: NAT-Traversal: Result using 3: peer is NATed<br>
Jan 30 14:30:34 zeus pluto[8239]: &quot;roadwarrior&quot;[1] x.y.z.w #1: transition from state STATE_MAIN_R1 to state STATE_MAIN_R2<br>
Jan 30 14:30:34 zeus pluto[8239]: &quot;roadwarrior&quot;[1] x.y.z.w #1: STATE_MAIN_R2: sent MR2, expecting MI3<br>
Jan 30 14:31:44 zeus pluto[8239]: &quot;roadwarrior&quot;[1] x.y.z.w #1: max number of retransmissions (2) reached STATE_MAIN_R2<br>
Jan 30 14:31:44 zeus pluto[8239]: &quot;roadwarrior&quot;[1] x.y.z.w: deleting
connection &quot;roadwarrior&quot; instance with peer x.y.z.w {isakmp=#0/ipsec=#0}<br>
<br>
So, it seems the Main Initiator Phase 3 from the client, does not reach
the VPN gateway, the Client says it sent it, but the Gateway claims
it'is missing.<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NATed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; IPsec<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Client&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Gateway<br>
<pre>       MI1 ----------&gt;<br>           &lt;---------- MR1<br>       MI2 ----------&gt; <br>           &lt;---------- MR2<br>       MI3 ----------&gt;   ( LOST ! )<br>           &lt;---------- MR3 ( NEVER COMES ! )<br>
<br>However, if i move this client, to a non-NATed connection, the connection success.<br></pre>

<h4><a name="struct.exchange"></a></h4>
I've been playing around for 3 or 4 days, and i really can't sleep. I would appreciate any help you could give me.<br>
<br>
Thanks in advance.<br>