Install and configure OpenVPN Server on Ubuntu 13.04 12.10 Debian

Install and configure OpenVPN Server on Ubuntu 13.04 12.10 Debian

openVPN Server

Step 1: Install OpenVPN on Ubuntu 13.04 12.10 Debian

root@ubuntu:~# apt-get install bridge-utils openvpn libssl-dev openssl
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
binutils cpp cpp-4.7 gcc gcc-4.7 libc-dev-bin libc6-dev libcloog-ppl1 libgcc-4.7-dev libgmp10 libgmpxx4ldbl libgomp1 libitm1 liblzo2-2 libmpc2 libmpfr4 libpkcs11-helper1 libppl-c4 libppl12
libquadmath0 libssl-doc libssl1.0.0 linux-libc-dev manpages-dev zlib1g-dev
Suggested packages:
binutils-doc cpp-doc gcc-4.7-locales gcc-multilib make autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.7-multilib libmudflap0-4.7-dev gcc-4.7-doc libgcc1-dbg libgomp1-dbg libitm1-dbg
libquadmath0-dbg libmudflap0-dbg binutils-gold glibc-doc
The following NEW packages will be installed:
binutils bridge-utils cpp cpp-4.7 gcc gcc-4.7 libc-dev-bin libc6-dev libcloog-ppl1 libgcc-4.7-dev libgmp10 libgmpxx4ldbl libgomp1 libitm1 liblzo2-2 libmpc2 libmpfr4 libpkcs11-helper1 libppl-c4
libppl12 libquadmath0 libssl-dev libssl-doc linux-libc-dev manpages-dev openvpn zlib1g-dev
The following packages will be upgraded:
libssl1.0.0 openssl
2 upgraded, 27 newly installed, 0 to remove and 33 not upgraded.
Need to get 5,109 kB/30.0 MB of archives.
After this operation, 75.2 MB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://us.archive.ubuntu.com/ubuntu/ raring-updates/main libssl1.0.0 amd64 1.0.1c-4ubuntu8.1 [1,050 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ raring-updates/main openssl amd64 1.0.1c-4ubuntu8.1 [525 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu/ raring-updates/main linux-libc-dev amd64 3.8.0-26.38 [921 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu/ raring-updates/main libssl-dev amd64 1.0.1c-4ubuntu8.1 [1,578 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu/ raring-updates/main libssl-doc all 1.0.1c-4ubuntu8.1 [1,035 kB]
Fetched 5,109 kB in 49s (102 kB/s)
Preconfiguring packages …
(Reading database … 59595 files and directories currently installed.)
Preparing to replace libssl1.0.0:amd64 1.0.1c-4ubuntu8 (using …/libssl1.0.0_1.0.1c-4ubuntu8.1_amd64.deb) …
Unpacking replacement libssl1.0.0:amd64 …
Selecting previously unselected package libgmp10:amd64.
Unpacking libgmp10:amd64 (from …/libgmp10_2%3a5.0.5+dfsg-2ubuntu3_amd64.deb) …
Selecting previously unselected package libgmpxx4ldbl:amd64.
Unpacking libgmpxx4ldbl:amd64 (from …/libgmpxx4ldbl_2%3a5.0.5+dfsg-2ubuntu3_amd64.deb) …
Selecting previously unselected package libppl12:amd64.
Unpacking libppl12:amd64 (from …/libppl12_1.0-1ubuntu2_amd64.deb) …
Selecting previously unselected package libppl-c4:amd64.
Unpacking libppl-c4:amd64 (from …/libppl-c4_1.0-1ubuntu2_amd64.deb) …
Selecting previously unselected package libcloog-ppl1:amd64.
Unpacking libcloog-ppl1:amd64 (from …/libcloog-ppl1_0.16.1-1_amd64.deb) …
Selecting previously unselected package libgomp1:amd64.
Unpacking libgomp1:amd64 (from …/libgomp1_4.7.3-1ubuntu1_amd64.deb) …
Selecting previously unselected package libitm1:amd64.
Unpacking libitm1:amd64 (from …/libitm1_4.7.3-1ubuntu1_amd64.deb) …
Selecting previously unselected package liblzo2-2:amd64.
Unpacking liblzo2-2:amd64 (from …/liblzo2-2_2.06-1build1_amd64.deb) …
Selecting previously unselected package libmpfr4:amd64.
Unpacking libmpfr4:amd64 (from …/libmpfr4_3.1.1-1_amd64.deb) …
Selecting previously unselected package libpkcs11-helper1:amd64.
Unpacking libpkcs11-helper1:amd64 (from …/libpkcs11-helper1_1.09-1build1_amd64.deb) …
Selecting previously unselected package libquadmath0:amd64.
Unpacking libquadmath0:amd64 (from …/libquadmath0_4.7.3-1ubuntu1_amd64.deb) …
Selecting previously unselected package libmpc2:amd64.
Unpacking libmpc2:amd64 (from …/libmpc2_0.9-4build1_amd64.deb) …
Preparing to replace openssl 1.0.1c-4ubuntu8 (using …/openssl_1.0.1c-4ubuntu8.1_amd64.deb) …
Unpacking replacement openssl …
Selecting previously unselected package binutils.
Unpacking binutils (from …/binutils_2.23.2-2ubuntu1_amd64.deb) …
Selecting previously unselected package bridge-utils.
Unpacking bridge-utils (from …/bridge-utils_1.5-6ubuntu1_amd64.deb) …
Selecting previously unselected package cpp-4.7.
Unpacking cpp-4.7 (from …/cpp-4.7_4.7.3-1ubuntu1_amd64.deb) …
Selecting previously unselected package cpp.
Unpacking cpp (from …/cpp_4%3a4.7.3-1ubuntu10_amd64.deb) …
Selecting previously unselected package libgcc-4.7-dev:amd64.
Unpacking libgcc-4.7-dev:amd64 (from …/libgcc-4.7-dev_4.7.3-1ubuntu1_amd64.deb) …
Selecting previously unselected package gcc-4.7.
Unpacking gcc-4.7 (from …/gcc-4.7_4.7.3-1ubuntu1_amd64.deb) …
Selecting previously unselected package gcc.
Unpacking gcc (from …/gcc_4%3a4.7.3-1ubuntu10_amd64.deb) …
Selecting previously unselected package libc-dev-bin.
Unpacking libc-dev-bin (from …/libc-dev-bin_2.17-0ubuntu5_amd64.deb) …
Selecting previously unselected package linux-libc-dev:amd64.
Unpacking linux-libc-dev:amd64 (from …/linux-libc-dev_3.8.0-26.38_amd64.deb) …
Selecting previously unselected package libc6-dev:amd64.
Unpacking libc6-dev:amd64 (from …/libc6-dev_2.17-0ubuntu5_amd64.deb) …
Selecting previously unselected package zlib1g-dev:amd64.
Unpacking zlib1g-dev:amd64 (from …/zlib1g-dev_1%3a1.2.7.dfsg-13ubuntu2_amd64.deb) …
Selecting previously unselected package libssl-dev.
Unpacking libssl-dev (from …/libssl-dev_1.0.1c-4ubuntu8.1_amd64.deb) …
Selecting previously unselected package libssl-doc.
Unpacking libssl-doc (from …/libssl-doc_1.0.1c-4ubuntu8.1_all.deb) …
Selecting previously unselected package manpages-dev.
Unpacking manpages-dev (from …/manpages-dev_3.44-0ubuntu1_all.deb) …
Selecting previously unselected package openvpn.
Unpacking openvpn (from …/openvpn_2.2.1-8ubuntu3_amd64.deb) …
Processing triggers for man-db …
Processing triggers for ureadahead …
ureadahead will be reprofiled on next reboot
Setting up libssl1.0.0:amd64 (1.0.1c-4ubuntu8.1) …
Setting up libgmp10:amd64 (2:5.0.5+dfsg-2ubuntu3) …
Setting up libgmpxx4ldbl:amd64 (2:5.0.5+dfsg-2ubuntu3) …
Setting up libppl12:amd64 (1.0-1ubuntu2) …
Setting up libppl-c4:amd64 (1.0-1ubuntu2) …
Setting up libcloog-ppl1:amd64 (0.16.1-1) …
Setting up libgomp1:amd64 (4.7.3-1ubuntu1) …
Setting up libitm1:amd64 (4.7.3-1ubuntu1) …
Setting up liblzo2-2:amd64 (2.06-1build1) …
Setting up libmpfr4:amd64 (3.1.1-1) …
Setting up libpkcs11-helper1:amd64 (1.09-1build1) …
Setting up libquadmath0:amd64 (4.7.3-1ubuntu1) …
Setting up libmpc2:amd64 (0.9-4build1) …
Setting up openssl (1.0.1c-4ubuntu8.1) …
Setting up binutils (2.23.2-2ubuntu1) …
Setting up bridge-utils (1.5-6ubuntu1) …
Setting up cpp-4.7 (4.7.3-1ubuntu1) …
Setting up cpp (4:4.7.3-1ubuntu10) …
Setting up libgcc-4.7-dev:amd64 (4.7.3-1ubuntu1) …
Setting up gcc-4.7 (4.7.3-1ubuntu1) …
Setting up gcc (4:4.7.3-1ubuntu10) …
Setting up libc-dev-bin (2.17-0ubuntu5) …
Setting up linux-libc-dev:amd64 (3.8.0-26.38) …
Setting up libc6-dev:amd64 (2.17-0ubuntu5) …
Setting up zlib1g-dev:amd64 (1:1.2.7.dfsg-13ubuntu2) …
Setting up libssl-dev (1.0.1c-4ubuntu8.1) …
Setting up libssl-doc (1.0.1c-4ubuntu8.1) …
Setting up manpages-dev (3.44-0ubuntu1) …
Setting up openvpn (2.2.1-8ubuntu3) …
* Restarting virtual private network daemon(s)… * No VPN is running.
Processing triggers for libc-bin …
ldconfig deferred processing now taking place
Processing triggers for ureadahead …
root@ubuntu:~#

