<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>OpenVPN(ID) - Revision history</title>
		<link>https://www.slackwiki.com/index.php?title=OpenVPN(ID)&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.40.0</generator>
		<lastBuildDate>Wed, 08 Apr 2026 16:09:20 GMT</lastBuildDate>
		<item>
			<title>Arfon: Moved from: http://www.slackwiki.com/OpenVPN</title>
			<link>https://www.slackwiki.com/index.php?title=OpenVPN(ID)&amp;diff=705&amp;oldid=prev</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=OpenVPN(ID)&amp;diff=705&amp;oldid=prev</guid>
			<description>&lt;p&gt;Moved from: http://www.slackwiki.com/OpenVPN&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Server]]&lt;br /&gt;
[[Category:Networking]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
As a user-space VPN daemon, OpenVPN is compatible with with SSL/TLS, RSA Certificates and X509 PKI, NAT, DHCP, and TUN/TAP virtual devices.&lt;br /&gt;
&lt;br /&gt;
OpenVPN is not compatible with IPSec, IKE, PPTP, or L2TP.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Instalasi ==&lt;br /&gt;
&lt;br /&gt;
Download source dari [http://openvpn.net openvpn.net]&lt;br /&gt;
&lt;br /&gt;
download versi 2.0&lt;br /&gt;
&lt;br /&gt;
instalasi Lzo&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar zxvf lzo-1.08.tar.gz&lt;br /&gt;
cd lzo-1-08.tar.gz&lt;br /&gt;
./configure --prefix=/usr&lt;br /&gt;
make ; make install-strip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
insalasi OpenVPN&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar zxvf openvpn-2.0.tar.gz&lt;br /&gt;
cd openvpn-2.0&lt;br /&gt;
./configure --prefix=/usr \&lt;br /&gt;
--sysconfdir=/etc/openvpn \&lt;br /&gt;
--enable-pthread \&lt;br /&gt;
--enable-iproute2 \&lt;br /&gt;
--with-ssl \&lt;br /&gt;
--with-lzo-header=/usr/include \&lt;br /&gt;
--with-lzo-lib=/usr/lib \&lt;br /&gt;
--with-ifconfig \&lt;br /&gt;
--with-route \&lt;br /&gt;
--with-mem-check=dmalloc &lt;br /&gt;
make ; make install-strip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Konfigurasi ==&lt;br /&gt;
&lt;br /&gt;
==Konfigurasi Sertifikat==&lt;br /&gt;
&lt;br /&gt;
Simpan seluruh sertifikat di '''''/etc/openvpn/certs'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This is a small RSA key management package,&lt;br /&gt;
based on the openssl command line tool, that&lt;br /&gt;
can be found in the easy-rsa subdirectory&lt;br /&gt;
of the OpenVPN distribution.&lt;br /&gt;
&lt;br /&gt;
These are reference notes.  For step&lt;br /&gt;
by step instructions, see the HOWTO:&lt;br /&gt;
&lt;br /&gt;
http://openvpn.net/howto.html&lt;br /&gt;
&lt;br /&gt;
INSTALL&lt;br /&gt;
&lt;br /&gt;
1. Edit vars.&lt;br /&gt;
2. Set KEY_CONFIG to point to the openssl.cnf file&lt;br /&gt;
   included in this distribution.&lt;br /&gt;
3. Set KEY_DIR to point to a directory which will&lt;br /&gt;
   contain all keys, certificates, etc.  This&lt;br /&gt;
   directory need not exist, and if it does,&lt;br /&gt;
   it will be deleted with rm -rf, so BE&lt;br /&gt;
   CAREFUL how you set KEY_DIR.&lt;br /&gt;
4. (Optional) Edit other fields in vars&lt;br /&gt;
   per your site data.  You may want to&lt;br /&gt;
   increase KEY_SIZE to 2048 if you are&lt;br /&gt;
   paranoid and don't mind slower key&lt;br /&gt;
   processing, but certainly 1024 is&lt;br /&gt;
   fine for testing purposes.  KEY_SIZE&lt;br /&gt;
   must be compatible across both peers&lt;br /&gt;
   participating in a secure SSL/TLS&lt;br /&gt;
   connection.&lt;br /&gt;
5  . vars&lt;br /&gt;
6. ./clean-all&lt;br /&gt;
7. As you create certificates, keys, and&lt;br /&gt;
   certificate signing requests, understand that&lt;br /&gt;
   only .key files should be kept confidential.&lt;br /&gt;
   .crt and .csr files can be sent over insecure&lt;br /&gt;
   channels such as plaintext email.&lt;br /&gt;
8. You should never need to copy a .key file&lt;br /&gt;
   between computers.  Normally each computer&lt;br /&gt;
   will have its own certificate/key pair.&lt;br /&gt;
&lt;br /&gt;
BUILD YOUR OWN ROOT CERTIFICATE AUTHORITY (CA) CERTIFICATE/KEY&lt;br /&gt;
&lt;br /&gt;
1. ./build-ca&lt;br /&gt;
2. ca.crt and ca.key will be built in your KEY_DIR&lt;br /&gt;
   directory&lt;br /&gt;
&lt;br /&gt;
BUILD AN INTERMEDIATE CERTIFICATE AUTHORITY CERTIFICATE/KEY (optional)&lt;br /&gt;
&lt;br /&gt;
1. ./build-inter inter&lt;br /&gt;
2. inter.crt and inter.key will be built in your KEY_DIR&lt;br /&gt;
   directory and signed with your root certificate.&lt;br /&gt;
&lt;br /&gt;
BUILD DIFFIE-HELLMAN PARAMETERS (necessary for&lt;br /&gt;
the server end of a SSL/TLS connection).&lt;br /&gt;
&lt;br /&gt;
1. ./build-dh&lt;br /&gt;
&lt;br /&gt;
BUILD A CERTIFICATE SIGNING REQUEST (If&lt;br /&gt;
you want to sign your certificate with a root&lt;br /&gt;
certificate controlled by another individual&lt;br /&gt;
or organization, or residing on a different machine).&lt;br /&gt;
&lt;br /&gt;
1. Get ca.crt (the root certificate) from your&lt;br /&gt;
   certificate authority.  Though this&lt;br /&gt;
   transfer can be over an insecure channel, to prevent&lt;br /&gt;
   man-in-the-middle attacks you must confirm that&lt;br /&gt;
   ca.crt was not tampered with.  Large CAs solve this&lt;br /&gt;
   problem by hardwiring their root certificates into&lt;br /&gt;
   popular web browsers.  A simple way to verify a root&lt;br /&gt;
   CA is to call the issuer on the telephone and confirm&lt;br /&gt;
   that the md5sum or sha1sum signatures on the ca.crt&lt;br /&gt;
   files match (such as with the command: &amp;quot;md5sum ca.crt&amp;quot;).&lt;br /&gt;
2. Choose a name for your certificate such as your computer&lt;br /&gt;
   name.  In our example we will use &amp;quot;mycert&amp;quot;.&lt;br /&gt;
3. ./build-req mycert&lt;br /&gt;
4. You can ignore most of the fields, but set&lt;br /&gt;
   &amp;quot;Common Name&amp;quot; to something unique such as your&lt;br /&gt;
   computer's host name.  Leave all password&lt;br /&gt;
   fields blank, unless you want your private key&lt;br /&gt;
   to be protected by password.  Using a password&lt;br /&gt;
   is not required -- it will make your key more secure&lt;br /&gt;
   but also more inconvenient to use, because you will&lt;br /&gt;
   need to supply your password anytime the key is used.&lt;br /&gt;
   NOTE: if you are using a password, use ./build-req-pass&lt;br /&gt;
   instead of ./build-req&lt;br /&gt;
5. Your key will be written to $KEY_DIR/mycert.key&lt;br /&gt;
6. Your certificate signing request will be written to&lt;br /&gt;
   to $KEY_DIR/mycert.csr&lt;br /&gt;
7. Email mycert.csr to the individual or organization&lt;br /&gt;
   which controls the root certificate.  This can be&lt;br /&gt;
   done over an insecure channel.&lt;br /&gt;
8. After the .csr file is signed by the root certificate&lt;br /&gt;
   authority, you will receive a file mycert.crt&lt;br /&gt;
   (your certificate).  Place mycert.crt in your&lt;br /&gt;
   KEY_DIR directory.&lt;br /&gt;
9. The combined files of mycert.crt, mycert.key,&lt;br /&gt;
   and ca.crt can now be used to secure one end of&lt;br /&gt;
   an SSL/TLS connection.&lt;br /&gt;
&lt;br /&gt;
SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
&lt;br /&gt;
1. ./sign-req mycert&lt;br /&gt;
2. mycert.crt will be built in your KEY_DIR&lt;br /&gt;
   directory using mycert.csr and your root CA&lt;br /&gt;
   file as input.&lt;br /&gt;
&lt;br /&gt;
BUILD AND SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
USING A LOCALLY INSTALLED ROOT CERTIFICATE/KEY -- this&lt;br /&gt;
script generates and signs a certificate in one step,&lt;br /&gt;
but it requires that the generated certificate and private&lt;br /&gt;
key files be copied to the destination host over a&lt;br /&gt;
secure channel.&lt;br /&gt;
&lt;br /&gt;
1. ./build-key mycert (no password protection)&lt;br /&gt;
2. OR ./build-key-pass mycert (with password protection)&lt;br /&gt;
3. OR ./build-key-pkcs12 mycert (PKCS #12 format)&lt;br /&gt;
4. OR ./build-key-server mycert (with nsCertType=server)&lt;br /&gt;
5. mycert.crt and mycert.key will be built in your&lt;br /&gt;
   KEY_DIR directory, and mycert.crt will be signed&lt;br /&gt;
   by your root CA. If ./build-key-pkcs12 was used a&lt;br /&gt;
   mycert.p12 file will also be created including the&lt;br /&gt;
   private key, certificate and the ca certificate.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
To avoid a possible Man-in-the-Middle attack where an authorized&lt;br /&gt;
client tries to connect to another client by impersonating the&lt;br /&gt;
server, make sure to enforce some kind of server certificate&lt;br /&gt;
verification by clients.  There are currently four different ways&lt;br /&gt;
of accomplishing this, listed in the order of preference:&lt;br /&gt;
&lt;br /&gt;
(1) Build your server certificates with the build-key-server&lt;br /&gt;
    script.  This will designate the certificate as a&lt;br /&gt;
    server-only certificate by setting nsCertType=server.&lt;br /&gt;
    Now add the following line to your client configuration:&lt;br /&gt;
&lt;br /&gt;
    ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
    This will block clients from connecting to any&lt;br /&gt;
    server which lacks the nsCertType=server designation&lt;br /&gt;
    in its certificate, even if the certificate has been&lt;br /&gt;
    signed by the CA which is cited in the OpenVPN configuration&lt;br /&gt;
    file (--ca directive).&lt;br /&gt;
&lt;br /&gt;
(2) Use the --tls-remote directive on the client to&lt;br /&gt;
    accept/reject the server connection based on the common&lt;br /&gt;
    name of the server certificate.&lt;br /&gt;
&lt;br /&gt;
(3) Use a --tls-verify script or plugin to accept/reject the&lt;br /&gt;
    server connection based on a custom test of the server&lt;br /&gt;
    certificate's embedded X509 subject details.&lt;br /&gt;
IMPORTANT&lt;br /&gt;
&lt;br /&gt;
To avoid a possible Man-in-the-Middle attack where an authorized&lt;br /&gt;
client tries to connect to another client by impersonating the&lt;br /&gt;
server, make sure to enforce some kind of server certificate&lt;br /&gt;
verification by clients.  There are currently four different ways&lt;br /&gt;
of accomplishing this, listed in the order of preference:&lt;br /&gt;
&lt;br /&gt;
(1) Build your server certificates with the build-key-server&lt;br /&gt;
    script.  This will designate the certificate as a&lt;br /&gt;
    server-only certificate by setting nsCertType=server.&lt;br /&gt;
    Now add the following line to your client configuration:&lt;br /&gt;
&lt;br /&gt;
    ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
    This will block clients from connecting to any&lt;br /&gt;
    server which lacks the nsCertType=server designation&lt;br /&gt;
    in its certificate, even if the certificate has been&lt;br /&gt;
    signed by the CA which is cited in the OpenVPN configuration&lt;br /&gt;
    file (--ca directive).&lt;br /&gt;
&lt;br /&gt;
(2) Use the --tls-remote directive on the client to&lt;br /&gt;
    accept/reject the server connection based on the common&lt;br /&gt;
    name of the server certificate.&lt;br /&gt;
&lt;br /&gt;
(3) Use a --tls-verify script or plugin to accept/reject the&lt;br /&gt;
    server connection based on a custom test of the server&lt;br /&gt;
    certificate's embedded X509 subject details.&lt;br /&gt;
&lt;br /&gt;
(4) Sign server certificates with one CA and client certificates&lt;br /&gt;
    with a different CA.  The client config &amp;quot;ca&amp;quot; directive should&lt;br /&gt;
    reference the server-signing CA while the server config &amp;quot;ca&amp;quot;&lt;br /&gt;
    directive should reference the client-signing CA.&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Show certificate fields:&lt;br /&gt;
  openssl x509 -in cert.crt -text&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd easy-rsa&lt;br /&gt;
# vi vars&lt;br /&gt;
. vars&lt;br /&gt;
./clean-all&lt;br /&gt;
&lt;br /&gt;
## BUILD YOUR OWN ROOT CERTIFICATE AUTHORITY (CA) CERTIFICATE/KEY&lt;br /&gt;
./build.ca&lt;br /&gt;
&lt;br /&gt;
## BUILD AN INTERMEDIATE CERTIFICATE AUTHORITY CERTIFICATE/KEY (optional)&lt;br /&gt;
./build-inter inter&lt;br /&gt;
&lt;br /&gt;
## BUILD DIFFIE-HELLMAN PARAMETERS (necessary for the server end of a SSL/TLS connection).&lt;br /&gt;
./build.dh&lt;br /&gt;
&lt;br /&gt;
## BUILD A CERTIFICATE SIGNING REQUEST &lt;br /&gt;
## (If you want to sign your certificate with a root certificate controlled by another individual &lt;br /&gt;
## or organization, or residing on a different machine)&lt;br /&gt;
&lt;br /&gt;
./build-req mycert&lt;br /&gt;
## SIGN A CERTIFICATE SIGNING REQUEST&lt;br /&gt;
./sign-req mycert&lt;br /&gt;
&lt;br /&gt;
## BUILD AND SIGN A CERTIFICATE SIGNING REQUEST USING A LOCALLY INSTALLED ROOT CERTIFICATE/KEY&lt;br /&gt;
./build-key mycert (no password protection)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-pass mycert (with password protection)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-pkcs12 mycert (PKCS #12 format)&lt;br /&gt;
OR &lt;br /&gt;
./build-key-server mycert (with nsCertType=server)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konfigurasi Server==&lt;br /&gt;
&lt;br /&gt;
edit server.conf '''''vi /etc/openvpn/server.conf'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Mode Server&lt;br /&gt;
mode server&lt;br /&gt;
&lt;br /&gt;
## Local Host Name/IP Server&lt;br /&gt;
;local 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
## Protocol&lt;br /&gt;
;proto tcp&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Port&lt;br /&gt;
; port 1194&lt;br /&gt;
&lt;br /&gt;
## Device Interface&lt;br /&gt;
;dev tap&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## TAP-Win32 adapter name&lt;br /&gt;
;dev-node MyTap&lt;br /&gt;
&lt;br /&gt;
## SSL/TLS &lt;br /&gt;
## root certificate (ca)&lt;br /&gt;
## certificate (cert)&lt;br /&gt;
## private key (key)&lt;br /&gt;
ca /etc/openvpn/certs/ca.crt&lt;br /&gt;
cert /etc/openvpn/certs/server.crt&lt;br /&gt;
key /etc/openvpn/certs/server.key&lt;br /&gt;
&lt;br /&gt;
## Diffie hellman parameters&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## VPN subnet&lt;br /&gt;
server 10.8.0.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
##ethernet bridging&lt;br /&gt;
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100&lt;br /&gt;
&lt;br /&gt;
## dhcpcaveats&lt;br /&gt;
;push &amp;quot;route 192.168.10.0 255.255.255.0&amp;quot;&lt;br /&gt;
;push &amp;quot;route 192.168.20.0 255.255.255.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;client-config-dir ccd&lt;br /&gt;
&lt;br /&gt;
;route 192.168.40.128 255.255.255.248&lt;br /&gt;
&lt;br /&gt;
;client-config-dir ccd&lt;br /&gt;
&lt;br /&gt;
;route 10.9.0.0 255.255.255.252&lt;br /&gt;
&lt;br /&gt;
;learn-address ./script&lt;br /&gt;
&lt;br /&gt;
## dhcpcaveats&lt;br /&gt;
;push &amp;quot;redirect-gateway&amp;quot;&lt;br /&gt;
;push &amp;quot;dhcp-option DNS 10.8.0.1&amp;quot;&lt;br /&gt;
;push &amp;quot;dhcp-option WINS 10.8.0.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
##&lt;br /&gt;
;client-to-client&lt;br /&gt;
&lt;br /&gt;
## same &amp;quot;COMMON NAME&amp;quot; certificate/key&lt;br /&gt;
;duplicate-cn&lt;br /&gt;
&lt;br /&gt;
## Status Connection&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
## tls-auth key&lt;br /&gt;
;tls-auth ta.key 0 &lt;br /&gt;
&lt;br /&gt;
## Cryptographic cipher&lt;br /&gt;
;cipher BF-CBC        # Blowfish (default)&lt;br /&gt;
;cipher AES-128-CBC   # AES&lt;br /&gt;
;cipher DES-EDE3-CBC  # Triple-DES&lt;br /&gt;
&lt;br /&gt;
## Link Compresion&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
## Max Client Connections&lt;br /&gt;
;max-clients 100&lt;br /&gt;
&lt;br /&gt;
## daemon privileges (non windows saja)&lt;br /&gt;
user nobody&lt;br /&gt;
group nobody&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
## Openvpn Log&lt;br /&gt;
;log         /var/log/openvpn/openvpn.log&lt;br /&gt;
;log-append  /var/log/openvpn/openvpn.log&lt;br /&gt;
&lt;br /&gt;
## Output Log&lt;br /&gt;
status /var/log/openvpn/openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
## Log Verbosity&lt;br /&gt;
## 0 is silent, except for fatal errors&lt;br /&gt;
## 4 is reasonable for general usage&lt;br /&gt;
## 5 and 6 can help to debug connection problems&lt;br /&gt;
## 9 is extremely verbose&lt;br /&gt;
verb 3&lt;br /&gt;
&lt;br /&gt;
## Repeating Messages&lt;br /&gt;
;mute 20&lt;br /&gt;
&lt;br /&gt;
## Pid File&lt;br /&gt;
writepid /var/run/openvpn.pid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Routing'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
route add -net 10.0.1.0 netmask 255.255.255.0 gw 10.4.0.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Firewall'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -A INPUT -p udp -s 1.2.3.4 --dport 1194 -j ACCEPT&lt;br /&gt;
OR&lt;br /&gt;
iptables -A INPUT -p udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Tun Device&lt;br /&gt;
iptables -A INPUT -i tun+ -j ACCEPT&lt;br /&gt;
iptables -A FORWARD -i tun+ -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Tap Device&lt;br /&gt;
iptables -A INPUT -i tap+ -j ACCEPT&lt;br /&gt;
iptables -A FORWARD -i tap+ -j ACCEPT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Konfigurasi client==&lt;br /&gt;
&lt;br /&gt;
edit file client.conf '''''vi /etc/openvpn/client.conf'''''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Config&lt;br /&gt;
client&lt;br /&gt;
&lt;br /&gt;
## Device Interface&lt;br /&gt;
;dev tap&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Tap adapter name (Win only)&lt;br /&gt;
;dev-node MyTap&lt;br /&gt;
&lt;br /&gt;
## Conectivity&lt;br /&gt;
;proto tcp&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Server [hostname/ip] [port]&lt;br /&gt;
remote my-server-1 1194&lt;br /&gt;
;remote my-server-2 1194&lt;br /&gt;
&lt;br /&gt;
## load-balancing&lt;br /&gt;
;remote-random&lt;br /&gt;
&lt;br /&gt;
## resolve host name OpenVPN server&lt;br /&gt;
resolv-retry infinite&lt;br /&gt;
&lt;br /&gt;
# local port&lt;br /&gt;
nobind&lt;br /&gt;
&lt;br /&gt;
## privileges (non windows saja)&lt;br /&gt;
user nobody&lt;br /&gt;
group nobody&lt;br /&gt;
&lt;br /&gt;
## preserve&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
## HTTP proxy&lt;br /&gt;
;http-proxy-retry &lt;br /&gt;
;http-proxy [proxy server] [proxy port]&lt;br /&gt;
&lt;br /&gt;
## duplicate packet warnings&lt;br /&gt;
;mute-replay-warnings&lt;br /&gt;
&lt;br /&gt;
## SSL/TLS parms&lt;br /&gt;
/etc/openvpn/certs/ca ca.crt&lt;br /&gt;
/etc/openvpn/certs/cert client.crt&lt;br /&gt;
/etc/openvpn/certs/key client.key&lt;br /&gt;
&lt;br /&gt;
## nsCertType key&lt;br /&gt;
;ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
## tls-auth key&lt;br /&gt;
;tls-auth /etc/openvpn/certs/ta.key 1&lt;br /&gt;
&lt;br /&gt;
## Cryptographic cipher&lt;br /&gt;
;cipher x&lt;br /&gt;
&lt;br /&gt;
## Link compression&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
## verbosity&lt;br /&gt;
## 0 is silent, except for fatal errors&lt;br /&gt;
## 4 is reasonable for general usage&lt;br /&gt;
## 5 and 6 can help to debug connection problems&lt;br /&gt;
## 9 is extremely verbose&lt;br /&gt;
verb 3&lt;br /&gt;
&lt;br /&gt;
## repeating messages&lt;br /&gt;
;mute 20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Routing'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.4.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
'''Example 1:''' A simple tunnel without security&amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 --verb 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 --verb 9 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
'''Example 2:''' A tunnel with static-key security (i.e. using a pre-shared secret)&amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 \&lt;br /&gt;
--verb 5 --secret key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 \&lt;br /&gt;
--verb 5 --secret key &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
'''Example 3:''' A tunnel with full TLS-based security &amp;lt;br&amp;gt;&lt;br /&gt;
'''On May: Server Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote jun.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 \&lt;br /&gt;
--tls-client --ca tmp-ca.crt --cert client.crt --key client.key \&lt;br /&gt;
--reneg-sec 60 --verb 5 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''On Jun: Client Side'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openvpn --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 \&lt;br /&gt;
--tls-server --ca tmp-ca.crt --cert server.crt --key server.key \&lt;br /&gt;
--reneg-sec 60 --verb 5 --dh dh1024.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On May:&lt;br /&gt;
&lt;br /&gt;
    ping 10.4.0.2 &lt;br /&gt;
&lt;br /&gt;
On Jun:&lt;br /&gt;
&lt;br /&gt;
    ping 10.4.0.1&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
* http://dmalloc.com/&lt;br /&gt;
* http://valgrind.org/&lt;br /&gt;
* http://www.oberhumer.com/opensource/lzo/&lt;br /&gt;
* http://openvpn.net/&lt;br /&gt;
* http://openvpn.net/howto.html&lt;br /&gt;
* http://openvpn.net/1xhowto.html (Old-v1.06)&lt;br /&gt;
* http://openvpn.net/man.html&lt;/div&gt;</description>
			<pubDate>Wed, 06 Jun 2012 23:43:07 GMT</pubDate>
			<dc:creator>Arfon</dc:creator>
			<comments>https://www.slackwiki.com/Talk:OpenVPN(ID)</comments>
		</item>
</channel></rss>