juniper.xml 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <PAGE>
  2. <INCLUDE file="inc/header.tmpl" />
  3. <VAR match="VAR_SEL_PROTOCOLS" replace="selected" />
  4. <VAR match="VAR_SEL_JUNIPER" replace="selected" />
  5. <PARSE file="menu1.xml" />
  6. <PARSE file="menu2-protocols.xml" />
  7. <INCLUDE file="inc/content.tmpl" />
  8. <h1>Juniper SSL VPN / Pulse Connect Secure</h1>
  9. <p>Support for Juniper's Network Connect protocol was added to
  10. OpenConnect in early 2015, for the 7.05 release. It is still
  11. experimental, and is quite likely to be deprecated in favour of the newer
  12. <a href="http://www.juniper.net/techpubs/en_US/junos-pulse4.0/topics/reference/a-c-c-nc-comparing.html">Junos
  13. Pulse</a> protocol.</p>
  14. <p>Juniper mode is requested by adding <tt>--protocol=nc</tt>
  15. to the command line:
  16. <pre>
  17. openconnect --protocol=nc vpn.example.com
  18. </pre></p>
  19. <p>Network Connect works very similarly to
  20. <a href="anyconnect.html">AnyConnect</a> — initial authentication is made
  21. over HTTP, resulting in an HTTP cookie which is used to make the actual
  22. VPN connection. That connection is also made over HTTP, and the IP address
  23. and routing information are provided by the VPN server. The client then
  24. attempts to bring up a UDP transport, which in the case of Juniper is
  25. <a href="https://tools.ietf.org/html/rfc3948">ESP</a>.</p>
  26. <h2>Authentication</h2>
  27. <p>The authentication stage with Juniper is what is expected to cause
  28. most problems. Unlike AnyConnect which has a relatively simple XML
  29. schema for interacting with the user, the Juniper VPN expects a full
  30. web browser environment and uses HTML forms with JavaScript and even
  31. full-blown Java support.</p>
  32. <p>The common case is relatively simple, and OpenConnect supports the
  33. common forms defined by the Juniper-provided templates. However,
  34. administrators have the facility to put arbitrary HTML pages into the
  35. login sequence and full compatibility may require <em>actually</em>
  36. using a web browser to log in — ironically, since much of the reason
  37. users have been asking for OpenConnect to support Juniper is because
  38. they didn't <em>want</em> to have to use a web browser.</p>
  39. <p>For NetworkManager we may end up putting a full HTML renderer into
  40. the GUI authentication dialog, while the command line client continues
  41. to parse the common login forms and make a best attempt at handling
  42. anything non-standard.</p>
  43. <h3>External authentication</h3>
  44. <p>There are a number of perl and python scripts which handle authentication
  45. to Juniper servers to bypass the web browser. One such script has been
  46. ported to invoke OpenConnect instead of Juniper's own <tt>ncsvc</tt>
  47. client and can be found
  48. <a href="https://github.com/russdill/juniper-vpn-py">here</a>.</p>
  49. <p>Any of these scripts which authenticate and obtain a <tt>DSID</tt>
  50. cookie representing a VPN session can be used with OpenConnect. Just
  51. pass the cookie to OpenConnect with its <tt>-C</tt> option, for example:
  52. <pre>
  53. openconnect --juniper -C "DSID=foobar12345" vpn.example.com
  54. </pre>
  55. </p>
  56. <h3>Host Checker (tncc.jar)</h3>
  57. <p>Many sites require a Java applet to run certain tests as a precondition
  58. of authentication (similar to <a href="csd.html">CSD</a>
  59. for AnyConnect VPNs and <a href="hip.html">HIP</a> for GlobalProtect VPNs).
  60. See the <a href="tncc.html">Host Checker / TNCC page</a> for how to configure OpenConnect
  61. to wrap and run this applet.
  62. </p>
  63. <h2>Connectivity</h2>
  64. <p>Once authentication is complete, the VPN connection can be
  65. established. At the time of writing much of the configuration for Legacy
  66. IP addressing and routes is understood and implemented. IPv6 is not
  67. yet implemented, and test reports from someone with an IPv6-capable server
  68. would be greatly appreciated.</p>
  69. <p>The data transport is functional both over the HTTPS session and also
  70. over ESP. Servers with compression enabled should also be supported, as
  71. LZO <em>decompression</em> is working and although we lack compression
  72. support it appears acceptable to simply send packets uncompressed.</p>
  73. <p>At the time of writing, keepalive for the ESP connection has been
  74. implemented and extremely lightly tested, while it isn't yet known if
  75. the VPN supports keepalive on the HTTPS connection. Reconnection of both
  76. the HTTPS and ESP links is implemented. The current implementation is
  77. basically usable and is definitely ready for some more widespread testing.</p>
  78. <INCLUDE file="inc/footer.tmpl" />
  79. </PAGE>