README 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. OpenVPN plugin examples. Daniel Kubec <niel@rtfm.cz>
  2. Examples provided:
  3. keyingmaterialexporter.c -- Example based on TLS Keying Material Exporters over HTTP [RFC-5705]
  4. (openvpn/doc/keying-material-exporter.txt)
  5. This example demonstrates authenticating a user over HTTP who have already
  6. established an OpenVPN connecting using the --keying-material-exporter
  7. feature.
  8. Requires:
  9. OpenVPN RFC-5705 Support, OpenSSL >= 1.0.1
  10. Files:
  11. http-server.py -- Example HTTP Server listen 0.0.0.0:8080
  12. http-client.py -- Example HTTP Client connect 10.8.0.1:8080 [GET /$SESSIONID]
  13. server.ovpn -- Example HTTP SSO VPN Server configuration
  14. client.ovpn -- Example HTTP SSO VPN Client configuration
  15. keyingmaterialexporter.c,
  16. keyingmaterialexporter.so -- Example OpenVPN Client and Server plugin
  17. To build:
  18. ./build keyingmaterialexporter
  19. To use in OpenVPN:
  20. Enter openvpn/sample/sample-plugins/keyingmaterialexporter directory
  21. and in separate terminals, start these four processes:
  22. $ openvpn --config ./server.ovpn
  23. $ openvpn --config ./client.ovpn
  24. $ ./http-server.py
  25. $ ./http-client.py
  26. Test:
  27. openvpn --config ./server.ovpn
  28. ##############################
  29. PLUGIN SSO: app session created
  30. PLUGIN_CALL: POST ./keyingmaterialexporter.so/PLUGIN_TLS_VERIFY status=0
  31. PLUGIN SSO: app session key: a5885abc84d361803f58ede1ef9c0adf99e720cd
  32. PLUGIN SSO: app session file: /tmp/openvpn_sso_a5885abc84d361803f58ede1ef9c0adf99e720cd
  33. PLUGIN SSO: app session user: Test-Client
  34. openvpn --config ./client.ovpn
  35. ##############################
  36. PLUGIN SSO: app session created
  37. PLUGIN_CALL: POST ./keyingmaterialexporter.so/PLUGIN_TLS_VERIFY status=0
  38. PLUGIN SSO: app session key: a5885abc84d361803f58ede1ef9c0adf99e720cd
  39. PLUGIN SSO: app session file: /tmp/openvpn_sso_user
  40. PLUGIN_CALL: POST ./keyingmaterialexporter.so/PLUGIN_TLS_FINAL status=0
  41. HTTP_SERVER:
  42. http-server.py
  43. ################
  44. http server started
  45. session file: /tmp/openvpn_sso_a5885abc84d361803f58ede1ef9c0adf99e720cd
  46. 10.8.0.1 - - [02/Apr/2015 15:03:33] "GET /a5885abc84d361803f58ede1ef9c0adf99e720cd HTTP/1.1" 200 -
  47. session user: Test-Client
  48. session key: a5885abc84d361803f58ede1ef9c0adf99e720cd
  49. HTTP_SERVER:
  50. http-client.py
  51. <html><body><h1>Greetings Test-Client. You are authorized</h1></body></html>