Go to file
Gert Doering 186f9a76fd full "VPN client connect" test framework for OpenVPN
Run from "make check" if "t_client.rc" is found in workdir or srcdir
 (copy t_client.rc-sample, fill in specifics for your test server)

How does it work?

 - you run "sudo make check" (needs root access to configure tun if!)

 - t_client.sh reads t_client.rc from current dir or ${srcdir}

 - t_client.rc defines a number of "test suffixes" to run (could be
   "1" "2" "3" or "p2m", "p2p", "special" or whatever you like), and
   for each suffix, there's config variables to specify

    - how to call OpenVPN
    - which hosts to ping for IPv4 and IPv6 when OpenVPN is up
      (and actually before starting OpenVPN - to make the test more
      meaningful, I have decided that the test hosts must not ping
      before the tests starts)
    - which addresses must show up in the output of "ifconfig" after
      OpenVPN has started
    - all variables except OPENVPN_CONF_<x> are optional

   (this should all be fairly obvious from looking at t_client.rc-sample)

 - the script wants to connect to a well-defined OpenVPN server that
   will assign well-known IPv4 (and IPv6) addresses, have well-defined
   pingable addresse, etc. - so you need to setup the test server before
   the script is useful for you.  (Whether you use certificates or
   username/password is up to you, you could even mix and match - run
   one test with certs, and one with user/pass against different target
   ports... :-) )

   [we *could* run a "reference server" somewhere and ship a sample
   t_client.rc + cert so that users could use this right away, but I
   do not currently have the resources to run such a public server]

 - whatever the script does is logged to a newly created directory
   below the current directory (openvpn output, ifconfig+route before
   starting OpenVPN, while running it, after ending it)

 - important: at least on NetBSD and OpenBSD, the script will print
   one failure, because the tun0 interface created is not destroyed
   after openvpn ends.  For OpenBSD, I have changed close_tun() to
   do so ("ifconfig tun0 destroy"), for NetBSD I have not yet changed
   anything - but I strongly believe that the output of "ifconfig+route"
   should be reverted to exactly how it looked like before OpenVPN
   was started, so I consider this a bug in the NetBSD-specific bits
   of OpenVPN (and will look into this).

 - the test framework has been tested on Linux, NetBSD and OpenBSD.
   It *should* work fine on FreeBSD and Solaris.
   It works on MacOS X (but the output looks funny, because /bin/sh
   does not implement "echo -e" - need to add configure trickery)

   It will *not* work on Windows yet - I haven't looked into what's
   needed to make it work (background processes and signals in mingw
   bash?), maybe it's as easy as adding the necessary "ipconfig" and
   "netsh" commands to print interface + routing config...

 - I have only tested "connect via IPv4 transport, use IPv4+IPv6 payload",
   but the framework is generic enough that "connect via IPv6 transport"
   should work just fine (just setup OPENVPN_CONF_x accordingly in the
   t_client.rc).

 - this is neither finished nor pretty, but it helps me a *lot* in
   quickly testing whether I broke anything when fiddling system-dependent
   code (tun.c, route.c) across multiple build hosts - so I hope this
   is going to be fairly useful to Samuli and the buildbot :-)

