{"id":1209,"date":"2009-01-11T13:26:54","date_gmt":"2009-01-11T11:26:54","guid":{"rendered":"http:\/\/www.corelan.be:8800\/index.php\/2009\/01\/11\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/"},"modified":"2009-01-11T13:26:54","modified_gmt":"2009-01-11T11:26:54","slug":"ipsec-vpn-between-windows-server-2008-and-juniper-screenos","status":"publish","type":"post","link":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/","title":{"rendered":"IPSec VPN between Windows Server 2008 and Juniper ScreenOS"},"content":{"rendered":"<p>In this blog post, I will show you how to set up a IPSec VPN tunnel between a Windows Server and a Juniper ScreenOS based firewall and route traffic between hosts that are located behind these 2 VPN gateways.<\/p>\n<p>The Windows Server will acts as a gateway to build a VPN tunnel towards the Juniper firewall, so the hosts behind the Windows Server can access hosts behind the Juniper firewall. <\/p>\n<p>We\u2019ll assume the following network layout :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image6.png\" target=\"_blank\"><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=\"276\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb6.png\" width=\"537\" border=\"0\" \/><\/a> <\/p>\n<p>Network 192.168.10.0\/24 is located behind a multi-homed Windows 2008 Server (2 network interfaces, one with a private IP (192.168.10.254) and one with an internet public IP (I\u2019ll use 192.168.0.0\/24 as \u2018internet\u2019, so the \u2018public\u2019 IP of the Windows Server is 192.168.0.100. Of course, this is not really a public IP, and the Juniper\u2019s public IP will be in the same range, but it is not relevant to my explanation today. Just bear in mind that both the Juniper and the 2008 Server have a public IP. Traffic to the internet, initiated by these hosts, are not subject to address translation (no NAT).&#160; They are directly connected to the internet.&#160; If you feel not confident enough putting the Windows server directly to the internet, you can also put it in a DMZ. Just make sure it has a public IP which is routable, and no NAT is used.    <br \/>Network 192.168.2.0\/24 is located behind a SSG5 Juniper firewall. Eth0\/1 is connected to the internet (192.168.0.30) and eth0\/2 is connected to the private network (192.168.2.0\/24).     <br \/>The goal is to allow hosts 192.168.10.1 and 192.168.2.1 to talk to each other, using an IPSec tunnel between the Windows Server and the SSG firewall.<\/p>\n<p>The 2 zones on the screenOS are \u201cPublic\u201d (for the internet facing interface) and \u201cLan\u201d.&#160; If you are using Juniper equipment that does not support zones other than the default trust and untrust, feel free to replace \u201cPublic\u201d with \u201cuntrust\u201d and \u201cLan\u201d with \u201ctrust\u201d<\/p>\n<p>The Juniper firewall is a ssg5, running screenos 6.2 (but this may work with older versions as well)<\/p>\n<h3>Shared configuration parameters :<\/h3>\n<p>Phase 1 : 3DES \u2013 SHA1, DH Group2. PSK : DNCSQLsdjqkl390DNJldapfSDx    <br \/>Phase 2 : ESP - 3DES \u2013 SHA1. We won\u2019t use PFS to start with. (In fact, this option is not available in the Windows 2008 GUI. You can use PFS\u2026 Just scroll down to the bottom of this post in order to figure out how you can do this)     <br \/>If you\u2019re not sure what these Phases or parameters mean, check out <a href=\"\/index.php\/2008\/06\/25\/building-ipsec-vpn-with-juniper-netscreen-screenos-cjfv\/\" target=\"_blank\">this post<\/a> and <a href=\"http:\/\/www.juniperforum.com\/index.php\/topic,7780.0.html\" target=\"_blank\">this discussion<\/a> on juniperforum.com (In case you are wondering : my nickname on juniperforum.com is c0d3r)<\/p>\n<p>&#160;<\/p>\n<h3>ScreenOS configuration :<\/h3>\n<p>We\u2019ll use a route based VPN for this purpose, so we need to create a tunnel interface. We\u2019ll use an ip unnumbered tunnel interface for this. The tunnel interface will be placed in the Public zone.<\/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 int tunnel.1 zone Public\nset int tunnel.1 ip unnumbered interface eth0\/1\n\nget int tun.1\nInterface tunnel.1:\n  description tunnel.1\n  number 20, if_info 1768, if_index 1, mode route\n  link down\n  vsys Root, zone Public, vr trust-vr\n  admin mtu 1500, operating mtu 1500, default mtu 1500\n  *ip 0.0.0.0\/0  unnumbered, source interface ethernet0\/1\n  *manage ip 0.0.0.0\n  pmtu-v4 disabled\n  ping disabled, telnet disabled, SSH disabled, SNMP disabled\n  web disabled, ident-reset disabled, SSL disabled\n\n  OSPF disabled  BGP disabled  RIP disabled  RIPng disabled  mtrace disabled\n  PIM: not configured  IGMP not configured\n  MLD not configured\n  NHRP disabled\n  bandwidth: physical 0kbps, configured egress [gbw 0kbps mbw 0kbps]\n             configured ingress mbw 0kbps, current bw 0kbps\n             total allocated gbw 0kbps<\/pre>\n<\/div>\n<p>Next, we need to create a Phase1 definition. We\u2019ll use the GUI for this :<\/p>\n<p>Go to \u201cVPNs\u201d, \u201cAutoKey Advanced\u201d, \u201cGateway\u201d and create a new gateway.&#160;&#160; Set a gateway name, fill out the public IP of the other side (192.168.0.100 in our case) and then click advanced<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image7.png\" target=\"_blank\"><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=\"296\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb7.png\" width=\"607\" border=\"0\" \/><\/a> <\/p>\n<p>In the advanced screen, select the following options :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image8.png\" target=\"_blank\"><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-thumb8.png\" width=\"491\" border=\"0\" \/><\/a> <\/p>\n<p>- fill out the Preshared Key, set the outgoing interface also to eth0\/1, and set the P1 proposal to pre-g2-3des-sha<\/p>\n<p>- make sure the P1 Mode is set to Main<\/p>\n<p>Click \u201cReturn\u201d and then \u201cOK\u201d to save the changes<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image9.png\" target=\"_blank\"><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-thumb9.png\" width=\"594\" border=\"0\" \/><\/a> <\/p>\n<p>In the menu on the left, go to \u201cVPNs\u201d, \u201cAutoKey IKE\u201d and create a new defintion. This is Phase2<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image10.png\" target=\"_blank\"><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=\"273\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb10.png\" width=\"492\" border=\"0\" \/><\/a> <\/p>\n<p>Pick a name, select the predefined \u201cPhase1\u201d that we have created earlier and click \u201cAdvanced\u201d<\/p>\n<p>Under advanced :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image11.png\" target=\"_blank\"><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=\"267\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb11.png\" width=\"494\" border=\"0\" \/><\/a> <\/p>\n<p>Set the Phase 2 proposal to nofps-esp-3des-sha,&#160; Bind the VPN to the tunnel interface, and set the proxy ID. The Local IP and netmask is the local network (192.168.2.0\/24), the Remote IP and netmask indicates the remote network&#160; (192.168.10.0\/24). Make sure the service is set to ANY. Click \u201creturn\u201d and then \u201cOK\u201d to save. <\/p>\n<p>Now we can set up the routing and firewall policy<\/p>\n<p>Add a route to the 192.168.10.0\/24 network and send it to the tunnel interface :<\/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 route 192.168.10.0\/24 int tunnel.1<\/pre>\n<\/div>\n<p>Add the necessary policies so all traffic between the two networks is allowed :<\/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 address LAN LocalNetwork 192.168.2.0\/24     \nset address Public RemoteNetwork 192.168.10.0\/24\nset policy from LAN to Public LocalNetwork RemoteNetwork any permit\nset policy from Public to LAN RemoteNetwork LocalNetwork any permit\nsave<\/pre>\n<\/div>\n<p>&#160;<\/p>\n<h3>Configure Windows 2008 Server<\/h3>\n<p>First of all, make sure the Windows 2008 Server is configured as a router. (you can configure this via \u201cRouting &amp; Remote Access\u201d \u2013 which can be installed as part of the \u201cNetwork Policy and Access Services\u201d server role) Otherwise, the hosts behind the server would not be able to route traffic via the server, thru the tunnel, to the hosts behind the remote endpoint of the tunnel.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image12.png\" target=\"_blank\"><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=\"131\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb12.png\" width=\"205\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image13.png\" target=\"_blank\"><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=\"86\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb13.png\" width=\"232\" border=\"0\" \/><\/a>&#160;<\/p>\n<p>Next, create the VPN definition :<\/p>\n<p>Open the firewall settings on the Windows 2008 Server<\/p>\n<p>(Server Manager \u2013 Windows Firewall properties)<\/p>\n<p>Go to the \u201cIPSec Settings\u201d tabsheet and click Customize<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image14.png\" target=\"_blank\"><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=\"194\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb14.png\" width=\"330\" border=\"0\" \/><\/a> <\/p>\n<p>Under \u201cKey Exchange (main mode)\u201d, choose Advanced and click the Customize button<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image15.png\" target=\"_blank\"><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=\"83\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb15.png\" width=\"308\" border=\"0\" \/><\/a> <\/p>\n<p>Set 3DES-SHA as first Security Method in the list<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image16.png\" target=\"_blank\"><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=\"129\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb16.png\" width=\"263\" border=\"0\" \/><\/a> <\/p>\n<p>Verify that the Key Exchange method is set to Diffie-Hellman Group 2 (which should be the case by default)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image17.png\" target=\"_blank\"><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-thumb17.png\" width=\"265\" border=\"0\" \/><\/a> <\/p>\n<p>Verify that the key lifetime is set to 480 minutes (which is 28800 seconds, the default setting on Juniper)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image18.png\" target=\"_blank\"><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=\"153\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb18.png\" width=\"284\" border=\"0\" \/><\/a> <\/p>\n<p>Click \u201cOK\u201d to save<\/p>\n<p>Under \u201cData Protection (Quick Mode)\u201d (= Phase 2), choose \u201cadvanced\u201d and click \u201ccustomize\u201d<\/p>\n<p>Look at the right hand list (Data integrity and encryption) and make sure ESP \u2013 SHA1 \u2013 3DES is set to the first one in the list. Verify that the Key Lifetime is set to 60 minutes ( = 3600 seconds, default setting on Juniper)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image19.png\" target=\"_blank\"><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=\"154\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb19.png\" width=\"295\" border=\"0\" \/><\/a> <\/p>\n<blockquote>\n<p>As you can see, the Key Lifetime setting in Windows Server indicates both a time (60 minutes) and Kbytes (100000).&#160; In Juniper, the default is 3600 seconds, 0 bytes.&#160; In other words, if you really want it to match (which is a requirement), you\u2019ll have to create your own P2 proposal on Juniper so the settings match :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image30.png\" target=\"_blank\"><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=\"239\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb30.png\" width=\"253\" border=\"0\" \/><\/a> <\/p>\n<p>Click \u201cnew\u201d to create a new proposal<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image31.png\" target=\"_blank\"><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=\"218\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb31.png\" width=\"291\" border=\"0\" \/><\/a> <\/p>\n<p>Click OK to save<\/p>\n<p>Now edit the AutoKey Ike definition (Phase 2) on Juniper and select this newly created proposal (under \u201cAdvanced\u201d)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image32.png\" target=\"_blank\"><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=\"188\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb32.png\" width=\"403\" border=\"0\" \/><\/a><\/p>\n<p>Click \u201cReturn\u201d and \u201cOK\u201d to save <\/p>\n<\/blockquote>\n<p>Let\u2019s continue with the Windows 2008 Server Setup<\/p>\n<p>Enable \u201cRequire encryption for all connection security rules that use these settings\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image20.png\" target=\"_blank\"><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=\"50\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb20.png\" width=\"328\" border=\"0\" \/><\/a> <\/p>\n<blockquote>\n<p>(otherwise, you will see stuff like this in a \u201cdebug ike detail\u201d : )<\/p>\n<div>\n<pre class=\"csharpcode\"><font size=\"1\"><strong><font color=\"#ff0000\">## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; proto(3)&lt;ESP&gt;, esp(11)&lt;ESP_NULL&gt;, auth(2)&lt;SHA&gt;, encap(1)&lt;TUNNEL&gt;, group(0)\n<\/font><\/strong>## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; expect [0]:\n## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; atts&lt;00000003 00000000 00000003 00000002 00000001 00000002&gt;\n<\/font><font size=\"1\"><strong><font color=\"#ff0000\">## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; proto(3)&lt;ESP&gt;, esp(3)&lt;ESP_3DES&gt;, auth(2)&lt;SHA&gt;, encap(1)&lt;TUNNEL&gt;, group(2)\n<\/font><\/strong>## 2009-01-11 01:30:09 : IKE&lt;0.0.0.0        &gt;   Check P2 Proposal\n## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; SA life type = seconds\n## 2009-01-11 01:30:09 : IKE&lt;0.0.0.0        &gt;   SA life duration (TLV) = 0x 00 00 0e 10   \n## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; SA life type = kilobytes\n## 2009-01-11 01:30:09 : IKE&lt;0.0.0.0        &gt;   SA life duration (TLV) = 0x 00 01 86 a0   \n## 2009-01-11 01:30:09 : IKE&lt;0.0.0.0        &gt;   encap mode from peer = 1.\n## 2009-01-11 01:30:09 : IKE&lt;0.0.0.0        &gt;   encap mode after converting it to <span class=\"kwrd\">private<\/span> value = 1.\n## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; Phase 2 received:\n## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; atts&lt;00000002 00000003 00000000 00000002 00000001 00000000&gt;\n<\/font><font size=\"1\"><strong><font color=\"#ff0000\">## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; proto(2)&lt;AH&gt;, ah(3)&lt;AH_SHA&gt;, auth(2)&lt;SHA&gt;, encap(1)&lt;TUNNEL&gt;, group(0)\n<\/font><\/strong>## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; expect [0]:\n## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; atts&lt;00000003 00000000 00000003 00000002 00000001 00000002&gt;\n<\/font><font size=\"1\"><strong><font color=\"#ff0000\">## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; proto(3)&lt;ESP&gt;, esp(3)&lt;ESP_3DES&gt;, auth(2)&lt;SHA&gt;, encap(1)&lt;TUNNEL&gt;, group(2)\n<\/font><\/strong>## 2009-01-11 01:30:09 : IKE&lt;0.0.0.0        &gt;   Check P2 Proposal\n## 2009-01-11 01:30:09 : IKE&lt;192.168.0.100&gt; SA life type = seconds<\/font><\/pre>\n<\/p><\/div>\n<\/blockquote>\n<p>Click \u201cOK\u201d to save<\/p>\n<p>These are the new default settings for IPSec rules.<\/p>\n<p>In order to encrypt traffic and set up the tunnel, we need to set up a Connection Security Rule.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image21.png\" target=\"_blank\"><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=\"89\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb21.png\" width=\"346\" border=\"0\" \/><\/a> <\/p>\n<p>Click \u201cNew Rule\u201d<\/p>\n<p>Choose \u201ctunnel connection\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image22.png\" target=\"_blank\"><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=\"168\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb22.png\" width=\"231\" border=\"0\" \/><\/a> <\/p>\n<p>Fill out the tunnel parameters :<\/p>\n<p>Computers in Endpoint 1 = the local subnet behind the Windows Server<\/p>\n<p>The local tunnel computer = the public IP of the Windows Server<\/p>\n<p>The remote tunnel computer = the public IP of the Juniper<\/p>\n<p>Computers in Endpoint 2 : the remote subnet behind the Juniper firewall<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image23.png\" target=\"_blank\"><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=\"202\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb23.png\" width=\"250\" border=\"0\" \/><\/a> <\/p>\n<p>Set the Preshared Key<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image24.png\" target=\"_blank\"><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=\"194\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb24.png\" width=\"272\" border=\"0\" \/><\/a> <\/p>\n<p>\u201cWhen does this rule apply\u201d : leave all options checked (unless you know what you are doing)<\/p>\n<p>Pick a name for the rule and click Finish<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image25.png\" target=\"_blank\"><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=\"147\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb25.png\" width=\"294\" border=\"0\" \/><\/a><\/p>\n<p>&#160;<\/p>\n<p>Add a route so traffic is sent to the internet.&#160; (the default gateway probably points to the internet, so it may not be required to add a route). In my testlab, I have set a static route pointing directly to the Juniper router, but in real life, you\u2019ll probably want to point the route to your local ISP router.<\/p>\n<p>In my testlab, I had to reboot my Windows 2008 Server before everything started working correctly, but it might not be necessary to do this<\/p>\n<p>From the client behind the Windows Server, which has its default gateway set to 192.168.10.254, try to ping the client behind the Juniper firewall, which has its default gateway set to 192.168.2.8 :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image26.png\" target=\"_blank\"><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=\"277\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb26.png\" width=\"359\" border=\"0\" \/><\/a> <\/p>\n<p>From the client behind the Juniper, ping the host behind the Windows Server :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image27.png\" target=\"_blank\"><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-thumb27.png\" width=\"461\" border=\"0\" \/><\/a> <\/p>\n<p>&#160;<\/p>\n<p>After the first packets were sent from the host behind the WIndows 2008 Server to the host behind the Juniper, you should see Phase 1 and Phase 2 (active sa) come up on the Juniper firewall :<\/p>\n<p><u>Phase 1<\/u><\/p>\n<div>\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\">get ike cookies \n\nIKEv1 SA -- Active: 1, Dead: 0, Total 1\n\n1102f\/0003, 192.168.0.30:500-<span style=\"color: #0000ff\">&gt;<\/span>192.168.0.100:500, PRESHR\/grp2\/3DES\/SHA, xchg(2) (IKE_to_Windows2008\/grp-1\/usr-1)\nresent-tmr 322 lifetime 28800 lt-recv 28800 nxt_rekey 28531 cert-expire 0\ninitiator, err cnt 0, send dir 0, 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<\/pre>\n<\/p><\/div>\n<\/div>\n<p><u>Phase 2<\/u><\/p>\n<div>\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\">get sa active\nTotal active sa: 1\ntotal configured sa: 1\nHEX ID    Gateway         Port Algorithm     SPI      Life:sec kb Sta   PID vsys\n00000001<span style=\"color: #0000ff\">&lt;<\/span>   192.168.0.100  500 esp:3des\/sha1 37703021  3218 unlim A\/-    -1 0\n00000001<span style=\"color: #0000ff\">&gt;<\/span>   192.168.0.100  500 esp:3des\/sha1 68b2fde4  3218 unlim A\/-    -1 0<\/pre>\n<\/p><\/div>\n<\/div>\n<\/p>\n<p>On the Windows Server, you should see the corresponding Phases :<\/p>\n<p>Phase 1 (Main Mode)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image28.png\" target=\"_blank\"><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=\"184\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb28.png\" width=\"694\" border=\"0\" \/><\/a> <\/p>\n<p>Phase 2 (Quick Mode)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image29.png\" target=\"_blank\"><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=\"206\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb29.png\" width=\"693\" border=\"0\" \/><\/a> <\/p>\n<p>Juniper screenos logs :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image33.png\" target=\"_blank\"><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=\"113\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb33.png\" width=\"622\" border=\"0\" \/><\/a> <\/p>\n<p>Notes :<\/p>\n<p>1. If, for any reason, you get \u201cReceived notify message for DOI &lt;1&gt; &lt;1&gt; &lt;INVALID-PAYLOAD-TYPE&gt;\u201d messages in your \u201cdebug ike detail\u201d output, clear the ike cookies, and wait some time until the corresponding ike cookies are cleared on the WIndows Server. Generate traffic again and it should work again (I\u2019m still trying to figure out what exactly may be causing this)<\/p>\n<p>2. If the tunnel does not work, you can try disabling policy-checking \u201cunset ike policy-checking\u201d&#160; and\/or set the device to accept all proposals \u201cset ike accept-all-proposals\u201d.&#160; Don\u2019t forget to disable this setting after you\u2019ve figured out which proposals need to be used.<\/p>\n<\/p>\n<\/p>\n<\/p>\n<\/p>\n<p>3. Windows 2008 does not support PFS (Phase2) to be configured via the GUI. You can only enable PFS when configuring the Connection Security Rule via command line :<\/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\">rem Script taken from Peter Van Eeckhoutt\u2019s Blog\nrem <a href=\"https:\/\/www.corelan.be\">http:\/\/www.corelan.berem<\/a> Main Mode (Phase 1)\nnetsh advfirewall set global mainmode mmsecmethods dhgroup2:3des-sha1\nrem\nrem Quick Mode (Phase 2)\nrem\nnetsh advfirewall consec add rule name=&quot;IPSec tunnel to 192.168.2.0 network behind juniper&quot;     \n     enable=yes\n     mode=tunnel\n     localtunnelendpoint=192.168.0.100\n     remotetunnelendpoint=129.168.0.30\n     endpoint1=192.168.10.0\/24\n     endpoint2=192.168.2.0\/24\n     action=requireinrequireout\n     auth1=computerpsk\n     auth1psk=&quot;DNCSQLsdjqkl390DNJldapfSDx&quot;\n     qmsecmethods=esp:sha1-3des\n     qmpfs=dhgroup2<\/pre>\n<\/div>\n<p>Don\u2019t forget to enable PFS on the Juniper if you have used this script.<\/p>\n<p>- The second command was put on multiple lines in order to allow you to see all parameters. If you want to copy\/paste the command, make sure to put all parameters on one line<br \/>\n  <br \/>- the \u201cqmpfs=\u201d parameter is responsible for enabling PFS.&#160; You can either specify a DH Group, or just use \u201cmainmode\u201d, which will enable the use of the DH group defined in main mode (Phase 1)&#160; <br \/>- You can specify multiple proposals for both Phase1 and Phase2. Just separate them with a comma.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog post, I will show you how to set up a IPSec VPN tunnel between a Windows Server and a Juniper ScreenOS based firewall and route traffic between hosts that are located behind these 2 VPN gateways. The Windows Server will acts as a gateway to build a VPN tunnel towards the Juniper &hellip; <a href=\"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> \"IPSec VPN between Windows Server 2008 and Juniper ScreenOS\"<\/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,26],"tags":[3735,1408,583,571,316,47],"class_list":["post-1209","post","type-post","status-publish","format-standard","hentry","category-juniper","category-networking","category-security","category-windows-server","tag-juniper-netscreen-screenos","tag-routing","tag-vpn","tag-ipsec","tag-windows","tag-server"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>IPSec VPN between Windows Server 2008 and Juniper ScreenOS - 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\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IPSec VPN between Windows Server 2008 and Juniper ScreenOS - Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"og:description\" content=\"In this blog post, I will show you how to set up a IPSec VPN tunnel between a Windows Server and a Juniper ScreenOS based firewall and route traffic between hosts that are located behind these 2 VPN gateways. The Windows Server will acts as a gateway to build a VPN tunnel towards the Juniper &hellip; Continue reading &quot;IPSec VPN between Windows Server 2008 and Juniper ScreenOS&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/\" \/>\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-11T11:26:54+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\\\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\\\/\"},\"author\":{\"name\":\"corelanc0d3r\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\"},\"headline\":\"IPSec VPN between Windows Server 2008 and Juniper ScreenOS\",\"datePublished\":\"2009-01-11T11:26:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\\\/\"},\"wordCount\":1541,\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"keywords\":[\"juniper netscreen screenos\",\"routing\",\"vpn\",\"ipsec\",\"windows\",\"server\"],\"articleSection\":[\"Juniper\",\"Networking\",\"Security\",\"Windows Server\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\\\/\",\"name\":\"IPSec VPN between Windows Server 2008 and Juniper ScreenOS - Corelan | Exploit Development &amp; Vulnerability Research\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\"},\"datePublished\":\"2009-01-11T11:26:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/11\\\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.corelan.be\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IPSec VPN between Windows Server 2008 and Juniper ScreenOS\"}]},{\"@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":"IPSec VPN between Windows Server 2008 and Juniper ScreenOS - 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\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/","og_locale":"en_US","og_type":"article","og_title":"IPSec VPN between Windows Server 2008 and Juniper ScreenOS - Corelan | Exploit Development &amp; Vulnerability Research","og_description":"In this blog post, I will show you how to set up a IPSec VPN tunnel between a Windows Server and a Juniper ScreenOS based firewall and route traffic between hosts that are located behind these 2 VPN gateways. The Windows Server will acts as a gateway to build a VPN tunnel towards the Juniper &hellip; Continue reading \"IPSec VPN between Windows Server 2008 and Juniper ScreenOS\"","og_url":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/","og_site_name":"Corelan | Exploit Development &amp; Vulnerability Research","article_publisher":"https:\/\/www.facebook.com\/corelanconsulting","article_published_time":"2009-01-11T11:26:54+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\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/#article","isPartOf":{"@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/"},"author":{"name":"corelanc0d3r","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f"},"headline":"IPSec VPN between Windows Server 2008 and Juniper ScreenOS","datePublished":"2009-01-11T11:26:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/"},"wordCount":1541,"publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"keywords":["juniper netscreen screenos","routing","vpn","ipsec","windows","server"],"articleSection":["Juniper","Networking","Security","Windows Server"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/","url":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/","name":"IPSec VPN between Windows Server 2008 and Juniper ScreenOS - Corelan | Exploit Development &amp; Vulnerability Research","isPartOf":{"@id":"https:\/\/www.corelan.be\/#website"},"datePublished":"2009-01-11T11:26:54+00:00","breadcrumb":{"@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/11\/ipsec-vpn-between-windows-server-2008-and-juniper-screenos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.corelan.be\/"},{"@type":"ListItem","position":2,"name":"IPSec VPN between Windows Server 2008 and Juniper ScreenOS"}]},{"@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":37701,"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\/1209","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=1209"}],"version-history":[{"count":0,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/1209\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/media?parent=1209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/categories?post=1209"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/tags?post=1209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}