Step 2: Create OpenVPN Server certificate

root@ubuntu:~# cd /etc/openvpn
root@ubuntu:/etc/openvpn# cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 ./easy-rsa
root@ubuntu:/etc/openvpn# ls
easy-rsa update-resolv-conf
root@ubuntu:/etc/openvpn# nano easy-rsa/vars
# easy-rsa parameter settings
# NOTE: If you installed from an RPM,
# don’t edit this file in place in
# /usr/share/openvpn/easy-rsa –
# instead, you should copy the whole
# easy-rsa directory to another location
# (such as /etc/openvpn) so that your
# edits will not be wiped out by a future
# OpenVPN package upgrade.# This variable should point to
# the top level of the easy-rsa
# tree.
export EASY_RSA=”/etc/openvpn/easy-rsa”
#
# This variable should point to
# the requested executables
#
export OPENSSL=”openssl”
export PKCS11TOOL=”pkcs11-tool”
export GREP=”grep”
# This variable should point to
# the openssl.cnf file included
# with easy-rsa.
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`# Edit this variable to point to
# your soon-to-be-created key
# directory.
#
# WARNING: clean-all will do
# a rm -rf on this directory
# so make sure you define
# it correctly!
export KEY_DIR=”$EASY_RSA/keys”# Issue rm -rf warning
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR# PKCS11 fixes
export PKCS11_MODULE_PATH=”dummy”
export PKCS11_PIN=”dummy”# Increase this to 2048 if you
# are paranoid. This will slow
# down TLS negotiation performance
# as well as the one-time DH parms
# generation process.
export KEY_SIZE=1024# In how many days should the root CA key expire?
export CA_EXPIRE=3650# In how many days should certificates expire?
export KEY_EXPIRE=3650# These are the default values for fields
# which will be placed in the certificate.
# Don’t leave any of these fields blank.
export KEY_COUNTRY=”US”
export KEY_PROVINCE=”CA”
export KEY_CITY=”SanFrancisco”
export KEY_ORG=”Fort-Funston”
export KEY_EMAIL=”me@myhost.mydomain”
export KEY_EMAIL=mail@host.domain
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=changeme
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234
root@ubuntu:/etc/openvpn/easy-rsa#
root@ubuntu:/etc/openvpn/easy-rsa# chmod 755 vars
root@ubuntu:/etc/openvpn/easy-rsa# ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys
root@ubuntu:/etc/openvpn/easy-rsa# ./clean-all
root@ubuntu:/etc/openvpn/easy-rsa# ln -s openssl-1.0.0.cnf openssl.cnf
root@ubuntu:/etc/openvpn/easy-rsa# ls
build-ca build-key build-key-server clean-all list-crl openssl-0.9.8.cnf openssl.cnf revoke-full vars
build-dh build-key-pass build-req inherit-inter Makefile openssl-1.0.0.cnf pkitool sign-req whichopensslcnf
build-inter build-key-pkcs12 build-req-pass keys openssl-0.9.6.cnf openssl-1.0.0.cnf-old-copy README.gz tmp
root@ubuntu:/etc/openvpn/easy-rsa#
root@ubuntu:/etc/openvpn/easy-rsa# ./build-ca OpenVPN-IThelpblog.com-Server
Generating a 1024 bit RSA private key
…………….++++++
…++++++
writing new private key to ‘ca.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [US]:
State or Province Name (full name) [CA]:
Locality Name (eg, city) [SanFrancisco]:
Organization Name (eg, company) [Fort-Funston]:
Organizational Unit Name (eg, section) [changeme]:
Common Name (eg, your name or your server’s hostname) [changeme]:OpenVPN-IThelpblog.com-Server
Name [changeme]:OpenVPN-IThelpblog.com-Server
Email Address [mail@host.domain]:kevin.ngo@ithelpblog.com
root@ubuntu:/etc/openvpn/easy-rsa#
root@ubuntu:/etc/openvpn/easy-rsa# ./build-key-server OpenVPN-Ithelpblog.com-serverkey
Generating a 1024 bit RSA private key
……………………………………..++++++
………..++++++
writing new private key to ‘OpenVPN-Ithelpblog.com-serverkey.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [US]:
State or Province Name (full name) [CA]:
Locality Name (eg, city) [SanFrancisco]:
Organization Name (eg, company) [Fort-Funston]:
Organizational Unit Name (eg, section) [changeme]:OpenVPN-Ithelpblog.com
Common Name (eg, your name or your server’s hostname) [OpenVPN-Ithelpblog.com-serverkey]:
Name [changeme]:OpenVPN-Ithelpblog.com
Email Address [mail@host.domain]:kevin.ngo@ithelpblog.comPlease enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName :PRINTABLE:’US’
stateOrProvinceName :PRINTABLE:’CA’
localityName :PRINTABLE:’SanFrancisco’
organizationName :PRINTABLE:’Fort-Funston’
organizationalUnitName:PRINTABLE:’OpenVPN-Ithelpblog.com’
commonName :PRINTABLE:’OpenVPN-Ithelpblog.com-serverkey’
name :PRINTABLE:’OpenVPN-Ithelpblog.com’
emailAddress :IA5STRING:’kevin.ngo@ithelpblog.com’
Certificate is to be certified until Jul 23 09:18:25 2023 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
root@ubuntu:/etc/openvpn/easy-rsa#
root@ubuntu:/etc/openvpn/easy-rsa# ./build-key Client_Kevin
Generating a 1024 bit RSA private key
………………………………….++++++
……………………++++++
writing new private key to ‘Client_Kevin.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [US]:
State or Province Name (full name) [CA]:
Locality Name (eg, city) [SanFrancisco]:
Organization Name (eg, company) [Fort-Funston]:
Organizational Unit Name (eg, section) [changeme]:OpenVPN-Ithelpblog.com
Common Name (eg, your name or your server’s hostname) [Client_Kevin]:
Name [changeme]:
Email Address [mail@host.domain]:Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName :PRINTABLE:’US’
stateOrProvinceName :PRINTABLE:’CA’
localityName :PRINTABLE:’SanFrancisco’
organizationName :PRINTABLE:’Fort-Funston’
organizationalUnitName:PRINTABLE:’OpenVPN-Ithelpblog.com’
commonName :T61STRING:’Client_Kevin’
name :PRINTABLE:’changeme’
emailAddress :IA5STRING:’mail@host.domain’
Certificate is to be certified until Jul 23 09:19:38 2023 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
root@ubuntu:/etc/openvpn/easy-rsa#
root@ubuntu:/etc/openvpn/easy-rsa# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
………………………………………………………………………+………………………………………………………..+………….+…………………………………………………………………………………………………………………….+……………………………………………+…………………..+……………………………………………………………………………..+………….+………+……….+……………………+………………………………………………+………………………………………………………………………………………….+……………………………………..+………………………………………….+……………………………………………………………………………………….+………………………………………………..+………………………………………….+…………………………………………………………………+……+…………………………………………………………………………………………………+……………..+…………………………………..+………………………………………….+…………………………….+…..+…………………….+……………..+………………………………………………………………………………………..+………………………………………………………………………………………………………+…+…………………………………………………………….+..+…………………………………………….+…………………………………………………………….+…+…………………………………………………………………………+……………+…………………………………….+….+……………………+……….+.+…………………………+……………………………….+……………………………………….+…………+……………………………………………………………….+…….+…………………………………………….+…………………………………+…………………………………………………………………………………+……………+………………………………………………………………+……….+.+……………………………………………………………………………………++*++*++*
root@ubuntu:/etc/openvpn/easy-rsa#

Step 3: Create OpenVPN Server configuration – 10.111.5.0/24 is Client Subnets.

root@ubuntu:/etc/openvpn/easy-rsa# cd ..
root@ubuntu:/etc/openvpn# ls
easy-rsa update-resolv-conf
root@ubuntu:/etc/openvpn# nano openvpn.conf
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/OpenVPN-Ithelpblog.com-serverkey.crt
key /etc/openvpn/easy-rsa/keys/OpenVPN-Ithelpblog.com-serverkey.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
user nobody
group nogroup
server 10.111.5.0 255.255.255.0
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
client-to-client
push “redirect-gateway def1″
#set the dns servers
push “dhcp-option DNS 8.8.8.8″
push “dhcp-option DNS 8.8.4.4″
log-append /var/log/openvpn
comp-lzo
root@ubuntu:/etc/openvpn#

Step 4: Enable Routing on Ubuntu Server

root@ubuntu:/etc/openvpn# echo 1 > /proc/sys/net/ipv4/ip_forward
root@ubuntu:/etc/openvpn# nano /etc/sysctl.conf
#
# /etc/sysctl.conf – Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables
# See sysctl.conf (5) for information.
##kernel.domainname = example.com# Uncomment the following to stop low-level messages on console
#kernel.printk = 3 4 1 3##############################################################3
# Functions previously found in netbase
## Uncomment the next two lines to enable Spoof protection (reverse-path filter)
# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1# Uncomment the next line to enable TCP/IP SYN cookies
# See http://lwn.net/Articles/277146/
# Note: This may impact IPv6 TCP sessions too
#net.ipv4.tcp_syncookies=1
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for IPv6
# Enabling this option disables Stateless Address Autoconfiguration
# based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1
###################################################################
# Additional settings – these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Do not accept ICMP redirects (prevent MITM attacks)
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0
#
# Do not accept IP source route packets (we are not a router)
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
root@ubuntu:/etc/openvpn#

Step 5: Start OpenVPN Server

root@ubuntu:/etc/openvpn# /etc/init.d/openvpn start
* Starting virtual private network daemon(s)… * Autostarting VPN ‘openvpn’
root@ubuntu:/etc/openvpn# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:13:45:89 brd ff:ff:ff:ff:ff:ff
inet 192.168.129.151/24 brd 192.168.129.255 scope global eth0
inet6 fe80::20c:29ff:fe13:4589/64 scope link
valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.111.5.1 peer 10.111.5.2/32 scope global tun0
root@ubuntu:/etc/openvpn#

Step 6: Configure OpenVPN Client

http://ithelpblog.com/os/linux/redhat/install-openvpn-client-on-centos-6-3/

http://ithelpblog.com/os/linux/redhat/fedora/install-openvpn-client-on-fedora-core-17/

http://ithelpblog.com/os/linux/debian/ubuntu-debian/install-openvpn-client-on-ubuntu-12/

http://ithelpblog.com/os/windows/install-openvpn-client-on-windows-7/

Thanks for using IThelpblog.com.

 

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>