<div dir="ltr"><div><div><div><div>So, I recommended very much to make the fiollowing: <a href="http://www.giganews.com/support/vyprvpn/vpn-setup/windows-7/l2tp.html">AssumeUDPEncapsulationContextOnSendRule</a> or <a href="http://support2.microsoft.com/kb/926179/ru">AssumeUDPEncapsulationContextOnSendRule</a>. There are instructions for Win XP and for Win 7.<br></div>I made it and Win 7 became working with l2tp/psk and l2tp/certificate.<br></div><div><i>Without AssumeUDPEncapsulationContextOnSendRule I got:</i><br>14[KNL] deleting policy <i>Strongswan external IP</i>/32[udp/l2f] === <a href="http://217.118.78.117/32[udp/l2f]">217.118.78.117/32[udp/l2f]</a> out  (mark 0/0x00000000)<br>14[KNL] policy still used by another CHILD_SA, not removed<br>14[KNL] deleting policy <a href="http://217.118.78.117/32[udp/l2f]">217.118.78.117/32[udp/l2f]</a> === <i>Strongswan external IP</i>/32[udp/l2f] in  (mark 0/0x00000000)<br>14[KNL] policy still used by another CHILD_SA, not removed<br></div><div><i>With AssumeUDPEncapsulationContextOnSendRule I got working connections as for l2tp/psk as for l2tp/certificate; but for ike2 is still 13801 error or trouble with IP assignment.</i><br></div><div><br><br></div><b>But with <a href="http://www.softether.org/">Softether Vpn server</a> Win 7 with l2tp/psk works <u>without</u> setting up </b><i>AssumeUDPEncapsulationContextOnSendRule </i><b>fine !<br><br></b></div><div>I didn' t try l2tp/certificate with SoftEther due to unsupporting such configuration by it.<br></div><div>As I know Nat module for SoftEther is some special and is written by SoftEther developers and called SNAT (secure NAT) .<br></div>As following, I think that Strongswan developers should look at SoftEther SNAT working that to add some interesting or change existing Strongswan NAT behaviour.<br><br></div>P. S.: I suppose that there is some point connected with Nat-t port, Strongswan doesn' t understand packet come out from not 4500, but SoftEther does. But I can be wrong.<br></div><div class="gmail_extra"><br><div class="gmail_quote">2014-09-28 1:08 GMT+04:00 CpServiceSPb . <span dir="ltr"><<a href="mailto:cpservicespb@gmail.com" target="_blank">cpservicespb@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div><div>My Strongswan copy is not behind NAT.<br>By the way I have been able to set up succerssfully one copy of Win 7 for l2tp/psk from behind NAT.<br></div>But for other Win 7 copy (I specially tested behind different NATs, without NAT also) .<br><br></div>Even asI wrote I tested without NAT (client->bluetooth->Sony Z1->3G/4G->Internet->StrongSwan at Ubuntu) and ^#^%^% nothing changes.<br></div>When I tried to use Android connection (from this Sony Z1) , I was successful as accross psk as certificate (ikev1) .<br><br></div>So, as for Win XP, there weren' t roubles as I remember.<br><br></div>I issued certificate by easy-rsa soft at <a href="https://github.com/OpenVPN/easy-rsa" target="_blank">Easy-rsa github</a> or at <a href="http://openvpn.net/index.php/open-source/documentation/miscellaneous/77-rsa-key-management.html" target="_blank">Easy-rsa desc</a>.<br></div>I added subjectAltName as external IP as internal FQDN as to server as to client certificate.<br></div>Also I added extendedKeyUsage=1.3.6.1.5.5.8.2.2, serverAuth to server certificate.<br><br></div>But just now I am testing ikev2 and getting 13801 error (for machine certificate) .<br><div><div><div><div><div><div><div><div><br></div></div></div></div></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2014-09-28 0:53 GMT+04:00 Dr. Rolf Jansen <span dir="ltr"><<a href="mailto:rj@obsigna.com" target="_blank">rj@obsigna.com</a>></span>:<div><div class="h5"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Am 27.09.2014 um 15:12 schrieb CpServiceSPb . <<a href="mailto:cpservicespb@gmail.com" target="_blank">cpservicespb@gmail.com</a>>:<br>
<span><br>
> Can somebody give step by step instruction and/or working Ca, Server & Client certificate with testing data as working example that Win 7 could work accross psk/ikev1/ikev2 ?<br>
<br>
</span>I am running strongSwan 5.2.0 on a FreeBSD machine, and I also had difficulties to get a working setup with Windows 7 clients.<br>
<br>
My findings.<br>
<br>
Forget L2TP/IPsec with Windows 7. While Mac OS X and iOS clients are happily connecting to my server in any situation, i.e. IKEv1 with certificates or PSK, without NAT, with Single-NAT, with Double-NAT, Windows 7 works only without NAT, and that is pretty much useless, given that road warriors are needing connectivity from hotels, airports, LAN-Houses, mostly from behind any kind of NAT.<br>
<br>
The only setup which works for me with the Windows 7 client behind NAT is IKEv2 with machine certificates. The server must listen on the public interface, though.<br>
<br>
My ipsec.conf<br>
<br>
conn IKEv2<br>
   keyexchange = ikev2<br>
   leftcert = ipsec-service-cert.pem<br>
   rightcert = ipsec-clients-cert.pem<br>
   left = %any<br>
   leftsubnet = <a href="http://192.168.1.0/24" target="_blank">192.168.1.0/24</a><br>
   right = %any<br>
   rightdns = 192.168.1.1<br>
   rightsourceip = <a href="http://192.168.1.176/28" target="_blank">192.168.1.176/28</a><br>
   auto = add<br>
