<?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>My1&#039; Blog &#187; openvpn</title>
	<atom:link href="http://my1.fr/blog/tag/openvpn/feed/" rel="self" type="application/rss+xml" />
	<link>http://my1.fr/blog</link>
	<description>I&#039;m not a Geek !</description>
	<lastBuildDate>Mon, 15 Feb 2010 22:50:19 +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>Créer son serveur VPN sous Debian</title>
		<link>http://my1.fr/blog/2008/03/27/creer-son-serveur-vpn-sous-debian/</link>
		<comments>http://my1.fr/blog/2008/03/27/creer-son-serveur-vpn-sous-debian/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 18:30:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[open vpn]]></category>
		<category><![CDATA[openvpn]]></category>
		<category><![CDATA[planete-libre]]></category>

		<guid isPermaLink="false">http://www.my1.fr/blog/2008/03/27/creer-son-serveur-vpn-sous-debian/</guid>
		<description><![CDATA[Voici un tutoriel tout frais qui va vous permettre comme moi d’avoir son propre serveur VPN (Virtual Private Network).
Un serveur VPN, c’est quoi ? Pennons mon exemple : J’ai un serveur à la maison et j’ai un pc portable avec lequel je bouge beaucoup. J’avais envie d’un système me permettant d’être dans mon réseau local [...]]]></description>
			<content:encoded><![CDATA[<p class="post-content">Voici un tutoriel tout frais qui va vous permettre comme moi d’avoir son propre serveur VPN (Virtual Private Network).</p>
<p>Un serveur VPN, c’est quoi ? Pennons mon exemple : J’ai un serveur à la maison et j’ai un pc portable avec lequel je bouge beaucoup. J’avais envie d’un système me permettant d’être dans mon réseau local partout où j’irais dans le monde. C’est le but du VPN, il va agir comme un tunnel chiffré entre le client et le serveur via des certificats.</p>
<p>J’ai donc choisis une solution libre : OpenVPN accouplé à OpenSSL pour le chiffrement.<br />
Pour cela, une bête de course n’est pas nécessaire, juste de quoi installer une Debian. Pour ma part j’ai une vieille tour trouvée dans ma cave avec un céléron, 32 Mo de mémoire vive et un vieux chipset graphique. De toute façon, pas question d’installer un environnement graphique : les paquetages minimum sont suffisants.</p>
<p>Voici mon architecture réseau :</p>
<p>Mon routeur : 192.168.0.254</p>
<p>Mon serveur VPN derrière le routeur : 192.168.0.111</p>
<p>L’interface TUN sur le serveur VPN qui va faire le lien : 10.8.0.1</p>
<p>L’interface TUN sur le client : 10.8.0.6</p>
<p>Le client étant connecté sur Internet via une autre connexion que la mienne.</p>
<p>Une fois votre serveur installé et mis à jour, installer ces paquets :</p>
<p><font color="#ff0000"><code># aptitude install openvpn</code></font></p>
<p><font color="#ff0000"><code># aptitude install  liblzo</code></font></p>
<p><font color="#ff0000"><code># aptitude install openssl</code></font></p>
<p>Vous êtres prêt pour la suite.<br />
Notre VPN sera sécurisé à l’aide de certificats 1024 bits chiffrés RSA.</p>
<p><strong>Sur le serveur :</strong></p>
<p><font color="#ff0000"><code>cd /usr/share/doc/openvpn/examples/easy-rsa/</code></font><br />
Edittez le fichier “vars” et à la fin remplissez les champs du certificat, comme par exemple :</p>
<p>-  export KEY_COUNTRY=FR<br />
-  export KEY_PROVINCE=France<br />
-  export KEY_CITY=Paris<br />
-  export KEY_ORG=”MonOrganisation”<br />
-  export KEY_EMAIL=”contact@MonOrganisation.fr”</p>
<p>Initialisez les clés :</p>
<p><font color="#ff0000"><code># . ./vars</code><br />
<code># ./clean-all</code></font></p>
<p>Nous allons créer le certificat principal :</p>
<p><font color="#ff0000"><code># ./build-ca</code></font><br />
Tous les champs sont dejà rentrés sauf “Common Name” où il faut renseigner (par exemple “principal”)</p>
<p>Ensuite nous allons créer le certificat propre au serveur :</p>
<p><font color="#ff0000"><code># ./build-key-server serveur</code></font><br />
Tous les champs sont dejà rentrés sauf “Common Name” où il faut renseigner (par exemple “serveur”)</p>
<p>Création du certificat pour le client :</p>
<p><font color="#ff0000"><code># cd /usr/share/doc/openvpn/examples/easy-rsa/</code><br />
<code># . ./vars</code><br />
<code># ./build-key client</code><br />
<code># ./build-key client</code></font></p>
<p>Création du paramètre Diffie Hellman :</p>
<p><font color="#ff0000"><code># ./build-dh</code></font></p>
<p>Copie des clés dans le répertoire de configuration d’OpenVPN :<br />
<font color="#ff0000"><code># cp ./keys/ca.crt /etc/openvpn/</code><br />
<code># cp ./keys/ca.key /etc/openvpn/</code><br />
<code># cp ./keys/serveur.crt /etc/openvpn/</code><br />
<code># cp ./keys/serveur.key /etc/openvpn/</code><br />
<code># cp ./keys/dh1024.pem /etc/openvpn/</code></font></p>
<p>Création du fichier de configuration d’OpenVPN :</p>
<p><font color="#ff0000"><code># vim /etc/openvpn/openvn.conf</code></font></p>
<p><font color="#ff00ff">#Port en écoute utilisé pour la connexion VPN</font></p>
<p><font color="#ff00ff">port XXX</font></p>
<p><font color="#ff00ff">#Protocole utilisé (Le protocole udp est plus sécurisé que le tcp)</font></p>
<p><font color="#ff00ff">proto tcp</font></p>
<p><font color="#ff00ff">#Type d’interface réseau virtuelle créée</font></p>
<p><font color="#ff00ff">dev tun</font></p>
<p><font color="#ff00ff">#Nom des fichiers servant à l’authentification des clients via OpenSSL</font></p>
<p><font color="#ff00ff">ca /etc/openvpn/ca.crt<br />
cert /etc/openvpn/serveur.crt<br />
key /etc/openvpn/serveur.key<br />
dh /etc/openvpn/dh1024.pem</font></p>
<p><font color="#ff00ff">#Adresse du réseau virtuel (Le serveur aura l’adresse 192.168.0.1)</font></p>
<p><font color="#ff00ff">server 10.8.0.0 255.255.255.0</font></p>
<p><font color="#ff00ff">#Cette ligne ajoute sur le client la route du réseau du serveur</font></p>
<p><font color="#ff00ff">push “route 192.168.0.0 255.255.255.0″</font></p>
<p><font color="#ff00ff">#Ces lignes indiquent aux clients l’adresse des serveur DNS et WINS</font></p>
<p><font color="#ff00ff">push “dhcp-option DNS 192.168.0.254″<br />
push “dhcp-option WINS 192.168.0.254″</font></p>
<p><font color="#ff00ff"># Cette ligne permet aux clients de voire les autres clients</font></p>
<p><font color="#ff00ff">client-to-client<br />
keepalive 10 120</font></p>
<p><font color="#ff00ff">#Cette ligne active la compression</font></p>
<p><font color="#ff00ff">comp-lzo</font></p>
<p><font color="#ff00ff">#Ces lignes permettent de rendre persistante la connexion</font></p>
<p><font color="#ff00ff">persist-key<br />
persist-tun</font></p>
<p><font color="#ff00ff">#Cette ligne permet d’indiquer le niveau de log souhaité (de 1 à 9)</font></p>
<p><font color="#ff00ff">verb 3</font></p>
<p>Voila pour la configuration serveur.</p>
<p>Si comme moi vous avez un routeur, pensez à ouvrir le port que vous aurez choisit sur le routeur !</p>
<p>Sur le serveur, il nous reste encore à activer le module tun du noyau :</p>
<p><font color="#ff0000"><code># modprobe tun</code></font></p>
<p>Puis à configurer le réseau :</p>
<p><font color="#ff0000"><code>echo 1 &gt; /proc/sys/net/ipv4/ip_forward</code><br />
<code>iptables -t -nat -A POSTROUTING -o eth0 -s 192.168.0.254 -j MASQUERADE</code><br />
<code>iptables -t nat -A FORWARD -in-interface tun0 -j ACCEPT</code><br />
<code>iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE</code></font></p>
<p><font color="#ff0000"><code># /etc/init.d/openvpn restart</code></font></p>
<p>Via SCP ou clé USB, importer les certificats clients vers le poste client (les fichiers nécéssaires sont ca.crt, client.crt et client.key).<br />
Mettez les dans votre répertoire /etc/openvpn/</p>
<p>Maintenant, travaillons sur le poste client pour en finir :</p>
<p>Editez le fichier de configuration OpenVPN :</p>
<p><font color="#ff0000"><code># vim /etc/openvpn/openvpn.conf</code></font></p>
<p><font color="#ff00ff">#nous sommes client<br />
client<br />
tls-client</font></p>
<p><font color="#ff00ff">#le serveur<br />
remote XX.XX.XX.XX XX #@IP publique du serveur et port d’écoute<br />
proto tcp<br />
dev tun<br />
ifconfig 10.8.0.2 10.8.0.1</font></p>
<p><font color="#ff00ff">#Certification de l’AC<br />
ca /etc/openvpn/ca.crt</font></p>
<p><font color="#ff00ff">#notre certificat<br />
cert /etc/openvpn/client.crt</font></p>
<p><font color="#ff00ff">#clef secrete<br />
key /etc/openvpn/client.key</font></p>
<p><font color="#ff00ff">#negociation<br />
reneg-sec 21600</font></p>
<p><font color="#ff00ff">#compression<br />
comp-lzo</font></p>
<p><font color="#ff00ff">#verbosité<br />
verb 3</font></p>
<p>Voilà pour la configuration.</p>
<p>Maintenant configurons le réseau :</p>
<p><font color="#ff0000"><code># echo 1 &gt; /proc/sys/net/ipv4/ip_forward</code></font></p>
<p><font color="#ff0000"><code># route add -net 10.8.0.0 netmask 255.255.255.0 gw 192.168.0.111</code></font></p>
<p><font color="#ff0000"><code># /etc/init.d/openvpn restart</code></font></p>
<p>Et maintenant, connectons nous au VPN sur le client :</p>
<p><font color="#ff0000"><code># openvpn --config /etc/openvpn/openvpn.conf</code><br />
<code># ping 192.168.0.111</code></font></p>
<p><font color="#ff00ff">PING 192.168.0.111 (192.168.0.111) 56(84) bytes of data.<br />
64 bytes from 192.168.0.111: icmp_seq=1 ttl=64 time=3.17 ms<br />
64 bytes from 192.168.0.111: icmp_seq=2 ttl=64 time=2.62 ms<br />
64 bytes from 192.168.0.111: icmp_seq=3 ttl=64 time=3.34 ms<br />
64 bytes from 192.168.0.111: icmp_seq=4 ttl=64 time=2.77 ms</font></p>
<p>Et voilà le travail.</p>
<p>Vous êtes en réseau local de n’importe où dans le monde.<br />
Cela permet par exemple de détourner des ports fermés lors d’une connection bridée et vous permettrait de les avoir tous ouverts comme à la maison <img src="http://www.my1.fr/wp-includes/images/smilies/icon_wink.gif" alt=";-)" class="wp-smiley" /></p>
<p>Si vous avez la moindre question ou un problème, contactez moi.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fmy1.fr%2Fblog%2F2008%2F03%2F27%2Fcreer-son-serveur-vpn-sous-debian%2F&amp;linkname=Cr%C3%A9er%20son%20serveur%20VPN%20sous%20Debian">Partager / Share</a>]]></content:encoded>
			<wfw:commentRss>http://my1.fr/blog/2008/03/27/creer-son-serveur-vpn-sous-debian/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
	</channel>
</rss>
