<?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>linuxbuddies.com &#187; Vpn</title>
	<atom:link href="http://linuxbuddies.com/category/vpn/feed/" rel="self" type="application/rss+xml" />
	<link>http://linuxbuddies.com</link>
	<description>For linux documentations.</description>
	<lastBuildDate>Fri, 11 Sep 2009 10:11:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Open VPN installation</title>
		<link>http://linuxbuddies.com/2008/12/23/open-vpn-installation/</link>
		<comments>http://linuxbuddies.com/2008/12/23/open-vpn-installation/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 12:13:08 +0000</pubDate>
		<dc:creator>Riyesh</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Vpn]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open vpn]]></category>
		<category><![CDATA[remote]]></category>

		<guid isPermaLink="false">http://linuxbuddies.com/?p=189</guid>
		<description><![CDATA[
Install openvpn using the rpm
Installing OpenVPN from a binary RPM package has these dependencies:




openssl 
lzo 
pamInstall rpms as root:# rpm -ivh      openvpn-2.0.5-1.el4.rf.i386.rpm

 
installing rpm 
 

    rpm -ivh lzo-1.08-4.2.el4.rf.i386.rpm



 The main configuration directory for open vpn is /etc/openvpn
Setting up your Certificate Authority (CA) and generating certificates and keys for ...]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-thumbnail wp-image-188" title="vpn-1_sc_connect" src="http://linuxbuddies.com/wp-content/uploads/2008/12/vpn-1_sc_connect-150x150.gif" alt="vpn-1_sc_connect" width="150" height="150" /></p>
<p class="MsoNormal"><strong><span>Install openvpn using the rpm</span></strong><span><br />
Installing OpenVPN from a binary RPM package has these dependencies:</span></p>
<blockquote>
<p class="MsoNormal"><span><br />
</span></p>
<ul type="disc">
<li class="MsoNormal"><span>openssl </span></li>
<li class="MsoNormal"><span>lzo </span></li>
<li class="MsoNormal"><span>pamInstall rpms as root:# rpm -ivh      openvpn-2.0.5-1.el4.rf.i386.rpm</span></li>
</ul>
<p> </p>
<p>installing rpm </p>
<p> </p></blockquote>
<blockquote>
<p class="MsoNormal"><span>    rpm -ivh lzo-1.08-4.2.el4.rf.i386.rpm</span></p>
</blockquote>
<p class="MsoNormal"><span><br />
</span></p>
<p class="MsoNormal"><span> The main configuration directory for open vpn is <strong><em>/etc/openvpn</em></strong></span></p>
<p class="MsoNormal"><a name="119c877c69af3f75_11172c379e2cab09_OpenVP"></a><strong><span>Setting up your Certificate Authority (CA) and generating certificates and keys for an OpenVPN server and multiple clients </span></strong></p>
<p class="MsoNormal"><span>The first step in building an OpenVPN 2.0 configuration is to establish a PKI (public key infrastructure). The PKI consists of:</span></p>
<ul type="disc">
<li class="MsoNormal"><span>A separate certificate (also known as a public      key) and private key for the server and each client, and </span></li>
<li class="MsoNormal"><span>A master Certificate Authority (CA) certificate      and key which is used to sign each of the server and client certificates </span></li>
</ul>
<p class="MsoNormal"><span> Copy the /usr/share/doc/openvpn-2.0.7/easy-rsa/2.0/ directory to /etc/openvpn/easy-rsa</span></p>
<p class="MsoNormal"><span><br />
</span></p>
<blockquote>
<p class="MsoNormal"><span><span>    </span> cp -r /usr/share/doc/openvpn-2.0.7/easy-rsa/2.0/ /etc/openvpn/easy-rsa</span></p>
</blockquote>
<p class="MsoNormal"><span><br />
</span></p>
<p class="MsoNormal"><strong><span>Configure easy-rsa</span></strong></p>
<p class="MsoNormal"><span>Now edit the <strong>vars</strong> file  and set the KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL parameters. Don&#8217;t leave any of these parameters blank.</span></p>
<p class="MsoNormal"><span>Next, initialize the PKI. on Linux:</span></p>
<blockquote>
<p class="MsoNormal"><span><br />
</span></p>
<p class="MsoNormal"><span>./vars</span></p>
<p class="MsoNormal"><span>./clean-all</span></p>
<p class="MsoNormal"><span>./build-ca</span></p>
</blockquote>
<p class="MsoNormal"><span><br />
</span></p>
<p class="MsoNormal"><span>The final command (build-ca) will build the certificate authority (CA) certificate and key by invoking the interactive openssl command:</span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span><br />
</span></p>
<p class="MsoNormal"><span>Generating a 1024 bit RSA private key</span></p>
<p class="MsoNormal"><span>&#8230;&#8230;&#8230;&#8230;++++++</span></p>
<p class="MsoNormal"><span>&#8230;&#8230;&#8230;..++++++</span></p>
<p class="MsoNormal"><span>writing new private key to &#8216;ca.key&#8217;</span></p>
<p class="MsoNormal"><span>&#8212;&#8211;</span></p>
<p class="MsoNormal"><span><br />
</span></p>
<p class="MsoNormal"><span>You are about to be asked to enter information that will be incorporated</span></p>
<p class="MsoNormal"><span>into your certificate request.</span></p>
<p class="MsoNormal"><span>What you are about to enter is what is called a Distinguished Name or a DN.</span></p>
<p class="MsoNormal"><span>There are quite a few fields but you can leave some blank</span></p>
<p class="MsoNormal"><span>For some fields there will be a default value,</span></p>
<p class="MsoNormal"><span>If you enter &#8216;.&#8217;, the field will be left blank.</span></p>
<p class="MsoNormal"><span>&#8212;&#8211;</span></p>
<blockquote>
<p class="MsoNormal"><span><br />
</span></p>
<p class="MsoNormal"><span>Country Name (2 letter code) [KG]:IN</span></p>
<p class="MsoNormal"><span>State or Province Name (full name) [NA]:KERALA</span></p>
<p class="MsoNormal"><span>Locality Name (eg, city) [BISHKEK]:KOCHI</span></p>
<p class="MsoNormal"><span>Organization Name (eg, company) [OpenVPN-TEST]:company name</p>
<p></span></p>
<p class="MsoNormal"><span>Organizational Unit Name (eg, section) []:company name</p>
<p></span></p>
<p class="MsoNormal"><span>Common Name (eg, your name or your server&#8217;s hostname) []:company name</span></p>
<p class="MsoNormal"><span>Email Address [</span>Riyesh@linuxbuddies.com]</p>
</blockquote>
<p class="MsoNormal"><span>Note that in the above sequence, most queried parameters were defaulted to the values set in the vars or vars.bat files. The only parameter which must be explicitly entered is the Common Name. In the example above.</span></p>
<p class="MsoNormal"><strong><span>Generate certificate &amp; key for server</span></strong><span><br />
Next, we will generate a certificate and private key for the server. On Linux:</span></p>
<p class="MsoNormal"><span><br />
</span></p>
<blockquote>
<p class="MsoNormal"><span>./build-key-server server</span></p>
</blockquote>
<blockquote>
<p class="MsoNormal"><span><br />
</span></p>
<p class="MsoNormal"><span>As in the previous step, most parameters can be defaulted. When the Common Name is queried, enter &#8220;server&#8221;. Two other queries require positive responses, &#8220;Sign the certificate? [y/n]&#8221; and &#8220;1 out of 1 certificate requests certified, commit? [y/n]&#8220;. </span></p>
</blockquote>
<p class="MsoNormal"><strong><span>Generate certificates &amp; keys for  clients</span></strong></p>
<p class="MsoNormal"><span>Generating client certificates is very similar to the previous step. On Linux:</span></p>
<blockquote>
<p class="MsoNormal"><span><br />
</span></p>
<p class="MsoNormal"><span>./build-key client1</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>./build-key client2 and so on&#8230;</span></p>
</blockquote>
<p class="MsoNormal"><span><br />
</span></p>
<p class="MsoNormal"><span>   <strong><span class="msoIns"><ins> Generate Diffie Hellman parameters</ins></span></strong></span></p>
<p class="MsoNormal"><span>Diffie Hellman parameters must be generated for the OpenVPN server. On Linux:</span></p>
<p class="MsoNormal"><span>./build-dh</span></p>
<blockquote>
<p class="MsoNormal"> ./build-dh</p>
</blockquote>
<blockquote>
<p class="MsoNormal"><span>Generating DH parameters, 1024 bit long safe prime, generator 2</span></p>
<p class="MsoNormal"><span>This is going to take a long time</span></p>
<p class="MsoNormal"><span>&#8230;&#8230;&#8230;&#8230;&#8230;..+&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.</span></p>
<p class="MsoNormal"><span>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.+&#8230;&#8230;&#8230;&#8230;.+&#8230;&#8230;&#8230;&#8230;&#8230;..+&#8230;&#8230;&#8230;</span></p>
<p class="MsoNormal"><span>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..</span></p>
<p class="MsoNormal"><span><br />
</span></p></blockquote>
<p class="MsoNormal"><strong><span>         </span></strong><span> <strong><span class="msoIns"><ins>Creating TLS Key</ins></span></strong></span></p>
<p class="MsoNormal"><span>The <em>tls-auth</em> directive adds an additional HMAC signature to all SSL/TLS handshake packets for integrity verification. Any UDP packet not bearing the correct HMAC signature can be dropped without further processing. The <em>tls-auth</em> HMAC signature provides an additional level of security above and beyond that provided by SSL/TLS.<br />
Using tls-auth requires that you generate a shared-secret key that is used in addition to the standard RSA certificate/key: </span></p>
<blockquote>
<p class="MsoNormal"><span>openvpn &#8211;genkey &#8211;secret ta.key</span></p>
</blockquote>
<p class="MsoNormal"><span>This command will generate an OpenVPN static key and write it to the file <em>ta.key</em>. This key should be copied over a pre-existing secure channel to the server and all client machines. It can be placed in the same directory as the RSA <em>.key</em> and <em>.crt</em> files.</span></p>
<p class="MsoNormal"><span>In the server configuration, add:</span></p>
<blockquote>
<p class="MsoNormal"><span>tls-auth ta.key 0</span></p>
</blockquote>
<p class="MsoNormal"><span>In the client configuration, add:</span></p>
<blockquote>
<p class="MsoNormal"><span>tls-auth ta.key 1</span></p>
</blockquote>
<p class="MsoNormal"><strong><span>        </span></strong></p>
<p class="MsoNormal"><strong><span>        </span></strong><span>  <strong><span class="msoIns"><ins>Creating configuration files for server and clients</ins></span></strong></span></p>
<blockquote>
<p class="MsoNormal"><strong><span>remote </span><a href="http://ekm1.dyndns.org/" target="_blank"><span>ekm1.dyndns.org</span></a></strong><strong><span> 1194</span></strong></p>
</blockquote>
<p class="MsoNormal"><strong><span>#remote<span>  </span></span><a href="http://ek2.levare.com/" target="_blank"><span>ekm2.linuxbuddies.com</span></a></strong><span> 1194/<strong><em>etc/openvpn/server.conf</em></strong></span></p>
<blockquote>
<p class="MsoNormal"><span>port 1194<span>                               </span>; Port for OpenVpn traffic</span></p>
<p class="MsoNormal"><span>proto tcp<span>                               </span>; TCP protocol</span></p>
<p class="MsoNormal"><span>dev tun<span>                                 </span>; use Tun device</span></p>
<p class="MsoNormal"><span>ca ca.crt<span>                               </span>; Certificate file of signing Authority</span></p>
<p class="MsoNormal"><span>cert server.crt<span>                         </span>; Server certificate</span></p>
<p class="MsoNormal"><span>key server.key<span>                          </span>; Server Key</span></p>
<p class="MsoNormal"><span>dh dh2048.pem<span>                           </span>;Diffie Hellman parameters</span></p>
<p class="MsoNormal"><span>server </span><a href="http://10.2.100.0/" target="_blank"><span>10.2.100.0</span></a><span> </span><a href="http://255.255.255.0/" target="_blank"><span>255.255.255.0</span></a><span><span>         </span>; Openvpn subnet should be different from the local network of server and client</span></p>
<p class="MsoNormal"><span>ifconfig-pool-persist ipp.txt</span></p>
<p class="MsoNormal"><span>push &#8220;route </span><a href="http://10.2.1.0/" target="_blank"><span>10.2.1.0</span></a><span> </span><a href="http://255.255.255.0/" target="_blank"><span>255.255.255.0</span></a><span>&#8220;<span>     </span>; Pushing routes to client</span></p>
<p class="MsoNormal"><span>push &#8220;route </span><a href="http://10.1.1.0/" target="_blank"><span>10.1.1.0</span></a><span> </span><a href="http://255.255.255.0/" target="_blank"><span>255.255.255.0</span></a><span>&#8220;</span></p>
<p class="MsoNormal"><span>client-config-dir ccd</span></p>
<p class="MsoNormal"><span>route </span><a href="http://10.2.100.0/" target="_blank"><span>10.2.100.0</span></a><span> </span><a href="http://255.255.255.0/" target="_blank"><span>255.255.255.0</span></a></p>
<p class="MsoNormal"><span>push &#8220;dhcp-option DNS </span><a href="http://10.2.1.11/" target="_blank"><span>10.2.1.11</span></a><span>&#8220;<span>        </span>; Pushing DNS server to client</span></p>
<p class="MsoNormal"><span>client-to-client<span>                        </span>; Clients can communicate eatch other</span></p>
<p class="MsoNormal"><span>duplicate-cn</span></p>
<p class="MsoNormal"><span>keepalive 10 120</span></p>
<p class="MsoNormal"><span>tls-auth ta.key 0<span>                       </span>; tls key</span></p>
<p class="MsoNormal"><span>comp-lzo<span>                                </span>; Use lzo compression Algo</span></p>
<p class="MsoNormal"><span>max-clients 10</span></p>
<p class="MsoNormal"><span>user nobody<span>                             </span>; Run openvpn as user nobody<span>  </span>-</span></p>
<p class="MsoNormal"><span>group nobody<span>                            </span>; group nobody for security</span></p>
<p class="MsoNormal"><span>persist-key</span></p>
<p class="MsoNormal"><span>persist-tun</span></p>
<p class="MsoNormal"><span>tun-mtu 1500</span></p>
<p class="MsoNormal"><span>status openvpn-status.log</span></p>
<p class="MsoNormal"><span>log-append /var/log/openvpn.log</span></p>
<p class="MsoNormal"><span>verb 6</span></p>
<p class="MsoNormal"><span>mute 20</span></p>
<p class="MsoNormal"><strong><em><span>client.conf</span></em></strong></p>
<p class="MsoNormal"><span>client</span></p>
<p class="MsoNormal"><span>dev tun</span></p>
<p class="MsoNormal"><span>proto tcp</span></p>
</blockquote>
<blockquote>
<p class="MsoNormal"><span>resolv-retry infinite</span></p>
<p class="MsoNormal"><span>nobind</span></p>
<p class="MsoNormal"><span>persist-key</span></p>
<p class="MsoNormal"><span>persist-tun</span></p>
<p class="MsoNormal"><span>ca ca.crt</span></p>
<p class="MsoNormal"><span>cert client.crt</span></p>
<p class="MsoNormal"><span>key client.key</span></p>
<p class="MsoNormal"><span>tls-auth ta.key 1</span></p>
<p class="MsoNormal"><span>comp-lzo</span></p>
<p class="MsoNormal"><span>verb 3</span></p>
<p class="MsoNormal"><span>mute 20</span></p>
<p class="MsoNormal"><span>ns-cert-type server</span></p>
<p class="MsoNormal"><span>auth-user-pass</span></p>
<p class="MsoNormal"><span>pull</span></p>
<p class="MsoNormal"><span>mssfix 1450</span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">############</p>
<p class="MsoNormal"> </p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://linuxbuddies.com/2008/12/23/open-vpn-installation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