<br>
My ipsec.secrets:<br>
<br>
: RSA ipsec-service-key.pem<br>
<br>
<br>
For setting up the CA, and the certificates, I used the PKI tools that came together with strongSwan. Here comes the list of commands without comments -- use man if you are in doubt). Note, on FreeBSD, the $PREFIX is /usr/local, and I don't know where Ubuntu store everything, perhaps you need to correct some cert locations.<br>
<br>
As user root do:<br>
######## commands begin:<br>
mkdir ~/ipsec-certs<br>
cd  ~/ipsec-certs<br>
pki --gen --outform pem > ipsec-ca-key.pem<br>
pki --self --outform pem --in ipsec-ca-key.pem --digest sha256 --ca --dn "C=DE, O=Example, CN=<a href="http://example.com" target="_blank">example.com</a> CA" > ipsec-ca-cert.pem<br>
<br>
pki --gen --outform pem > ipsec-service-key.pem<br>
pki --pub --in ipsec-service-key.pem | \<br>
pki --issue --outform pem --digest sha256 --cacert ipsec-ca-cert.pem --cakey ipsec-ca-key.pem --flag serverAuth --flag ikeIntermediate --san <a href="http://example.com" target="_blank">example.com</a> --dn "C=DE, O=Example, CN=<a href="http://example.com" target="_blank">example.com</a>" > ipsec-service-cert.pem<br>
<br>
pki --gen --outform pem > ipsec-clients-key.pem<br>
pki --pub --in ipsec-clients-key.pem | \<br>
pki --issue --outform pem --digest sha256 --cacert ipsec-ca-cert.pem --cakey ipsec-ca-key.pem --san <a href="http://ipsec-clients.example.com" target="_blank">ipsec-clients.example.com</a> --dn "C=DE, O=Example, CN=<a href="http://ipsec-clients.example.com" target="_blank">ipsec-clients.example.com</a>" > ipsec-clients-cert.pem<br>
<br>
cp ipsec-ca-cert.pem /usr/local/etc/ipsec.d/cacerts/ipsec-ca-cert.pem<br>
cp ipsec-service-key.pem /usr/local/etc/ipsec.d/private/ipsec-service-key.pem<br>
cp ipsec-clients-key.pem /usr/local/etc/ipsec.d/private/ipsec-clients-key.pem<br>
cp ipsec-service-cert.pem /usr/local/etc/ipsec.d/certs/ipsec-service-cert.pem<br>
cp ipsec-clients-cert.pem /usr/local/etc/ipsec.d/certs/ipsec-clients-cert.pem<br>
<br>
openssl pkcs12 -export -out ipsec-clients.p12 -inkey ipsec-clients-key.pem -in ipsec-clients-cert.pem -certfile ipsec-ca-cert.pem<br>
######## commands end.<br>
<br>
IMPORTANT: The CN value of the ipsec-service-cert.pem MUST be the exact DNS resolvable domain of your IPsec server!!!<br>
<br>
Copy the  pkcs12 file ipsec-clients.p12 to the Windows 7 machine, and install it as shown on <a href="https://wiki.strongswan.org/projects/strongswan/wiki/Win7Certs" target="_blank">https://wiki.strongswan.org/projects/strongswan/wiki/Win7Certs</a><br>
<br>
On the stateful firewall of my server I opened UDP ports 500 and 4500, but this was not sufficient. A major obstacle was, that the windows client is sending packet fragments (without port numbers), and I have to let it go through the firewall too. On FreeBSD, I am using ipfw, and the relevant part is:<br>
<br>
...<br>
/sbin/ipfw -q add 5010 allow udp from any to me 500,4500 via $WAN in keep-state<br>
/sbin/ipfw -q add 5011 allow udp from any to me via $WAN in frag<br>
...<br>
<br>
Best regards<br>
<span><font color="#888888"><br>
Rolf<br>
</font></span><br>
PS: About the L2TP/IPsec setup on a FreeBSD-Home-Server, using strongSwan together with mpd5, that works so very well for Mac OS X and iOS, I wrote a post on my BLog: <a href="http://blog.obsigna.net/?p=520" target="_blank">http://blog.obsigna.net/?p=520</a>. As said already, forget Windows in this respect.<br>
<br>
<br>
</blockquote></div></div></div><br></div>
</blockquote></div><br></div>