<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OpenVPN &#8211; Johnny Morano&#039;s Tech Articles</title>
	<atom:link href="https://jmorano.moretrix.com/tag/openvpn/feed/" rel="self" type="application/rss+xml" />
	<link>https://jmorano.moretrix.com</link>
	<description>Ramblings of an old-fashioned space cowboy</description>
	<lastBuildDate>Tue, 04 Sep 2012 07:01:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>

<image>
	<url>https://jmorano.moretrix.com/wp-content/uploads/2022/04/cropped-jmorano_emblem-32x32.png</url>
	<title>OpenVPN &#8211; Johnny Morano&#039;s Tech Articles</title>
	<link>https://jmorano.moretrix.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Connect your home and company networks with OpenVPN</title>
		<link>https://jmorano.moretrix.com/2011/06/connect-your-home-and-company-networks-with-openvpn/</link>
					<comments>https://jmorano.moretrix.com/2011/06/connect-your-home-and-company-networks-with-openvpn/#respond</comments>
		
		<dc:creator><![CDATA[insaniac]]></dc:creator>
		<pubDate>Wed, 22 Jun 2011 14:27:41 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[IPTables]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[OpenVPN]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<guid isPermaLink="false">http://jmorano.moretrix.com/?p=618</guid>

					<description><![CDATA[Introduction OpenVPN is an opensource Virtual Private Networking (VPN) solution which can be downloaded freely on the Internet.&#8230;]]></description>
										<content:encoded><![CDATA[<h4>Introduction</h4>
<p><a href="http://www.openvpn.net/">OpenVPN</a> is an opensource Virtual Private Networking (VPN) solution which can be downloaded freely on the Internet. It also included in almost every Linux distro to-date, so it can be easily installed using your distro&#8217;s favourite package manager tools. It uses the SSL/TLS VPN stacks, which makes it different from almost every other VPN solution (which are usually based on IPSec).</p>
<p>This guide will described how OpenVPN can be installed and configured on a Debian system, so that it can be used as a means to connect to your home and company networks. </p>
<p><span id="more-618"></span></p>
<h4>The Server</h4>
<p>First install the openvpn package:</p>
<pre class="brush:bash"># apt-get install openvpn</pre>
<p>If apt-get suggests extra packages to install, just install them!</p>
<p>Two networks will be created:<br />
* one to create a secure network for servers: 192.168.1.0/24<br />
* one to create a secure network of client PC&#8217;s, Macbooks, Linux desktops, &#8230; : 10.66.99.0/24</p>
<p>Next, we will need an OpenVPN configuration file for the OpenVPN we&#8217;re about to create:</p>
<pre class="brush:bash">
.oO( ieyasu | /etc/openvpn )Oo. cat server.conf 
# LIKE A BOSS
local 176.9.64.17
port 1194
proto udp
dev tun0

mode server
tls-server

persist-key
persist-tun

#certificates and encryption
ca ca.crt
cert ieyasu.crt
key ieyasu.key
dh dh2048.pem
tls-auth ta.key 0
cipher AES-256-CBC
comp-lzo

server 192.168.1.0 255.255.255.0
route  10.66.99.0 255.255.255.0

ifconfig-pool-persist ipp.txt
push "route 10.66.99.0 255.255.255.0"

# separate client configs
client-config-dir ccd

#log and security
user nobody
group nogroup
keepalive 5 30
status /var/log/openvpn-status.log
verb 3
</pre>
<p>We will also need some firewall rules allowing our OpenVPN traffic:</p>
<pre class="brush:bash">
$IPTABLES -A INPUT   -i tun0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j ACCEPT
$IPTABLES -A INPUT   -i tun0 -s 10.66.99.0/24  -d 192.168.1.1    -j ACCEPT
$IPTABLES -A INPUT   -i tun0 -s 10.66.99.0/24  -d 10.66.99.0/24  -j ACCEPT

$IPTABLES -P FORWARD DROP
$IPTABLES -A FORWARD -i tun0 -s 10.66.99.0/24  -d 192.168.1.1    -j ACCEPT
$IPTABLES -A FORWARD -i tun0 -s 10.66.99.0/24  -d 10.66.99.0/24  -j ACCEPT
$IPTABLES -A FORWARD -i tun0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j ACCEPT

$IPTABLES -A INPUT -p udp --dport 1194 -j ACCEPT
</pre>
<p>Now we need to create a CCD file for each client. The CCD file contains the network settings for the connection OpenVPN clients.<br />
Example:</p>
<pre class="brush:bash">
.oO( ieyasu | ~ )Oo. cat /etc/openvpn/ccd/bear
ifconfig-push 192.168.1.11 192.168.1.12
.oO( ieyasu | ~ )Oo. cat /etc/openvpn/ccd/lion
ifconfig-push 10.66.99.3 10.66.99.4
</pre>
<p>The final thing to do for the OpenVPN server, is to create the x509 certificates.</p>
<p>First:</p>
<pre class="brush:bash">
# mkdir /etc/openvpn/easy-rsa/
# cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
</pre>
<p>This will copy the required tools for creating the certificates for both the server as the clients.</p>
<p>Next, specify your information in /etc/openvpn/easy-rsa/vars, only the bottom is of real importance:</p>
<pre class="brush:bash">
vi /etc/openvpn/easy-rsa/vars
*snip*
# 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="BE"
export KEY_PROVINCE="LIM"
export KEY_CITY="As"
export KEY_ORG="MORETRIX"
export KEY_EMAIL="info@moretrix.com"
</pre>
<p>Finally we will create the CA and the server certificate (we&#8217;re making a 2048 one!):</p>
<pre class="brush:bash">
# cd /etc/openvpn/easy-rsa/
# chown -R root:admin .
# chmod g+w .
# source ./vars
# ./clean-all
# ./build-dh
# ./pkitool --initca
# ./pkitool --server server
# cd keys
# openvpn --genkey --secret ta.key
# cp server.crt server.key ca.crt dh2048.pem ta.key ../../
</pre>
<p>Finally we just need to start the OpenVPN service and the server is ready!</p>
<pre class="brush:bash">
# /etc/init.d/openvpn restart
</pre>
<h4>The Clients</h4>
<p>Every client will need his own x509 certificate:</p>
<pre class="brush:bash">
# cd /etc/openvpn/easy-rsa
# ./pkitool bear
</pre>
<p><strong>bear</strong> is the name of the client host.</p>
<p>Now create a client configuration file, let&#8217;s call it <em>bear.conf</em> and we&#8217;ll save in it <em>/tmp/client_config/</em>:</p>
<pre class="brush:bash">
client
dev tun
remote 176.9.64.17 1194
nobind
resolv-retry infinite
persist-key
persist-tun
ca ca.crt
cert bear.crt
key bear.key
tls-auth ta.key 1
cipher AES-256-CBC
comp-lzo
verb 3
</pre>
<p>Finally grab all the files the client will need</p>
<pre class="brush:bash">
# cd /etc/openvpn/easy-rsa/keys/
# cp ca.crt ta.key bear.crt bear.key /tmp/client_config/
# cd /tmp/client_config/
# ls -ltr
total 24
-rw------- 1 root root  636 Jun 22 16:17 ta.key
-rw-r--r-- 1 root root 1537 Jun 22 16:17 ca.crt
-rw-r--r-- 1 root root 5053 Jun 22 16:17 bear.crt
-rw------- 1 root root 1704 Jun 22 16:17 bear.key
-rw-r--r-- 1 root root  185 Jun 22 16:17 bear.conf
</pre>
<p>If the client also uses the OpenVPN command line tools, just copy the above files to /etc/openvpn and restart the openvpn service.</p>
<pre class="brush:bash">
root@bear:/etc/openvpn# ls -ltr
total 28
-rwxr-xr-x 1 root root 1357 2011-03-11 02:03 update-resolv-conf
-rw-r--r-- 1 root root  636 2011-06-20 22:40 ta.key
-rw-r--r-- 1 root root 1537 2011-06-20 22:40 ca.crt
-rw-r--r-- 1 root root 1704 2011-06-20 22:40 bear.key
-rw-r--r-- 1 root root 5053 2011-06-20 22:40 bear.crt
-rw-r--r-- 1 root root  185 2011-06-21 20:13 bear.conf
root@bear:/etc/openvpn# /etc/init.d/openvpn restart
</pre>
<h4>Resources</h4>
<p>* <a href="https://help.ubuntu.com/community/OpenVPN">https://help.ubuntu.com/community/OpenVPN</a><br />
* <a href="http://openvpn.net/index.php/open-source/documentation/howto.html">http://openvpn.net/index.php/open-source/documentation/howto.html</a><br />
* <a href="http://openvpn.net/index.php/open-source/documentation/miscellaneous/76-ethernet-bridging.html">http://openvpn.net/index.php/open-source/documentation/miscellaneous/76-ethernet-bridging.html</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jmorano.moretrix.com/2011/06/connect-your-home-and-company-networks-with-openvpn/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
