{"id":1421,"date":"2009-01-22T21:50:14","date_gmt":"2009-01-22T20:50:14","guid":{"rendered":"http:\/\/www.corelan.be:8800\/index.php\/2009\/01\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/"},"modified":"2009-01-22T21:50:14","modified_gmt":"2009-01-22T20:50:14","slug":"juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface","status":"publish","type":"post","link":"https:\/\/www.corelan.be\/index.php\/2009\/01\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/","title":{"rendered":"Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \/ tunnel interface"},"content":{"rendered":"<p>The following procedure explains how to set up a Juniper ScreenOS based firewall to accept Netscreen Remote Client VPN connections and authenticate users using Active Directory (Radius via Windows 2003 IAS or Windows 2008 NPS).&#160; <\/p>\n<p>We\u2019ll assume that all traffic to from the client to the 192.168.0.0\/16 networks needs to pass via the client VPN tunnel.&#160; Clients will use dynamic IP addresses (either public or behind a nat router that is capable of handling IPSec passthrough)<\/p>\n<p>The VPN connection must use the following encryption and hashing parameters&#160; and PSK :<\/p>\n<ul>\n<li>Phase 1 :&#160; aes-128, sha-1, DH Group2, PSK : This1sNot4GoodPSK3y <\/li>\n<li>Phase 2 :&#160; aes-128, sha-1, replay protection, PFS with DH Group2 <\/li>\n<\/ul>\n<h3>Network layout :<\/h3>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image123.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=\"242\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb123.png\" width=\"521\" border=\"0\" \/><\/a> <\/p>\n<p>The Juniper firewall has 3 zones : Public (eth2, connected to the internet, static public IP), LAN (eth1, connected to the LAN) and a separate zone called VPNBuffer, not attached to any interface.&#160; This is just an empty zone, a placeholder, so we can create proper policies (instead of defining policies from Public to LAN, we will be able to use policies from VPNBuffer to LAN, thus separating the internet-to-lan traffic policies from the vpn-to-lan policies.&#160; It just looks better\u2026 )<\/p>\n<p>All interfaces are in route mode.<\/p>\n<p>In the LAN network, there is a Domain Controller at 192.168.0.6, which will be configured as IAS (Radius) server. (The IAS does not need to be a DC, just a domain member will do)<\/p>\n<p>This is what needs to be done<\/p>\n<ul>\n<li>Juniper : Configure an auth server (Radius) <\/li>\n<li>Windows : Set up Radius&#160; <\/li>\n<ul>\n<li>IAS on Windows 2003&#160; or<\/li>\n<li>NPS on Windows 2008<\/li>\n<\/ul>\n<li>Juniper : Define IP Pool \/ Subnet <\/li>\n<li>Juniper : Create tunnel interface <\/li>\n<li>Juniper : Set up routing <\/li>\n<li>Juniper : Define IKE user\/group and External Group for XAuth (Radius) <\/li>\n<li>Juniper : Set XAuth defaults <\/li>\n<li>Juniper : Configure Phase 1 <\/li>\n<li>Juniper : Configure Phase 2 <\/li>\n<li>Juniper : Configure policies <\/li>\n<li>Client : Configure Netscreen Remote <\/li>\n<li>Client : Connect <\/li>\n<\/ul>\n<p>&#160;<\/p>\n<h3>Configure auth server<\/h3>\n<p>Configuration \u2013 Auth \u2013 Auth Servers \u2013 New<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image291.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=\"263\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image29-thumb.png\" width=\"586\" border=\"0\" \/><\/a> <\/p>\n<ul>\n<li>Set a name for the Auth Server <\/li>\n<li>Set IP address of server that will be running IAS (Radius) <\/li>\n<li>Set account type to XAuth <\/li>\n<li>Set Source Interface to the LAN interface (eth1) <\/li>\n<li>Enable Radius and set Shared Secret <\/li>\n<li>Save new Auth Server <\/li>\n<\/ul>\n<p>&#160;<\/p>\n<h3>Windows 2003 : Set up IAS\/Radius<\/h3>\n<p>As explained in <a href=\"\/index.php\/2007\/11\/11\/using-active-directory-and-ias-based-radius-for-netscreen-webauth-authentication\/\" target=\"_blank\" rel=\"noopener\">one of my previous blog posts<\/a>, IAS is a part of Windows Server. At this point, I will assume you have been able to install the IAS Component on your server, and that you have changed the authentication port to 1645, and the accounting port to 1646 (and that you have restarted the IAS service)<\/p>\n<p>Under IAS, open \u201cRadius Clients\u201d, right-click and add a new Radius client. Enter the IP address of the LAN interface of the firewall (192.168.0.30 in our case. Note : if you have defined a manage-ip that is different than the interface IP, you will need to use this IP).&#160; Client-Vendor is Radius Standard.&#160; Enter the Shared Secret that was entered in the Juniper Auth Server definition. Press Finish to complete the creation of the client.<\/p>\n<p>The final step is to create a policy where you will determine whether a given user should be granted access to VPN or not. You can use Windows AD Groups for this.&#160;&#160; First, in AD, create a group that will contain your VPN users.&#160; <\/p>\n<p>Let\u2019s say we\u2019ll use a group called Juniper.VPN.Users, and added a couple of user accounts in there.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image86.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=\"145\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb86.png\" width=\"199\" border=\"0\" \/><\/a> <\/p>\n<p>The idea is now to create an IAS policy that will allow members of this group to be granted access.<\/p>\n<p>In IAS, open \u201cRemote Access Policies\u201d and remove any default policies that may be in there.&#160; (Just don\u2019t delete the \u201cUse Windows authentication for all users\u201d under \u201cConnection Request Policies\u201d (which can be found under \u201cConnection Request Processing\u201d. <\/p>\n<p>In the \u201cRemote Access Policies\u201d section, right-click and choose \u201cNew remote access policy\u201d.<\/p>\n<p>Click next at the welcome screen.&#160; Next, choose \u201cSet up a custom policy\u201d and provide a relevant name<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image87.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=\"137\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb87.png\" width=\"246\" border=\"0\" \/><\/a> <\/p>\n<p>In the Policy Conditions Window, click \u201cAdd\u201d. Select \u201cWindows-Groups\u201d and click \u201cAdd\u201d. Click \u201cAdd\u201d to add your newly created AD group. Click OK to save.<\/p>\n<p>Click next. Select \u201cgrant remote access permission\u201d and click next.&#160; <\/p>\n<p>Click \u201cEdit profile\u201d. Go to the authentication tab. Make sure only PAP\/SPAP is selected.&#160; In the Advanced Tab, remove the default attributes (Service-Type and Framed Protocol&quot;). Click \u201cAdd\u201d to add a new attribute. Select \u201cVendor-specific\u201d and click Add to add a new attribute.&#160;&#160; Click Add to add a new value.&#160; Set Vendor Code to 3224, select \u201cYes, it conforms\u201d and Click \u201cConfigure Attribute\u201d<\/p>\n<p>In the Configure VSA (RFC Compliant) screen, set Vendor-assigned attribute number to 3, set Attribute format to \u201cstring\u201d and enter a string that will be sent to the Juniper firewall upon succesfull authentication. This string needs to match with the name of an external group that will be created on the Juniper. You are free to pick whatever string you like, but I usually use the name of the AD group (so I know that this group matches with an AD group).&#160; So we\u2019ll set the string to \u201cJuniper.VPN.Users\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image88.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=\"265\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb88.png\" width=\"326\" border=\"0\" \/><\/a> <\/p>\n<p>Click OK to save, Click OK, click Close, click OK. Accept the warning. Click next and click Finish.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image89.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=\"95\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb89.png\" width=\"442\" border=\"0\" \/><\/a> <\/p>\n<p>At this point, the Windows environment is ready to authenticate VPN users.&#160; If you want to set up Radius on a Windows 2008 server instead of 2003, read the next chapter (otherwise, you can skip the next chapter and jump right back to the Juniper configuration)<\/p>\n<p>&#160;<\/p>\n<h3>Windows 2008 : Set up NPS\/Radius<\/h3>\n<p>Of course, if you are running Windows 2008, you can also use NPS (which replaces IAS) to achieve the same goal. This is how it works :<\/p>\n<p>First, add the required roles on the server that will acts as Radius server. This does not need to be a DC. If the server is part of the domain, it will work just fine<\/p>\n<p>Open Server Manager and add a role<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image124.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"125\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb124.png\" width=\"164\" border=\"0\" \/><\/a> <\/p>\n<p>Select Network Policy and Access Services and click next<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image125.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"37\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb125.png\" width=\"230\" border=\"0\" \/><\/a> <\/p>\n<p>Click next again<\/p>\n<p>Select Network Policy Server (NPS) and click next<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image126.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"85\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb126.png\" width=\"207\" border=\"0\" \/><\/a> <\/p>\n<p>Click Install. Click \u2018close\u2019 when the installation has completed.<\/p>\n<p>Open a MMC and add the NPS snap-in (Local Computer)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image127.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"124\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb127.png\" width=\"233\" border=\"0\" \/><\/a> <\/p>\n<p>First, change the Radius port to 1645. Right-click on NPS (Local) and choose properties<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image128.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"93\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb128.png\" width=\"122\" border=\"0\" \/><\/a> <\/p>\n<p>Go to the ports tabsheet and set Authentication to port 1645 only,&#160; and accounting to port 1646 only. Click OK to save. use the Action pane on the right to stop and start the NPS service (or use \u201cServices\u201d to restart the NPS service)<\/p>\n<p>Open Radius Clients under NPS (Local) \u2013 RADIUS Clients and Servers, right-click and choose \u2018New Radius Client\u2019<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image129.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"93\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb129.png\" width=\"169\" border=\"0\" \/><\/a> <\/p>\n<p>Fill out the name, IP address of the Juniper firewall and set the Shared Secret. Leave the Vendor name as Radius Standard<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image130.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"207\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb130.png\" width=\"207\" border=\"0\" \/><\/a> <\/p>\n<p>Open \u201cNetwork Policies\u201d under \u201cPolicies\u201d and remove the 2 default policies called \u201cConnections to Microsoft Routing and Remote Access server\u201d and \u201cConnections to other access servers\u201d (or just make sure they are disabled)<\/p>\n<p>Then, add a new policy<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image131.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"166\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb131.png\" width=\"207\" border=\"0\" \/><\/a> <\/p>\n<p>Set a name and leave the type of network access server to Unspecified<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image132.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"132\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb132.png\" width=\"210\" border=\"0\" \/><\/a> <\/p>\n<p>Click Next<\/p>\n<p>Under \u201cSpecify Conditions\u201d, click \u201cAdd\u201d and select \u201cWindows Groups\u201d. Click \u201cAdd\u201d again<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image133.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"171\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb133.png\" width=\"265\" border=\"0\" \/><\/a> <\/p>\n<p>Click \u201cAdd Groups\u201d and add the AD Group that contains the VPN users (Juniper.VPN.Users in my case)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image134.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"119\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb134.png\" width=\"289\" border=\"0\" \/><\/a> <\/p>\n<p>Click OK<\/p>\n<p>Click Next<\/p>\n<p>Set Access Permission to \u201cAccess granted\u201d and click Next<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image135.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"104\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb135.png\" width=\"287\" border=\"0\" \/><\/a> <\/p>\n<p>Authentication methods : deselect everything, except PAP, SPAP<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image136.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"263\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb136.png\" width=\"257\" border=\"0\" \/><\/a> <\/p>\n<p>Click Next. Click \u201cNo\u201d when asked to see the corresponding Help Topic<\/p>\n<p>Constraints : do not set constraints (unless you know what you are doing). Just Click next<\/p>\n<p>Configure Settings :&#160; Under \u201cStandard\u201d, remove the Framed-Protocol and Service-Type Attributes<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image137.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"158\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb137.png\" width=\"338\" border=\"0\" \/><\/a> <\/p>\n<p>Go to Vendor Specific and click Add<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image138.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"168\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb138.png\" width=\"337\" border=\"0\" \/><\/a> <\/p>\n<p>Set Vendor to All and select \u201cVendor-Specific\u201d from the list. Click Add<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image139.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"229\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb139.png\" width=\"299\" border=\"0\" \/><\/a> <\/p>\n<p>Click Add again<\/p>\n<p>Set Vendor Code to 3224. Select Yes. It Conforms<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image140.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"241\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb140.png\" width=\"280\" border=\"0\" \/><\/a> <\/p>\n<p>Click \u201cConfigure Attribute\u201d<\/p>\n<p>Set attribute number to 3, set format to String, and set Value to Juniper.VPN.Users<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image141.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"190\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb141.png\" width=\"265\" border=\"0\" \/><\/a><\/p>\n<p>Click OK<\/p>\n<p>Click OK again<\/p>\n<p>Verify that the new attribute is in the list and click OK again<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image142.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"136\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb142.png\" width=\"248\" border=\"0\" \/><\/a> <\/p>\n<p>Click Close<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image143.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"100\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb143.png\" width=\"247\" border=\"0\" \/><\/a> <\/p>\n<p>Click Next. Review the configuration settings<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image144.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px\" height=\"244\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb144.png\" width=\"281\" border=\"0\" \/><\/a> <\/p>\n<p>Click Finish<\/p>\n<p>That\u2019s it<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<h3>Juniper : Define IP Pool \/ Subnet<\/h3>\n<p>The goal is to assign IP addresses to Netscreen remote clients upon connecting to the Juniper via VPN. We\u2019ll have to create an IP Pool for this.&#160; We will use 192.168.99.1-192.168.99.254 (which is in fact the 192.168.99.0\/24 network) :<\/p>\n<p>Objects \u2013 IP Pools \u2013 New<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image90.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=\"128\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb90.png\" width=\"215\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image91.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=\"53\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb91.png\" width=\"484\" border=\"0\" \/><\/a>&#160;<\/p>\n<p>Note : this IP Pool should not overlap with any addresses in your network !<\/p>\n<p>&#160;<\/p>\n<h3>Juniper : create tunnel interface<\/h3>\n<p>We will use route based VPN, so we need to create a tunnel interface.&#160; This will allow us maximum flexibility, will allow us to put the VPN endpoint in the VPNBuffer zone, etc :<\/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.3 zone VPNBuffer\nset int tunnel.3 ip unnumbered interface eth0\/2\n\nget int tun.3\nInterface tunnel.3:\n  description tunnel.3\n  number 20, if_info 1784, if_index 3, mode route\n  link down\n  vsys Root, zone VPNBuffer, vr trust-vr\n  admin mtu 1500, operating mtu 1500, default mtu 1500\n  *ip 0.0.0.0\/0  unnumbered, source interface ethernet0\/2\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>&#160;<\/p>\n<\/p>\n<\/p>\n<h3>Juniper : set up routing<\/h3>\n<p>The IP Pool that we have created needs to be reachable.&#160; So we need to create proper routing.&#160; In fact, we need to send traffic towards the 192.168.99.0\/24 network towards the new 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\">fw03-<span style=\"color: #0000ff\">&gt;<\/span> set route 192.168.99.0\/24 int tun.3\nfw03-<span style=\"color: #0000ff\">&gt;<\/span> get route | incl 192.168.99\n         91    192.168.99.0\/24          tun.3         0.0.0.0   S   20      1     Root<\/pre>\n<\/div>\n<p>In addition to the route on the Juniper, all networks behind the Juniper need to be able to route back to the Juniper firewall in order to be communicate with hosts in the 192.168.99.0\/24 network.&#160; We\u2019ll assume that all hosts in the 192.168.1.0\/24 network use the Cisco router as default gateway, and the Cisco is configured to route everything to the Juniper firewall.&#160; The Juniper firewall, in return, must have a route towards the 192.168.1.0\/24 network, pointing to the Cisco.<\/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\">fw03-<span style=\"color: #0000ff\">&gt;<\/span> get route ip 192.168.1.1\n Dest for 192.168.1.1\n--------------------------------------------------------------------------------------\ntrust-vr       : =<span style=\"color: #0000ff\">&gt;<\/span> 192.168.1.0\/24 (id=87) via 192.168.0.8 (vr: trust-vr)\n                    Interface ethernet0\/1 , metric 0<\/pre>\n<\/div>\n<p>Ok, routing looks good, let\u2019s continue with the Juniper setup<\/p>\n<p>&#160;<\/p>\n<h3>Juniper : Define IKE user\/group and External Group for XAuth via Radius<\/h3>\n<p>We\u2019ll have to define an IKE user which will be used\/shared by all Netscreen Remote clients. This will allow the client to set up Phase 1 of the VPN connection.&#160; Since we want to allow multiple users to use the same IKE user at the same time, we\u2019ll need to put this IKE user in a user group and set the number of simultaneous connections to a number larger than 1<\/p>\n<p>This is how it works :<\/p>\n<p>Objects \u2013 Users \u2013 Local \u2013 New<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image92.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=\"198\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb92.png\" width=\"484\" border=\"0\" \/><\/a> <\/p>\n<p>Set the username, select IKE User and Simple Identity.&#160; Make sure the User Name and IKE Identity are the same.<\/p>\n<p>Set the number of multiple logins to something higher than 1 (max. value is 25, if you need more, you\u2019ll need to create multiple IKE users and spread the IKE users over your remote user base)<\/p>\n<p>Set IKE ID Type to AUTO. Click OK to save<\/p>\n<p>Next, create a group and place the ike user(s) in the group<\/p>\n<p>Objects \u2013 Users \u2013 Local Groups \u2013 New<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image93.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-thumb93.png\" width=\"458\" border=\"0\" \/><\/a> <\/p>\n<p>&#160;<\/p>\n<p>Next, go to Objects \u2013 Users \u2013 External Groups \u2013 New<\/p>\n<p>The name of the group needs to match exactly with the value of the string that will be passed back from the Radius server upon authenticating.&#160; This may or may not be the same name as the AD group (depending on how you have configured the attributes in IAS).&#160; We have chosen to use the same name as the AD group name, which is Juniper.VPN.Users<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image94.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-thumb94.png\" width=\"330\" border=\"0\" \/><\/a> <\/p>\n<p>Set the type to XAuth and press OK to save<\/p>\n<p>&#160;<\/p>\n<h3>Juniper : set XAuth Defaults<\/h3>\n<p>VPNs \u2013 AutoKey Advances \u2013 XAuth Settings<\/p>\n<p>Set Authentication server to the Auth Server entry that was created earlier<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image95.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=\"264\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb95.png\" width=\"319\" border=\"0\" \/><\/a><\/p>\n<p>Select the IP Pool and enter DNS\/WINS settings. You need to set this because there is no other way to assign IP addresses to your VPN clients. If you don\u2019t assign IP addresses, you will have lots of troubles getting the routing between VPN clients and your hosts to work properly. <\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<h3>Juniper : Configure Phase 1<\/h3>\n<p>VPNs \u2013 AutoKey Advanced \u2013 Gateway \u2013 New<\/p>\n<p>Pick a name, select Dialup User Group and select the newly created IKE group<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image96.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=\"132\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb96.png\" width=\"472\" border=\"0\" \/><\/a> <\/p>\n<p>Click Advanced<\/p>\n<p>Set the PreShared Key<\/p>\n<p>Select the outgoing interface (which needs to be the public interface, so in our case this is eth0\/2).&#160; Set the Security Level to custom and select \u201cpre-g2-aes128-sha).<\/p>\n<p>Set the Mode to Aggressive. Enable NAT-T (this may not be required though \u2013 it depends on your setup)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image121.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-thumb121.png\" width=\"494\" border=\"0\" \/><\/a> <\/p>\n<p>Click Return and then OK to save<\/p>\n<p>You may receive a similar warning :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image98.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=\"83\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb98.png\" width=\"210\" border=\"0\" \/><\/a> <\/p>\n<p>Click OK to accept.&#160; You should see the new Phase1 definition now.&#160; Click on the Xauth link next to your new Phase1<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image99.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=\"47\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb99.png\" width=\"551\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image100.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=\"313\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb100.png\" width=\"357\" border=\"0\" \/><\/a> <\/p>\n<p>Select XAuth Server, and set the Authentication type to Generic.<\/p>\n<p>Enable External Authentication and pick the Auth server (for Radius) from the list<\/p>\n<p>Select User Group and fill out the group name<\/p>\n<p>Click OK to save<\/p>\n<p>&#160;<\/p>\n<h3>Juniper : Configure Phase 2<\/h3>\n<p>Go to VPNs \u2013 Autokey IKE \u2013 New<\/p>\n<p>Set a new name and pick the Predefined Phase 1 that was created earlier<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image101.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"display: inline\" height=\"53\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb101.png\" width=\"501\" \/><\/a> <\/p>\n<p>Click Advanced<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image102.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=\"206\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb102.png\" width=\"514\" border=\"0\" \/><\/a> <\/p>\n<p>Security Level : set to Custom and select g2-esp-aes128-sha from the list.<\/p>\n<p>Enable Replay protection.&#160; Bind the VPN to the tunnel interface that was created earlier. (tunnel.3 in our case)<\/p>\n<p>Enable proxy ID. Set Local IP to 192.168.0.0\/16 and Remote IP to 255.255.255.255\/32<\/p>\n<p>Make sure Service is set to ANY<\/p>\n<p>Click Return and then OK to save<\/p>\n<p>&#160;<\/p>\n<h3>Juniper : Configure Policies<\/h3>\n<p>We want to allow remote clients to access 192.168.0.6 and 192.168.1.8<\/p>\n<p>Since the tunnel interface is in zone VPN, we need a policy from VPNBuffer to LAN<\/p>\n<p>We\u2019ll create some objects first<\/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\">fw03-<span style=\"color: #0000ff\">&gt;<\/span> set address VPNBuffer NetscreenRemoteUsers 192.168.99.0\/24\nfw03-<span style=\"color: #0000ff\">&gt;<\/span> set address LAN Server1 192.168.0.6\/32\nfw03-<span style=\"color: #0000ff\">&gt;<\/span> set address LAN Server2 192.168.1.8\/32<\/pre>\n<\/div>\n<p>Next, create the policy (from VPNBuffer to LAN)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image103.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=\"70\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb103.png\" width=\"525\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image104.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-thumb104.png\" width=\"306\" border=\"0\" \/><\/a> <\/p>\n<p>Source : NetscreenRemoteUsers<\/p>\n<p>Destination : server1 (don\u2019t add server2 yet)<\/p>\n<p>Action : Permit (not tunnel !&#160; We are using route based VPN, so action must be permit)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image105.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=\"108\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb105.png\" width=\"468\" border=\"0\" \/><\/a><\/p>\n<p>(screenshot contains entry for server2, but let\u2019s assume it\u2019s not there yet) <\/p>\n<p>That\u2019s it. We are now ready to configure the Netscreen Remote clients<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<h3>Client : Configure Netscreen Remote<\/h3>\n<p>In the Security Policy Editor, create a new connection<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image106.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=\"131\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb106.png\" width=\"271\" border=\"0\" \/><\/a> <\/p>\n<p>Give the new connection a name (such as VPN to company)<\/p>\n<p>Set the connection security settings to \u201cSecure\u201d and enable \u201cOnly connect manually\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image107.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=\"262\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb107.png\" width=\"262\" border=\"0\" \/><\/a> <\/p>\n<p>Remote party ID : enter the IP subnet that is used in the Local IP Proxy ID of Phase 2<\/p>\n<p>Enable Use Secure Gateway Tunnel and Set the IP Address to the public IP of the Juniper VPN (which is 1.1.1.1) in our case<\/p>\n<p>Next, click on the + (plus) symbol next to the new \u201cVPN to company\u201d connection and select \u201cMy Identity\u201d<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image108.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=\"268\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb108.png\" width=\"259\" border=\"0\" \/><\/a> <\/p>\n<p>Set Certificate to None. Set ID Type to Domain Name and fill out the IKE identity\/IKE username string from the IKE user that was created earlier.<\/p>\n<p>Click Pre-Shared Key and enter the Pre-Shared Key that was used when defining Phase 1<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image109.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=\"135\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb109.png\" width=\"294\" border=\"0\" \/><\/a> <\/p>\n<p>On the left hand side, select Security Policy<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image110.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=\"180\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb110.png\" width=\"329\" border=\"0\" \/><\/a> <\/p>\n<p>Select \u201cAggressive Mode\u201d, enable PFS (DH Group2) and Enable Replay Detection<\/p>\n<p>Open \u201cAuthentication (Phase 1)\u201d, and select Proposal 1<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image111.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=\"216\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb111.png\" width=\"395\" border=\"0\" \/><\/a> <\/p>\n<p>Set authentication mode to Pre-Shared Key and Extended Authentication<\/p>\n<p>Set Encrypt Alg to AES-128 and Hash alg to SHA-1<\/p>\n<p>Set SA Life to seconds and enter 28800<\/p>\n<p>Set Key Group to DH Group 2<\/p>\n<p>On the left side, open \u201cKey Exchange (Phase 2)\u201d and select Proposal 1<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image112.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-thumb112.png\" width=\"384\" border=\"0\" \/><\/a> <\/p>\n<p>Set SA Life to Seconds and enter 3600<\/p>\n<p>Leave compression to none.&#160; Enable ESP, set Encrypt Alg to AES-128 and Hash alg to SHA-1. Encapsulation = Tunnel. Leave AH (Authentication Protocol) disabled<\/p>\n<p>Save the settings<\/p>\n<p>&#160;<\/p>\n<h3>Client : Connect<\/h3>\n<p>Try to connect : right-click on the Netscreen Remote Icon, choose \u201cConnect\u201d and select the new connection<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image113.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=\"164\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb113.png\" width=\"248\" border=\"0\" \/><\/a> <\/p>\n<p>You should get a User Authentication prompt. Enter a username (DOMAIN\\User&#160; or just the username) and the password of an account that is member of the AD Group<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image114.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=\"191\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb114.png\" width=\"275\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image115.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=\"113\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb115.png\" width=\"270\" border=\"0\" \/><\/a> <\/p>\n<p>If you would have done a \u201cdebug auth radius\u201d on the firewall while the Radius authentication took place, you should see that authentication was successful and that the XAuth group matches with the group that was passed back by the Radius server.<\/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\">## 2009-01-22 21:41:12 : rad_parse() = rad_msg=0x02f50874{code=2, id=6, ...}\n## 2009-01-22 21:41:12 : RadiusRecv: checking j:socket 75, socipv6 -1, sock 75, j:rad_id 6, rad_msg-<span style=\"color: #0000ff\">&gt;<\/span>id 6\n## 2009-01-22 21:41:12 : RadiusRecv: Breaking for sock 75\n## 2009-01-22 21:41:12 : is_resp_authenticator_valid: Valid Response authenticator\n## 2009-01-22 21:41:12 : RadiusRecv: data on socket 75 for aq_ent 0x428db94, state 0x2, curr_server 1, curr_active 1\n## 2009-01-22 21:41:12 : <span style=\"color: #0000ff\">&gt;&gt;&gt;<\/span> rad_recv_auth(soc=3965916)\n## 2009-01-22 21:41:12 : rad_attr_store_groups:adding first Juniper.VPN.Users\n## 2009-01-22 21:41:12 : <span style=\"color: #0000ff\">&lt;&lt;&lt;<\/span> rad_recv_auth() = rad_auth_resp=0x043123b0{authed=1 priv=0 role=0 id=6}\n## 2009-01-22 21:41:12 : is_resp_authenticator_valid: Valid Response authenticator\n## 2009-01-22 21:41:12 : radius_recv_auth_resp: RESPONSE AUTH VALID (was a Accept)\n<strong><font color=\"#ff0000\">## 2009-01-22 21:41:12 : group_check_ok: ugx_name Juniper.VPN.Users, group_item_ptr 0x2c4f914, username corelan\\peter\n## 2009-01-22 21:41:12 : is_rad_group_in: compare Juniper.VPN.Users with Juniper.VPN.Users\n## 2009-01-22 21:41:12 :  MATCHED<\/font><\/strong>\n## 2009-01-22 21:41:12 : group_check_ok: ext group Juniper.VPN.Users present\n## 2009-01-22 21:41:12 : radius_recv_auth_resp: auth 0x428db94, id 6,  GROUP MATCHED have Juniper.VPN.Users\n## 2009-01-22 21:41:12 : radius_recv_auth_resp: auth 0x428db94, id 6,  AUTHENTICATED\n## 2009-01-22 21:41:12 : rad_groups_free: freeing: next_item_ptr-<span style=\"color: #0000ff\">&gt;<\/span>group_name Juniper.VPN.Users\n## 2009-01-22 21:41:12 : <span style=\"color: #0000ff\">&gt;&gt;&gt;<\/span> RadiusRecv(aq_ent={un='corelan\\peter', fl=3, as_id=2, rt=0, rt1=0, rt2=0})\n## 2009-01-22 21:41:12 : <span style=\"color: #0000ff\">&lt;&lt;&lt;<\/span> RadiusRecv(aq_ent={rad_state=7}) = 1\n## 2009-01-22 21:41:12 : RadiusRecv: result 1\n## 2009-01-22 21:41:12 : get_auth_radius_clnt_session_id: entered<\/pre>\n<\/div>\n<p>&#160;<\/p>\n<p>Verify the VPN connection on the Juniper :<\/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\">fw03-<span style=\"color: #0000ff\">&gt;<\/span> get ike cookies \n\nIKEv1 SA -- Active: 1, Dead: 0, Total 1\n\n1097182f\/0006, 1.1.1.2:500-<span style=\"color: #0000ff\">&gt;<\/span>1.1.1.1:500, PRESHR\/grp2\/AES128\/SHA, xchg(5) (IKE_NetscreenRemote\/grp7\/usr10)\nresent-tmr 322 lifetime 28800 lt-recv 28800 nxt_rekey 28484 cert-expire 0\nresponder, err cnt 0, send dir 1, cond 0x30\nnat-traversal map not available\nike heartbeat              : disabled\nike heartbeat last rcv time: 0\nike heartbeat last snd time: 0\nXAUTH status: 100\nDPD seq local 0, peer 762132764\n\nIKEv2 SA -- Active: 0, Dead: 0, Total 0\n\nfw03-<span style=\"color: #0000ff\">&gt;<\/span> get sa active\nTotal active sa: 1\ntotal configured sa: 2\nHEX ID    Gateway         Port Algorithm     SPI      Life:sec kb Sta   PID vsys\n00008001<span style=\"color: #0000ff\">&lt;<\/span>         1.1.1.2  500 esp:a128\/sha1 a12260dd  3289 unlim A\/-    -1 0\n00008001<span style=\"color: #0000ff\">&gt;<\/span>         1.1.1.2  500 esp:a128\/sha1 1259e395  3289 unlim A\/-    -1 0\n\nfw03-<span style=\"color: #0000ff\">&gt;<\/span> get sa id 0x8001\nindex 2, name ESP_NetscreenRemote, peer gateway ip 1.1.1.2. vsys<span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">Root<\/span><span style=\"color: #0000ff\">&gt;<\/span>\nauto key. tunnel if binding node, tunnel mode, policy id in:<span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">-1<\/span><span style=\"color: #0000ff\">&gt;<\/span> out:<span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">-1<\/span><span style=\"color: #0000ff\">&gt;<\/span>\nid hash: <span style=\"color: #0000ff\">&gt;<\/span>00<span style=\"color: #0000ff\">&gt;<\/span>ce<span style=\"color: #0000ff\">&gt;<\/span>69<span style=\"color: #0000ff\">&gt;<\/span>fb<span style=\"color: #0000ff\">&gt;<\/span>fb<span style=\"color: #0000ff\">&gt;<\/span>e3<span style=\"color: #0000ff\">&gt;<\/span>2d<span style=\"color: #0000ff\">&gt;<\/span>0e<span style=\"color: #0000ff\">&gt;<\/span>76<span style=\"color: #0000ff\">&gt;<\/span>44<span style=\"color: #0000ff\">&gt;<\/span>4b<span style=\"color: #0000ff\">&gt;<\/span>67<span style=\"color: #0000ff\">&gt;<\/span>3c<span style=\"color: #0000ff\">&gt;<\/span>9a<span style=\"color: #0000ff\">&gt;<\/span>fa<span style=\"color: #0000ff\">&gt;<\/span>0d<span style=\"color: #0000ff\">&gt;<\/span>43<span style=\"color: #0000ff\">&gt;<\/span>79<span style=\"color: #0000ff\">&gt;<\/span>6d<span style=\"color: #0000ff\">&gt;<\/span>b1\n vpngrp:<span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">-1<\/span><span style=\"color: #0000ff\">&gt;<\/span>. sa_list_nxt:<span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">8<\/span><span style=\"color: #0000ff\">&gt;<\/span>. parent_sa_id:<span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">8<\/span><span style=\"color: #0000ff\">&gt;<\/span>.\ntunnel id 32769, peer id 0, NSRP Local.     dialup, dynamic member.   site-to-site. Local interface is ethernet0\/2 <span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">1.1.1.1<\/span><span style=\"color: #0000ff\">&gt;<\/span>.\n  esp, group 2, a128 encryption, sha1 authentication\n  autokey, IN active, OUT active\n  monitor<span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">0<\/span><span style=\"color: #0000ff\">&gt;<\/span>, latency: 0, availability: 0\n  DF bit: clear\n  app_sa_flags: 0x2400437\n  proxy id: local 192.168.0.0\/255.255.0.0, remote 192.168.99.1\/255.255.255.255, proto 0, port 0\n  ike activity timestamp: 887422404\n  DSCP-mark : disabled\nnat-traversal map not available\nincoming: SPI a12260dd, flag 00004000, tunnel info 40008001, pipeline\n  life 3600 sec, 3282 remain, 0 kb, 0 bytes remain\n  anti-replay on, last 0x6, window 0x3f, idle timeout value <span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">0<\/span><span style=\"color: #0000ff\">&gt;<\/span>, idled 280 seconds\n  next pak sequence number: 0x0\n  bytes\/paks:360\/6; sw bytes\/paks:360\/6\noutgoing: SPI 1259e395, flag 00000000, tunnel info 40008001, pipeline\n  life 3600 sec, 3282 remain, 0 kb, 0 bytes remain\n  anti-replay on, last 0x0, window 0x0, idle timeout value <span style=\"color: #0000ff\">&lt;<\/span><span style=\"color: #800000\">0<\/span><span style=\"color: #0000ff\">&gt;<\/span>, idled 318 seconds\n  next pak sequence number: 0x0\n  bytes\/paks:0\/0; sw bytes\/paks:0\/0<\/pre>\n<\/div>\n<p>&#160;<\/p>\n<p>Verify the XAuth sessions and verify that an IP was assigned to the VPN session :<\/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\">fw03-<span style=\"color: #0000ff\">&gt;<\/span> get xauth active\n\nGW Name              Login           Auth By    GW IP           Private IP      Last Login     Session Timeout   Idle Timeout\nIKE_NetscreenRemote   corelan\\peter  AD Radius         1.1.1.2    192.168.99.1 255.255.255.255  2009-01-22 21:13:10         0      0 <\/pre>\n<\/div>\n<p>&#160;<\/p>\n<p>Verify that the client can access resources in all networks :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image116.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=\"149\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb116.png\" width=\"325\" border=\"0\" \/><\/a> <\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image117.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=\"132\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb117.png\" width=\"350\" border=\"0\" \/><\/a> <\/p>\n<p>Verify that it cannot access networks that are not allowed by the policy<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image118.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=\"127\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb118.png\" width=\"337\" border=\"0\" \/><\/a> <\/p>\n<p>Adjust the policy, add the 192.168.1.8\/32 host (Server2) as allowed destination and see if traffic to the second network works as well :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image105.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=\"108\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb105.png\" width=\"468\" border=\"0\" \/><\/a><\/p>\n<p><a href=\"\/wp-content\/uploads\/2009\/01\/image120.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=\"118\" alt=\"image\" src=\"\/wp-content\/uploads\/2009\/01\/image-thumb120.png\" width=\"342\" border=\"0\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The following procedure explains how to set up a Juniper ScreenOS based firewall to accept Netscreen Remote Client VPN connections and authenticate users using Active Directory (Radius via Windows 2003 IAS or Windows 2008 NPS).&#160; We\u2019ll assume that all traffic to from the client to the 192.168.0.0\/16 networks needs to pass via the client VPN &hellip; <a href=\"https:\/\/www.corelan.be\/index.php\/2009\/01\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> \"Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \/ tunnel interface\"<\/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,583,560,535,32],"class_list":["post-1421","post","type-post","status-publish","format-standard","hentry","category-juniper","category-networking","category-security","category-windows-server","tag-juniper-netscreen-screenos","tag-vpn","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>Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \/ tunnel interface - 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\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \/ tunnel interface - Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"og:description\" content=\"The following procedure explains how to set up a Juniper ScreenOS based firewall to accept Netscreen Remote Client VPN connections and authenticate users using Active Directory (Radius via Windows 2003 IAS or Windows 2008 NPS).&#160; We\u2019ll assume that all traffic to from the client to the 192.168.0.0\/16 networks needs to pass via the client VPN &hellip; Continue reading &quot;Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \/ tunnel interface&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.corelan.be\/index.php\/2009\/01\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/\" \/>\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-22T20:50:14+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\\\/22\\\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/22\\\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\\\/\"},\"author\":{\"name\":\"corelanc0d3r\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\"},\"headline\":\"Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \\\/ tunnel interface\",\"datePublished\":\"2009-01-22T20:50:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/22\\\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\\\/\"},\"wordCount\":2589,\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"keywords\":[\"juniper netscreen screenos\",\"vpn\",\"radius\",\"encryption\",\"Active Directory\"],\"articleSection\":[\"Juniper\",\"Networking\",\"Security\",\"Windows Server\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/22\\\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/22\\\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\\\/\",\"name\":\"Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \\\/ tunnel interface - Corelan | Exploit Development &amp; Vulnerability Research\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\"},\"datePublished\":\"2009-01-22T20:50:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/22\\\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/22\\\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2009\\\/01\\\/22\\\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.corelan.be\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \\\/ tunnel interface\"}]},{\"@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":"Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \/ tunnel interface - 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\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/","og_locale":"en_US","og_type":"article","og_title":"Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \/ tunnel interface - Corelan | Exploit Development &amp; Vulnerability Research","og_description":"The following procedure explains how to set up a Juniper ScreenOS based firewall to accept Netscreen Remote Client VPN connections and authenticate users using Active Directory (Radius via Windows 2003 IAS or Windows 2008 NPS).&#160; We\u2019ll assume that all traffic to from the client to the 192.168.0.0\/16 networks needs to pass via the client VPN &hellip; Continue reading \"Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \/ tunnel interface\"","og_url":"https:\/\/www.corelan.be\/index.php\/2009\/01\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/","og_site_name":"Corelan | Exploit Development &amp; Vulnerability Research","article_publisher":"https:\/\/www.facebook.com\/corelanconsulting","article_published_time":"2009-01-22T20:50:14+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\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/#article","isPartOf":{"@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/"},"author":{"name":"corelanc0d3r","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f"},"headline":"Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \/ tunnel interface","datePublished":"2009-01-22T20:50:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/"},"wordCount":2589,"publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"keywords":["juniper netscreen screenos","vpn","radius","encryption","Active Directory"],"articleSection":["Juniper","Networking","Security","Windows Server"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/","url":"https:\/\/www.corelan.be\/index.php\/2009\/01\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/","name":"Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \/ tunnel interface - Corelan | Exploit Development &amp; Vulnerability Research","isPartOf":{"@id":"https:\/\/www.corelan.be\/#website"},"datePublished":"2009-01-22T20:50:14+00:00","breadcrumb":{"@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.corelan.be\/index.php\/2009\/01\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.corelan.be\/index.php\/2009\/01\/22\/juniper-netscreen-remote-dial-up-vpn-with-ad-radius-authentication-and-route-based-vpn-tunnel-interface\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.corelan.be\/"},{"@type":"ListItem","position":2,"name":"Juniper : Netscreen Remote Dial-UP VPN with AD Radius Authentication and route based VPN \/ tunnel interface"}]},{"@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":27644,"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\/1421","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=1421"}],"version-history":[{"count":0,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/1421\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/media?parent=1421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/categories?post=1421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/tags?post=1421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}