anyconnect.xml 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <PAGE>
  2. <INCLUDE file="inc/header.tmpl" />
  3. <VAR match="VAR_SEL_PROTOCOLS" replace="selected" />
  4. <VAR match="VAR_SEL_ANYCONNECT" replace="selected" />
  5. <PARSE file="menu1.xml" />
  6. <PARSE file="menu2-protocols.xml" />
  7. <INCLUDE file="inc/content.tmpl" />
  8. <h1>Cisco AnyConnect</h1>
  9. <h2>How the VPN works</h2>
  10. <p>The VPN is extremely simple, based almost entirely on the standard
  11. HTTPS and <a href="https://www.rfc-editor.org/rfc/rfc4347.txt">DTLS</a>
  12. protocols. You connect to the secure web server, authenticate using
  13. certificates and/or arbitrary web forms, and you are rewarded with a
  14. standard HTTP cookie named <tt>webvpn</tt>.</p>
  15. <p>Some Cisco servers require you to execute a 'Cisco Secure Desktop'
  16. trojan binary (intended for security scanning of the client system)
  17. before authentication can complete; see <a href="csd.html">the CSD
  18. page</a> for information on how to comply with this requirement, or
  19. spoof it, with OpenConnect.</p>
  20. <p>After authentication, you use the <tt>webvpn</tt> cookie
  21. in an HTTP <tt>CONNECT</tt> request, and can
  22. then pass traffic over that connection. IP addresses and routing
  23. information are passed back and forth in the headers of that
  24. <tt>CONNECT</tt> request.</p>
  25. <p>Since <a href="http://sites.inka.de/~W1011/devel/tcp-tcp.html">TCP
  26. over TCP is very suboptimal</a>, the VPN also attempts to use UDP
  27. datagrams, and will only <em>actually</em> pass traffic over the HTTPS
  28. connection if that fails. The UDP connectivity is done using Datagram
  29. TLS, which is supported by OpenSSL.</p>
  30. <h2>DTLS compatibility</h2>
  31. <p><i><b>Note: DTLS is optional and not required for basic connectivity, as explained above.</b></i></p>
  32. <p>Unfortunately, Cisco used an old version of OpenSSL for their server,
  33. which predates the official RFC and has a few differences in the
  34. implementation of DTLS.
  35. </p>
  36. <h3>OpenSSL</h3>
  37. <p>Compatibility support for their "speshul" version of the protocol is
  38. in the 0.9.8m and later releases of OpenSSL (and 1.0.0-beta2 and later).
  39. </p>
  40. <p><b>NOTE:</b> OpenSSL 1.0.0k, 1.0.1d and 1.0.1e have introduced bugs which
  41. break this compatibility. See the <a href="https://lists.infradead.org/pipermail/openconnect-devel/2013-February/000827.html">thread</a> on the mailing list, which has patches for each.</p>
  42. <p>If you are using an older version of OpenSSL which predates the
  43. compatibility, you will need to apply this patch from OpenSSL CVS:</p>
  44. <ul>
  45. <li><a href="http://cvs.openssl.org/chngview?cn=18037">http://cvs.openssl.org/chngview?cn=18037</a> (OpenSSL <a href="http://rt.openssl.org/Ticket/Display.html?id=1751&amp;amp;user=guest&amp;amp;pass=guest">RT#1751</a>)</li>
  46. </ul>
  47. For versions older than 0.9.8j, some generic DTLS bug fixes are also required:
  48. <ul>
  49. <li><a href="http://cvs.openssl.org/chngview?cn=17500">http://cvs.openssl.org/chngview?cn=17500</a> (OpenSSL <a href="http://rt.openssl.org/Ticket/Display.html?id=1703&amp;amp;user=guest&amp;amp;pass=guest">RT#1703</a>)</li>
  50. <li><a href="http://cvs.openssl.org/chngview?cn=17505">http://cvs.openssl.org/chngview?cn=17505</a> (OpenSSL <a href="http://rt.openssl.org/Ticket/Display.html?id=1752&amp;amp;user=guest&amp;amp;pass=guest">RT#1752</a>) </li>
  51. </ul>
  52. The username/password for OpenSSL RT is 'guest/guest'
  53. <h3>GnuTLS</h3>
  54. <p>Support for Cisco's version of DTLS was included in GnuTLS from 3.0.21 onwards (<a href="https://gitlab.com/nmav/gnutls/commit/fd5ca1afb7b223f1ce0c5330f2611996491c6aae">committed in <tt>fd5ca1af</tt></a>).</p>
  55. <INCLUDE file="inc/footer.tmpl" />
  56. </PAGE>