{"id":1300,"date":"2009-01-11T17:09:56","date_gmt":"2009-01-11T16:09:56","guid":{"rendered":"http:\/\/www.corelan.be:8800\/index.php\/2009\/01\/11\/windows-xpvista-l2tp-over-ipsec-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/"},"modified":"2009-01-11T17:09:56","modified_gmt":"2009-01-11T16:09:56","slug":"windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates","status":"publish","type":"post","link":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/","title":{"rendered":"Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates"},"content":{"rendered":"<p>Before looking at the various configuration steps, we\u2019ll have to take the following assumptions into account :<\/p>\n<p>- We don\u2019t want to use the Netscreen Remote client, but we want to use the Windows XP built-in dialup VPN technology that allows us to build PPTP or L2TP\/IPSec connections.&#160; Juniper screenOS does not support PPTP (which is not as safe as IPSec anyway)<\/p>\n<p>- The XP clients will have dynamic IP\u2019s. They are either directly connected to the internet, or connected behind a firewall\/router that is capable of forwarding ESP packets. Keep in mind that nat-traversal cannot be used.&#160; (So if the client is behind a NAT router, it will not work out of the box (because it will try to send fqdn as peer ID instead of IP address).&#160; There is a fix, but it requires you to edit a dll file.&#160; You can read more about this at <a title=\"http:\/\/www.juniperforum.com\/index.php?topic=7706.new;topicseen\" href=\"http:\/\/www.juniperforum.com\/index.php?topic=7706.new;topicseen\">http:\/\/www.juniperforum.com\/index.php?topic=7706.new;topicseen<\/a><\/p>\n<p>- Because the client IP addresses can be dynamic, authentication needs to happen using certificates. (After all, identification is based on IP address or ASN1-DN peer ID\u2019s.&#160; Juniper screenOS also supports fqdn and u-fqdn ID types, but this is not support on XP)<\/p>\n<p>Since you will be using certificates, you may want to set up your own PKI.&#160; You can find more information on how to set up a Windows 2008 based PKI in <a href=\"\/index.php\/2008\/07\/14\/windows-2008-pki-certificate-authority-ad-cs-basics\/\" target=\"_blank\" rel=\"noopener\">this post<\/a>.&#160; Keep in mind that the reachability of the CRL will be very important.<\/p>\n<p>&#160;<\/p>\n<h3>Network layout<\/h3>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image34.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"155\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb34.png\" width=\"469\" border=\"0\" \/><\/a> <\/p>\n<p>The remote client has IP 192.168.0.101.&#160; It will be connecting to the public IP of the Juniper firewall, which, in my testlab, is 192.168.0.30.&#160;&#160; When connected, the client will receive an IP in the 192.168.20.1 \u2013 100 range.&#160; The network it needs to have access to is 192.168.2.0<\/p>\n<p>The internet facing interface on the ssg5 is in zone \u201cPublic\u201d, the internal (private) interface is in zone \u201cLAN\u201d<\/p>\n<p>&#160;<\/p>\n<h3>Create and install a certificate on each client<\/h3>\n<p>First of all, install the root certificate of the PKI into the \u201cTrust Root Certificate Authorities\u201d on each client that needs to connect to your network. You can do this via a Group Policy, or manually.<\/p>\n<p>My internal CA is called socrates.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image35.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"226\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb35.png\" width=\"336\" border=\"0\" \/><\/a> <\/p>\n<p>Next, go to the certificate server website and request a new IPSec certificate. You\u2019ll need to submit an advanced request in order to be able to select the \u201cIPSec Certificate\u201d template<\/p>\n<p>On Windows XP, the request should look like this :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image36.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"310\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb36.png\" width=\"310\" border=\"0\" \/><\/a> <\/p>\n<p>(note that with IE7 you cannot set the certificate to be stored in the local machine store. This is why I enabled the private key to be exportable, so you can export it, and import it manually in the local machine store)<\/p>\n<p>In both cases, make sure the Email address is filled out, because this will be used as peer ID<\/p>\n<p>When the certificate has been installed, Export it to a file (including the private key) and import it back into the local machine store :<\/p>\n<p>IE \u2013 Options \u2013 Content \u2013 Certificates - Personal<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image37.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"240\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb37.png\" width=\"293\" border=\"0\" \/><\/a> <\/p>\n<p>Export (including the private key).&#160; Feel free to delete the private key if the export is successfull.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image38.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"227\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb38.png\" width=\"313\" border=\"0\" \/><\/a> <\/p>\n<p>Open a mmc, select the certificates snap-in and select \u201cComputer account\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image39.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"210\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb39.png\" width=\"264\" border=\"0\" \/><\/a> <\/p>\n<p>Open the Certificates, go to \u201cPersonal \u2013 Certificates\u201d and import the certificate<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image40.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"152\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb40.png\" width=\"278\" border=\"0\" \/><\/a> <\/p>\n<p>Verify that it was installed properly and that it includes the private key :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image41.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"192\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb41.png\" width=\"273\" border=\"0\" \/><\/a> <\/p>\n<p>Either way, make sure<\/p>\n<p>- the root certificate is installed in the Trust Root Certificate Authorities<\/p>\n<p>- the new IPSec certificate is installed in the local computer store<\/p>\n<p>&#160;<\/p>\n<h3>Configure Juniper ScreenOS for certificates <\/h3>\n<p>First of all, make sure the time and DNS settings of your Juniper firewall are correct. You will need DNS to be able to connect to the CRL URL, and the time settings are required to validate whether a certificate&#160; has expired or not.<\/p>\n<p>Next, create a certificate for your Juniper device.<\/p>\n<p>Start by importing the root certificate to the device.&#160; From the PKI website, download the root CA certificate in .cer format.<\/p>\n<p>Go to the Juniper firewall WebUI , navigate to \u201cObjects\u201d - \u201cCertificates\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image42.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"230\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb42.png\" width=\"395\" border=\"0\" \/><\/a><\/p>\n<p>Click the \u201cbrowse\u201d button and locate the .cer file&#160; Click \u201cload\u201d to load the CA certificate.<\/p>\n<p>Set \u201cshow\u201d to CA and verify that the root cert was loaded properly<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image43.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"193\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb43.png\" width=\"406\" border=\"0\" \/><\/a> <\/p>\n<p>Click the \u201cnew\u201d button to create a new certificate<\/p>\n<p>Fill out the Name, Organization, fqdn<\/p>\n<p>Set the type to RSA<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image44.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"241\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb44.png\" width=\"412\" border=\"0\" \/><\/a><\/p>\n<p>Set the length to 1024<\/p>\n<p>Click \u201cGenerate\u201d to create a new request and wait until the request string is shown. This can take a couple of minutes.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image45.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"223\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb45.png\" width=\"417\" border=\"0\" \/><\/a> <\/p>\n<p>Copy the text in the certificate request to the clipboard<\/p>\n<p>Go to the PKI certsrv website, Submit a new request. Choose \u2018advanced\u2019 request.<\/p>\n<p>Click \u201cSubmit a certificate request by using a base-64-encoded\u2026\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image46.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"102\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb46.png\" width=\"500\" border=\"0\" \/><\/a><\/p>\n<p>Paste the request string in the \u201cSaved Request\u201d box and click Submit<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image47.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"230\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb47.png\" width=\"272\" border=\"0\" \/><\/a>&#160; <\/p>\n<p>When the certificate is issued, pick it up and save it to file<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image48.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"162\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb48.png\" width=\"288\" border=\"0\" \/><\/a> <\/p>\n<p>Go back to the Juniper device, under certificates, browse to the new .cer file, and load it<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image49.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"98\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb49.png\" width=\"272\" border=\"0\" \/><\/a> <\/p>\n<p>Look at the details of this new certificate and verify that it contains the correct data<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image50.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"76\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb50.png\" width=\"283\" border=\"0\" \/><\/a> <\/p>\n<p>Next, import the CRL from your CA.&#160; Go to the PKI website again, and download the CRL file to disk<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image51.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"169\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb51.png\" width=\"151\" border=\"0\" \/><\/a> <\/p>\n<p>On the Juniper device, under certificates, Set the type to CRL<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image52.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"69\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb52.png\" width=\"375\" border=\"0\" \/><\/a> <\/p>\n<p>Use browse to locate the crl file and click \u201cload\u201d to load it<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image53.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"34\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb53.png\" width=\"450\" border=\"0\" \/><\/a> <\/p>\n<p>&#160;<\/p>\n<h3>Configure Juniper ScreenOS for incoming L2TP\/IPSec dialup connections<\/h3>\n<p>First, define the IP pool out of which IP addresses will be assigned to the end users. This range of IP addresses can not be used on the firewall yet. It must be unique<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">set ippool &quot;L2TP_VPN_Pool&quot; 192.168.20.1 192.168.20.100<\/pre>\n<\/div>\n<p>Set the L2TP defaults : assign the IP pool to l2tp, set authentication, DNS and WINS options :<\/p>\n<p>(VPNs \u2013 L2TP \u2013 Default Settings)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image54.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"220\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb54.png\" width=\"244\" border=\"0\" \/><\/a> <\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\">set l2tp default ippool &quot;L2TP_VPN_Pool&quot;\nset l2tp default dns1 192.168.0.1\nset l2tp default dns2 192.168.0.6<\/pre>\n<\/div>\n<p>&#160;<\/p>\n<h3>Create IKE \/ L2TP Users<\/h3>\n<p>Under \u201cObjects\u201d - \u201cUsers\u201d, click \u201cNew\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image72.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"288\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb72.png\" width=\"309\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image73.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"75\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb73.png\" width=\"541\" border=\"0\" \/><\/a> <\/p>\n<p>Make sure the CN , E-Mail, Organization, Location, etc match with the certificate that was created for the client computer earlier.&#160; You will have to create an IKE user configuration for each user. <\/p>\n<p>&#160;<\/p>\n<h3>Create Phase 1 definition (IKE Gateway)<\/h3>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image56.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"226\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb56.png\" width=\"393\" border=\"0\" \/><\/a> <\/p>\n<p>(Click \u201cadvanced\u201d)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image57.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"428\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb57.png\" width=\"356\" border=\"0\" \/><\/a> <\/p>\n<p>Click \u201cReturn\u201d and \u201cOK\u201d to save<\/p>\n<p>&#160;<\/p>\n<\/p>\n<h3>Create Phase 2 (AutoKey IKE) definition<\/h3>\n<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image58.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"110\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb58.png\" width=\"481\" border=\"0\" \/><\/a> <\/p>\n<p>Click \u201cAdvanced\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image59.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"152\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb59.png\" width=\"326\" border=\"0\" \/><\/a> <\/p>\n<p>Click \u201cReturn\u201d and then \u201cOK\u201d to save<\/p>\n<p>&#160;<\/p>\n<h3>Create the L2TP Tunnel<\/h3>\n<p>VPNs \u2013 L2TP \u2013 Tunnel&#160;&#160; \u201cNew\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image60.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"238\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb60.png\" width=\"288\" border=\"0\" \/><\/a> <\/p>\n<p>Pick a name and set the outgoing interface to the public interface (eth0\/1 in our case)<\/p>\n<p>&#160;<\/p>\n<h3>Create a policy that will invoke the L2TP tunnel<\/h3>\n<p>From Public to Lan<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image61.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"310\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb61.png\" width=\"412\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image62.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"74\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb62.png\" width=\"411\" border=\"0\" \/><\/a> <\/p>\n<p>&#160;<\/p>\n<h3>Create the dialup connection on XP<\/h3>\n<p>First of all, make sure there is no 3rd party VPN (IPSec) client\/driver installed, as this one may interfere with the Windows IPSec driver.&#160; Make sure the IPSec service is started on the XP client<\/p>\n<p>Control Panel -&#160; Network Connections \u2013 Create a new connection<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image63.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"155\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb63.png\" width=\"373\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image64.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"175\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb64.png\" width=\"373\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image65.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"165\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb65.png\" width=\"370\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image66.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"144\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb66.png\" width=\"374\" border=\"0\" \/><\/a><\/p>\n<p>Finish and save the new connection.<\/p>\n<p>The \u201cconnect \u2026\u201d dialog will open. Enter the l2tp username and password&#160; <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image67.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"222\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb67.png\" width=\"213\" border=\"0\" \/><\/a> <\/p>\n<p>Click \u201cProperties\u201d and open the \u201cSecurity\u201d tabsheet and set the Security Options to \u201cAdvanced (custom settings)\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image68.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"182\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb68.png\" width=\"219\" border=\"0\" \/><\/a> <\/p>\n<p>Click \u201csettings\u201d<\/p>\n<p>Under \u201cData Encryption\u201d, choose \u201cOptional encryption\u201d. <\/p>\n<p>Protocols : allow PAP and CHAP.&#160;&#160; Juniper does not support MS-CHAP. Accept the warning about passwords being sent in the clear when you only use PAP\/CHAP. That is ok, because the IPSec connection will be up first, and then the L2TP (and then PPP) session will be activated. So don\u2019t worry about your password being sent in the clear.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image69.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"173\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb69.png\" width=\"236\" border=\"0\" \/><\/a> <\/p>\n<p>Click OK<\/p>\n<p>Go to the \u201cNetworking\u201d tab and set the Type to L2TP IPSec VPN<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image70.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"116\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb70.png\" width=\"252\" border=\"0\" \/><\/a> <\/p>\n<p>Click OK to save<\/p>\n<p>&#160;<\/p>\n<p>You are now ready to build the dialup VPN connection.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image74.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"115\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb74.png\" width=\"280\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image75.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"91\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb75.png\" width=\"285\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image76.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"186\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb76.png\" width=\"329\" border=\"0\" \/><\/a> <\/p>\n<p>Access to resources in the 192.168.2.0 network should work, as long as they have a route back to 192.168.20.x<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image77.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"182\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb77.png\" width=\"327\" border=\"0\" \/><\/a> <\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>On Juniper, you should see this :<\/p>\n<div>\n<pre style=\"padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none\"><strong><font color=\"#ff0000\">get ike cookies<\/font><\/strong> \n\nIKEv1 SA -- Active: 1, Dead: 0, Total 1\n\n1113f\/0003, 192.168.0.101:500-<span style=\"color: #0000ff\">&gt;<\/span>192.168.0.30:500, RSA_SIG\/grp2\/3DES\/SHA, xchg(2) (Windows_LT2P_ClientVPN\/grp-1\/usr1)\nresent-tmr 322 lifetime 28800 lt-recv 28800 nxt_rekey 28629 cert-expire 63056824\nresponder, err cnt 0, send dir 1, cond 0x0\nnat-traversal map not available\nike heartbeat              : disabled\nike heartbeat last rcv time: 0\nike heartbeat last snd time: 0\nXAUTH status: 0\nDPD seq local 0, peer 0\n\n\nIKEv2 SA -- Active: 0, Dead: 0, Total 0\n\n\n<strong><font color=\"#ff0000\">get sa active<\/font><\/strong> \n\nTotal active sa: 1\ntotal configured sa: 2\nHEX ID    Gateway         Port Algorithm     SPI      Life:sec kb Sta   PID vsys\n00000004<span style=\"color: #0000ff\">&lt;<\/span>   192.168.0.101  500 esp:3des\/md5  37703030  3427  244M A\/-     7 0\n00000004<span style=\"color: #0000ff\">&gt;<\/span>   192.168.0.101  500 esp:3des\/md5  358e0e39  3427  244M A\/-    -1 0\n\n<strong><font color=\"#ff0000\">get l2tp all<\/font><\/strong>\n\n   ID       L2TP Name       User        Peer IP         Host   KpAlv Intface\n--HEX--- --------------- -------------- --------------- ------ ----- -------\n00000001 L2TP_Windows_Tu all-l2tp-users 0.0.0.0                   60 eth0\/1        \n\n\n\n<strong><font color=\"#ff0000\">get l2tp all active<\/font><\/strong>\n\nL2TP Name       Tunnel Id Peer Address    Port Peer Host    Calls State   t_info\n--------------- --------- --------------- ---- ------------ ----- ------- --HEX---\nL2TP_Windows_Tu ( 89\/  1) 192.168.0.101   1701 xptest1          1 estblsh 80008059\nL2TP_Windows_Tu (  0\/  0) 0.0.0.0            0                  0    idle 80000001<\/pre>\n<\/div>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image78.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"189\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb78.png\" width=\"539\" border=\"0\" \/><\/a> <\/p>\n<p>&#160;<\/p>\n<h3>Troubleshooting<\/h3>\n<p><u><em>\u201cThe L2TP connection attempt failed because there is no valid machine certificaet on your computer for security authentication\u201d<\/em><\/u><\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image71.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"165\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb71.png\" width=\"409\" border=\"0\" \/><\/a> <\/p>\n<p>- verify that the IPSec certificate is installed in the Computer store<\/p>\n<p>- verify that the root certificate is installed in the Trusted Root Certificate Authorities<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<h3>What if I want to use Radius to authenticate the users, in conjunction with the certificate ?<\/h3>\n<p>No problem.&#160; In the step-by-step above, I have created one user that is used as IKE (Phase1) and L2TP (authentication after IPSec tunnel is up) at the same time.&#160; You can of course create an IKE-only user (so the certificate would still be validated), and use an auth server (Radius) to validate the L2TP users<\/p>\n<p>This is how it works<\/p>\n<p>First, create an IKE user.&#160; If you want to validate certificates, you will always need an IKE user for each user account.&#160; In this scenarion, the user name is not that important. Just make sure to enable the user, select IKE only, set the number of logins to 1, and set to use the DN for ID.&#160; Fill out the properties to they match with the certificate.&#160; Do NOT select L2TP user. Just save this new user.&#160; This will make sure any Phase1 connection with this certificate is accepted.<\/p>\n<p>Again, you can only have one simultaneous connection per ike user\/certificate combination, so you\u2019ll have to create an IKE user for each certificate if you want to use certificates.&#160;&#160; I agree, it does not scale very well, but hey \u2013 it works.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image79.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"348\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb79.png\" width=\"445\" border=\"0\" \/><\/a> <\/p>\n<p>Next, create a new auth server for L2TP.&#160; I\u2019ll use a Windows based IAS for this, so I can use Active Directory accounts for user authentication.<\/p>\n<p>Set a good name, set the IP address of the IAS server. Set Account Type to L2TP. Select Radius and set the shared secret.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image80.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"274\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb80.png\" width=\"448\" border=\"0\" \/><\/a> <\/p>\n<p>In Active Directory, create your l2tp user accounts, put them in a L2TP.User group, and create an IAS policy to authenticate users when they are member of this group.<\/p>\n<p>(If you don\u2019t know how to set up the IAS server Radius Client and IAS Policy, check out <a href=\"\/index.php\/2007\/11\/11\/using-active-directory-and-ias-based-radius-for-netscreen-webauth-authentication\/\" target=\"_blank\" rel=\"noopener\">this post<\/a>). Make sure, in the authentication page of the IAS Policy, to only select PAP as accepted authentication method.<\/p>\n<p>Next, on the Juniper firewall,&#160; go to the L2TP Default settings.&#160; Set the default authentication server to your newly created auth user.&#160; Set PPP Authentication to use PAP.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image81.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"351\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb81.png\" width=\"438\" border=\"0\" \/><\/a><\/p>\n<p>Edit the Phase 1 (Gateway) and select your IKE-only user&#160; <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image82.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"260\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb82.png\" width=\"448\" border=\"0\" \/><\/a> <\/p>\n<p>The Phase2 settings, L2TP Tunnel and the policy will remain the same as explained earlier in this post. <\/p>\n<p>In the properties of the dialup connection on the XP client, make sure the logon domain is displayed. THe other settings can remain the same.<\/p>\n<p>Enter the username, password and domain of a user account in your active directory, that will match the IAS policy for authentication L2TP users.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image83.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px\" height=\"235\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb83.png\" width=\"291\" border=\"0\" \/><\/a> <\/p>\n<p>Connect, and it should work.&#160; (If not, then maybe Phase1 of the old L2TP tunnel is still active. Remove all Phase1 sa\u2019s using&#160; \u201cclear ike-cookie all\u201d)<\/p>\n<p>You can troubleshoot the Radius authentication process using \u201cdebug auth radius\u201d<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Before looking at the various configuration steps, we\u2019ll have to take the following assumptions into account : - We don\u2019t want to use the Netscreen Remote client, but we want to use the Windows XP built-in dialup VPN technology that allows us to build PPTP or L2TP\/IPSec connections.&#160; Juniper screenOS does not support PPTP (which &hellip; <a href=\"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> \"Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates\"<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[554,164,127,201,26],"tags":[3735,583,571,560,535,32],"class_list":["post-1300","post","type-post","status-publish","format-standard","hentry","category-juniper","category-networking","category-security","category-windows-client-os","category-windows-server","tag-juniper-netscreen-screenos","tag-vpn","tag-ipsec","tag-radius","tag-encryption","tag-active-directory"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates - Corelan | Exploit Development &amp; Vulnerability Research<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates - Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"og:description\" content=\"Before looking at the various configuration steps, we\u2019ll have to take the following assumptions into account : - We don\u2019t want to use the Netscreen Remote client, but we want to use the Windows XP built-in dialup VPN technology that allows us to build PPTP or L2TP\/IPSec connections.&#160; Juniper screenOS does not support PPTP (which &hellip; Continue reading &quot;Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/\" \/>\n<meta property=\"og:site_name\" content=\"Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/corelanconsulting\" \/>\n<meta property=\"article:published_time\" content=\"2009-01-11T16:09:56+00:00\" \/>\n<meta name=\"author\" content=\"corelanc0d3r\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@corelanc0d3r\" \/>\n<meta name=\"twitter:site\" content=\"@corelanc0d3r\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\\\/\"},\"author\":{\"name\":\"corelanc0d3r\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\"},\"headline\":\"Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates\",\"datePublished\":\"2009-01-11T16:09:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\\\/\"},\"wordCount\":1804,\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"keywords\":[\"juniper netscreen screenos\",\"vpn\",\"ipsec\",\"radius\",\"encryption\",\"Active Directory\"],\"articleSection\":[\"Juniper\",\"Networking\",\"Security\",\"Windows Client OS\",\"Windows Server\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\\\/\",\"name\":\"Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates - Corelan | Exploit Development &amp; Vulnerability Research\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\"},\"datePublished\":\"2009-01-11T16:09:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.corelan.be\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"name\":\"Corelan CyberSecurity Research\",\"description\":\"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.corelan.be\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\",\"name\":\"Corelan CyberSecurity Research\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"contentUrl\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"width\":200,\"height\":200,\"caption\":\"Corelan CyberSecurity Research\"},\"image\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/corelanconsulting\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\",\"https:\\\/\\\/x.com\\\/corelanconsulting\",\"https:\\\/\\\/instagram.com\\\/corelanconsult\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\",\"name\":\"corelanc0d3r\",\"pronouns\":\"he\\\/him\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"caption\":\"corelanc0d3r\"},\"description\":\"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.\",\"sameAs\":[\"https:\\\/\\\/www.corelan-training.com\",\"https:\\\/\\\/instagram.com\\\/corelanc0d3r\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/petervaneeckhoutte\\\/\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\"],\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/author\\\/admin0\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates - Corelan | Exploit Development &amp; Vulnerability Research","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/","og_locale":"en_US","og_type":"article","og_title":"Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates - Corelan | Exploit Development &amp; Vulnerability Research","og_description":"Before looking at the various configuration steps, we\u2019ll have to take the following assumptions into account : - We don\u2019t want to use the Netscreen Remote client, but we want to use the Windows XP built-in dialup VPN technology that allows us to build PPTP or L2TP\/IPSec connections.&#160; Juniper screenOS does not support PPTP (which &hellip; Continue reading \"Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates\"","og_url":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/","og_site_name":"Corelan | Exploit Development &amp; Vulnerability Research","article_publisher":"https:\/\/www.facebook.com\/corelanconsulting","article_published_time":"2009-01-11T16:09:56+00:00","author":"corelanc0d3r","twitter_card":"summary_large_image","twitter_creator":"@corelanc0d3r","twitter_site":"@corelanc0d3r","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/#article","isPartOf":{"@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/"},"author":{"name":"corelanc0d3r","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f"},"headline":"Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates","datePublished":"2009-01-11T16:09:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/"},"wordCount":1804,"publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"keywords":["juniper netscreen screenos","vpn","ipsec","radius","encryption","Active Directory"],"articleSection":["Juniper","Networking","Security","Windows Client OS","Windows Server"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/","url":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/","name":"Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates - Corelan | Exploit Development &amp; Vulnerability Research","isPartOf":{"@id":"https:\/\/www.corelan.be\/#website"},"datePublished":"2009-01-11T16:09:56+00:00","breadcrumb":{"@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/windows-xp-l2tp-over-ipsec-dialup-client-vpn-to-a-juniper-screenos-firewall-using-certificates\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.corelan.be\/"},{"@type":"ListItem","position":2,"name":"Windows XP L2TP over IPSec dialup client VPN to a Juniper ScreenOS firewall, using Certificates"}]},{"@type":"WebSite","@id":"https:\/\/www.corelan.be\/#website","url":"https:\/\/www.corelan.be\/","name":"Corelan CyberSecurity Research","description":"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.","publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.corelan.be\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.corelan.be\/#organization","name":"Corelan CyberSecurity Research","url":"https:\/\/www.corelan.be\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/","url":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","contentUrl":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","width":200,"height":200,"caption":"Corelan CyberSecurity Research"},"image":{"@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/corelanconsulting","https:\/\/x.com\/corelanc0d3r","https:\/\/x.com\/corelanconsulting","https:\/\/instagram.com\/corelanconsult"]},{"@type":"Person","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f","name":"corelanc0d3r","pronouns":"he\/him","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","url":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","caption":"corelanc0d3r"},"description":"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.","sameAs":["https:\/\/www.corelan-training.com","https:\/\/instagram.com\/corelanc0d3r","https:\/\/www.linkedin.com\/in\/petervaneeckhoutte\/","https:\/\/x.com\/corelanc0d3r"],"url":"https:\/\/www.corelan.be\/index.php\/author\/admin0\/"}]}},"views":13885,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/1300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/comments?post=1300"}],"version-history":[{"count":0,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/1300\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/media?parent=1300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/categories?post=1300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/tags?post=1300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}