Signed-off-by: Gert Doering <gert@greenie.muc.de>
Acked-by: David Sommerseth <dazo@users.sourceforge.net>
Signed-off-by: David Sommerseth <dazo@users.sourceforge.net>
2010-10-21 11:40:36 +02:00
contrib OCSP_check.sh: new check logic 2010-10-21 11:40:36 +02:00
debug Change to doval valgrind script. The openvpn command parameter is now 2009-10-25 15:44:28 +00:00
easy-rsa bash->bourne script cleanup 2010-10-21 11:33:42 +02:00
images Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
install-win32 Attempt to fix issue where domake-win build system was not properly 2010-08-20 20:24:42 +00:00
management Added the ability for the server to provide a custom reason string 2009-09-29 23:10:14 +00:00
msvc Updated MSVC build scripts to Visual Studio 2008: 2010-03-31 06:38:21 +00:00
plugin When I began testing OpenVPN v2.1_rc9 I was having trouble authenticating to the MS Active Directory through auth-pam and Samba. I used the following line in my configs (without the linebreak of course): 2010-10-21 11:35:08 +02:00
sample-config-files bash->bourne script cleanup 2010-10-21 11:33:42 +02:00
sample-keys Renamed sample-keys/tmp-ca.crt to ca.crt. 2005-10-01 11:10:12 +00:00
sample-scripts bash->bourne script cleanup 2010-10-21 11:33:42 +02:00
service-win32 Windows security issue: 2010-08-15 21:53:00 +00:00
suse This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
tap-win32 Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
win Attempt to fix issue where domake-win build system was not properly 2010-08-20 20:24:42 +00:00
.mailmap Added mapping files from SVN commit ID to more descriptive commit IDs. 2010-10-21 11:31:26 +02:00
.svncommitters Added mapping files from SVN commit ID to more descriptive commit IDs. 2010-10-21 11:31:26 +02:00
.svnignore Updated MSVC build scripts to Visual Studio 2008: 2010-03-31 06:38:21 +00:00
acinclude.m4 Fix autotools cross-compiling support 2010-10-21 11:34:58 +02:00
AUTHORS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
base64.c Moved branch into official BETA21 position. 2008-05-12 20:31:43 +00:00
base64.h Added --auto-proxy directive to auto-detect HTTP or SOCKS 2005-12-12 19:46:10 +00:00
basic.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
buffer.c Fixed an issue where application payload transmissions on the 2010-07-27 07:10:01 +00:00
buffer.h Fixed an issue where application payload transmissions on the 2010-07-27 07:10:01 +00:00
ChangeLog Windows security issue: 2010-08-15 21:53:00 +00:00
circ_list.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
common.h Implemented a key/value auth channel from client to server. 2010-06-01 07:12:27 +00:00
config-win32.h Minor fixes to recent HTTP proxy changes: 2010-05-11 19:47:03 +00:00
configure.ac Fix <net/if.h> compile time problems on OpenBSD for good 2010-10-21 11:40:36 +02:00
COPYING Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
COPYRIGHT.GPL This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
crypto.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
crypto.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
cryptoapi.c Fixed issue introduced in r4475 (2.1-rc17) where cryptoapi.c change 2009-06-07 06:44:11 +00:00
cryptoapi.h This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
dhcp.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
dhcp.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
doclean Minor change to doclean script: 2010-04-17 02:23:50 +00:00
domake-win Updated Windows build scripts to package openssl-0.9.8k, 2009-05-13 13:36:23 +00:00
doval Change to doval valgrind script. The openvpn command parameter is now 2009-10-25 15:44:28 +00:00
dovalns Updated version to 2.1_rc7e. 2008-06-11 08:45:09 +00:00
errlevel.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
error.c Added "net stop dnscache" and "net start dnscache" in front 2010-07-27 21:46:34 +00:00
error.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
event.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
event.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
fdmisc.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
fdmisc.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
forward-inline.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
forward.c Exclude ping and control packets from activity 2010-10-21 11:40:36 +02:00
forward.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
fragment.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
fragment.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
gremlin.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
gremlin.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
helper.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
helper.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
httpdigest.c Minor fixes to recent HTTP proxy changes: 2010-05-11 19:47:03 +00:00
httpdigest.h Minor fixes to recent HTTP proxy changes: 2010-05-11 19:47:03 +00:00
ieproxy.c Moved branch into official BETA21 position. 2008-05-12 20:31:43 +00:00
ieproxy.h Removed spurious executable propset from 2006-06-26 01:35:18 +00:00
init.c Renamed all calls to create_temp_filename() 2010-10-21 11:37:03 +02:00
init.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
INSTALL Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
INSTALL-win32.txt VERSION 2.1_rc5 2008-01-23 21:08:22 +00:00
integer.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
interval.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
interval.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
list.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
list.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
lladdr.c Completely revamped the system for calling external programs and scripts: 2008-07-26 07:27:03 +00:00
lladdr.h Added --lladdr option to specify the link layer (MAC) address 2006-04-13 21:09:04 +00:00
lzo.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
lzo.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
Makefile.am full "VPN client connect" test framework for OpenVPN 2010-10-21 11:40:36 +02:00
manage.c Implemented a key/value auth channel from client to server. 2010-06-01 07:12:27 +00:00
manage.h Implemented a key/value auth channel from client to server. 2010-06-01 07:12:27 +00:00
mbuf.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mbuf.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
memcmp.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
memdbg.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
misc.c Avoid repetition of "this config may cache passwords in memory" (v2) 2010-10-21 11:40:21 +02:00
misc.h Harden create_temp_filename() (version 2) 2010-10-21 11:37:03 +02:00
mroute.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mroute.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mss.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mss.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mtcp.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mtcp.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mtu.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mtu.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mudp.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
mudp.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
multi.c Removed no longer needed delete_file() call 2010-10-21 11:37:03 +02:00
multi.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
NEWS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
ntlm.c Fixed some compile-time warnings. 2009-01-27 19:32:46 +00:00
ntlm.h This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
occ-inline.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
occ.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
occ.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
openvpn-plugin.h Fix errors in openvpn-plugin.h documentation 2010-10-21 11:40:36 +02:00
openvpn.8 Exclude ping and control packets from activity 2010-10-21 11:40:36 +02:00
openvpn.c Implemented http-proxy-override and http-proxy-fallback directives to make it 2010-05-24 22:51:16 +00:00
openvpn.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
openvpn.spec.in Fixed some breakage in openvpn.spec (which is required to build an 2009-12-11 23:44:34 +00:00
options.c Fix multiple configured scripts conflicts issue (version 2) 2010-10-21 11:40:36 +02:00
options.h Added --proto-force directive. 2010-09-01 06:04:29 +00:00
otime.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
otime.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
packet_id.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
packet_id.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
perf.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
perf.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pf-inline.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pf.c Handle non standard subnets in PF grammar 2010-10-21 11:40:36 +02:00
pf.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
ping-inline.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
ping.c Exclude ping and control packets from activity 2010-10-21 11:40:36 +02:00
ping.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pkcs11.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pkcs11.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
plugin.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
plugin.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pool.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pool.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
PORTS Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
proto.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
proto.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
proxy.c Fixed issue where bad creds provided by the management interface 2010-06-10 03:17:21 +00:00
proxy.h Implemented http-proxy-override and http-proxy-fallback directives to make it 2010-05-24 22:51:16 +00:00
ps.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
ps.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
push.c Fixed client hang when server don't PUSH (aka the NO_SOUP_FOR_YOU patch) 2010-10-21 11:40:36 +02:00
push.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
pushlist.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
README Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
reliable.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
reliable.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
route.c Implemented multi-address DNS expansion on the network field of route 2010-07-12 01:55:54 +00:00
route.h Implemented a key/value auth channel from client to server. 2010-06-01 07:12:27 +00:00
schedule.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
schedule.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
session_id.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
session_id.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
shaper.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
shaper.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
sig.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
sig.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
socket.c Debian patch: Fix spelling in log message 2010-10-21 11:34:58 +02:00
socket.h Added --proto-force directive. 2010-09-01 06:04:29 +00:00
socks.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
socks.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
sources Incremented version to 2.1_rc7d. 2008-06-04 05:16:44 +00:00
ssl.c Fixes openssl-1.0.0 compilation warning 2010-10-21 11:40:36 +02:00
ssl.h Make use of counter_type instead of int when counting bytes and network packets 2010-10-21 11:37:03 +02:00
status.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
status.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
syshead.h On TARGET_LINUX define _GNU_SOURCE if not defined 2010-10-21 11:34:58 +02:00
t_client.rc-sample full "VPN client connect" test framework for OpenVPN 2010-10-21 11:40:36 +02:00
t_client.sh full "VPN client connect" test framework for OpenVPN 2010-10-21 11:40:36 +02:00
t_cltsrv-down.sh Updated openvpn/t_cltsrv.sh (used by "make check") to conform to new 2008-08-10 18:49:28 +00:00
t_cltsrv.sh Updated openvpn/t_cltsrv.sh (used by "make check") to conform to new 2008-08-10 18:49:28 +00:00
t_lpback.sh svn merge -r 771:780 $SO/trunk/openvpn 2005-11-05 07:42:33 +00:00
thread.c Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
thread.h Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
tun.c remove duplicate code in FREEBSD+DRAGONFLY system-dependent ifconfig 2010-10-21 11:33:42 +02:00
tun.h Added --register-dns option for Windows. 2010-07-16 18:01:11 +00:00
version.m4 Added --proto-force directive. 2010-09-01 06:04:29 +00:00
win32.c Added --register-dns option for Windows. 2010-07-16 18:01:11 +00:00
win32.h Added "net stop dnscache" and "net start dnscache" in front 2010-07-27 21:46:34 +00:00

OpenVPN -- A Secure tunneling daemon

Copyright (C) 2002-2010 OpenVPN Technologies, Inc. This program is free software;
you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.

*************************************************************************

For the latest version of OpenVPN, go to:

	http://openvpn.net/

To Build and Install,

	./configure
	make
	make install

or see the file INSTALL for more info.

*************************************************************************

For detailed information on OpenVPN, including examples, see the man page
  http://openvpn.net/man.html

For a sample VPN configuration, see
  http://openvpn.net/howto.html

For a description of OpenVPN's underlying protocol,
  see the file ssl.h included in the source distribution.

*************************************************************************

Other Files & Directories:

* INSTALL-win32.txt -- installation instructions
  for Windows

* configure.ac -- script to rebuild our configure
  script and makefile.

* openvpn.spec -- RPM Spec file
  To build an OpenVPN binary RPM, use the command:

	rpmbuild -tb [tarball]

  When you install the binary RPM, it will automatically
  install sample-scripts/openvpn.init (see below)

* sample-scripts/openvpn.init

  A sample init script for OpenVPN.  See the file for
  comments and additional information.

* sample-scripts/verify-cn

  A sample perl script which can be used with OpenVPN's
  --tls-verify option to provide a customized authentication
  test on embedded X509 certificate fields.

* sample-keys/

  Sample RSA keys and certificates.  DON'T USE THESE FILES
  FOR ANYTHING OTHER THAN TESTING BECAUSE THEY ARE TOTALLY INSECURE.

* sample-config-files/

  A collection of OpenVPN config files and scripts from
  the HOWTO at http://openvpn.net/howto.html

* easy-rsa/

  A simple guide to RSA key management, scripts included.
  Also see http://openvpn.net/easyrsa.html