From 34cb9132ef2dae08f91a66015ea5437539a4b557 Mon Sep 17 00:00:00 2001 From: Alon Bar-Lev Date: Wed, 29 Feb 2012 22:11:59 +0200 Subject: build: standard directory layout Suitable for mature project. root - administrative stuff doc - documents src - sources tests - tests distro - distro specific files sample - samples SIDE EFFECT: many changes to rpm spec. Signed-off-by: Alon Bar-Lev Acked-by: Adriaan de Jong Signed-off-by: David Sommerseth --- sample/sample-config-files/README | 6 + sample/sample-config-files/client.conf | 123 ++++++++++ sample/sample-config-files/firewall.sh | 108 +++++++++ sample/sample-config-files/home.up | 2 + sample/sample-config-files/loopback-client | 25 ++ sample/sample-config-files/loopback-server | 26 +++ sample/sample-config-files/office.up | 2 + sample/sample-config-files/openvpn-shutdown.sh | 5 + sample/sample-config-files/openvpn-startup.sh | 34 +++ sample/sample-config-files/server.conf | 299 ++++++++++++++++++++++++ sample/sample-config-files/static-home.conf | 72 ++++++ sample/sample-config-files/static-office.conf | 69 ++++++ sample/sample-config-files/tls-home.conf | 83 +++++++ sample/sample-config-files/tls-office.conf | 83 +++++++ sample/sample-config-files/xinetd-client-config | 11 + sample/sample-config-files/xinetd-server-config | 25 ++ 16 files changed, 973 insertions(+) create mode 100644 sample/sample-config-files/README create mode 100644 sample/sample-config-files/client.conf create mode 100755 sample/sample-config-files/firewall.sh create mode 100755 sample/sample-config-files/home.up create mode 100644 sample/sample-config-files/loopback-client create mode 100644 sample/sample-config-files/loopback-server create mode 100755 sample/sample-config-files/office.up create mode 100755 sample/sample-config-files/openvpn-shutdown.sh create mode 100755 sample/sample-config-files/openvpn-startup.sh create mode 100644 sample/sample-config-files/server.conf create mode 100644 sample/sample-config-files/static-home.conf create mode 100644 sample/sample-config-files/static-office.conf create mode 100644 sample/sample-config-files/tls-home.conf create mode 100644 sample/sample-config-files/tls-office.conf create mode 100644 sample/sample-config-files/xinetd-client-config create mode 100644 sample/sample-config-files/xinetd-server-config (limited to 'sample/sample-config-files') diff --git a/sample/sample-config-files/README b/sample/sample-config-files/README new file mode 100644 index 0000000..d53ac79 --- /dev/null +++ b/sample/sample-config-files/README @@ -0,0 +1,6 @@ +Sample OpenVPN Configuration Files. + +These files are part of the OpenVPN HOWTO +which is located at: + +http://openvpn.net/howto.html diff --git a/sample/sample-config-files/client.conf b/sample/sample-config-files/client.conf new file mode 100644 index 0000000..58b2038 --- /dev/null +++ b/sample/sample-config-files/client.conf @@ -0,0 +1,123 @@ +############################################## +# Sample client-side OpenVPN 2.0 config file # +# for connecting to multi-client server. # +# # +# This configuration can be used by multiple # +# clients, however each client should have # +# its own cert and key files. # +# # +# On Windows, you might want to rename this # +# file so it has a .ovpn extension # +############################################## + +# Specify that we are a client and that we +# will be pulling certain config file directives +# from the server. +client + +# Use the same setting as you are using on +# the server. +# On most systems, the VPN will not function +# unless you partially or fully disable +# the firewall for the TUN/TAP interface. +;dev tap +dev tun + +# Windows needs the TAP-Win32 adapter name +# from the Network Connections panel +# if you have more than one. On XP SP2, +# you may need to disable the firewall +# for the TAP adapter. +;dev-node MyTap + +# Are we connecting to a TCP or +# UDP server? Use the same setting as +# on the server. +;proto tcp +proto udp + +# The hostname/IP and port of the server. +# You can have multiple remote entries +# to load balance between the servers. +remote my-server-1 1194 +;remote my-server-2 1194 + +# Choose a random host from the remote +# list for load-balancing. Otherwise +# try hosts in the order specified. +;remote-random + +# Keep trying indefinitely to resolve the +# host name of the OpenVPN server. Very useful +# on machines which are not permanently connected +# to the internet such as laptops. +resolv-retry infinite + +# Most clients don't need to bind to +# a specific local port number. +nobind + +# Downgrade privileges after initialization (non-Windows only) +;user nobody +;group nobody + +# Try to preserve some state across restarts. +persist-key +persist-tun + +# If you are connecting through an +# HTTP proxy to reach the actual OpenVPN +# server, put the proxy server/IP and +# port number here. See the man page +# if your proxy server requires +# authentication. +;http-proxy-retry # retry on connection failures +;http-proxy [proxy server] [proxy port #] + +# Wireless networks often produce a lot +# of duplicate packets. Set this flag +# to silence duplicate packet warnings. +;mute-replay-warnings + +# SSL/TLS parms. +# See the server config file for more +# description. It's best to use +# a separate .crt/.key file pair +# for each client. A single ca +# file can be used for all clients. +ca ca.crt +cert client.crt +key client.key + +# Verify server certificate by checking +# that the certicate has the nsCertType +# field set to "server". This is an +# important precaution to protect against +# a potential attack discussed here: +# http://openvpn.net/howto.html#mitm +# +# To use this feature, you will need to generate +# your server certificates with the nsCertType +# field set to "server". The build-key-server +# script in the easy-rsa folder will do this. +ns-cert-type server + +# If a tls-auth key is used on the server +# then every client must also have the key. +;tls-auth ta.key 1 + +# Select a cryptographic cipher. +# If the cipher option is used on the server +# then you must also specify it here. +;cipher x + +# Enable compression on the VPN link. +# Don't enable this unless it is also +# enabled in the server config file. +comp-lzo + +# Set log file verbosity. +verb 3 + +# Silence repeating messages +;mute 20 diff --git a/sample/sample-config-files/firewall.sh b/sample/sample-config-files/firewall.sh new file mode 100755 index 0000000..19d75ee --- /dev/null +++ b/sample/sample-config-files/firewall.sh @@ -0,0 +1,108 @@ +#!/bin/sh + +# A Sample OpenVPN-aware firewall. + +# eth0 is connected to the internet. +# eth1 is connected to a private subnet. + +# Change this subnet to correspond to your private +# ethernet subnet. Home will use HOME_NET/24 and +# Office will use OFFICE_NET/24. +PRIVATE=10.0.0.0/24 + +# Loopback address +LOOP=127.0.0.1 + +# Delete old iptables rules +# and temporarily block all traffic. +iptables -P OUTPUT DROP +iptables -P INPUT DROP +iptables -P FORWARD DROP +iptables -F + +# Set default policies +iptables -P OUTPUT ACCEPT +iptables -P INPUT DROP +iptables -P FORWARD DROP + +# Prevent external packets from using loopback addr +iptables -A INPUT -i eth0 -s $LOOP -j DROP +iptables -A FORWARD -i eth0 -s $LOOP -j DROP +iptables -A INPUT -i eth0 -d $LOOP -j DROP +iptables -A FORWARD -i eth0 -d $LOOP -j DROP + +# Anything coming from the Internet should have a real Internet address +iptables -A FORWARD -i eth0 -s 192.168.0.0/16 -j DROP +iptables -A FORWARD -i eth0 -s 172.16.0.0/12 -j DROP +iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -j DROP +iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP +iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP +iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP + +# Block outgoing NetBios (if you have windows machines running +# on the private subnet). This will not affect any NetBios +# traffic that flows over the VPN tunnel, but it will stop +# local windows machines from broadcasting themselves to +# the internet. +iptables -A FORWARD -p tcp --sport 137:139 -o eth0 -j DROP +iptables -A FORWARD -p udp --sport 137:139 -o eth0 -j DROP +iptables -A OUTPUT -p tcp --sport 137:139 -o eth0 -j DROP +iptables -A OUTPUT -p udp --sport 137:139 -o eth0 -j DROP + +# Check source address validity on packets going out to internet +iptables -A FORWARD -s ! $PRIVATE -i eth1 -j DROP + +# Allow local loopback +iptables -A INPUT -s $LOOP -j ACCEPT +iptables -A INPUT -d $LOOP -j ACCEPT + +# Allow incoming pings (can be disabled) +iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT + +# Allow services such as www and ssh (can be disabled) +iptables -A INPUT -p tcp --dport http -j ACCEPT +iptables -A INPUT -p tcp --dport ssh -j ACCEPT + +# Allow incoming OpenVPN packets +# Duplicate the line below for each +# OpenVPN tunnel, changing --dport n +# to match the OpenVPN UDP port. +# +# In OpenVPN, the port number is +# controlled by the --port n option. +# If you put this option in the config +# file, you can remove the leading '--' +# +# If you taking the stateful firewall +# approach (see the OpenVPN HOWTO), +# then comment out the line below. + +iptables -A INPUT -p udp --dport 1194 -j ACCEPT + +# Allow packets from TUN/TAP devices. +# When OpenVPN is run in a secure mode, +# it will authenticate packets prior +# to their arriving on a tun or tap +# interface. Therefore, it is not +# necessary to add any filters here, +# unless you want to restrict the +# type of packets which can flow over +# the tunnel. + +iptables -A INPUT -i tun+ -j ACCEPT +iptables -A FORWARD -i tun+ -j ACCEPT +iptables -A INPUT -i tap+ -j ACCEPT +iptables -A FORWARD -i tap+ -j ACCEPT + +# Allow packets from private subnets +iptables -A INPUT -i eth1 -j ACCEPT +iptables -A FORWARD -i eth1 -j ACCEPT + +# Keep state of connections from local machine and private subnets +iptables -A OUTPUT -m state --state NEW -o eth0 -j ACCEPT +iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT +iptables -A FORWARD -m state --state NEW -o eth0 -j ACCEPT +iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT + +# Masquerade local subnet +iptables -t nat -A POSTROUTING -s $PRIVATE -o eth0 -j MASQUERADE diff --git a/sample/sample-config-files/home.up b/sample/sample-config-files/home.up new file mode 100755 index 0000000..9c347cc --- /dev/null +++ b/sample/sample-config-files/home.up @@ -0,0 +1,2 @@ +#!/bin/sh +route add -net 10.0.0.0 netmask 255.255.255.0 gw $5 diff --git a/sample/sample-config-files/loopback-client b/sample/sample-config-files/loopback-client new file mode 100644 index 0000000..d7f59e6 --- /dev/null +++ b/sample/sample-config-files/loopback-client @@ -0,0 +1,25 @@ +# Perform a TLS loopback test -- client side. +# +# This test performs a TLS negotiation once every 10 seconds, +# and will terminate after 2 minutes. +# +# From the root directory of the OpenVPN distribution, +# after openvpn has been built, run: +# +# ./openvpn --config sample-config-files/loopback-client (In one window) +# ./openvpn --config sample-config-files/loopback-server (Simultaneously in another window) + +rport 16000 +lport 16001 +remote localhost +local localhost +dev null +verb 3 +reneg-sec 10 +tls-client +ca sample-keys/ca.crt +key sample-keys/client.key +cert sample-keys/client.crt +cipher DES-EDE3-CBC +ping 1 +inactive 120 10000000 diff --git a/sample/sample-config-files/loopback-server b/sample/sample-config-files/loopback-server new file mode 100644 index 0000000..9d21bce --- /dev/null +++ b/sample/sample-config-files/loopback-server @@ -0,0 +1,26 @@ +# Perform a TLS loopback test -- server side. +# +# This test performs a TLS negotiation once every 10 seconds, +# and will terminate after 2 minutes. +# +# From the root directory of the OpenVPN distribution, +# after openvpn has been built, run: +# +# ./openvpn --config sample-config-files/loopback-client (In one window) +# ./openvpn --config sample-config-files/loopback-server (Simultaneously in another window) + +rport 16001 +lport 16000 +remote localhost +local localhost +dev null +verb 3 +reneg-sec 10 +tls-server +dh sample-keys/dh1024.pem +ca sample-keys/ca.crt +key sample-keys/server.key +cert sample-keys/server.crt +cipher DES-EDE3-CBC +ping 1 +inactive 120 10000000 diff --git a/sample/sample-config-files/office.up b/sample/sample-config-files/office.up new file mode 100755 index 0000000..74a71a3 --- /dev/null +++ b/sample/sample-config-files/office.up @@ -0,0 +1,2 @@ +#!/bin/sh +route add -net 10.0.1.0 netmask 255.255.255.0 gw $5 diff --git a/sample/sample-config-files/openvpn-shutdown.sh b/sample/sample-config-files/openvpn-shutdown.sh new file mode 100755 index 0000000..8ed2d1d --- /dev/null +++ b/sample/sample-config-files/openvpn-shutdown.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# stop all openvpn processes + +killall -TERM openvpn diff --git a/sample/sample-config-files/openvpn-startup.sh b/sample/sample-config-files/openvpn-startup.sh new file mode 100755 index 0000000..0ee006b --- /dev/null +++ b/sample/sample-config-files/openvpn-startup.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +# A sample OpenVPN startup script +# for Linux. + +# openvpn config file directory +dir=/etc/openvpn + +# load the firewall +$dir/firewall.sh + +# load TUN/TAP kernel module +modprobe tun + +# enable IP forwarding +echo 1 > /proc/sys/net/ipv4/ip_forward + +# Invoke openvpn for each VPN tunnel +# in daemon mode. Alternatively, +# you could remove "--daemon" from +# the command line and add "daemon" +# to the config file. +# +# Each tunnel should run on a separate +# UDP port. Use the "port" option +# to control this. Like all of +# OpenVPN's options, you can +# specify "--port 8000" on the command +# line or "port 8000" in the config +# file. + +openvpn --cd $dir --daemon --config vpn1.conf +openvpn --cd $dir --daemon --config vpn2.conf +openvpn --cd $dir --daemon --config vpn2.conf diff --git a/sample/sample-config-files/server.conf b/sample/sample-config-files/server.conf new file mode 100644 index 0000000..f483b6b --- /dev/null +++ b/sample/sample-config-files/server.conf @@ -0,0 +1,299 @@ +################################################# +# Sample OpenVPN 2.0 config file for # +# multi-client server. # +# # +# This file is for the server side # +# of a many-clients <-> one-server # +# OpenVPN configuration. # +# # +# OpenVPN also supports # +# single-machine <-> single-machine # +# configurations (See the Examples page # +# on the web site for more info). # +# # +# This config should work on Windows # +# or Linux/BSD systems. Remember on # +# Windows to quote pathnames and use # +# double backslashes, e.g.: # +# "C:\\Program Files\\OpenVPN\\config\\foo.key" # +# # +# Comments are preceded with '#' or ';' # +################################################# + +# Which local IP address should OpenVPN +# listen on? (optional) +;local a.b.c.d + +# Which TCP/UDP port should OpenVPN listen on? +# If you want to run multiple OpenVPN instances +# on the same machine, use a different port +# number for each one. You will need to +# open up this port on your firewall. +port 1194 + +# TCP or UDP server? +;proto tcp +proto udp + +# "dev tun" will create a routed IP tunnel, +# "dev tap" will create an ethernet tunnel. +# Use "dev tap0" if you are ethernet bridging +# and have precreated a tap0 virtual interface +# and bridged it with your ethernet interface. +# If you want to control access policies +# over the VPN, you must create firewall +# rules for the the TUN/TAP interface. +# On non-Windows systems, you can give +# an explicit unit number, such as tun0. +# On Windows, use "dev-node" for this. +# On most systems, the VPN will not function +# unless you partially or fully disable +# the firewall for the TUN/TAP interface. +;dev tap +dev tun + +# Windows needs the TAP-Win32 adapter name +# from the Network Connections panel if you +# have more than one. On XP SP2 or higher, +# you may need to selectively disable the +# Windows firewall for the TAP adapter. +# Non-Windows systems usually don't need this. +;dev-node MyTap + +# SSL/TLS root certificate (ca), certificate +# (cert), and private key (key). Each client +# and the server must have their own cert and +# key file. The server and all clients will +# use the same ca file. +# +# See the "easy-rsa" directory for a series +# of scripts for generating RSA certificates +# and private keys. Remember to use +# a unique Common Name for the server +# and each of the client certificates. +# +# Any X509 key management system can be used. +# OpenVPN can also use a PKCS #12 formatted key file +# (see "pkcs12" directive in man page). +ca ca.crt +cert server.crt +key server.key # This file should be kept secret + +# Diffie hellman parameters. +# Generate your own with: +# openssl dhparam -out dh1024.pem 1024 +# Substitute 2048 for 1024 if you are using +# 2048 bit keys. +dh dh1024.pem + +# Configure server mode and supply a VPN subnet +# for OpenVPN to draw client addresses from. +# The server will take 10.8.0.1 for itself, +# the rest will be made available to clients. +# Each client will be able to reach the server +# on 10.8.0.1. Comment this line out if you are +# ethernet bridging. See the man page for more info. +server 10.8.0.0 255.255.255.0 + +# Maintain a record of client <-> virtual IP address +# associations in this file. If OpenVPN goes down or +# is restarted, reconnecting clients can be assigned +# the same virtual IP address from the pool that was +# previously assigned. +ifconfig-pool-persist ipp.txt + +# Configure server mode for ethernet bridging. +# You must first use your OS's bridging capability +# to bridge the TAP interface with the ethernet +# NIC interface. Then you must manually set the +# IP/netmask on the bridge interface, here we +# assume 10.8.0.4/255.255.255.0. Finally we +# must set aside an IP range in this subnet +# (start=10.8.0.50 end=10.8.0.100) to allocate +# to connecting clients. Leave this line commented +# out unless you are ethernet bridging. +;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100 + +# Configure server mode for ethernet bridging +# using a DHCP-proxy, where clients talk +# to the OpenVPN server-side DHCP server +# to receive their IP address allocation +# and DNS server addresses. You must first use +# your OS's bridging capability to bridge the TAP +# interface with the ethernet NIC interface. +# Note: this mode only works on clients (such as +# Windows), where the client-side TAP adapter is +# bound to a DHCP client. +;server-bridge + +# Push routes to the client to allow it +# to reach other private subnets behind +# the server. Remember that these +# private subnets will also need +# to know to route the OpenVPN client +# address pool (10.8.0.0/255.255.255.0) +# back to the OpenVPN server. +;push "route 192.168.10.0 255.255.255.0" +;push "route 192.168.20.0 255.255.255.0" + +# To assign specific IP addresses to specific +# clients or if a connecting client has a private +# subnet behind it that should also have VPN access, +# use the subdirectory "ccd" for client-specific +# configuration files (see man page for more info). + +# EXAMPLE: Suppose the client +# having the certificate common name "Thelonious" +# also has a small subnet behind his connecting +# machine, such as 192.168.40.128/255.255.255.248. +# First, uncomment out these lines: +;client-config-dir ccd +;route 192.168.40.128 255.255.255.248 +# Then create a file ccd/Thelonious with this line: +# iroute 192.168.40.128 255.255.255.248 +# This will allow Thelonious' private subnet to +# access the VPN. This example will only work +# if you are routing, not bridging, i.e. you are +# using "dev tun" and "server" directives. + +# EXAMPLE: Suppose you want to give +# Thelonious a fixed VPN IP address of 10.9.0.1. +# First uncomment out these lines: +;client-config-dir ccd +;route 10.9.0.0 255.255.255.252 +# Then add this line to ccd/Thelonious: +# ifconfig-push 10.9.0.1 10.9.0.2 + +# Suppose that you want to enable different +# firewall access policies for different groups +# of clients. There are two methods: +# (1) Run multiple OpenVPN daemons, one for each +# group, and firewall the TUN/TAP interface +# for each group/daemon appropriately. +# (2) (Advanced) Create a script to dynamically +# modify the firewall in response to access +# from different clients. See man +# page for more info on learn-address script. +;learn-address ./script + +# If enabled, this directive will configure +# all clients to redirect their default +# network gateway through the VPN, causing +# all IP traffic such as web browsing and +# and DNS lookups to go through the VPN +# (The OpenVPN server machine may need to NAT +# or bridge the TUN/TAP interface to the internet +# in order for this to work properly). +;push "redirect-gateway def1 bypass-dhcp" + +# Certain Windows-specific network settings +# can be pushed to clients, such as DNS +# or WINS server addresses. CAVEAT: +# http://openvpn.net/faq.html#dhcpcaveats +# The addresses below refer to the public +# DNS servers provided by opendns.com. +;push "dhcp-option DNS 208.67.222.222" +;push "dhcp-option DNS 208.67.220.220" + +# Uncomment this directive to allow different +# clients to be able to "see" each other. +# By default, clients will only see the server. +# To force clients to only see the server, you +# will also need to appropriately firewall the +# server's TUN/TAP interface. +;client-to-client + +# Uncomment this directive if multiple clients +# might connect with the same certificate/key +# files or common names. This is recommended +# only for testing purposes. For production use, +# each client should have its own certificate/key +# pair. +# +# IF YOU HAVE NOT GENERATED INDIVIDUAL +# CERTIFICATE/KEY PAIRS FOR EACH CLIENT, +# EACH HAVING ITS OWN UNIQUE "COMMON NAME", +# UNCOMMENT THIS LINE OUT. +;duplicate-cn + +# The keepalive directive causes ping-like +# messages to be sent back and forth over +# the link so that each side knows when +# the other side has gone down. +# Ping every 10 seconds, assume that remote +# peer is down if no ping received during +# a 120 second time period. +keepalive 10 120 + +# For extra security beyond that provided +# by SSL/TLS, create an "HMAC firewall" +# to help block DoS attacks and UDP port flooding. +# +# Generate with: +# openvpn --genkey --secret ta.key +# +# The server and each client must have +# a copy of this key. +# The second parameter should be '0' +# on the server and '1' on the clients. +;tls-auth ta.key 0 # This file is secret + +# Select a cryptographic cipher. +# This config item must be copied to +# the client config file as well. +;cipher BF-CBC # Blowfish (default) +;cipher AES-128-CBC # AES +;cipher DES-EDE3-CBC # Triple-DES + +# Enable compression on the VPN link. +# If you enable it here, you must also +# enable it in the client config file. +comp-lzo + +# The maximum number of concurrently connected +# clients we want to allow. +;max-clients 100 + +# It's a good idea to reduce the OpenVPN +# daemon's privileges after initialization. +# +# You can uncomment this out on +# non-Windows systems. +;user nobody +;group nobody + +# The persist options will try to avoid +# accessing certain resources on restart +# that may no longer be accessible because +# of the privilege downgrade. +persist-key +persist-tun + +# Output a short status file showing +# current connections, truncated +# and rewritten every minute. +status openvpn-status.log + +# By default, log messages will go to the syslog (or +# on Windows, if running as a service, they will go to +# the "\Program Files\OpenVPN\log" directory). +# Use log or log-append to override this default. +# "log" will truncate the log file on OpenVPN startup, +# while "log-append" will append to it. Use one +# or the other (but not both). +;log openvpn.log +;log-append openvpn.log + +# Set the appropriate level of log +# file verbosity. +# +# 0 is silent, except for fatal errors +# 4 is reasonable for general usage +# 5 and 6 can help to debug connection problems +# 9 is extremely verbose +verb 3 + +# Silence repeating messages. At most 20 +# sequential messages of the same message +# category will be output to the log. +;mute 20 diff --git a/sample/sample-config-files/static-home.conf b/sample/sample-config-files/static-home.conf new file mode 100644 index 0000000..c966687 --- /dev/null +++ b/sample/sample-config-files/static-home.conf @@ -0,0 +1,72 @@ +# +# Sample OpenVPN configuration file for +# home using a pre-shared static key. +# +# '#' or ';' may be used to delimit comments. + +# Use a dynamic tun device. +# For Linux 2.2 or non-Linux OSes, +# you may want to use an explicit +# unit number such as "tun1". +# OpenVPN also supports virtual +# ethernet "tap" devices. +dev tun + +# Our OpenVPN peer is the office gateway. +remote 1.2.3.4 + +# 10.1.0.2 is our local VPN endpoint (home). +# 10.1.0.1 is our remote VPN endpoint (office). +ifconfig 10.1.0.2 10.1.0.1 + +# Our up script will establish routes +# once the VPN is alive. +up ./home.up + +# Our pre-shared static key +secret static.key + +# OpenVPN 2.0 uses UDP port 1194 by default +# (official port assignment by iana.org 11/04). +# OpenVPN 1.x uses UDP port 5000 by default. +# Each OpenVPN tunnel must use +# a different port number. +# lport or rport can be used +# to denote different ports +# for local and remote. +; port 1194 + +# Downgrade UID and GID to +# "nobody" after initialization +# for extra security. +; user nobody +; group nobody + +# If you built OpenVPN with +# LZO compression, uncomment +# out the following line. +; comp-lzo + +# Send a UDP ping to remote once +# every 15 seconds to keep +# stateful firewall connection +# alive. Uncomment this +# out if you are using a stateful +# firewall. +; ping 15 + +# Uncomment this section for a more reliable detection when a system +# loses its connection. For example, dial-ups or laptops that +# travel to other locations. +; ping 15 +; ping-restart 45 +; ping-timer-rem +; persist-tun +; persist-key + +# Verbosity level. +# 0 -- quiet except for fatal errors. +# 1 -- mostly quiet, but display non-fatal network errors. +# 3 -- medium output, good for normal operation. +# 9 -- verbose, good for troubleshooting +verb 3 diff --git a/sample/sample-config-files/static-office.conf b/sample/sample-config-files/static-office.conf new file mode 100644 index 0000000..68030cc --- /dev/null +++ b/sample/sample-config-files/static-office.conf @@ -0,0 +1,69 @@ +# +# Sample OpenVPN configuration file for +# office using a pre-shared static key. +# +# '#' or ';' may be used to delimit comments. + +# Use a dynamic tun device. +# For Linux 2.2 or non-Linux OSes, +# you may want to use an explicit +# unit number such as "tun1". +# OpenVPN also supports virtual +# ethernet "tap" devices. +dev tun + +# 10.1.0.1 is our local VPN endpoint (office). +# 10.1.0.2 is our remote VPN endpoint (home). +ifconfig 10.1.0.1 10.1.0.2 + +# Our up script will establish routes +# once the VPN is alive. +up ./office.up + +# Our pre-shared static key +secret static.key + +# OpenVPN 2.0 uses UDP port 1194 by default +# (official port assignment by iana.org 11/04). +# OpenVPN 1.x uses UDP port 5000 by default. +# Each OpenVPN tunnel must use +# a different port number. +# lport or rport can be used +# to denote different ports +# for local and remote. +; port 1194 + +# Downgrade UID and GID to +# "nobody" after initialization +# for extra security. +; user nobody +; group nobody + +# If you built OpenVPN with +# LZO compression, uncomment +# out the following line. +; comp-lzo + +# Send a UDP ping to remote once +# every 15 seconds to keep +# stateful firewall connection +# alive. Uncomment this +# out if you are using a stateful +# firewall. +; ping 15 + +# Uncomment this section for a more reliable detection when a system +# loses its connection. For example, dial-ups or laptops that +# travel to other locations. +; ping 15 +; ping-restart 45 +; ping-timer-rem +; persist-tun +; persist-key + +# Verbosity level. +# 0 -- quiet except for fatal errors. +# 1 -- mostly quiet, but display non-fatal network errors. +# 3 -- medium output, good for normal operation. +# 9 -- verbose, good for troubleshooting +verb 3 diff --git a/sample/sample-config-files/tls-home.conf b/sample/sample-config-files/tls-home.conf new file mode 100644 index 0000000..daa4ea1 --- /dev/null +++ b/sample/sample-config-files/tls-home.conf @@ -0,0 +1,83 @@ +# +# Sample OpenVPN configuration file for +# home using SSL/TLS mode and RSA certificates/keys. +# +# '#' or ';' may be used to delimit comments. + +# Use a dynamic tun device. +# For Linux 2.2 or non-Linux OSes, +# you may want to use an explicit +# unit number such as "tun1". +# OpenVPN also supports virtual +# ethernet "tap" devices. +dev tun + +# Our OpenVPN peer is the office gateway. +remote 1.2.3.4 + +# 10.1.0.2 is our local VPN endpoint (home). +# 10.1.0.1 is our remote VPN endpoint (office). +ifconfig 10.1.0.2 10.1.0.1 + +# Our up script will establish routes +# once the VPN is alive. +up ./home.up + +# In SSL/TLS key exchange, Office will +# assume server role and Home +# will assume client role. +tls-client + +# Certificate Authority file +ca my-ca.crt + +# Our certificate/public key +cert home.crt + +# Our private key +key home.key + +# OpenVPN 2.0 uses UDP port 1194 by default +# (official port assignment by iana.org 11/04). +# OpenVPN 1.x uses UDP port 5000 by default. +# Each OpenVPN tunnel must use +# a different port number. +# lport or rport can be used +# to denote different ports +# for local and remote. +; port 1194 + +# Downgrade UID and GID to +# "nobody" after initialization +# for extra security. +; user nobody +; group nobody + +# If you built OpenVPN with +# LZO compression, uncomment +# out the following line. +; comp-lzo + +# Send a UDP ping to remote once +# every 15 seconds to keep +# stateful firewall connection +# alive. Uncomment this +# out if you are using a stateful +# firewall. +; ping 15 + +# Uncomment this section for a more reliable detection when a system +# loses its connection. For example, dial-ups or laptops that +# travel to other locations. +; ping 15 +; ping-restart 45 +; ping-timer-rem +; persist-tun +; persist-key + +# Verbosity level. +# 0 -- quiet except for fatal errors. +# 1 -- mostly quiet, but display non-fatal network errors. +# 3 -- medium output, good for normal operation. +# 9 -- verbose, good for troubleshooting +verb 3 diff --git a/sample/sample-config-files/tls-office.conf b/sample/sample-config-files/tls-office.conf new file mode 100644 index 0000000..f790f46 --- /dev/null +++ b/sample/sample-config-files/tls-office.conf @@ -0,0 +1,83 @@ +# +# Sample OpenVPN configuration file for +# office using SSL/TLS mode and RSA certificates/keys. +# +# '#' or ';' may be used to delimit comments. + +# Use a dynamic tun device. +# For Linux 2.2 or non-Linux OSes, +# you may want to use an explicit +# unit number such as "tun1". +# OpenVPN also supports virtual +# ethernet "tap" devices. +dev tun + +# 10.1.0.1 is our local VPN endpoint (office). +# 10.1.0.2 is our remote VPN endpoint (home). +ifconfig 10.1.0.1 10.1.0.2 + +# Our up script will establish routes +# once the VPN is alive. +up ./office.up + +# In SSL/TLS key exchange, Office will +# assume server role and Home +# will assume client role. +tls-server + +# Diffie-Hellman Parameters (tls-server only) +dh dh1024.pem + +# Certificate Authority file +ca my-ca.crt + +# Our certificate/public key +cert office.crt + +# Our private key +key office.key + +# OpenVPN 2.0 uses UDP port 1194 by default +# (official port assignment by iana.org 11/04). +# OpenVPN 1.x uses UDP port 5000 by default. +# Each OpenVPN tunnel must use +# a different port number. +# lport or rport can be used +# to denote different ports +# for local and remote. +; port 1194 + +# Downgrade UID and GID to +# "nobody" after initialization +# for extra security. +; user nobody +; group nobody + +# If you built OpenVPN with +# LZO compression, uncomment +# out the following line. +; comp-lzo + +# Send a UDP ping to remote once +# every 15 seconds to keep +# stateful firewall connection +# alive. Uncomment this +# out if you are using a stateful +# firewall. +; ping 15 + +# Uncomment this section for a more reliable detection when a system +# loses its connection. For example, dial-ups or laptops that +# travel to other locations. +; ping 15 +; ping-restart 45 +; ping-timer-rem +; persist-tun +; persist-key + +# Verbosity level. +# 0 -- quiet except for fatal errors. +# 1 -- mostly quiet, but display non-fatal network errors. +# 3 -- medium output, good for normal operation. +# 9 -- verbose, good for troubleshooting +verb 3 diff --git a/sample/sample-config-files/xinetd-client-config b/sample/sample-config-files/xinetd-client-config new file mode 100644 index 0000000..03c5c1f --- /dev/null +++ b/sample/sample-config-files/xinetd-client-config @@ -0,0 +1,11 @@ +# This OpenVPN config file +# is the client side counterpart +# of xinetd-server-config + +dev tun +ifconfig 10.4.0.1 10.4.0.2 +remote my-server +port 1194 +user nobody +secret /root/openvpn/key +inactive 600 diff --git a/sample/sample-config-files/xinetd-server-config b/sample/sample-config-files/xinetd-server-config new file mode 100644 index 0000000..803a6f8 --- /dev/null +++ b/sample/sample-config-files/xinetd-server-config @@ -0,0 +1,25 @@ +# An xinetd configuration file for OpenVPN. +# +# This file should be renamed to openvpn or something suitably +# descriptive and copied to the /etc/xinetd.d directory. +# xinetd can then be made aware of this file by restarting +# it or sending it a SIGHUP signal. +# +# For each potential incoming client, create a separate version +# of this configuration file on a unique port number. Also note +# that the key file and ifconfig endpoints should be unique for +# each client. This configuration assumes that the OpenVPN +# executable and key live in /root/openvpn. Change this to fit +# your environment. + +service openvpn_1 +{ + type = UNLISTED + port = 1194 + socket_type = dgram + protocol = udp + wait = yes + user = root + server = /root/openvpn/openvpn + server_args = --inetd --dev tun --ifconfig 10.4.0.2 10.4.0.1 --secret /root/openvpn/key --inactive 600 --user nobody +} -- cgit