<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feed.geekfault.be/~d/styles/itemcontent.css"?><rss xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" version="2.0">
   <channel>
      <title>Geekfault (Articles + Brèves)</title>
      <description>Flux RSS des articles et des brèves publiées par Geekfault (http://geekfault.org)</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=KM9_30wo3hGufmaq3nBDOQ</link>
      <pubDate>Sat, 13 Mar 2010 19:42:19 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feed.geekfault.be/Geekfault" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="geekfault" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
         <title>L’email : un vilain petit cafardeur !</title>
         <link>http://geekfault.org/2010/03/13/lemail-un-vilain-petit-cafardeur/</link>
         <description>Votre architecture réseau ne regarde pas vos correspondants, cependant vous avez donné aux plus curieux d’entre eux quelques bribes d’information à votre insu : ip interne, dns interne, chaîne de mta… Nous allons voir un exemple récent, déterminer quels logiciels font les pies et finir par quelques réglages de ces derniers. Aucun post similaire.</description>
         <guid isPermaLink="false">http://geekfault.org/?p=2436</guid>
         <pubDate>Sat, 13 Mar 2010 18:49:26 +0000</pubDate>
         <content:encoded><![CDATA[<p><br />
<a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2010/03/geekfault-art01.png" title="geekfault-art01"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2010/03/geekfault-art01.png" alt="geekfault inspectant un email" title="geekfault-art01" width="128" height="128" class="alignleft size-full wp-image-2473"/></a>Votre architecture réseau ne regarde pas vos correspondants, cependant vous avez donné aux plus curieux d&#8217;entre eux quelques bribes d&#8217;information à votre insu : ip interne, dns interne, chaîne de mta &#8230;</p>
<p>Nous allons voir un exemple récent, déterminer quels logiciels font les pies et finir par quelques réglages de ces derniers.<br />
<span id="more-2436"></span></p>
<h3></h3>
<p>Quelques définitions rapides :</p>
<ul>
<li>MUA : Mail User Agent, c&#8217;est l&#8217;agent coté utilisateur. Thunderbird que j&#8217;évoque dans cet article, Evolution, KMail, mutt, mail et sendEmail sont quelques exemples.</li>
<li>MTA : Mail Transfer Agent, le serveur smtp. Sendmail que j&#8217;évoque dans cet article, postfix, qmail, exim sont les plus connus, mais ssmtp et OpenSMTPd sont des alternatives montant en puissance.</li>
<li>MDA : Mail Delivery Agent, c&#8217;est le logiciel qui remet les emails dans les comptes utilisateurs. Procmail est le plus connu.</li>
<li>RFC : Request For Comment, un texte de référence. Le texte nous intéressant ici est la RFC 5321 <a rel="nofollow" target="_blank" href="http://tools.ietf.org/html/rfc5321">http://tools.ietf.org/html/rfc5321</a></li>
</ul>
<h3></h3>
<h1>Cas concret</h1>
<p><br />
Décortiquons ensemble un email envoyé par un de mes fournisseurs. Il n&#8217;y a rien d&#8217;exceptionnel dans cette section qui n&#8217;ait déjà été maintes fois abordé dans la presse informatique vulgarisée.</p>
<h4>L&#8217;email en question</h4>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;height:250px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">From - Mon Jan 18 17:07:56 2010<br />
(…)<br />
Return-Path: &lt;monsieur@correspondant.fr&gt;<br />
Received: from smtp20.msg.oleane.net (smtp20.mail.priv [172.17.20.138])<br />
&nbsp; &nbsp; &nbsp; &nbsp; by mail03.msg.oleane.net with LMTP id H7q6321w;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Mon, 18 Jan 2010 17:07:52 +0100<br />
Received: from smtp20.msg.oleane.net (localhost [127.0.0.1]) <br />
&nbsp; &nbsp; &nbsp; &nbsp; by smtp20.msg.oleane.net (MX-ASAV) with ESMTP id o0IG7pk9022097;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Mon, 18 Jan 2010 17:07:51 +0100<br />
Received: from abc.correspondant.com (abc.correspondant.com [81.211.11.111]) <br />
&nbsp; &nbsp; &nbsp; &nbsp; by smtp20.msg.oleane.net (MX) with ESMTP id o0IG7ndC021964;<br />
&nbsp; &nbsp; &nbsp; &nbsp; Mon, 18 Jan 2010 17:07:49 +0100<br />
Received: from PC1.correspondant.fr ([192.168.69.50])<br />
&nbsp; &nbsp; &nbsp; &nbsp; (authenticated user monsieur@correspondant.fr)<br />
&nbsp; &nbsp; &nbsp; &nbsp; by abc.correspondant.com (Kerio MailServer 6.7.0 patch 1);<br />
&nbsp; &nbsp; &nbsp; &nbsp; Mon, 18 Jan 2010 17:10:15 +0100<br />
Subject: RE: GeekFault<br />
Date: Mon, 18 Jan 2010 17:07:48 +0100<br />
Message-ID: &lt;xxxx@correspondant.fr&gt;<br />
In-Reply-To: &lt;xxxxdestinataire.fr&gt;<br />
From: "Monsieur CORRESPONDANT" &lt;monsieur@correspondant.fr&gt;<br />
Sender: "Monsieur CORRESPONDANT" &lt;monsieur@correspondant.fr&gt;<br />
To: "Monsieur DESTINATAIRE" &lt;monsieur@destinataire.fr&gt;<br />
Importance: Normal<br />
X-Priority: 3<br />
X-MSMail-Priority: Normal<br />
User-Agent: Kerio Outlook Connector (6.7.0.7695)<br />
MIME-Version: 1.0<br />
X-MimeOLE: Produced by Kerio Outlook Connector (6.7.0.7695)<br />
Content-Type: multipart/mixed; boundary=MIXED-MIME-355913937-24773-delim<br />
X-Spam-Flag: NO<br />
X-PMX-Spam: Probability=13%<br />
X-Spam-Level: X<br />
X-PFSI-Info: PMX 5.5.5.374460, Antispam-Engine: 2.7.1.369594, Antispam-Data: 2010.1.18.155416 (no virus found)</div></div>
<h3>Comment le lire ?</h3>
<p>La <a rel="nofollow" target="_blank" href="http://tools.ietf.org/html/rfc5321#section-4.4">RFC 5321 section 4.4</a> précise que le Mail Transfert Agent (mta) se DOIT, et avant toutes autres opérations de transfert, d&#8217;inclure une trace « Received » ou « timestamp ». L&#8217;ordre des « Received » se lit donc de bas en haut.</p>
<p>Nous apprenons que notre « correspondant » a émis son email depuis son « PC1 » 192.168.69.50 (IPV4) . On devine aisément son système d&#8217;exploitation, c&#8217;est celui qui donne des noms de machines en majuscules. </p>
<h3>Jouons au jean-kevin</h3>
<p>On déduit du mix « .fr »/ « .com » que notre sujet d&#8217;étude n&#8217;est pas très familier avec les dns et c&#8217;est sans doute la raison pour laquelle il n&#8217;en a pas en interne. Il n&#8217;est pas non plus familier avec ntp . Visiblement notre sujet d&#8217;étude n&#8217;est pas familier avec certains services réseaux.</p>
<p>Attardons nous quelques secondes sur le 3ème mta rencontré, OBS utilise un mta du nom de « localhost [127.0.0.1] », nous sommes dans une application minimaliste de la section 4.4 de la RFC 5321. Pourquoi être resté a minima, contrairement aux autres mta ? Le terme MX-ASAV nous donne un indice : AntiSpam AntiVirus &#8230; ce mta est vraisemblablement inaccessible il n&#8217;y a aucune raison de fournir plus de détails.</p>
<h3>Que retenir de cette partie ?</h3>
<p><em>Nous n&#8217;avons donc rien appris de bien intéressant car nous ne cherchons rien de particulier. Détails à priori inintéressants, mais avez-vous vraiment envie d&#8217;en faire profiter le reste de vos correspondants ?</em></p>
<p><em>Désolé, à cause de limitations techniques nous ne pouvons pas afficher la suite de cet article dans le flux RSS. Rendez-vous directement sur Geekfault pour lire la suite <img src='http://geekfault.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley'/> </em></p> <p>Aucun post similaire.</p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/RG28neI_Ih8" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>OpenVZ : virtualisation légère, performante et amusante</title>
         <link>http://geekfault.org/2010/03/09/openvz-virtualisation-legere-performante-et-amusante/</link>
         <description>OpenVZ &amp;#8211; Découverte du fauve OpenVZ est un système de virtualisation particulier. Il permet de faire tourner de multiples machines virtuelles partageant un seul kernel patché spécialement pour l&amp;#8217;occasion. Cette techniques est donc limités à des machines (hôte ou invité) tournant sous linux. En contrepartie les performances sont particulièrement élevés. Il est également très aisé de [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/14/faille-critique-dans-tous-les-noyaux-linux/' title='Permanent Link: Faille critique dans tous les noyaux Linux'&gt;Faille critique dans tous les noyaux Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=2265</guid>
         <pubDate>Tue, 09 Mar 2010 14:11:02 +0000</pubDate>
         <content:encoded><![CDATA[<h2>OpenVZ &#8211; Découverte du fauve</h2>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2010/03/09/openvz-virtualisation-legere-performante-et-amusante/openvz-logo-2/"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2010/03/OpenVZ-logo1-300x76.png" alt="" title="OpenVZ-logo" width="300" height="76" class="alignleft size-medium wp-image-2425"/></a></p>
<p>
OpenVZ est un système de virtualisation particulier. Il permet de faire tourner de multiples machines virtuelles partageant un seul kernel patché spécialement pour l&#8217;occasion. Cette techniques est donc limités à des machines (hôte ou invité) tournant sous linux. En contrepartie les performances sont particulièrement élevés. Il est également très aisé de modifier les particularités physiques des machines virtuelles sans les redémarrer. Cette technique est souvent employée chez les hébergeurs pour les offres « VPS ».</p>
<p>En pratique, c&#8217;est utile à des fins de sécurité. On essaie de mettre un seul serveur par VPS (serveur web sur un VPS, MySQL sur un autre, mail encore sur un autre &#8230;). Si l&#8217;un des serveurs possède une faille de sécurité, les autres serveurs ne pourront alors pas être impactés. Il y a également la facilité à backuper une machine virtuelle et donc au besoin de la dupliquer ou la déplacer. Cependant, on ne peut pas faire de migration à chaud comme certains de ses concurrents.</p>
<p>La création d&#8217;une machine ne prend guère plus d&#8217;une minute sur une machine correcte, ce qui permet de s&#8217;en servir comme d&#8217;un moyen de tester des logiciels sans encombrer votre distro. Qui plus est, le lancement d&#8217;une machine est quasi instantané, ce qui peut parfois sauver des manchots…
</p>
<p><span id="more-2265"></span></p>
<h2>Installation de la bête</h2>
<h3>Le kernel</h3>
<p>Cette partie dépend pas mal de la distro. J&#8217;aborderai ici la méthode pour Gentoo, à vous de l&#8217;adapter à votre distro.</p>
<p>On commence par installer les source du kernel patché qu&#8217;il faudra compiler :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">USE="symlink" emerge -av openvz-sources</div></div>
<p>Il faut ensuite adapter la config du kernel :<br />
Rendez-vous dans ///usr/src/linux//</p>
<p>Ensuite, lancez:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">make menuconfig</div></div>
<p>Vérifiez que tout en haut il s&#8217;affiche bien le nom du kernel openvz : <em>.config &#8211; Linux Kernel v2.6.27-openvz-briullov.1-r2 Configuration</em></p>
<p>Dans <em>OpenVZ</em> cochez tout (personnellement je préfère mettre en module le plus possible car je ne l&#8217;utilise pas tout le temps).<br />
Puis allez dans <em>Filesystems</em> là vous aurez <em>VPS Filesystems</em> et <em>Virtuozzo Disk Quota support</em>, à ajouter également.</p>
<p>Maintenant enregistrez la config puis compilez votre tout nouveau kernel patché avant de faire une pause IRC :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">make<br />
make modules<br />
make modules install</div></div>
<p>Mettez votre kernel au chaud et préparez le reboot :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">cp /usr/src/linux/arch/x86/boot/bzImage /boot/kernel_vz</div></div>
<p>Ajoutez ces lignes en adaptant à votre cas dans <em>/boot/grub/menu.lst</em> :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">title=Gentoo OpenVZ<br />
root (hd0,0)<br />
kernel /boot/kernel_vz root=/dev/sde1</div></div>
<p>Si vous avez suivit ces instructions sans virer ce qu&#8217;il y avait avant, vous ne devriez pas foirer votre machine : l&#8217;ancien kernel est toujours présent et le grub possède juste des lignes en plus. Donc maintenant faut tester avec un reboot en choisissant la nouvelle entrée du grub.</p>
<p>Si vous parvenez à reboot alors vous venez de faire le plus dur !<br />
Un petit <em>uname -r</em> peut confirmer que vous tournez sur le noyau modifié.<br />
Passons dès maintenant à la suite.</p>
<h3>Les outils</h3>
<p>OpenVZ se pilote avec la commande <em>vzctl</em> donc installons la :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">emerge -av vzctl</div></div>
<p>Maintenant vous avez le kernel, les outils, il ne manque plus que les templates qui sont en faites les distros que vous pourrez monter en quelques secondes.<br />
Vous pouvez les créer vous même mais généralement vous trouverez chaussure à votre pied sur le site officiel qui propose déjà une petite collection de templates pré-créés.</p>
<p>http://download.openvz.org/template/precreated/</p>
<p>Vous devrez les télécharger dans le dossier <em>/vz/template/cache</em>.</p>
<h2>Prise en main du monstre</h2>
<p>Ça y est : c&#8217;est tout bien installé et ça ne demande plus qu&#8217;à tourner.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">/etc/init.d/vz start</div></div>
<p>Le script de démarrage fonctionne à merveille puisqu&#8217;il charge bien les modules (et les décharge en cas d&#8217;arrêt).<br />
Pour faire en sorte de le lancer au démarrage de la machine :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">rc-update add vz default</div></div>
<h3>Création d&#8217;une machine</h3>
<p>OpenVZ a pour objectif de faire tourner de nombreuses machines virtuelles simultanément. Elles sont numérotées (en commençant à 101). Ce numéro se nomme <em>CTID</em>. Imaginons que vous ayez un template <em>debian-5.0-x86</em>:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">vzctl create $CTID$ --ostemplate debian-5.0-x86</div></div>
<p>Pendant quelques secondes ça mouline et vous pond une ptite Lenny des familles.</p>
<p>Configurons la pour qu&#8217;elle puisse rejoindre notre réseau :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">vzctl set $CTID$ --hostname lennounette --ipadd a.b.c.d --nameserver a.b.c.d --diskspace 2G:3G --cpulimit 25 --save</div></div>
<p>Là je lui attribut un petit nom, une IP, un DNS, un quota de disque dur ainsi qu&#8217;un quota d&#8217;utilisation du processeur.</p>
<p>Bon c&#8217;est bien joli mais maintenant faut la faire tourner histoire de voir ce qu&#8217;on peut en tirer :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">vzctl start $CTID$</div></div>
<p>Et bha voilà elle est là … « Up &#038; Running ».</p>
<h3>Entrer et interagir avec une machine</h3>
<p>Pour aller utiliser une machine rien de plus simple :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">vzctl enter $CTID$</div></div>
<p>Sachez également que les templates pré-créés sur le site officiel possèdent toute un serveur SSH qui tourne afin de vous faciliter la tâche.</p>
<p>Il est possible d&#8217;exécuter des commandes dans une machine sans y rentrer :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">vzctl exec $CTID$ rm -rf /</div></div>
<h3>Configurer un peu plus la bestiole</h3>
<p>Il est possible de modifier la machine invitée pendant qu&#8217;elle tourne afin de lui ajouter de la ram, augmenter son quota d&#8217;espace disque ou bien restreindre son utilisation max de cpu. Pour cela vous devrez faire appel encore une fois à <em>vzctl</em>.</p>
<h4>Modifier le bridage CPU</h4>
<p>Il est donc possible de brider le pourcentage de processeur qu&#8217;une machine virtuelle peut utiliser afin d&#8217;éviter qu&#8217;une machine se goinfre et lèse le reste. Pour cela :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">vzctl set $CTID$ --cpulimit 10 --save</div></div>
<p>En sachant que chaque processeur représente 100%, si vous possédez une machine quadcore, vous pouvez jouer de 0 à 400%.<br />
Vous constaterez que la modification est prise en compte immédiatement.</p>
<h4>Modifier le quota de disque dur</h4>
<p>Attribuons plus d&#8217;espace à une machine :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">vzctl set $CTID$ --disklimit 10G:12G --save</div></div>
<h4>Modifier la quantité de RAM</h4>
<p>C&#8217;est la commande la plus complexe :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">vzctl set $CTID$ --vmguarpages $((512 * 512)) --save<br />
vzctl set $CTID$ --privvmpages $((512 * 1024)) --save</div></div>
<p>Là on passe à 512 Mo de ram avec possibilité de monter en pic à 1024.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">vzctl set $CTID$ --vmguarpages $((256 * 256)) --save<br />
vzctl set $CTID$ --privvmpages $((256 * 512)) --save</div></div>
<p>Là on passe à 256 avec possibilité de monter en pic à 512.<br />
Vous voyez le principe …</p>
<h4>Les paramètres réseaux</h4>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">vctl --set $CTID$ --ipadd a.b.c.d --hostname monhost --nameserver b.c.d.e --searchdomain mon_domaine --mac 00:11:22:33:44:55 --save</div></div>
<p>Le nom des paramètres est assez explicite.</p>
<h4>Créer ou modifier le mot de passe d&#8217;un utilisateur</h4>
<p>Il est possible de modifier le mot de passe d&#8217;un utilisateur (pratique en cas de boulette pour rester propre). Si l&#8217;utilisateur n&#8217;existe pas, il sera créé dans la foulée.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">vzctl set $CTID$ --userpasswd login:motdepasse</div></div>
<h4>Tout le reste</h4>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">man vzctl</div></div>
<h4>Lancer une machine au boot</h4>
<p>Il faut avoir lancé OpenVZ au boot. Il faut ensuite :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">vzctl set $CTID$ --onboot yes --save</div></div>
<h4>Configurer un peu tout</h4>
<p>Il est possible et plus pratique de modifier la configuration directement dans le fichier de conf de la machine dans le fichier <em>/etc/vz/conf/$CTID$.conf</em></p>
<h3>Manipulons le bouzin</h3>
<p>Voici à peu près tout ce que l&#8217;on peut faire.</p>
<ul>
<li>Créer une machine avec <strong>create</strong></li>
<li>Démarrer une machine avec <strong>start</strong></li>
<li>Stopper une machine avec <strong>stop</strong></li>
<li>Rentrer dans une machine avec <strong>enter</strong></li>
<li>Supprimmer une machine avec <strong>destroy</strong></li>
</ul>
<p>Pour plus de commandes :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">man vzctl</div></div>
<h2>Oui mais après ?</h2>
<p>Ça y est vous savez créer vos machines en moins de trois minutes et gérer leur ressources comme un héros des temps modernes. Mais que faire de ce petit monde ?<br />
Comme expliqué plus haut la virtualisation à pour but de fiabiliser une infrastructure. On peut déplacer une machine virtuelle l&#8217;une machine physique à une autre, on isole les différents serveurs publiques afin de limiter l&#8217;impact des failles de sécurité …<br />
Il vous faut donc expérimenter ces différentes tâches afin de pouvoir parer l&#8217;imprévu. Replancher la gestion de son petit script iptables pour adapter son réseau à ce nouveau fonctionnement.<br />
Le chemin est tout tracé…</p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/14/faille-critique-dans-tous-les-noyaux-linux/' title='Permanent Link: Faille critique dans tous les noyaux Linux'>Faille critique dans tous les noyaux Linux</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/scAiOvSTYWY" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>nginx et python – le perfect setup</title>
         <link>http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/</link>
         <description>Python est devenu assez à la mode, pour le développement web, ces dernières années avec l&amp;#8217;arrivée de frameworks web comme Django, Pylons et web.py. On le voit souvent utilisé sur apache2, avec mod_python, ou sur des serveurs Python dediés à ça (CherryPy, etc)
Je cherche depuis longtemps un moyen de faire du Python sur HTTP. J&amp;#8217;ai [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/27/lighttpd-php-iphone/' title='Permanent Link: Serveur Lighttpd avec PHP sur iPhone'&gt;Serveur Lighttpd avec PHP sur iPhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/14/tunnel-ssh/' title='Permanent Link: Le tunnel SSH facile'&gt;Le tunnel SSH facile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/15/ssh-sans-mot-de-passe/' title='Permanent Link: SSH sans mot de passe'&gt;SSH sans mot de passe&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=2272</guid>
         <pubDate>Mon, 01 Mar 2010 11:47:32 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/nginx_logo/"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2010/03/nginx_logo-300x206.gif" alt="" title="nginx_logo" width="300" height="206" class="alignleft size-medium wp-image-2406"/></a></p>
<p><strong>Python est devenu assez à la mode, pour le développement web, ces dernières années avec l&#8217;arrivée de frameworks web comme </strong><a rel="nofollow" title="Django" target="_blank" href="http://djangoproject.com/"><strong>Django</strong></a><strong>, </strong><a rel="nofollow" title="Pylons" target="_blank" href="http://pylonshq.com/"><strong>Pylons</strong></a><strong> et </strong><a rel="nofollow" title="webpy" target="_blank" href="http://webpy.org"><strong>web.py</strong></a><strong>. On le voit souvent utilisé sur apache2, avec mod_python, ou sur des serveurs Python dediés à ça (CherryPy, etc)</strong></p>
<p>Je cherche depuis longtemps un moyen de faire du Python sur HTTP. J&#8217;ai mis pas mal de temps mais je pense avoir trouvé une configuration sympa.</p>
<p>Je vous propose ici d&#8217;essayer <a rel="nofollow" title="nginx" target="_blank" href="http://nginx.org/">nginx</a>, un serveur HTTP (entre autres), très performant et <strong>beaucoup</strong> plus léger/rapide que apache2. Il est très efficace pour faire du reverse-proxy (c&#8217;est à dire être utilisé en frontal/load-balancer devant un serveur HTTP, et lui transmettre les requêtes en faisant du cache et le cas échéant du load-balancing).</p>
<p><span id="more-2272"></span></p>
<p>La configuration de nginx est très simple, et la documentation est très complète : <a rel="nofollow" target="_blank" href="http://wiki.nginx.org/Main">wiki.nginx.org</a>. L&#8217;installation de nginx est facile, il est inclus dans la plupart des distributions actuelles, donc à vos emerge/apt-get.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">apt-get install nginx</div></div>
<p>nginx ne gère pas le python nativement. Il y a plusieurs solutions cependant :</p>
<ul>
<li>Faire du proxy vers un serveur qui gère le python, comme apache2. On perd la majeure partie de l&#8217;intêret de nginx, cependant.</li>
<li>Faire du FastCGI vers un serveur FastCGI. C&#8217;est la solution la plus fréquente, en utilisant fcgi.py ou <a rel="nofollow" title="Flup" target="_blank" href="http://trac.saddi.com/flup">flup</a></li>
<li>Faire du WSGI. C&#8217;est un protocole de communication entre serveurs HTTP et applications Python. Solution aussi assez fréquente.</li>
<li>Faire du proxy vers un serveur qui gère le python de manière <strong>native</strong>. C&#8217;est une solution moins fréquente mais très pratique.</li>
</ul>
<p>Avant même de penser à choisir une des solutions ici présentes, il faut les comparer entre elles.</p>
<p><strong><br /> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<h4>nginx =&gt; apache2 =&gt; python</h4>
<p>L&#8217;ennui de cette solution c&#8217;est : apache2. Utiliser nginx pour forwarder à apache2 est presque inutile. Presque ? Oui, car on peut dire à nginx de garder les fichiers statiques pour lui. Cependant, le gain de cette méthode est assez minime, et ce n&#8217;est intéressant que pour faire du load balancing sur plusieurs apaches.</p>
<p><strong><br /> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<h4>le FastCGI</h4>
<p>FastCGI c&#8217;est une norme, pour faire traiter du contenu dynamique par une application externe. Donc le support du FastCGI tout seul est inutile, il faut aussi quelque chose pour gérer derrière.</p>
<p>J&#8217;ai testé <a rel="nofollow" target="_blank" href="http://trac.saddi.com/flup">flup</a>, un framework Python léger. Le résultat : ça marche, méééé c&#8217;est lent. Je tournais autour de 35/50 requêtes par seconde, et l&#8217;utilisation en mémoire vive était phénoménale, 150 mégas pour 1000 requêtes. (bien sur ces chiffres n&#8217;auront de valeur que lorsqu&#8217;ils seront comparés aux autres).</p>
<p>FastCGI est sympa pour faire une configuration &#8220;vite&#8221;. C&#8217;est d&#8217;ailleurs la seule solution viable, à ma connaissance pour faire du PHP sur nginx, à part le proxy vers un autre serveur HTTP.</p>
<p>Bref, FastCGI ne m&#8217;a pas convaincu. Et mes tests avec les autres solutions m&#8217;ont donné raison. Toujours avec moi ? On passe au WSGI !</p>
<p><strong><br /> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<h4>le WSGI</h4>
<p> <em>WSGI is the Web Server Gateway Interface. It is a specification for web servers and application servers to communicate with web applications (though it can also be used for more than that). It is a Python standard, described in detail in PEP 333.</em>
<p>le WSGI, c&#8217;est le standard pour le Web Python. Il n&#8217;y a qu&#8217;à consulter <a rel="nofollow" title="WSGI" target="_blank" href="http://wsgi.org">wsgi.org</a> pour se rendre compte que c&#8217;est tout un monde. Il consiste en un ensemble de normes (nom de variables, par exemple) pour permettre au serveur d&#8217;exécuter un fichier codé en Python.</p>
<p>Le standard pour le WSGI sur les serveurs HTTP grand public, c&#8217;est le mod_wsgi de apache2. Il a été porté sur nginx, mais c &#8216;est une #@!## infame, qui ne marche que sur les vieilles versions et qui n&#8217;a pas été mise à jour depuis bientôt 2 ans et demi (cf. <a rel="nofollow" target="_blank" href="http://hg.mperillo.ath.cx/nginx/mod_wsgi/">hg.mperillo.ath.cx/nginx/mod_wsgi/</a>). J&#8217;ai obtenu des performances d&#8217;environ 133 requêtes par seconde avec, ce qui est déjà mieux que FastCGI, pour ceux qui suivent <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley'/> . Par contre, dès que j&#8217;ai voulu avancer un peu avec (toucher à la configuration, et surtout, passer à une version supérieure de nginx), j&#8217;ai été confronté à ses limites (et aux #@!## de faute de frappe dans le code source)</p>
<p>D&#8217;autant plus que l&#8217;auteur de mod_wsgi pour apache2 et l&#8217;auteur de mod_wsgi pour nginx reconnaissent ses limitations, respectivement <a rel="nofollow" target="_blank" href="http://blog.dscpl.com.au/2009/05/blocking-requests-and-nginx-version-of.html">ici</a> et <a rel="nofollow" target="_blank" href="http://blogg.ingspree.net/blog/2007/11/24/nginx-mod-wsgi-vs-fastcgi/">ici</a>. Le premier document est très intéressant pour comprendre un peu l&#8217;architecture de nginx et ses différences avec apache2. En effet, le mod_wsgi pour nginx a été codé à partir de celui pour apache2, et il subit les différences d&#8217;architecture entre apache2 et nginx.</p>
<p>Attention, je ne remet absolument pas à cause le WSGI ici, juste l&#8217;implémentation de mod_wsgi dans nginx.</p>
<p>Parce que justement, un projet super récent, c&#8217;est&#8230;. uWSGI ! uWSGI sert à combler le manque de support du WSGI dans nginx, en rajoutant un module, meilleur que mod_wsgi. Il nécessite donc de recompiler nginx. Il y a encore une autre solution, nommée gunicorn, qui ne nécessite pas de recompiler nginx. C&#8217;est un serveur HTTP minimal qui gère le WSGI nativement. uwsgi offre plus de fonctionalitées que gunicorn, mais gunicorn a l&#8217;air assez dynamique (dans le développement), et est plus facile à utiliser (pas de recompilation, support de Django natif). Au niveau des performances, je me suis amusé à faire cette comparaison :</p>
<p> </p>
<p><div class="wp-caption alignnone" style="width:434px;"><img title="Comparaison des performances entre uwsgi et gunicorn en fonction du niveau de parall&#xe9;lisme" src="http://pistaches.net/~pistache/stuff/patch1.png" alt="Comparaison des performances entre uwsgi et gunicorn en fonction du niveau de parall&#xe9;lisme" width="424" height="313"/><p class="wp-caption-text">Comparaison des performances entre uwsgi et gunicorn en fonction du niveau de parallélisme</p></div>
<p> </p>
<p>On constate plusieurs choses :</p>
<ul>
<li>Les performances augmentent en utilisant 2 workers à la place d&#8217;un, mais au delà, le gain est ridicule, puis inexistant. Le nombre 2 est dépendant du nombre de coeurs de la machine, et le nombre de workers à utiliser ne sera pas le même sous un bi-socket octocore, bien évidemment. Les meilleures performances étaient obtenues en utilisant gunicorn+3workers.</li>
<li>La différence est vraiment minime, gunicorn est en moyenne légèrement au dessus de uwsgi.</li>
<li>Ces tests sont réalisés sur une application <strong>Django</strong>. Les performances augmentent en utilisant des frameworks plus légers comme <strong>web.py</strong>, bien évidemment.</li>
</ul>
<p>uwsgi dispose de plus de fonctionalitées, comme par exemple une interface d&#8217;administration de serveur wsgi dans Django. Je vais ici expliquer l&#8217;installation et la configuration des deux solutions.</p>
<p>Ici je vais couvrir l&#8217;installation et la configuration de uwsgi et gunicorn avec <strong>Django</strong> et <strong>web.py</strong>, même si c&#8217;est bien sur adaptable avec d&#8217;autres frameworks supportant le <strong>wsgi </strong>(liste sur <a rel="nofollow" target="_blank" href="http://wsgi.org/wsgi/Frameworks">wsgi.org/wsgi/Frameworks</a>).</p>
<h3>Installation et configuration de <strong>uwsgi</strong></h3>
<p><strong><br /> </strong></p>
<h4>Sous Debian :</h4>
<p>1) Rajouter les dépots source, par exemple :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">deb-src http://ftp.gr.debian.org/debian/ squeeze main contrib non-free</div></div>
<p>2) Télécharger la source</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">apt-get source nginx<br />
tar -zxvf nginx_*.orig.tar.gz<br />
cd nginx-*<br />
tar -zxvf nginx_*.debian.tar.gz</div></div>
<p>2) Télécharger uwsgi</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">cd ..<br />
<br />
wget http://projects.unbit.it/downloads/uwsgi-0.9.4.2.tar.gz<br />
<br />
tar -zxvf uwsgi-0.9.4.2.tar.gz</div></div>
<p>3) Modifier le paquet source de nginx pour y ajouter uwsgi. Il faut éditer le fichier nginx-*/debian/rules, trouver le bloc qui commence par ./configure et ou se trouvent toutes les options de compilation, et y ajouter</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">--add-module=$(CURDIR)/../uwsgi-0.9.4.2/nginx/</div></div>
<p>$(CURDIR)/../uwsgi-0.9.4.2/nginx/ est le chemin vers le dossier du module dans la source de uwsgi</p>
<p>4) maintenant, dans le dossier de la source de nginx, faites (pas besoin de root) :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">dpkg-buildpackage</div></div>
<p>5) installer le .deb généré ainsi (en tant que root maintenant)</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">dpkg -i ../nginx-*.deb</div></div>
<p>6) Dernière étape : compiler uWSGI (le binaire en lui-même, qui va communiquer avec nginx par le biais du module)</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">cd ../uwsgi-0.9.4.2/ &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install &amp;amp;&amp;amp; cp uwsgi_params /etc/nginx/</div></div>
<p>Cette dernière commande (le cp uwsgi_params&#8230;) sert à placer un fichier de configuration du module uwsgi exemple dans le repertoire de nginx.</p>
<h4>Sous les autres distributions :</h4>
<p>Il faut télécharger la source de nginx et de uwsgi, compiler nginx avec le module uwsgi (dans le répertoire nginx de la source de uwsgi), puis compiler uwsgi.﻿</p>
<p>On a maintenant un serveur uWSGI et un nginx avec le module uwsgi. Il va maintenant falloir dire à nginx de transférer les requêtes au serveur uWSGI, avec une commande uwsgi_pass. Par exemple, dans la section server d&#8217;un de vos vhost (/etc/nginx/sites-enabled/default, par exemple, sous Debian) :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">location / {<br />
include uwsgi_params;<br />
uwsgi_pass unix:///tmp/uwsgi.sock;<br />
}</div></div>
<p>Il faut ensuite créer une application WSGI, par exemple, pour le framework web.py :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">import web<br />
<br />
urls = (<br />
&nbsp; &nbsp; '/.*', 'hello',<br />
&nbsp; &nbsp; )<br />
<br />
class hello:<br />
&nbsp; &nbsp; def GET(self):<br />
&nbsp; &nbsp; &nbsp; &nbsp; return "Hello, world."<br />
<br />
application = web.application(urls, globals()).wsgifunc()<br />
applications = {'/': application }</div></div>
<p>Pour Django :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">import django.core.handlers.wsgi<br />
application = django.core.handlers.wsgi.WSGIHandler()<br />
applications = {'/': application }</div></div>
<p>Nommez ce fichier wsgi.py et placez le dans le repertoire ou vous allez placer votre code (pour Django, dans le repertoire du projet, évidemment). Si vos nerfs n&#8217;ont pas encore lâché ici, allez prendre une petite pause de 5 minutes à titre préventif, et reprenez. Maintenant, on va démarrer un serveur uWSGI. Placez vous dans le répertoire de votre fichier wsgi.py, et faites :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">uwsgi -s /tmp/uwsgi.sock -C -w wsgi -p2 -L</div></div>
<p>Explications : le -s indique ou placer le socket (ça pourrait aussi être une adresse au format hôte:port, pour un usage distant). Le -w wsgi indique de charger le fichier wsgi(.py), le -p2 indique de démarrer 2 processus, et le -L désactive l&#8217;envoi des requêtes à stdout (=&gt;flood).</p>
<p>Si vous allez à l&#8217;adresse de votre serveur web, vous devriez voir votre application Python en face de vous ! Vous voilà en train d&#8217;utiliser <strong>nginx+uwsgi+python</strong>.</p>
<p>En annexe, je rappelle que uwsgi est aussi utilisable avec apache et lighttpd.</p>
<p>Aussi, dans le dossier source de uwsgi, vous trouverez des templates pour un module d&#8217;administration de Django, à installer dans le repertoire des templates de l&#8217;administration de Django (si, si).</p>
<h3>Installation et configuration de gunicorn</h3>
<p>gunicorn est <strong>carrèment</strong> plus facile à installer. Il est codé en python, donc pas de compilation, seulement un <strong>easy_install</strong> :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">easy_install gunicorn</div></div>
<p>La configuration est tout aussi facile, il suffit de cela dans la configuration du vhost dans nginx :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">location / {<br />
proxy_pass http://unix:/tmp/gunicorn.sock<br />
}</div></div>
<p>On démarre ensuite gunicorn. Pour Django, gunicorn dispose d&#8217;un support intégré, il vous suffit de vous placer dans le répertoire de votre projet, puis :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">gunicorn_django -b unix:/tmp/gunicorn.sock --workers=2</div></div>
<p>Pour web.py, il faut créer un module :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">import web<br />
<br />
urls = (<br />
&nbsp; &nbsp; '/.*', 'hello',<br />
&nbsp; &nbsp; )<br />
<br />
class hello:<br />
&nbsp; &nbsp; def GET(self):<br />
&nbsp; &nbsp; &nbsp; &nbsp; return "Hello, world."<br />
<br />
application = web.application(urls, globals()).wsgifunc()</div></div>
<p>Il faut ensuite démarrer le serveur Gunicorn. En étant dans le repertoire ou se trouve le module web.py (le fichier donc le code vient avant, là, au-dessus, oui), :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">gunicorn -b unix:/tmp/gunicorn.sock --workers=2 wsgi</div></div>
<p>Je vous invite à consulter ce lien : <a rel="nofollow" target="_blank" href="http://gunicorn.org/tuning.html"><span style="color:#000000;">gunicorn.org/tuning.html</span></a>, pour vous permettre d&#8217;augmenter les performances de gunicorn.</p>
<h3>Annexe</h3>
<h4><span style="font-weight:normal;">Fichiers statiques</span></h4>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">location /admin-media {alias /usr/lib/pymodules/python2.5/django/contrib/admin/media;}<br />
<br />
location /static {root /var/www/byteflow;}</div></div>
<p>Ces deux lignes, à rajouter après le &#8220;location /&#8221; avec uwsgi_pass ou proxy_pass (selon votre configuration) indiquent à nginx de traiter les fichiers statiques directement. Il faut bien évidemment adapter à votre configuration.</p>
<h4><span style="font-weight:normal;">Munin</span></h4>
<p><span style="font-weight:normal;">Vous pouvez trouver des plugins nginx pour munin <a rel="nofollow" target="_blank" href="http://muninexchange.projects.linpro.no/?search=&amp;cid=54&amp;pid=51">ici</a>. Je n&#8217;ai pas trouvé de plugin munin pour uwsgi/gunicorn, mais je pourrais peut-être en faire un si je trouve le temps.</span></p>
<h4><span style="font-weight:normal;">Plusieurs serveurs</span></h4>
<p><span style="font-weight:normal;">Si par hasard vous avez plusieurs serveurs gunicorn/uwsgi répartis sur plusieurs machines , vous pouvez les utiliser en déclarant une section </span></p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">&lt;span style="font-weight: normal;"&gt;upstream &lt;em&gt;nom&lt;/em&gt; {} &lt;/span&gt;</div></div>
<p><span style="font-weight:normal;">dans nginx, contenant les adresses des serveurs distant (hôte:port ou emplacement du socket) et en utilisant &#8220;<em>nom</em>&#8221; comme argument à <em>uwsgi_pass</em> et <em>proxy_pass</em>.</span></p>
<h3>Conclusion</h3>
<p>Ces deux architectures sont très pratiques pour faire tourner du python dans un serveur web, ici nginx. uwsgi dispose de plus de fonctionalités, mais la plupart (template d&#8217;admin Django, memory profiling) pourraient facilement être ajoutées à gunicorn, qui est beaucoup plus léger à installer/configurer/maintenir (2 commandes et 3 lignes de configuration dans nginx). J&#8217;ai les deux personellement sur mon serveur, j&#8217;ai eu à alterner entre les deux pour écrire cet article, et c&#8217;est pas bien dur, un daemon à arrêter, un autre à démarrer, et changer une ligne dans la configuration de nginx.</p>
<h4>Liens</h4>
<p><a rel="nofollow" target="_blank" href="http://wsgi.org">wsgi.org</a></p>
<p><a rel="nofollow" target="_blank" href="http://gunicorn.org/">gunicorn.org/</a></p>
<p><a rel="nofollow" target="_blank" href="http://projects.unbit.it/uwsgi/">projects.unbit.it/uwsgi/</a></p>
<p><a rel="nofollow">irc.freenode.org/#gunicorn</a></p>
<p><a rel="nofollow" target="_blank" href="http://nginx.org/">nginx.org/</a></p>
<p><a rel="nofollow" target="_blank" href="http://djangoadvent.com/">djangoadvent.com/</a></p>
<p><a rel="nofollow" target="_blank" href="http://www.django-fr.org/">www.django-fr.org/</a></p>
<p><a rel="nofollow" target="_blank" href="http://www.djangoproject.com/">www.djangoproject.com/</a></p>
<p><a rel="nofollow" target="_blank" href="http://webpy.org/">webpy.org/</a></p>
<p>Je tiens à remercier la communauté Geek{node|fault}, le chan irc #gunicorn, les développeurs de gunicorn qui sont très aimables, ainsi que Amandarn qui m&#8217;a aidé pour certains détails.</p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/27/lighttpd-php-iphone/' title='Permanent Link: Serveur Lighttpd avec PHP sur iPhone'>Serveur Lighttpd avec PHP sur iPhone</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/14/tunnel-ssh/' title='Permanent Link: Le tunnel SSH facile'>Le tunnel SSH facile</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/15/ssh-sans-mot-de-passe/' title='Permanent Link: SSH sans mot de passe'>SSH sans mot de passe</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/i6Zch5UDBbQ" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Chromium: l’adolescence de l’enfant de google.</title>
         <link>http://geekfault.org/2010/02/27/chromium-ladolescence-de-lenfant-de-google/</link>
         <description>&lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/' title='Permanent Link: Chromium, le Google Chrome sous Linux sans &amp;#xe9;mulation'&gt;Chromium, le Google Chrome sous Linux sans émulation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/13/maturation-de-chromium/' title='Permanent Link: La maturation de Chromium'&gt;La maturation de Chromium&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/17/exit-google/' title='Permanent Link: La recherche web&amp;#x002026; sans Google!'&gt;La recherche web… sans Google!&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1934</guid>
         <pubDate>Fri, 26 Feb 2010 22:39:55 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2010/02/Chromium_Logo.png" title="Chromium_Logo"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2010/02/Chromium_Logo-300x300.png" alt="" title="Chromium_Logo" width="150" height="150" class="alignleft size-medium wp-image-2331"/></a><a rel="nofollow" target="_blank" href="http://dev.chromium.org/Home"><strong>Chromium</strong></a> (Chrome pour la version estampillée Google) est un projet né dans le buzz absolu, mais aussi dans le plus simple appareil. Lors de sa <strong>naissance</strong>, tout lui manquait: le support de flash, un support java, des plugins (et donc un moyen de se prémunir des publicités envahissantes), des thèmes, un semblant de stabilité et surtout une version linux native !</p>
<p>Attentifs à son existence post-buzz, nous avons déjà couvert sa <a rel="nofollow" target="_blank" href="http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/"><strong>naissance sur Linux</strong></a>, le <strong><a rel="nofollow" target="_blank" href="http://geekfault.org/2009/08/13/maturation-de-chromium/">début de son apprentissage</strong></a>, et le moment semble venu de marquer un nouveau chapitre dans l&#8217;évolution du navigateur : l&#8217;<strong>adolescence</strong>.<br />
<span id="more-1934"></span><br />
Au risque de synthétiser les deux premiers articles, il semble nécessaire de ré-établir le contexte et la genèse de ce projet, afin de mieux en comprendre le parcours.</p>
<div style="background:#FFFABF;padding:4px;"><strong>Attention :</strong> Cette page reprends ma <strong>vision personnelle</strong> du contexte de la sortie de Chrome/Chromium et a pour objectif de poser le décor pour la suite de l&#8217;article. Cette page <strong>n&#8217;engage donc que moi </strong>et n&#8217;est pas nécessaire à la suite de l&#8217;article, si vous n&#8217;êtes pas d&#8217;accord avec mon point de vue, ne vous énervez pas : passer à la <a rel="nofollow" target="_blank" href="http://geekfault.org/2010/02/27/chromium-ladolescence-de-lenfant-de-google/2/">page 2</a> <img src='http://geekfault.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley'/> </div>
<h3>Avant la conception</h3>
<p>Le monde des navigateurs n&#8217;était pas rose, Internet Explorer avait le rôle du père violent, un échec total qui ne parvenait à maintenir son autorité que par la force de son poing et la violence de ses pratiques anti-concurrentielles, Safari était ignoré par au moins 90% du marché, Opera était un refuge obscur que l&#8217;on trouve presque par hasard, une sorte de soupe de bonnes idées (très) mal arrangées, et de choix intéressants, mais pas concluants.</p>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2010/02/4browsers.jpg" title="4browsers"><img style='float:right;padding:4px;margin:0 0 2px 7px;' align="right" src="http://geekfault.org/wp-content/uploads/2010/02/4browsers-300x200.jpg" alt="" title="4browsers" width="300" height="200" class="alignright size-medium wp-image-2339"/></a></p>
<p>Et <strong>Firefox</strong> là-dedans ? Il fut d&#8217;abord envoyé par la <a rel="nofollow" target="_blank" href="http://www.mozilla.org/"><strong>Mozilla Foundation</strong></a> en tant que messie venu se dresser contre l&#8217;hégémonie d&#8217;Internet Explorer, et prêcher la bonne parole du Logiciel Libre et des standards dans cet océan de code propriétaire.</p>
<p>Firefox fut rapide, Firefox fut efficace, Firefox fut puissant, Firefox fut multi-plateforme, Firefox fut meilleur. Il engrangea ainsi à juste titre des utilisateurs par poignées, une solide réputation, un écosystème de plugins et devint même le porte-flambeau de la lute pour la percée du Logiciel libre au delà de Linux, au delà des geeks : dans la vie quotidienne du grand public, au nez et à la barbe des logiciels propriétaires.<br />
(petit <a rel="nofollow" target="_blank" href="http://xkcd.com/198/"><strong>témoignage humoristique</strong></a> représentant la place de Firefox dans nos esprits en ces temps-là)</p>
<p>Mais ce qui s&#8217;apparenta d&#8217;abord à de l&#8217;adoration et à de l&#8217;amour inconditionnel, commença à perdre de sa fraicheur à partir et au delà de Firefox 2.0. Il commença à perdre de sa légèreté, à traîner la patte, à s&#8217;approprier toute la mémoire RAM de nos systèmes et la retenir en otage, et à ne plus convenir à de plus en plus d&#8217;utilisateurs. Alors, tout naturellement (et surtout sous Linux), chacun partit <strong>en quête d&#8217;un navigateur plus léger</strong>, plus rapide, quitte à sacrifier quelques avantages de Firefox, mais à travers les 4 ou 5 petits projets inaboutis, chacun revint bredouille et se rendit à deux évidences : &#8220;Firefox reste un excellent navigateur&#8221;, et &#8220;Il n&#8217;existe pas d&#8217;alternative viable à l&#8217;Alternative.&#8221;</p>
<p>Et peu à peu, les utilisateurs se rendirent compte que <strong>la concurrence au sein des alternatives à Internet Explorer</strong> et aux navigateurs propriétaires <strong>était tout simplement inexistante</strong>, et que chacun avait un choix simple à faire : &#8220;Le mal, ou Firefox.&#8221;</p>
<h3>naissance d&#8217;un navigateur, d&#8217;un buzz et d&#8217;un imparfait.</h3>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2010/02/chrome.jpg" title="chrome"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2010/02/chrome-300x281.jpg" alt="" title="chrome" width="100" height="95" class="alignleft size-medium wp-image-2344"/></a>L&#8217;annonce et la sortie initiale de la toute première mouture du navigateur firent un fracas monumental. Ce que Google annonçait était purement et simplement une <strong>alternative à Firefox</strong>, et ses points forts et principaux arguments étaient très exactement les reproches faits à Firefox : la gestion de la mémoire RAM, la réactivité, la vitesse des rendus, le moteur JavaScript. Chrome les réalisait d&#8217;emblée.</p>
<p>Les frustrés et les curieux se jetèrent sur Chrome et déclarèrent dans les premiers jours avoir définitivement abandonné Firefox, et fait de Chrome leur navigateur par défaut. Dans les premiers jours seulement car comme notre <a rel="nofollow" target="_blank" href="http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/"><strong>premier article sur l&#8217;arrivée de Chromium </strong></a>(le parent/jumeau Opensource de chrome) sur Linux l&#8217;indiquait, même plus d&#8217;un an après la sortie du navigateur, ses carences en faisaient plus une <strong>PoC (Proof of Concept) </strong>qu&#8217;un navigateur viable dans la vie de tous les jours, c&#8217;est ainsi que le buzz s&#8217;éteignit, et que seuls les utilisateurs les moins exigeants continuèrent de l&#8217;utiliser quotidiennement.<br />
Le pic d&#8217;utilisation de Chrome retomba largement, et tout le monde ou presque se retourna vers Firefox.</p>
<p>Malgré les désenchantements, Chromium était là, et alors qu&#8217;il luttait contre l&#8217;oubli, certains, dont une partie de la rédaction de Geekfault, restaient persuadés qu&#8217;il devait être suvi car il n&#8217;avait pas seulement sa place, mais était une <strong>nécessité</strong> dans l&#8217;équilibre concurrentiel des navigateurs.</p>
<p><em>Désolé, à cause de limitations techniques nous ne pouvons pas afficher la suite de cet article dans le flux RSS. Rendez-vous directement sur Geekfault pour lire la suite <img src='http://geekfault.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley'/> </em></p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/' title='Permanent Link: Chromium, le Google Chrome sous Linux sans &#xe9;mulation'>Chromium, le Google Chrome sous Linux sans émulation</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/13/maturation-de-chromium/' title='Permanent Link: La maturation de Chromium'>La maturation de Chromium</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/17/exit-google/' title='Permanent Link: La recherche web&#x002026; sans Google!'>La recherche web… sans Google!</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/U92yNFy_JvU" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>[Brève] Bili (Belgique Illimité) : Un nouveau FAI arrive en Belgique et propose une offre comparable à celle de Free en France. Hourra ?</title>
         <link>http://datanews.rnews.be/nl/90-61-28663/article.html?cid=rss</link>
         <description>Bili (Belgique Illimité) : Un nouveau FAI arrive en Belgique et propose une offre comparable à celle de Free en France. Hourra ?</description>
         <guid isPermaLink="false">geekfaultbreve150</guid>
         <pubDate>Fri, 26 Feb 2010 18:23:37 +0000</pubDate>
         <content:encoded><![CDATA[Bili (Belgique Illimité) : Un nouveau FAI arrive en Belgique et propose une offre comparable à celle de Free en France. Hourra ?<br /><a rel="nofollow" target="_blank" href="http://datanews.rnews.be/nl/90-61-28663/article.html?cid=rss">Lien</a><img src="http://feeds.feedburner.com/~r/Geekfault/~4/_FnQndPSLvE" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>[Brève] Le kernel Linux sort en version stable 2.6.33. Principales nouveautés : driver nVidia Nouveau, clusters DRBD et Microsoft Hyper-V.</title>
         <link>http://linuxfr.org/2010/02/25/26478.html</link>
         <description>Le kernel Linux sort en version stable 2.6.33. Principales nouveautés : driver nVidia Nouveau, clusters DRBD et Microsoft Hyper-V.</description>
         <guid isPermaLink="false">geekfaultbreve149</guid>
         <pubDate>Thu, 25 Feb 2010 14:08:34 +0000</pubDate>
         <content:encoded><![CDATA[Le kernel Linux sort en version stable 2.6.33. Principales nouveautés : driver nVidia Nouveau, clusters DRBD et Microsoft Hyper-V.<br /><a rel="nofollow" target="_blank" href="http://linuxfr.org/2010/02/25/26478.html">Lien</a><img src="http://feeds.feedburner.com/~r/Geekfault/~4/w7GD7EKktpc" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>DenyHosts pour empêcher le bruteforce sur SSH</title>
         <link>http://geekfault.org/2010/02/24/denyhosts-pour-empecher-le-bruteforce-sur-ssh/</link>
         <description>Ras le bol de voir des tentatives de connexion sur votre SSH ? Il existe plusieurs logiciel pour vous en prémunir avec en tête de liste le célèbre Fail2ban qui permet de protéger SSH ainsi que la plupart des autres serveurs logguant l&amp;#8217;authentification. Mais alors pourquoi choisir DenyHosts ? DenyHosts se limite à la protection [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2010/02/17/ipv6-pour-les-nulswgeeks/' title='Permanent Link: IPv6 pour les nuls^Wgeeks'&gt;IPv6 pour les nuls^Wgeeks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/15/ssh-sans-mot-de-passe/' title='Permanent Link: SSH sans mot de passe'&gt;SSH sans mot de passe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/16/rsnapshot/' title='Permanent Link: Mise en place d&amp;#8217;un syst&amp;#xe8;me de backup avec Rsnapshot'&gt;Mise en place d&amp;#8217;un système de backup avec Rsnapshot&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=2206</guid>
         <pubDate>Wed, 24 Feb 2010 10:31:35 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2010/02/24/denyhosts-pour-empecher-le-bruteforce-sur-ssh/denyhosts/"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" class="alignleft size-full wp-image-2207" title="denyhosts" src="http://geekfault.org/wp-content/uploads/2010/02/denyhosts.png" alt="" width="347" height="73"/></a>Ras le bol de voir des tentatives de connexion sur votre SSH ? Il existe plusieurs logiciel pour vous en prémunir avec en tête de liste le célèbre Fail2ban qui permet de protéger SSH ainsi que la plupart des autres serveurs logguant l&#8217;authentification. Mais alors pourquoi choisir DenyHosts ? DenyHosts se limite à la protection SSH mais sa force provient de deux fonctionnalités : utiliser un système de synchronisation entre plusieurs DenyHosts ( je ne l&#8217;aborde pas ), mais également le partage des IP incriminées. Afin de récupérer des IP à blacklister et de d&#8217;offrir les siennes afin de se fabriquer une blacklist évolutive.</p>
<p>Un attaquant vera son adresse IP inscrite dans le fichier <em>/etc/hosts.deny</em> l&#8217;empêchant de se logguer.</p>
<p><span id="more-2206"></span></p>
<h3>Installation</h3>
<p>Gentoo</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">emerge denyhosts</div></div>
<p>Debian et dérivés</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">aptitude install denyhosts</div></div>
<p>Red Hat et consorts</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">yum install denyhosts</div></div>
<h3>Configuration</h3>
<p><em>/etc/denyhosts</em></p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;height:250px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">#Doit pointer vers votre fichier logguant les tentatives de connexions<br />
SECURE_LOG = /var/log/auth.log<br />
<br />
#Doit pointer vers votre fichier de blacklist<br />
HOSTS_DENY = /etc/hosts.deny<br />
BLOCK_SERVICE &nbsp;= sshd<br />
<br />
#Nombre d'essai avant d'être bloqué pour une connexion non root<br />
DENY_THRESHOLD_INVALID = 5<br />
DENY_THRESHOLD_VALID = 5<br />
<br />
#Nombre d'essai avant d'être bloqué pour une connexion en temps que root<br />
DENY_THRESHOLD_ROOT = 3<br />
DENY_THRESHOLD_RESTRICTED = 1<br />
WORK_DIR = /var/lib/denyhosts<br />
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES<br />
HOSTNAME_LOOKUP=YES<br />
LOCK_FILE = /var/run/denyhosts.pid<br />
<br />
#Vers quelle adresse email signaler une attaque infructueuse<br />
ADMIN_EMAIL = votre@mail<br />
SMTP_HOST = localhost<br />
SMTP_PORT = 25<br />
SMTP_FROM = DenyHosts &lt;denyhosts@localhost&gt;<br />
SMTP_SUBJECT = DenyHosts Report<br />
SYSLOG_REPORT=YES<br />
<br />
#temps avant la remise à zéro du compteur<br />
AGE_RESET_VALID=5d<br />
AGE_RESET_ROOT=10d<br />
AGE_RESET_RESTRICTED=25d<br />
AGE_RESET_INVALID=10d<br />
RESET_ON_SUCCESS = yes<br />
DAEMON_LOG = /var/log/denyhosts<br />
DAEMON_LOG_TIME_FORMAT = %b %d %H:%M:%S<br />
DAEMON_LOG_MESSAGE_FORMAT = %(asctime)s - %(name)-12s: %(levelname)-8s %(message)s<br />
DAEMON_SLEEP = 30s<br />
DAEMON_PURGE = 1h<br />
<br />
#Ces dernières lignes permettent d'utiliser le partage d'IP. On peut se limiter au partage montant ou descendant<br />
#C'est purement facultatif mais je vous le recommande.<br />
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911<br />
SYNC_UPLOAD = yes<br />
SYNC_DOWNLOAD = yes</div></div>
<p>Puis pour le lancer :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">/et/init.d/denyhosts start</div></div>
<p>Sous Gentoo pour le lancer automatiquement au boot vous devez l&#8217;ajouter à votre « rc par défaut » :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">rc-update add denyhosts default</div></div>
<h3>Logs</h3>
<p>Allons faire un tour dans les logs de DenyHosts pour voir à quoi s&#8217;attendre.</p>
<p>Exemple de synchro où l&#8217;on récupère des IP à blacklister :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">Feb 20 04:42:43 - denyhosts &nbsp; : INFO &nbsp; &nbsp; received new hosts: ['217.10.117.161', '194.185.200.156', '91.75.180.114', '202.141.132.50', '60.248.91.64', '211.100.42.83', '202.165. &nbsp; &nbsp;177.203', '211.155.227.171', '58.221.34.18', '88.191.15.133', '210.51.36.162', '220.165.28.66', '91.205.74.41', '61.178.74.43', '202.117.54.134', '74.127.18.195', '195.250.39.6 &nbsp; &nbsp;6', '216.229.160.194', '122.70.147.103', '200.195.168.194', '202.44.11.60', '94.190.187.113', '213.5.64.164', '201.116.98.210', '163.13.175.44', '119.149.189.199', '93.152.156. &nbsp; &nbsp;13', '125.7.209.4', '210.51.48.71', '88.117.234.162', '217.97.185.35', '217.20.183.73', '117.41.228.195', '201.20.186.222', '79.39.6.98', '221.165.162.4', '211.72.171.76', '209 &nbsp; &nbsp;.255.67.10', '80.203.122.116', '12.152.124.2', '70.169.201.74', '202.5.95.205', '217.219.67.131', '65.98.97.98', '218.241.155.144', '80.14.186.105', '96.31.68.39', '218.108.247 &nbsp; &nbsp;.138', '61.138.217.19', '82.230.95.10']</div></div>
<p>Ajout d&#8217;un attaquant + upload au serveur central :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">Feb 21 09:25:31 - denyhosts &nbsp; : INFO &nbsp; &nbsp; new denied hosts: ['81.7.171.15']<br />
Feb 21 09:43:01 - sync &nbsp; &nbsp; &nbsp; &nbsp;: INFO &nbsp; &nbsp; sent 1 new host</div></div>
<p>Reset du compteur en cas de login réussi :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">Feb 21 11:35:03 - loginattempt: INFO &nbsp; &nbsp; resetting count for: 10.0.0.3</div></div>
<h3>Liens</h3>
<p><a rel="nofollow" target="_blank" href="http://www.denyhosts.sourceforge.net">Site officiel</a><br /> <a rel="nofollow" target="_blank" href="http://stats.denyhosts.net/stats.html">Statistiques mondiales de DenyHosts</a></p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2010/02/17/ipv6-pour-les-nulswgeeks/' title='Permanent Link: IPv6 pour les nuls^Wgeeks'>IPv6 pour les nuls^Wgeeks</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/15/ssh-sans-mot-de-passe/' title='Permanent Link: SSH sans mot de passe'>SSH sans mot de passe</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/16/rsnapshot/' title='Permanent Link: Mise en place d&#8217;un syst&#xe8;me de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/RuMUyN1hJo0" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Libérez votre esprit avec Freemind</title>
         <link>http://geekfault.org/2010/02/21/liberez-votre-esprit-avec-freemind/</link>
         <description>Ça semble évident : dans le monde de l&amp;#8217;OpenSource, de la programmation ou de l&amp;#8217;informatique en général, s&amp;#8217;il est un besoin omniprésent, c&amp;#8217;est bien celui de structurer une pensée, schématiser une procédure, ou hierarchiser un projet.
Combien de projets sont-ils morts ou ont-ils été paralysés par un défaut de structure, d&amp;#8217;ordre et de clarté dans la [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/03/21/faire-planter-le-weechat-de-votre-correspondant/' title='Permanent Link: Faire planter le Weechat de votre correspondant'&gt;Faire planter le Weechat de votre correspondant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/03/21/minimeter-votre-quota-de-telechargement-en-permanence-sous-les-yeux/' title='Permanent Link: Minimeter : votre quota de t&amp;#xe9;l&amp;#xe9;chargement en permanence sous les yeux'&gt;Minimeter : votre quota de téléchargement en permanence sous les yeux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/16/rsnapshot/' title='Permanent Link: Mise en place d&amp;#8217;un syst&amp;#xe8;me de backup avec Rsnapshot'&gt;Mise en place d&amp;#8217;un système de backup avec Rsnapshot&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=2139</guid>
         <pubDate>Sun, 21 Feb 2010 02:32:55 +0000</pubDate>
         <content:encoded><![CDATA[<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2010/02/freemind.jpg" alt="" title="freemind" width="300" height="199" class="alignleft size-full wp-image-2140"/><br />
Ça semble évident : dans le monde de l&#8217;<strong>OpenSource</strong>, de la programmation ou de l&#8217;informatique en général, s&#8217;il est un besoin omniprésent, c&#8217;est bien celui de structurer une pensée, schématiser une procédure, ou hierarchiser un projet.</p>
<p>Combien de projets sont-ils morts ou ont-ils été paralysés par un défaut de structure, d&#8217;ordre et de clarté dans la manière de procéder ?</p>
<p><a rel="nofollow" target="_blank" href="http://freemind.sourceforge.net/wiki/index.php/Main_Page"><strong>Freemind</strong></a>, ce n&#8217;est pas un nouveau procédé de méditation New-Age à la mode, mais c&#8217;est tout de même la <strong>solution à ce problème</strong> !<br />
<span id="more-2139"></span><br />
<h3></h3>
<p>Freemind est un logiciel de création de <strong>schémas</strong> et d&#8217;<strong>organigrames</strong> de type WYSIWYG permettant de structurer graphiquement des idées ou des procédures, c&#8217;est à dire à peu près tout ce qui passe par votre tête.</p>
<p>Nous allons ici voir les avantages, pas toujours triviaux, et pourquoi il peut réellement être important de se forcer à représenter ses pensées schématiquement.</p>
<h3>Freemind : comment regarder son cerveau dans un miroir, et y mettre un peu d&#8217;ordre !</h3>
<p>Dans une citation célèbre, souvent attribuée à Einstein, il est dit que &#8220;Si tu n&#8217;es pas en mesure d&#8217;expliquer un concept à un enfant de 8 ans, c&#8217;est que tu ne maitrises pas ce concept correctement.&#8221;</p>
<p>Le premier intérêt d&#8217;une représentation graphique, au delà de tout autre utilité, est d&#8217;<strong>appréhender ses pensées</strong>.<br />
Cela peut paraître stupide, ou inutile, mais la réalité est que, si on prenait la peine de se représenter correctement à soi-même ses propres pensées, avant de tenter de les appliquer ou de les expliquer à quelqu&#8217;un, on éviterait souvent de perdre <strong>beaucoup</strong> de temps à tenter d&#8217;expliquer un raisonnement qu&#8217;on n&#8217;appréhende et donc ne peut exprimer clairement, ou à tenter d&#8217;implémenter une procédure qui, sur un schéma correct, se révèle <strong>irréalisable</strong>, et dont les failles apparaissent comme des guirlandes de noël.</p>
<h4>Une preuve ? Un exemple ? Mieux : un témoignage !</h4>
<p>Pas plus tard que cette nuit, j&#8217;ai tenté de me mettre sérieusement à utiliser les services de réseaux sociaux dont on entends tant parler actuellement.<br />
<strong>Mes 4 nominés ?</strong> <a rel="nofollow" target="_blank" href="http://www.google.com/buzz">Google Buzz</a>, <a rel="nofollow" target="_blank" href="http://www.facebook.com">Facebook</a>, <a rel="nofollow" target="_blank" href="http://identi.ca">Identi.ca</a> et <a rel="nofollow" target="_blank" href="http://twitter.com">Twitter</a>.<br />
<strong>Mon objectif ?</strong> Parvenir à tous les utiliser en même temps, avec un moindre effort, et qu&#8217;ils se synchronisent correctement entre-eux le plus possible.</p>
<p>Ceux qui se sont déjà lancés dans ce genre d&#8217;initiatives savent à quel point les procédés pour relier deux services qui refusent de se parler (concurrents, par exemple) peuvent être tordus, mais surtout à quel point une structuration sans faille des interactions de ces réseaux est <strong>vitale</strong> pour éviter des redondances ou des boucles infinies.</p>
<p>Après avoir cassé les dents de mon petit esprit inférieur sur ce problème épineux, j&#8217;ai décidé de le représenter sur un bout de papier, ou mieux, sur &#8220;ce logiciel dont je dois faire un article Geekfault depuis des mois&#8221;, comment je voulais structurer mon réseau.</p>
<p>Ci-jointe, donc, la première itération de mon schéma logique des interactions entre ces différents services.<br />
<div id="attachment_2169" class="wp-caption aligncenter" style="width:580px;"><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2010/02/SocialNetwork_Wrong.png" title="SocialNetwork_Wrong"><img src="http://geekfault.org/wp-content/uploads/2010/02/SocialNetwork_Wrong.png" alt="" title="SocialNetwork_Wrong" width="570" height="411" class="size-full wp-image-2169"/></a><p class="wp-caption-text">You're doing it wrong !</p></div><br />
Je vous mets au <strong>défi</strong> de jeter un coup d&#8217;œil rapide à ce schéma, et à ensuite tenter de vous persuader que vous avez compris la structure exacte de ce dispositif, ou pire : de l&#8217;expliquer à quelqu&#8217;un.<br />
C&#8217;est quasiment impossible sans y passer au moins 5 bonnes minutes. 5 précieuses minutes pour un concept qui n&#8217;en mérite qu&#8217;une maximum, car un schéma d&#8217;organisation plus complexe pourrait facilement vous prendre 30 minutes pour comprendre un concept qui pourrait être décrit et défini en 5 minutes.
<p>Il ne s&#8217;agit pas ici (uniquement) d&#8217;une inaptitude à utiliser un logiciel de schématisation. J&#8217;ai d&#8217;ailleurs <strong>très exactement</strong> reproduit le concept que j&#8217;avais en tête.<br />
Là est précisément le problème.<br />
Ce n&#8217;est qu&#8217;après avoir à moitié schématisé mon plan de pensée, que j&#8217;ai compris que si je n&#8217;arrivais pas à comprendre mon propre schéma, c&#8217;était tout simplement parce qu&#8217;il était déjà totalement bordélique dans ma tête, et qu&#8217;il devait être repensé <strong>from scratch</strong>.</p>
<p>C&#8217;est ainsi que, en quelques minutes seulement (voire quelques dizaines de secondes), j&#8217;ai recommencé mon schéma, en repensant, non seulement sa schématisation, mais également sa structure dans ma tête, et que je suis parvenu à ce simple mais efficace résultat :<br />
<div id="attachment_2177" class="wp-caption aligncenter" style="width:590px;"><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2010/02/SocialNetwork.png" title="SocialNetwork"><img src="http://geekfault.org/wp-content/uploads/2010/02/SocialNetwork-580x402.png" alt="" title="SocialNetwork" width="580" height="402" class="size-large wp-image-2177"/></a><p class="wp-caption-text">La différence est frappante !</p></div><br />
S&#8217;il semble un peu déconcertant à première vue (de par l&#8217;absence de légendes), quelques secondes d&#8217;observation seulement vous feront déjà réaliser les trois principaux points importants du dispositif :
<ul>
<li> Twitter occupe une position <strong>centrale</strong>, et est celui qui se charge de propager les mises à jours aux autres services. (flèches <strong>bleues</strong>)</li>
<li> Identi.ca est le <strong>seul</strong> service qui poste des mises à jours à Twitter (flèche <strong>rouge</strong>)</li>
<li> Chaque service est en contact avec chaque autre service via Twitter (flèches <strong>vertes</strong>, représentant des liens indirects)</li>
</ul>
<p>Une fois qu&#8217;on a compris ça, on peut déjà mettre en place le dispositif de façon ordonnée, méthodique et productive, et on peut déjà très clairement apercevoir les implications plus abstraites :</p>
<ul>
<li> Tout ce qui est posté par Identi.ca est correctement propagé à tous les services, il doit donc être le service utilisé pour poster des mises à jour.
</li>
<li> On peut poster des mises à jours sur Facebook et Buzz sans qu&#8217;elles ne soient répercutées partout à la fois, ces deux services peuvent donc être utilisés pour poster des mises à jours plus personnelles/privées, ou simplement n&#8217;ayant pas la prétention de devoir être propagées sur tous les moyens de communications et «spamées» inutilement.</li>
</ul>
<p>Cette expérience illustre parfaitement que même si je <strong>croyais</strong> avoir saisi la structure à appliquer, et avoir compris mon raisonnement, une représentation graphique m&#8217;a évité de me gratter la tête pendant des heures, et m&#8217;a permis de reprendre mes erreurs, qui apparaissaient évidentes en comparant les deux schémas.</p>
<p><strong>Quelques minutes plus tard, mon dispositif était en place, et marchait du tonnerre de dieu. Ils vécurent heureux et eurent beaucoup de followers !</strong></p>
<p><em>Désolé, à cause de limitations techniques nous ne pouvons pas afficher la suite de cet article dans le flux RSS. Rendez-vous directement sur Geekfault pour lire la suite <img src='http://geekfault.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley'/> </em></p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/03/21/faire-planter-le-weechat-de-votre-correspondant/' title='Permanent Link: Faire planter le Weechat de votre correspondant'>Faire planter le Weechat de votre correspondant</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/03/21/minimeter-votre-quota-de-telechargement-en-permanence-sous-les-yeux/' title='Permanent Link: Minimeter : votre quota de t&#xe9;l&#xe9;chargement en permanence sous les yeux'>Minimeter : votre quota de téléchargement en permanence sous les yeux</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/16/rsnapshot/' title='Permanent Link: Mise en place d&#8217;un syst&#xe8;me de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/rlQBYEIJX5w" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>[Brève] La FSF lance une lettre ouverte incisive à Google pour qu'il libère et exploite sa licence VP8 en balise vidéo html5 sur youtube.</title>
         <link>http://www.fsf.org/blogs/community/google-free-on2-vp8-for-youtube/</link>
         <description>La FSF lance une lettre ouverte incisive à Google pour qu'il libère et exploite sa licence VP8 en balise vidéo html5 sur youtube.</description>
         <guid isPermaLink="false">geekfaultbreve148</guid>
         <pubDate>Sat, 20 Feb 2010 19:05:39 +0000</pubDate>
         <content:encoded><![CDATA[La FSF lance une lettre ouverte incisive à Google pour qu'il libère et exploite sa licence VP8 en balise vidéo html5 sur youtube.<br /><a rel="nofollow" target="_blank" href="http://www.fsf.org/blogs/community/google-free-on2-vp8-for-youtube/">Lien</a><img src="http://feeds.feedburner.com/~r/Geekfault/~4/dbsONHYqxWs" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>EeeGW – ZE retour du détour ! – Proxycache.</title>
         <link>http://geekfault.org/2010/02/20/eeegw-ze-retour-du-detour-proxycache/</link>
         <description>Vous vous souvenez dans l&amp;#8217;article : http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/ Je vous ai parlé de plein de petits ajouts afin de rendre votre eeegw MUST.
Je vous avais parlé de :
Pouvoir mettre en place un proxy transparent pour votre connexion pour mettre en cache les pages les plus souvent demandées et ainsi économiser de la bande passante.
Finalement j&amp;#8217;ai trouvé [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' title='Permanent Link: EeeGW : Cr&amp;#xe9;er soi-m&amp;#xea;me une passerelle r&amp;#xe9;seau'&gt;EeeGW : Créer soi-même une passerelle réseau&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=2122</guid>
         <pubDate>Sat, 20 Feb 2010 18:44:39 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2010/02/20/eeegw-ze-retour-du-detour-proxycache/img00263-2/"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2010/02/IMG00263-300x225.jpg" alt="" title="IMG00263" width="300" height="225" class="alignleft size-medium wp-image-2127"/></a></p>
<p>Vous vous souvenez dans l&#8217;article : <a rel="nofollow" target="_blank" href="http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/">http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/</a> Je vous ai parlé de plein de petits ajouts afin de rendre votre eeegw MUST.</p>
<p>Je vous avais parlé de :</p>
<p><strong>Pouvoir mettre en place un proxy transparent pour votre connexion pour mettre en cache les pages les plus souvent demandées et ainsi économiser de la bande passante.</strong></p>
<p>Finalement j&#8217;ai trouvé le soft parfait pour faire ça : <a rel="nofollow" target="_blank" href="http://www.pps.jussieu.fr/~jch/software/polipo/">http://www.pps.jussieu.fr/~jch/software/polipo/</a></p>
<p><span id="more-2122"></span></p>
<h4> Choix du soft de proxy cache </h4>
<p><strong> Pourquoi ne pas avoir choisi squid ? </strong></p>
<p>- Parce qu&#8217;il est trop gourmand en ressource pour la eeegw.<br />
- Parce que sa conf est imbittable pour un non initié.</p>
<p><strong> Pourquoi avoir choisi Polipo ?</strong></p>
<p>- Parce qu&#8217;il consomme que dalle en ressource et en espace disque.<br />
- Parce que sa configuration est assez implicite.<br />
- Polipo à toutes les fonctions d&#8217;un bon web proxy.<br />
- Polipo est parfaitement adapté aux petits reseaux, mais pourrait parfaitement fonctionner sur un gros réseau bien qu&#8217;il n&#8217;ai pas spécialement été design dans ce but.<br />
- Polipo sait filtrer, ainsi si on souhaite totalement interdire facebook.com ou msn.con/live.com sur son reseau <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley'/> On peut très facilement.<br />
- Polipo sait causer ipv4 et ipv6, Ainsi polipo peut être utilisé en tant que bridge pour permettre aux clients ipv6 d&#8217;accéder à l&#8217;internet v4 et vis et versa.<br />
- Polipo sait parler SOCKS, ainsi il peut très facilement se coupler (ou s&#8217;accoupler au choix :p) avec tor afin de surfer de façon anonyme.</p>
<h4> Installation et configuration de Polipo </h4>
<p>Sur eeegw rien de plus simple :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">apt-get install polipo</div></div>
<p>Allé on va le configurer : /etc/polipo/config</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;height:250px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">proxyAddress = "::0" &nbsp; &nbsp; &nbsp; &nbsp;# both IPv4 and IPv6<br />
# proxyAddress = "0.0.0.0" &nbsp; &nbsp;# IPv4 only<br />
proxyPort = 8118<br />
# If you are enabling 'proxyAddress' above, then you want to enable the<br />
# 'allowedClients' variable to the address of your network, e.g.<br />
allowedClients = 127.0.0.1, 10.0.69.0/24 &nbsp;<br />
# Uncomment this if you want your Polipo to identify itself by<br />
# something else than the host name:<br />
proxyName = "polipo.eeegw.bragon.info"<br />
# Uncomment this if you want to use a parent SOCKS proxy:<br />
# socksParentProxy = "localhost:9050"<br />
# socksProxyType = socks5<br />
### Memory<br />
### ******<br />
# Uncomment this if you want Polipo to use a ridiculously small amount<br />
# of memory (a hundred C-64 worth or so):<br />
# chunkHighMark = 819200<br />
# objectHighMark = 128<br />
# Uncomment this if you've got plenty of memory:<br />
chunkHighMark = 50331648<br />
objectHighMark = 16384<br />
## me permet d'acceder a http://10.0.69.250:8118/polipo/index pour voir ce qui est mis en cache<br />
disableIndexing = false<br />
disableServersList = false<br />
### HTTP<br />
### ****<br />
# Note that PMM is somewhat unreliable.<br />
<br />
pmmFirstSize = 16384<br />
pmmSize = 8192<br />
<br />
# Suggestions from bragon<br />
maxConnectionAge = 10m<br />
maxConnectionRequests = 1024<br />
serverMaxSlots = 16<br />
serverSlots = 4<br />
tunnelAllowedPorts = 1-65535</div></div>
<p>/etc/polipo/forbidden</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">microsoft.com<br />
live.com<br />
msn.com<br />
hotmail.fr<br />
hotmail.com<br />
facebook.fr<br />
facebook.com</div></div>
<p>Laissez le fichier option de base.</p>
<h4> On peut faire feu </h4>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">/etc/init.d/polipo start</div></div>
<p>http://ip.eeegw:8118/polipo/</p>
<p>Vous pourrez ainsi voir la configuration ainsi que pas mal de chose étant mis en cache.</p>
<p>http://ip.eeegw:8118/polipo/index?</p>
<h4> Le choix s&#8217;offre à vous </h4>
<p>Deux solutions :<br />
- Soit vous dites à vos clients d&#8217;utiliser dans leur firefox/chromium comme proxy : ip.polipo:8118<br />
- Soit via une règle iptables vous dites simplement à votre eeegw que tout traffic sortant via le port 80 doit d&#8217;abord passer par polipo.</p>
<p>Croyez moi vous allez économiser de la bande passante <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley'/> </p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' title='Permanent Link: EeeGW : Cr&#xe9;er soi-m&#xea;me une passerelle r&#xe9;seau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/l0Y2WrUJ4vM" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Monitoring – Munin</title>
         <link>http://geekfault.org/2010/02/20/monitoring-munin/</link>
         <description>Je vais ici vous parler de Munin.
C&amp;#8217;est un outils de génération de graphs basé sur rrdtool.
Il permet de grapher toute sorte de chose vachement bien, et comme j&amp;#8217;en suis pleinement convaincu, je vais vous le présenter ici.
L&amp;#8217;intégration de plugins supplémentaire afin de grapher des choses non prévu à la base est enfantine.
Il existe pas mal [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/' title='Permanent Link: nginx et python &amp;#8211; le perfect setup'&gt;nginx et python &amp;#8211; le perfect setup&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' title='Permanent Link: EeeGW : Cr&amp;#xe9;er soi-m&amp;#xea;me une passerelle r&amp;#xe9;seau'&gt;EeeGW : Créer soi-même une passerelle réseau&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1893</guid>
         <pubDate>Sat, 20 Feb 2010 17:40:17 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2010/02/20/monitoring-munin/munin_logo/"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2010/02/Munin_logo.png" alt="" title="Munin_logo" width="305" height="80" class="alignleft size-full wp-image-2099"/></a></p>
<p>Je vais ici vous parler de Munin.<br />
C&#8217;est un outils de génération de graphs basé sur rrdtool.<br />
Il permet de grapher toute sorte de chose vachement bien, et comme j&#8217;en suis pleinement convaincu, je vais vous le présenter ici.<br />
L&#8217;intégration de plugins supplémentaire afin de grapher des choses non prévu à la base est enfantine.<br />
Il existe pas mal de munin publique qui peuvent vous permettre de vous rendre compte de la puissance de l&#8217;outils.<br />
Allez par exemple visualiser : <a rel="nofollow" target="_blank" href="https://supervision.globenet.org/munin">https://supervision.globenet.org/munin/</a></p>
<p>Geeknode génére sa page statistique grace à des plugins Munin homemade également :<br />
Allez visualiser : <a rel="nofollow" target="_blank" href="http://www.geeknode.org/statistiques.html">http://www.geeknode.org/statistiques.html</a></p>
<p>J&#8217;espère ainsi vous avoir donné l&#8217;envie d&#8217;aller voir plus loin avec ce soft très bien fait.</p>
<p><span id="more-1893"></span></p>
<h4> Munin se décompose en 2 parties : </h4>
<p>Le grapheur munin sur une machine qui va se charger de la surveillance, c&#8217;est la machine qui va s&#8217;occuper d&#8217;interroger tous les nodes, et de générer les graphiques à partir des fichiers rrd collectés.</p>
<p>Le démon munin-node sur chaque machine qui va fournir son état au grapheur.</p>
<p>Evidement, si vous n&#8217;avez qu&#8217;un seul serveur vous aurez a exécuter munin-graph et munin-node sur la même machine.</p>
<p>munin-node.conf doit binder sur 127.0.0.1 (host) et n&#8217;a pas besoin d&#8217;accepter autre chose que 127.0.0.1 (allow) dans le cas d&#8217;une machine simple.</p>
<p>Si vous avez plusieurs machines à grapher vous devez bien sur écouter sur une ipv4 publique afin que le grapher puisse récupérer vos données.</p>
<h4>Pour firewaller munin-node : </h4>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">INPUT TCP IP.SRC.MUNIN.GRAPH/32 4949 sur les munin-node<br />
OUTPUT TCP 4949 sur le munin-graph</div></div>
<h3> On install munin-node sur les machines à surveiller </h3>
<p>MUNIN-NODE est à installer sur toutes les machines que l&#8217;on veut grapher.</p>
<p>Installation du daemon munin-node sous Gentoo :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">echo 'net-analyzer/munin minimal -ssl -mysql' &gt;&gt; /etc/portage/package.use<br />
emerge -av net-analyzer/munin</div></div>
<p>Installation du daemon munin-node sous Debian</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">apt-get install munin-node</div></div>
<h3> Configuration du daemon munin-node </h3>
<p>On importe les plugins sous gentoo :<br />
On ajoute les plugins de base<br />
Sous debian les plugins de base en fonction des services tournant sur la machine sont par defaut activés.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;height:250px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">cd /etc/munin/plugins<br />
ln -s /usr/libexec/munin/plugins/swap<br />
ln -s /usr/libexec/munin/plugins/memory<br />
ln -s /usr/libexec/munin/plugins/processes<br />
ln -s /usr/libexec/munin/plugins/if_ /etc/munin/plugins/if_eth0<br />
ln -s /usr/libexec/munin/plugins/if_ /etc/munin/plugins/if_eth1<br />
ln -s /usr/libexec/munin/plugins/uptime<br />
ln -s /usr/libexec/munin/plugins/cpu<br />
ln -s /usr/libexec/munin/plugins/load<br />
ln -s /usr/libexec/munin/plugins/df<br />
ln -s /usr/libexec/munin/plugins/interrupts<br />
ln -s /usr/libexec/munin/plugins/iostat<br />
ln -s /usr/libexec/munin/plugins/netstat<br />
ln -s /usr/libexec/munin/plugins/users</div></div>
<h4> On ajoute les plugins apache</h4>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">ln -s /usr/libexec/munin/plugins/apache_accesses<br />
ln -s /usr/libexec/munin/plugins/apache_processes<br />
ln -s /usr/libexec/munin/plugins/apache_volume</div></div>
<h3> On autorise le serveur à grapher à accéder au munin-node </h3>
<p>* /etc/munin/munin-node.conf<br /> allow ^IP&#92;.PRIVE&#92;.DU-SERVEUR-QUI-GRAPH&#92;.ETH1$</p>
<p>* au passage on bind le munin-node sur eth1 aussi, ça évite d&#8217;écouter inutilement sur toutes les autres interfaces<br /> host IP.PRIVE.DE.CETTE.MACHINE</p>
<h4> Exemple de fichier munin-node.conf </h4>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;height:250px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">log_level 4<br />
log_file /var/log/munin/munin-node.log<br />
port 4949<br />
pid_file /var/run/munin/munin-node.pid<br />
background 1<br />
setseid 1<br />
<br />
# Which port to bind to;<br />
host *<br />
user root<br />
group root<br />
setsid yes<br />
<br />
# Regexps for files to ignore<br />
<br />
ignore_file ~$<br />
ignore_file &#92;.bak$<br />
ignore_file %$<br />
ignore_file &#92;.dpkg-(tmp|new|old|dist)$<br />
ignore_file &#92;.rpm(save|new)$<br />
<br />
allow ^10&#92;.0&#92;.69&#92;.250$</div></div>
<h3> Installation du grapheur </h3>
<p>Sous Gentoo :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">echo 'net-analyzer/munin -minimal -mysql' &gt; /etc/portage/package.use<br />
emerge -av munin</div></div>
<p>Sous Debian :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">apt-get install munin</div></div>
<h4> Exemple de fichier munin.conf </h4>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;height:250px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">dbdir &nbsp; /var/lib/munin<br />
htmldir /var/www/munin<br />
logdir &nbsp;/var/log/munin<br />
rundir &nbsp;/var/run/munin<br />
tmpldir /etc/munin/templates<br />
<br />
[localhost.localdomain]<br />
&nbsp; &nbsp; address 127.0.0.1<br />
&nbsp; &nbsp; use_node_name yes<br />
<br />
[brag-nas]<br />
&nbsp; &nbsp; &nbsp; &nbsp; address 10.0.69.240<br />
&nbsp; &nbsp; &nbsp; &nbsp; use_node_name yes<br />
<br />
[satanas.bragon.info]<br />
&nbsp; &nbsp; &nbsp; &nbsp; address 10.0.69.45<br />
&nbsp; &nbsp; &nbsp; &nbsp; use_node_name yes<br />
[lucifer.bragon.info]<br />
&nbsp; &nbsp; &nbsp; &nbsp; address 10.0.69.1<br />
&nbsp; &nbsp; &nbsp; &nbsp; use_node_name yes</div></div>
<h4> crontab </h4>
<p>Une crontab doit logiquement s&#8217;etre ajouté lors de l&#8217;installation sur le grapher pour l&#8217;utilisateur munin :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">crontab -u munin -l<br />
# m h &nbsp;dom mon dow &nbsp; command<br />
*/5 &nbsp; &nbsp; * * * * &nbsp; &nbsp; &nbsp; &nbsp; [ -x /usr/bin/munin-cron ] &amp;&amp; /usr/bin/munin-cron</div></div>
<p>Si la crontab ne s&#8217;est pas mise en place rajoutez la.</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">crontab -u munin -e</div></div>
<h3> Exemples de graphs </h3>
<p>Et enjoy les supra bien graph <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley'/> )</p>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2010/02/20/monitoring-munin/acpi-month/"><img style='display:block;margin-right:auto;margin-left:auto;' align="center" src="http://geekfault.org/wp-content/uploads/2010/02/acpi-month.png" alt="" title="acpi-month" width="501" height="275" class="aligncenter size-full wp-image-2102"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2010/02/20/monitoring-munin/openvpn_clients-week/"><img style='display:block;margin-right:auto;margin-left:auto;' align="center" src="http://geekfault.org/wp-content/uploads/2010/02/openvpn_clients-week.png" alt="" title="openvpn_clients-week" width="501" height="275" class="aligncenter size-full wp-image-2103"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2010/02/20/monitoring-munin/sdf_mysql_queries-day/"><img style='display:block;margin-right:auto;margin-left:auto;' align="center" src="http://geekfault.org/wp-content/uploads/2010/02/sdf_mysql_queries-day.png" alt="" title="sdf_mysql_queries-day" width="501" height="347" class="aligncenter size-full wp-image-2104"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2010/02/20/monitoring-munin/cps_0-week/"><img style='display:block;margin-right:auto;margin-left:auto;' align="center" src="http://geekfault.org/wp-content/uploads/2010/02/cps_0-week.png" alt="" title="cps_0-week" width="501" height="347" class="aligncenter size-full wp-image-2105"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2010/02/20/monitoring-munin/nfsd-week/"><img style='display:block;margin-right:auto;margin-left:auto;' align="center" src="http://geekfault.org/wp-content/uploads/2010/02/nfsd-week.png" alt="" title="nfsd-week" width="501" height="527" class="aligncenter size-full wp-image-2108"/></a></p>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2010/02/20/monitoring-munin/if_eth0-day/"><img style='display:block;margin-right:auto;margin-left:auto;' align="center" src="http://geekfault.org/wp-content/uploads/2010/02/if_eth0-day.png" alt="" title="if_eth0-day" width="501" height="275" class="aligncenter size-full wp-image-2109"/></a></p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/' title='Permanent Link: nginx et python &#8211; le perfect setup'>nginx et python &#8211; le perfect setup</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' title='Permanent Link: EeeGW : Cr&#xe9;er soi-m&#xea;me une passerelle r&#xe9;seau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/9uBXIhXRrbc" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Geekfault cherche des rédacteurs.</title>
         <link>http://geekfault.org/2010/02/20/geekfault-cherche-des-redacteurs/</link>
         <description>Geekfault cherche des rédacteurs francophones. &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/04/18/nouveautes-sur-geekfault/' title='Permanent Link: Nouveaut&amp;#xe9;s sur Geekfault'&gt;Nouveautés sur Geekfault&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/19/migration-de-geekfault/' title='Permanent Link: Migration de Geekfault'&gt;Migration de Geekfault&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/26/baisse-dactivite-de-geekfault/' title='Permanent Link: Baisse d&amp;#8217;activit&amp;#xe9; de Geekfault'&gt;Baisse d&amp;#8217;activité de Geekfault&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=2092</guid>
         <pubDate>Sat, 20 Feb 2010 16:53:05 +0000</pubDate>
         <content:encoded><![CDATA[<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/04/geekfault.png" alt="" title="Logo Geekfault" width="128" height="128" class="alignleft size-full wp-image-203"/></p>
<p>Si vous vous sentez l&#8217;âme d&#8217;un geek.<br />
Si vous avez des projets open source qui vous tiennent à cœur à présenter.<br />
Si vous avez l&#8217;âme d&#8217;un rédacteur d&#8217;article.<br />
Si vous vous sentez seul et souhaitez partager vos découvertes glanées sur la toile.<br />
Si vous pensez qu&#8217;il est plus important de partager la connaissance que d&#8217;en avoir réellement <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley'/> </p>
<p>Dans ce cas, vous êtes fait pour être rédacteur Geekfault.</p>
<p>Proposez nous des articles en commentaire avec un email valide, et nous vous contacterons si vos idées nous plaisent.</p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/04/18/nouveautes-sur-geekfault/' title='Permanent Link: Nouveaut&#xe9;s sur Geekfault'>Nouveautés sur Geekfault</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/19/migration-de-geekfault/' title='Permanent Link: Migration de Geekfault'>Migration de Geekfault</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/26/baisse-dactivite-de-geekfault/' title='Permanent Link: Baisse d&#8217;activit&#xe9; de Geekfault'>Baisse d&#8217;activité de Geekfault</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/Drw_bewLu9E" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>IPv6 pour les nuls^Wgeeks</title>
         <link>http://geekfault.org/2010/02/17/ipv6-pour-les-nulswgeeks/</link>
         <description>&lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/28/geekfault-disponible-en-ipv6/' title='Permanent Link: Geekfault disponible en IPv6'&gt;Geekfault disponible en IPv6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2010/02/24/denyhosts-pour-empecher-le-bruteforce-sur-ssh/' title='Permanent Link: DenyHosts pour emp&amp;#xea;cher le bruteforce sur SSH'&gt;DenyHosts pour empêcher le bruteforce sur SSH&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/20/firmware-linksys-wag200g/' title='Permanent Link: Firmware modifi&amp;#xe9; pour Linksys WAG200G'&gt;Firmware modifié pour Linksys WAG200G&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1566</guid>
         <pubDate>Wed, 17 Feb 2010 11:55:19 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2010/02/17/ipv6-pour-les-nulswgeeks/ipv6_ready_logo_phase2-small-2/"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2010/01/IPv6_ready_logo_phase2-small.jpg" alt="IPv6 Ready Logo" title="IPv6_ready_logo_phase2-small" width="200" height="239" class="alignleft size-full wp-image-1879"/></a>À moins d&#8217;avoir passé les 6 dernières années sous un gravillon, ou de n&#8217;avoir vraiment aucun intérêt pour les protocoles Internet (on ne vous juge pas !), vous avez probablement entendu parler d&#8217;IPv6. Seulement voilà : on en dit du bien ou du mal, mais sait-on exactement ce qu&#8217;est IPv6 après tout ? Voici le premier d&#8217;une petite série d&#8217;articles destinés à lever le voile.</p>
<p><span id="more-1566"></span></p>
<h3>Qu&#8217;est-ce qu&#8217;IPv6 ?</h3>
<p>Comme vous le savez certainement, Internet aujourd&#8217;hui repose essentiellement sur IPv4. Pour lui succéder, IPv6 (ou IPng, bien que cette deuxième dénomination soit moins fréquente) a été conçu il y a bien longtemps déjà. Sa mise en service était prévue en 1996 !<br />
Bizarrerie d&#8217;Internet, IPv5 n&#8217;a pas grand chose à voir avec les deux autres ; pour les curieux, il s&#8217;agit du Stream Protocol ST-II, qui est décrit <a rel="nofollow" target="_blank" href="http://www.faqs.org/rfcs/rfc1819.html">ici</a>.<br />
Alors qu&#8217;une adresse IPv4 ressemble à 81.93.247.142, une adresse IPv6 ressemble plutôt à 2001:758:1664::42 &#8230; mais nous y reviendrons plus tard.</p>
<h3>Pourquoi remplacer IPv4 ?</h3>
<p> Disons-le tout net, IPv4 marche encore très bien (aux dernières nouvelles en tous cas). Mais comme une adresse IPv4 est codée sur 32 bits, IPv4 ne peut adresser que 2<sup>32</sup> hôtes, soit un peu plus de 4 milliards de machines diverses et variées. La quantité d&#8217;adresses disponibles, qui semblait suffisante il y a 30 ans, diminue constamment, sans compter qu&#8217;une bonne partie de ces adresses sont réservées et ne peuvent être allouées. <a rel="nofollow" target="_blank" href="http://www.potaroo.net/tools/ipv4/index.html">Selon certaines estimations</a>, l&#8217;espace d&#8217;adresses IPv4 sera épuisé d&#8217;ici 2011/2012. </p>
<p>Par ailleurs, la plupart des FAI grand public attribuent en général <em>UNE</em> adresse IPv4 publique par abonné &#8230; et encore. Si vous êtes derrière un routeur ou une *box, sauf cas particulier, vous pouvez dire adieu à l&#8217;adresse IP publique : le routeur fera probablement du NAT (<a rel="nofollow" target="_blank" href="http://fr.wikipedia.org/wiki/Network_address_translation">Network Address Translation</a>). Et s&#8217;il s&#8217;agit d&#8217;une connexion Internet mobile, là encore, il n&#8217;y aura probablement pas d&#8217;IP publique au bout de la ligne.<br />
Or, selon la définition que l&#8217;on donne à Internet, ne pas avoir d&#8217;adresse IP publique c&#8217;est ne pas être sur Internet (c&#8217;est en tout cas l&#8217;opinion de <a rel="nofollow" target="_blank" href="http://blog.fdn.fr/post/2010/01/12/Rencontre-avec-l-ARCEP-sur-la-neutralit%C3%A9-du-r%C3%A9seau">Benjamin Bayart</a>, président de <a rel="nofollow" target="_blank" href="http://www.fdn.fr">FDN</a>).<br />
Par ailleurs, le NAT c&#8217;est bien gentil, mais ça complique très nettement la vie dès qu&#8217;il s&#8217;agit de faire du peer-to-peer (la technologie au sens large) ou de la VoIP par exemple.</p>
<p>Enfin, de façon générale, IPv6 apporte de nombreuses améliorations par rapport à IPv4 : il a été conçu de manière à permettre une répartition plus facile de son espace d&#8217;adressage, à effectuer un routage plus efficace, à mieux supporter le multicast ou encore à intégrer un concept de mobilité pour les terminaux nomades : autant de bonnes raisons de migrer !</p>
<p><em>Désolé, à cause de limitations techniques nous ne pouvons pas afficher la suite de cet article dans le flux RSS. Rendez-vous directement sur Geekfault pour lire la suite <img src='http://geekfault.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley'/> </em></p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/28/geekfault-disponible-en-ipv6/' title='Permanent Link: Geekfault disponible en IPv6'>Geekfault disponible en IPv6</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2010/02/24/denyhosts-pour-empecher-le-bruteforce-sur-ssh/' title='Permanent Link: DenyHosts pour emp&#xea;cher le bruteforce sur SSH'>DenyHosts pour empêcher le bruteforce sur SSH</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/20/firmware-linksys-wag200g/' title='Permanent Link: Firmware modifi&#xe9; pour Linksys WAG200G'>Firmware modifié pour Linksys WAG200G</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/RP1Qa41KsGI" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>[Brève] Comme nous vous l'avions annoncé, Facebook a releasé son serveur XMPP! On peut maintenant utiliser Facebook Chat avec n'importe quel client!</title>
         <link>http://blog.facebook.com/blog.php?post=297991732130</link>
         <description>Comme nous vous l'avions annoncé, Facebook a releasé son serveur XMPP! On peut maintenant utiliser Facebook Chat avec n'importe quel client!</description>
         <guid isPermaLink="false">geekfaultbreve147</guid>
         <pubDate>Wed, 10 Feb 2010 20:33:40 +0000</pubDate>
         <content:encoded><![CDATA[Comme nous vous l'avions annoncé, Facebook a releasé son serveur XMPP! On peut maintenant utiliser Facebook Chat avec n'importe quel client!<br /><a rel="nofollow" target="_blank" href="http://blog.facebook.com/blog.php?post=297991732130">Lien</a><img src="http://feeds.feedburner.com/~r/Geekfault/~4/h6r8zX8zyYI" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>[Brève] Des votes pour de l'OGG/Vorbis dans les balises HTML5 de Youtube sont en cours sur la plateforme de vote Google. if(ogg&amp;gt;=h264) {vote(ogg);}</title>
         <link>http://productideas.appspot.com/#9/e=3d60a&amp;t=ogg</link>
         <description>Des votes pour de l'OGG/Vorbis dans les balises HTML5 de Youtube sont en cours sur la plateforme de vote Google. if(ogg&amp;gt;=h264) {vote(ogg);}</description>
         <guid isPermaLink="false">geekfaultbreve146</guid>
         <pubDate>Tue, 26 Jan 2010 15:33:09 +0000</pubDate>
         <content:encoded><![CDATA[Des votes pour de l'OGG/Vorbis dans les balises HTML5 de Youtube sont en cours sur la plateforme de vote Google. if(ogg&gt;=h264) {vote(ogg);}<br /><a rel="nofollow" target="_blank" href="http://productideas.appspot.com/#9/e=3d60a&t=ogg">Lien</a><img src="http://feeds.feedburner.com/~r/Geekfault/~4/Apqt5TYPF7M" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>[Brève] ApptrackR, le digne successeur d'Appulo.us vient d'être mis en ligne! Il est désormais la nouvelle référence pour trouver des applis iPhone.</title>
         <link>http://apptrackr.org/</link>
         <description>ApptrackR, le digne successeur d'Appulo.us vient d'être mis en ligne! Il est désormais la nouvelle référence pour trouver des applis iPhone.</description>
         <guid isPermaLink="false">geekfaultbreve145</guid>
         <pubDate>Mon, 18 Jan 2010 22:27:06 +0000</pubDate>
         <content:encoded><![CDATA[ApptrackR, le digne successeur d'Appulo.us vient d'être mis en ligne! Il est désormais la nouvelle référence pour trouver des applis iPhone.<br /><a rel="nofollow" target="_blank" href="http://apptrackr.org/">Lien</a><img src="http://feeds.feedburner.com/~r/Geekfault/~4/rIAkchCxmHc" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>FOSDEM 2010</title>
         <link>http://geekfault.org/2010/01/14/fosdem-2010/</link>
         <description>Ces 6 et 7 février aura lieu le Free and Open Source Software Developers&amp;#8217; European Meeting à Bruxelles. C&amp;#8217;est un forum de rencontre réellement internationnal et anglophone où, chaque année depuis sa création en l&amp;#8217;an 2000, les développeurs partagent et promeuvent leurs logiciels libres.
Voici donc une petite présentation de cet évènement où les rédacteurs Geekfault [...] Aucun post similaire.</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1896</guid>
         <pubDate>Thu, 14 Jan 2010 10:47:11 +0000</pubDate>
         <content:encoded><![CDATA[<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2010/01/Fosdem.jpg" alt="" title="Fosdem" width="93" height="103" class="alignleft size-full wp-image-1906"/>Ces 6 et 7 février aura lieu le <a rel="nofollow" target="_blank" href="http://fosdem.org/2010/"><strong>Free and Open Source Software Developers&#8217; European Meeting</strong></a> à Bruxelles. C&#8217;est un forum de rencontre réellement internationnal et anglophone où, chaque année depuis sa création en l&#8217;an 2000, les développeurs partagent et promeuvent leurs logiciels libres.</p>
<p>Voici donc une petite présentation de cet évènement où les rédacteurs Geekfault seront bien sûr présents.<br />
<span id="more-1896"></span></p>
<h3>Un <em>meeting</em> internationnal</h3>
<p>Très jeune déjà (en 2004, j&#8217;avais presque 14 ans!) j&#8217;ai commencé à participer à ce genre de conférences aux <a rel="nofollow" target="_blank" href="http://rmll.info/">Rencontres Mondiales du Logiciel Libre</a>. Mais je me suis vite rendu compte que cet évènement n&#8217;avait de Mondial que le nom : tout le monde était francophone !</p>
<p>Ce n&#8217;est que quelques années plus tard que j&#8217;ai découvert les FOSDEM, pourtant organisées dans ma propore ville. Et là ce fut la révélation : un forum <strong>en anglais</strong> dans une ville aussi centrale que <strong>Bruxelles</strong> était une bien meilleure idée!</p>
<p>Chaque année on y retrouve ainsi des <strong>développeurs, personnalités et organisations du Logiciel Libre</strong> venant des 4 coins du monde. Citons par exemple des développeurs de Mozilla, la Free Sofware Foundation et Richard Stallman. Les FOSDEM sont aujourd&#8217;hui considérées comme « <strong>le meilleur évènement du logiciel libre et gratuit en Europe</strong> ».</p>
<h3>Programme</h3>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2010/01/fosdem-auditoire.jpg" title="fosdem-auditoire"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2010/01/fosdem-auditoire-300x160.jpg" alt="" title="fosdem-auditoire" width="300" height="160" class="alignleft size-medium wp-image-1905"/></a>Le FOSDEM a lieu sur un week-end : les samedi 6 et dimanche 7 février 2010 dans les locaux de l&#8217;Université Libre de Bruxelles (campus Solbosch). Le programme est constitué de <a rel="nofollow" target="_blank" href="http://fosdem.org/2010/schedule/main-tracks"><strong>conférences</strong></a>, de <a rel="nofollow" target="_blank" href="http://fosdem.org/2010/schedule/tracks/lightningtalks"><strong>débats</strong></a> et les couloirs sont parsemés de <a rel="nofollow" target="_blank" href="http://fosdem.org/2010/stands"><strong>stands permanents</strong></a>.</p>
<p>Il y a aussi des séances de &#8220;travaux pratiques&#8221; pour découvrir différents langages de programmation, protocoles et API mais elles ne sont pas encore référencées sur le site. Finalement, les plus motivés peuvent même passer des <a rel="nofollow" target="_blank" href="http://fosdem.org/2010/certification"><strong>examens</strong></a> pour obtenir par exemple la certification <a rel="nofollow" target="_blank" href="http://fr.wikipedia.org/wiki/Linux_Professional_Institute">LPI</a>.</p>
<p>En dehors de ces journées de conférences, vous pouvez <a rel="nofollow" target="_blank" href="http://fosdem.org/2010/bring-your-partner">visiter la ville</a> et <strong>la soirée du vendredi au samedi</strong>, organisée au Délirium Café est devenue incontournable! (C&#8217;est un célèbre bar bruxellois avec plus de 2000 bières à la carte et où chaque année Google en offre quelques unes <img src='http://geekfault.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley'/> )</p>
<h3>See you there!</h3>
<p><img style='float:right;padding:4px;margin:0 0 2px 7px;' align="right" src="http://geekfault.org/wp-content/uploads/2010/01/going-to-fosdem.png" alt="" title="going-to-fosdem" width="150" height="89" class="alignright size-full wp-image-1904"/>Alors si vous souhaitez rencontrer la rédaction de Geekfault IRL et assister à des conférences/débats intéressants autour du Logiciel Libre, n&#8217;hésitez pas à nous rejoindre! Avec Koolfy, bragon, Tito, target0, roidelapluie et Tycale, nous resterons connectés sur IRC :</p>
<ul>
<li>irc://irc.geeknode.org/geekfault</li>
<li>irc://irc.geeknode.org/fosdem</li>
</ul>
<h3>Liens</h3>
<ul>
<li><a rel="nofollow" target="_blank" href="http://fosdem.org/2010/">Le site du FOSDEM 2010</a></li>
<li><a rel="nofollow" target="_blank" href="http://fosdem.org/2010/schedule/tracks">Le programme</a></li>
<li><a rel="nofollow" target="_blank" href="http://fosdem.org/2010/practical/transportation">Plans d&#8217;accès</a></li>
</ul> <p>Aucun post similaire.</p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/PhnwlGLRl9c" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>[Brève] IPredator, le VPN anonyme de The Pirate Bay passe en production publique. Pile a temps pour éviter de recevoir un méchant e-mail de HADOPI!</title>
         <link>https://www.ipredator.se/?lang=en</link>
         <description>IPredator, le VPN anonyme de The Pirate Bay passe en production publique. Pile a temps pour éviter de recevoir un méchant e-mail de HADOPI!</description>
         <guid isPermaLink="false">geekfaultbreve144</guid>
         <pubDate>Mon, 11 Jan 2010 10:41:15 +0000</pubDate>
         <content:encoded><![CDATA[IPredator, le VPN anonyme de The Pirate Bay passe en production publique. Pile a temps pour éviter de recevoir un méchant e-mail de HADOPI!<br /><a rel="nofollow" target="_blank" href="https://www.ipredator.se/?lang=en">Lien</a><img src="http://feeds.feedburner.com/~r/Geekfault/~4/vpenZqhxWTU" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>EeeGW : Créer soi-même une passerelle réseau</title>
         <link>http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/</link>
         <description>Le routeur-passerelle (gateway, en anglais) est le lien entre votre réseau local et l&amp;#8217;Internet. Sans doute utilisez-vous simplement la box fournie par votre FAI ou un autre modem-routeur acheté en magasin, mais installer et configurer soi-même son gateway présente de nombreux avantages.
Je vous présente via cet article ma transformation d&amp;#8217;un EeePC, qui ne me servait [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2010/02/20/eeegw-ze-retour-du-detour-proxycache/' title='Permanent Link: EeeGW &amp;#8211; ZE retour du d&amp;#xe9;tour ! &amp;#8211; Proxycache.'&gt;EeeGW &amp;#8211; ZE retour du détour ! &amp;#8211; Proxycache.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/20/firmware-linksys-wag200g/' title='Permanent Link: Firmware modifi&amp;#xe9; pour Linksys WAG200G'&gt;Firmware modifié pour Linksys WAG200G&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/07/12/transformer-laptop-en-routeur-wifi/' title='Permanent Link: Partager la connexion de son laptop'&gt;Partager la connexion de son laptop&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1711</guid>
         <pubDate>Thu, 31 Dec 2009 11:44:59 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/img00263/"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/12/IMG00263-300x225.jpg" alt="" title="IMG00263" width="300" height="225" class="alignleft size-medium wp-image-1864"/></a>Le routeur-passerelle (gateway, en anglais) est le <strong>lien entre votre réseau local et l&#8217;Internet</strong>. Sans doute utilisez-vous simplement la box fournie par votre FAI ou un autre modem-routeur acheté en magasin, mais installer et configurer soi-même son gateway présente de nombreux avantages.</p>
<p>Je vous présente via cet article ma transformation d&#8217;un <strong>EeePC</strong>, qui ne me servait à rien, en routeur-passerelle réseau. Je vous présente mon travail, mais il est très facile d&#8217;adapter ce travail à votre utilisation et à votre propre machine afin de la transformer en un super routeur Linux qui tue tout <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley'/><br />
<span id="more-1711"></span></p>
<h3>Article illustré par l&#8217;exemple</h3>
<p>Cette documentation est adapté à mon LAN qui est paramétré sur le subnet 10.0.69.0/24. Le eeegw, comme je l&#8217;appelle, prend donc l&#8217;adresse 10.0.69.250/24 est sera la gateway de mon réseau afin que mes autres machines puissent accéder à l&#8217;internet.</p>
<h3>À quoi ça sert de monter sa propre Gateway ? </h3>
<ul>
<li>Ne pas avoir à redémarrer sa connexion internet chaque fois qu&#8217;on a envie de toucher aux règles de firewalling. En effet les box des FAI nécessitent de redémarrer pour prendre en compte de nouveaux paramètres</li>
<li>Ne pas avoir une boite noire à la place de routeur : on peut surveiller son réseau et savoir quels sont les packets qui y passent</li>
<li>Pouvoir loguer via iptables et ulogd par exemple <em>(futur article)</em></li>
<li>Pouvoir grapher via rrdtool / Mrtg la bande passante qui passe par vos liens</li>
<li>Pouvoir héberger un petit blog (par exemple) directement sur votre passerelle</li>
<li>Pouvoir mettre en place un proxy transparent pour votre connexion pour mettre en cache les pages les plus souvent demandées et ainsi économiser de la bande passante <em>(futur article)</em></li>
<li>Savoir exactement ce qui se passe avec votre connexion internet</li>
<li>Mettre en place des outils de détection d&#8217;attaques sur votre réseau via SNORT <em>(futur article)</em></li>
</ul>
<h3>Choisir le bon matériel</h3>
<p>N&#8217;importe quel ordinateur avec un tant soit peu de puissance est suffisant pour faire un bon gateway, il suffit que cette machine soit munie de <strong>plusieurs interfaces réseau</strong>.</p>
<p>Durant des années j&#8217;ai eu en tant que passerelle un PII 266Mhz muni de 128MB de ram et d&#8217;un disque dur de 2Go. Pour cette nouvelle gateway j&#8217;ai choisi le <strong>EeePC 7&#8243;</strong> que j&#8217;ai baptisé <strong>eeegw</strong> <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley'/> </p>
<p>Pourquoi ce choix? Parce que le EeePC dispose de beaucoup d&#8217;avantages à être transformé en Gateway :</p>
<ul>
<li>Il est muni d&#8217;une batterie donc non affecté par une coupure de courant éventuelle</li>
<li>Il dispose d&#8217;une interface réseau ethernet et d&#8217;une interface wifi </li>
<li>La carte wifi intégrée est une Atheros et supporte donc (via le pilote madwifi) les multi wireless WAN </li>
<li>Sa puissance est honorable (512 de RAM / 900Mhz / 4Go de SSD)</li>
<li>On peut très facilement installer une distribution GNU/Linux dessus </li>
<li>On peut installer un serveur web dessus en toute tranquillité</li>
<li>Son matériel est pleinement supporté par le noyau Linux</li>
<li>Sa consommation est très faible, permettant donc d&#8217;être allumé 24/24 sans détruire son budget EDF </li>
</ul>
<h3>Installer la bonne distribution</h3>
<p>Si comme moi vous souhaitez transformer un EeePC, je vous conseille Debian. Personnelement j&#8217;aurais bien choisi Gentoo, mais le EeePC prendrait trop de temps à compiler, et ne refroidit pas spécialement bien.</p>
<p>Installer la distribution Debian sur un EeePC est très bien documenté, il vous suffit de créer une clée usb bootable. Je vous renvoie à la documentation de Debian : <a rel="nofollow" target="_blank" href="http://wiki.debian.org/DebianEeePC/HowTo/Install">EeeDebian</a>.</p>
<h3>Glossaire des packets Debian nécessaires pour ce howto </h3>
<ul>
<li>iproute</li>
<li>iptables</li>
<li>apache2</li>
<li>munin munin-node</li>
<li>wireless-tools</li>
</ul>
<p><em>Désolé, à cause de limitations techniques nous ne pouvons pas afficher la suite de cet article dans le flux RSS. Rendez-vous directement sur Geekfault pour lire la suite <img src='http://geekfault.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley'/> </em></p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2010/02/20/eeegw-ze-retour-du-detour-proxycache/' title='Permanent Link: EeeGW &#8211; ZE retour du d&#xe9;tour ! &#8211; Proxycache.'>EeeGW &#8211; ZE retour du détour ! &#8211; Proxycache.</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/20/firmware-linksys-wag200g/' title='Permanent Link: Firmware modifi&#xe9; pour Linksys WAG200G'>Firmware modifié pour Linksys WAG200G</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/07/12/transformer-laptop-en-routeur-wifi/' title='Permanent Link: Partager la connexion de son laptop'>Partager la connexion de son laptop</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/nw22DY41Zd4" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>[Brève] Geekfault vous souhaite de belles et joyeuses fêtes de fin d'année!</title>
         <link>http://geekfault.org</link>
         <description>Geekfault vous souhaite de belles et joyeuses fêtes de fin d'année!</description>
         <guid isPermaLink="false">geekfaultbreve143</guid>
         <pubDate>Fri, 25 Dec 2009 11:31:52 +0000</pubDate>
         <content:encoded><![CDATA[Geekfault vous souhaite de belles et joyeuses fêtes de fin d'année!<br /><a rel="nofollow">Lien</a><img src="http://feeds.feedburner.com/~r/Geekfault/~4/3wHMARffHeg" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Difficultés techniques de Geekfault</title>
         <link>http://geekfault.org/2009/12/22/difficultes-techniques-de-geekfault/</link>
         <description>La plupart d&amp;#8217;entre-vous l&amp;#8217;auront remarqué, nous avons rencontré des grosses difficultés techniques avec le serveur de Geekfault.
Dimanche soir, une panne de courant à Equinix Saint-Denis, notre datacenter à Paris, a engendré une coupure d&amp;#8217;un peu moins d&amp;#8217;une heure. Lorsque le courant est revenu, Geekfault est aussi revenu en ligne sans soucis.
Ce n&amp;#8217;est que vers 3h30 [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/17/partenariat-geekfault/' title='Permanent Link: Geekfault recherche des partenaires'&gt;Geekfault recherche des partenaires&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/28/geekfault-disponible-en-ipv6/' title='Permanent Link: Geekfault disponible en IPv6'&gt;Geekfault disponible en IPv6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/19/migration-de-geekfault/' title='Permanent Link: Migration de Geekfault'&gt;Migration de Geekfault&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1828</guid>
         <pubDate>Tue, 22 Dec 2009 12:03:10 +0000</pubDate>
         <content:encoded><![CDATA[<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/04/geekfault.png" alt="" title="Logo Geekfault" width="128" height="128" class="alignleft size-full wp-image-203"/>La plupart d&#8217;entre-vous l&#8217;auront remarqué, nous avons rencontré des grosses difficultés techniques avec le serveur de Geekfault.</p>
<p>Dimanche soir, une <a rel="nofollow" target="_blank" href="http://www.sd-france.com/news-200912/20/incident-equinix-st-denis.html"><strong>panne de courant</strong> à Equinix Saint-Denis</a>, notre datacenter à Paris, a engendré une coupure d&#8217;un peu moins d&#8217;une heure. Lorsque le courant est revenu, Geekfault est aussi revenu en ligne sans soucis.</p>
<p>Ce n&#8217;est que <strong>vers 3h30</strong> du matin que notre serveur, Xanadu, <strong>est réellemment tombé</strong>.<br />
<span id="more-1828"></span></p>
<p>C&#8217;est apparemment <strong>la carte Raid</strong> (qui permet de répliquer nos données sur deux disques durs différents) qui a grillé. <img style='float:right;padding:4px;margin:0 0 2px 7px;' align="right" src="http://geekfault.org/wp-content/uploads/2009/12/raid1-150x150.png" alt="" title="raid1" width="150" height="150" class="alignright size-thumbnail wp-image-1837"/>Avec notre chance inouïe de lundi matin, cela a aussi grillé <strong>un des deux disques durs</strong>. Un simple remplacement des pièces aurait dû suffire, puisque le disque dur encore fonctionnel est <em>censé</em> être la réplique exacte de l&#8217;autre.</p>
<p>Mais étrangement ce second disque dur n&#8217;était <strong>plus synchronisé depuis le 18 octobre</strong>! Nous n&#8217;avions pas d&#8217;autre choix que de restaurer ces données vieilles de plus de deux mois&#8230; Heureusement nous avons aussi un script qui envoie par mail deux <strong>backups de la base de données</strong> par jour.</p>
<h3>Putain de loi de Murphy</h3>
<p>Apparemment le script de backup se croit tout-puissant et prend <strong>congé le dimanche</strong> &gt;_&lt;. Aujourd'hui je n'ai donc pu restaurer que le backup le plus récent que j'aie, c'est-à-dire datant du <strong>19 décembre 21h42</strong>.</p>
<p><strong>Résultat:</strong> Nous avons perdu <strong>un super article</strong> de bragon, expliquant comment il avait transformé son EeePC en routeur réseau, ainsi que tous les fichiers depuis le 18 octobre, ce qui inclut <strong>une vingtaine d&#8217;images de différents articles</strong>.</p>
<p>Nous espérons pouvoir vite réécrire les parties manquantes de l&#8217;article et réillustrer nos articles. Merci de votre patience!</p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/17/partenariat-geekfault/' title='Permanent Link: Geekfault recherche des partenaires'>Geekfault recherche des partenaires</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/28/geekfault-disponible-en-ipv6/' title='Permanent Link: Geekfault disponible en IPv6'>Geekfault disponible en IPv6</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/19/migration-de-geekfault/' title='Permanent Link: Migration de Geekfault'>Migration de Geekfault</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/E16oPK1cRoU" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>[Brève] Free obtient la 4ème license mobile. La concurrence sera-t-elle aussi féroce qu'elle le fut pour l'ADSL? En Belgique, on l'attend toujours..</title>
         <link>http://www.clubic.com/actualite-316684-free-4e-operateur-mobile-francais.html</link>
         <description>Free obtient la 4ème license mobile. La concurrence sera-t-elle aussi féroce qu'elle le fut pour l'ADSL? En Belgique, on l'attend toujours..</description>
         <guid isPermaLink="false">geekfaultbreve142</guid>
         <pubDate>Fri, 18 Dec 2009 08:26:17 +0000</pubDate>
         <content:encoded><![CDATA[Free obtient la 4ème license mobile. La concurrence sera-t-elle aussi féroce qu'elle le fut pour l'ADSL? En Belgique, on l'attend toujours..<br /><a rel="nofollow" target="_blank" href="http://www.clubic.com/actualite-316684-free-4e-operateur-mobile-francais.html">Lien</a><img src="http://feeds.feedburner.com/~r/Geekfault/~4/gtK1e-kEEWY" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>[Brève] Google lance indirectement via HTC son propre Google Phone, aussi proche de leurs plans qu'il est possible de l'être, le Nexus One.</title>
         <link>http://www.wiseandroid.com/NewsItem.aspx?category=News&amp;path=December&amp;itemid=13</link>
         <description>Google lance indirectement via HTC son propre Google Phone, aussi proche de leurs plans qu'il est possible de l'être, le Nexus One.</description>
         <guid isPermaLink="false">geekfaultbreve141</guid>
         <pubDate>Mon, 14 Dec 2009 17:36:02 +0000</pubDate>
         <content:encoded><![CDATA[Google lance indirectement via HTC son propre Google Phone, aussi proche de leurs plans qu'il est possible de l'être, le Nexus One. <br /><a rel="nofollow" target="_blank" href="http://www.wiseandroid.com/NewsItem.aspx?category=News&path=December&itemid=13">Lien</a><img src="http://feeds.feedburner.com/~r/Geekfault/~4/EvY4eKIMCxY" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Facebook s’apprêterait à lancer son serveur XMPP</title>
         <link>http://geekfault.org/2009/12/14/facebook-lancer-son-serveur-xmpp/</link>
         <description>Le 14 mai 2008, un développeur Facebook annonçait qu&amp;#8217;ils travaillaient sur un serveur XMPP (Jabber) compatible avec son système de chat, permettant ainsi à tout le monde d&amp;#8217;utiliser un client de messagerie instantannée classique pour chatter sur Facebook.
Depuis cette annonce, nous n&amp;#8217;avions plus de nouvelles. Mais au début du mois dernier ProcessOne annonçait avoir découvert [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/27/lighttpd-php-iphone/' title='Permanent Link: Serveur Lighttpd avec PHP sur iPhone'&gt;Serveur Lighttpd avec PHP sur iPhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/06/14/guerre-du-warez/' title='Permanent Link: La petite guerre du Warez'&gt;La petite guerre du Warez&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/05/wave-1-c-est-quoi-wave/' title='Permanent Link: Google Wave #1 : C&amp;#8217;est quoi Wave?'&gt;Google Wave #1 : C&amp;#8217;est quoi Wave?&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1649</guid>
         <pubDate>Mon, 14 Dec 2009 05:50:16 +0000</pubDate>
         <content:encoded><![CDATA[<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/12/Facebook-XMPP.jpg" alt="Facebook-XMPP" title="Facebook-XMPP" width="200" height="206" class="alignleft size-full wp-image-1669"/>Le 14 mai 2008, un développeur Facebook annonçait qu&#8217;ils travaillaient sur un <strong>serveur XMPP (Jabber) compatible avec son système de chat</strong>, permettant ainsi à tout le monde d&#8217;utiliser un client de messagerie instantannée classique pour chatter sur Facebook.</p>
<p>Depuis cette annonce, nous n&#8217;avions plus de nouvelles. Mais au début du mois dernier <a rel="nofollow" target="_blank" href="http://www.process-one.net/en/blogs/article/facebook_chat_supports_xmpp_with_ejabberd/">ProcessOne annonçait</a> avoir <strong>découvert un serveur XMPP</strong> hébergé sur <span style="font-family:monospace;">chat.facebook.com</span> !<br />
<span id="more-1649"></span></p>
<div style="background:#FFFABF;padding:4px;"><strong>Attention :</strong> Cet article est sujet aux trolls sur l&#8217;utilité des réseaux sociaux <img src='http://geekfault.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley'/> </div>
<h3>Une vieille idée</h3>
<p>Facebook a lancé son système de chat le 7 avril 2008, via son <strong>interface web</strong>. Dès le début on s&#8217;est vite rendus compte qu&#8217;elle n&#8217;était pas très stable et nous obligeait à garder l&#8217;onglet Facebook ouvert en permanence.</p>
<p>Et le 14 mai, <a rel="nofollow" target="_blank" href="http://developers.facebook.com/news.php?blog=1&#038;story=110">un développeur annonce</a> qu<strong>&#8216;ils développent activement une interface XMPP</strong> compatible avec ce chat. Pourtant, depuis ce post, on n&#8217;en a plus entendu parler (<a rel="nofollow" target="_blank" href="http://www.facebook.com/group.php?gid=15400426431">malgré les nombreux groupes</a>, <a rel="nofollow" target="_blank" href="http://bugs.developers.facebook.com/show_bug.cgi?id=3152">wish reports</a> et <a rel="nofollow" target="_blank" href="http://docs.google.com/View?id=ddf6gq8k_32dbsgnghj">lettres ouvertes</a> le réclamant).</p>
<h3>Mais une très bonne idée</h3>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2009/12/Facebook-Chat.jpg" title="Facebook-Chat"><img style='float:right;padding:4px;margin:0 0 2px 7px;' align="right" src="http://geekfault.org/wp-content/uploads/2009/12/Facebook-Chat-264x300.jpg" alt="Facebook-Chat" title="Facebook-Chat" width="264" height="300" class="alignright size-medium wp-image-1677"/></a>Dès le lancement du chat Facebook, celui-ci a rencontré un <strong>grand succès</strong>. Après tout, quel est l&#8217;intérêt d&#8217;un IM si ce n&#8217;est de parler avec ses amis? Et Facebook connait, à priori, une grande partie de ceux-ci. J&#8217;ai personnellement remarqué que la plupart de mes contacts avaient délaissé MSN pour n&#8217;utiliser plus que ce chat Facebook.</p>
<p>Mais évidemment on se heurte vite aux <strong>limites des web-apps</strong> : lenteurs, instabilités, utilisation d&#8217;un navigateur, absence de notifications et <strong>encore instabilités</strong>! Je suppose que c&#8217;est ce qui a motivé les développeurs à utiliser un vrai protocole de messagerie instantannée.</p>
<h3>Le XMPP</h3>
<p>Le serveur de chat de Facebook découvert par ProcessOne a été déployé sur <span style="font-family:monospace;">chat.facebook.com</span> (port 5222, port standard serveur-client pour Jabber) et répond aux requêtes de type <strong>XMPP</strong>!</p>
<p>Nous ne pouvons que saluer le choix de Facebook pour ce <strong>protocole libre</strong> et déjà supporté par une multitude de clients de messagerie instantannée, <strong>aussi bien desktops que mobiles</strong>!</p>
<p>Le <a rel="nofollow" target="_blank" href="http://fr.wikipedia.org/wiki/XMPP">XMPP</a> n&#8217;a malheureusement jamais connu le succès escompté, loin derrière Yahoo! Messenger et Microsoft Live Messenger aux protocoles propriétaires mal implémentés dans nos logiciels libres. Facebook va peut-être redorer un peu le blason de ce protocole délaissé en lui apportant ses 350 millions d&#8217;utilisateurs.</p>
<p>On regrettera tout de même que, selon les scans de ports, Facebook n&#8217;a <strong>pas activé le server-to-server</strong> qui aurait permis aux utilisateurs du chat Facebook de communiquer avec des utilisateurs de réseaux Jabber concurrents et vice-versa.</p>
<h3>À quand le déploiement public?</h3>
<p>Même si le serveur de type ejabberd modifié <strong>répond aux requêtes de connexion</strong>, il répond toujours <strong>par la négative</strong>. Facebook n&#8217;a pas encore fait d&#8217;annonce publique, sans doute parce que le service est actuellement en phase de tests.</p>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2009/12/Facebook-Ads.gif" title="Facebook-Ads"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/12/Facebook-Ads-300x133.gif" alt="Facebook-Ads" title="Facebook-Ads" width="300" height="133" class="alignleft size-medium wp-image-1679"/></a>L&#8217;existence de ce serveur est encourageante, mais on est en droit de se demander si les administrateurs de Facebook valideront sa mise en service puisqu&#8217;ils n&#8217;ont, à priori, aucun moyen de le <strong>monétiser</strong>&#8230;</p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/27/lighttpd-php-iphone/' title='Permanent Link: Serveur Lighttpd avec PHP sur iPhone'>Serveur Lighttpd avec PHP sur iPhone</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/06/14/guerre-du-warez/' title='Permanent Link: La petite guerre du Warez'>La petite guerre du Warez</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/05/wave-1-c-est-quoi-wave/' title='Permanent Link: Google Wave #1 : C&#8217;est quoi Wave?'>Google Wave #1 : C&#8217;est quoi Wave?</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/pA1tdF1V1Xs" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>10 applications indispensables sur iPhone jailbreaké</title>
         <link>http://geekfault.org/2009/11/20/10-applications-cydia/</link>
         <description>La sévérité des restrictions d&amp;#8217;Apple sur son AppStore ont fini par limiter les fonctionnalités de l&amp;#8217;iPhone. Heureusement le petit monde &amp;#8220;underground&amp;#8221; du jailbreak a su s&amp;#8217;en libérer. Voici donc une sélection de 10 applications disponibles uniquement via Cydia et qui me sont devenues indispensables. Categories
Categories permet de créer des dossiers pour classer ses applications. Cette application [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/27/lighttpd-php-iphone/' title='Permanent Link: Serveur Lighttpd avec PHP sur iPhone'&gt;Serveur Lighttpd avec PHP sur iPhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/27/internet-via-iphone/' title='Permanent Link: Internet sur votre laptop via un iPhone'&gt;Internet sur votre laptop via un iPhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/06/29/iphone-os-30/' title='Permanent Link: iPhone OS 3.0'&gt;iPhone OS 3.0&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1578</guid>
         <pubDate>Fri, 20 Nov 2009 16:34:43 +0000</pubDate>
         <content:encoded><![CDATA[<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/11/Cydia-300x248.jpg" alt="Cydia" title="Cydia" width="300" height="248" class="alignleft size-medium wp-image-1579"/>La sévérité des restrictions d&#8217;Apple sur son AppStore ont fini par <strong>limiter les fonctionnalités de l&#8217;iPhone</strong>. Heureusement le petit monde &#8220;underground&#8221; du <strong>jailbreak</strong> a su s&#8217;en libérer. Voici donc une sélection de 10 applications disponibles uniquement via Cydia et qui me sont devenues <strong>indispensables</strong>.<br />
<span id="more-1578"></span></p>
<h3>Categories</h3>
<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/11/Cydia-Categories.png" alt="Cydia-Categories" title="Cydia-Categories" width="128" height="128" class="alignleft size-full wp-image-1583"/>Categories permet de <strong>créer des dossiers pour classer ses applications</strong>. Cette application vous évitera de finir avec 9 écrans d&#8217;applications sur votre SpringBoard.<br />
Je l&#8217;ai utilisé sur mon iPhone pour créer trois répertoires : Réseau, Jeux et Système. Ce classement simple me permet de n&#8217;avoir que deux écrans sur mon Springboard. A noter qu&#8217;on peut très bien placer un dossier dans un autre.</p>
<p><strong>Source:</strong> BigBoss (http://apt.bigboss.us/repofiles/cydia/)</p>
<h3>Flashlight</h3>
<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/11/Cydia-Flashlight.png" alt="Cydia-Flashlight" title="Cydia-Flashlight" width="60" height="60" class="alignleft size-full wp-image-1584"/>Flashlight est une application qui affiche simplement un <strong>écran blanc</strong>. Contrairement aux versions officiellement disponibles sur l&#8217;AppStore, cette version disponible dans Cydia <strong>augmente la luminosité du rétro-éclairage</strong> au maximum, transformant votre iPhone en une lampe de poche d&#8217;appoint incroyablement efficace.</p>
<p><strong>Source:</strong> BigBoss (http://apt.bigboss.us/repofiles/cydia/)</p>
<h3>Notifier</h3>
<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/11/Cydia-Notifier.png" alt="Cydia-Notifier" title="Cydia-Notifier" width="201" height="36" class="alignleft size-full wp-image-1586"/>Notifier est un ajout à MobileSubstrate que j&#8217;aimerais beaucoup voir intégrer dans la prochaine version du firmware tellement il est pratique et, forcément, indispensable. Il ajoute <strong>dans la barre des tâches (à côté du niveau de batterie) des icônes si vous avez des SMS, MMS, e-mails et même messages instantannés non-lus, des appels manqués</strong> ou encore des rendez-vous en cours dans votre calendrier.</p>
<p><strong>Source:</strong> BigBoss (http://apt.bigboss.us/repofiles/cydia/)</p>
<h3>asVibra2</h3>
<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/11/Cydia-asVibra-150x150.jpg" alt="" title="Cydia-asVibra" width="150" height="150" class="alignleft size-thumbnail wp-image-1922"/>Vous aussi avez l&#8217;impression de rater des e-mails et SMS lorsque votre iPhone est en silencieux parce qu&#8217;une vibration ne suffit pas? Ce petit tweak permet de <strong>faire vibrer trois fois votre iPhone lors de la réception d&#8217;un message</strong>.</p>
<p><strong>Source:</strong> iPhone-Storage.de (http://apt.iphone-storage.de/)</p>
<h3>LockInfo</h3>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2009/11/Cydia-LockInfo.jpg" title="Cydia-LockInfo"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/11/Cydia-LockInfo-200x300.jpg" alt="Cydia-LockInfo" title="Cydia-LockInfo" width="200" height="300" class="alignleft size-medium wp-image-1600"/></a>Un des trucs les plus frappants dans l&#8217;interface de l&#8217;iPhone c&#8217;est l&#8217;inutilité du &#8220;LockScreen&#8221;, la page avec le slide &#8220;Déverouiller&#8221;. LockInfo a pourtant transformé cet écran inutile en un des écrans que je consulte le plus souvent puisqu&#8217;il m&#8217;affiche <strong>mes prochains rendez-vous, mes SMS et mails non lus ainsi que mes appels manqués</strong>. Si vous êtes adeptes de WinterBoard vous pouvez même lui appliquer des templates pour améliorer son design déjà très soigné (je vous conseille Black Motion).<br />
Cette application bien utile est malheureusement payante (5$) après une <strong>période d&#8217;essai de 14 jours</strong>&#8230; sauf si vous trouvez le crack sur Google.</p>
<p><strong>Source:</strong> ModMyi.com (http://apt.modmyi.com/)</p>
<h3>Custom HomeButton</h3>
<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/11/Cydia-HomeButton.jpg" alt="" title="Cydia-HomeButton" width="95" height="94" class="alignleft size-full wp-image-1925"/>Apple nous laisse déjà choisir l&#8217;utilité du double clic sur le bouton Home (bouton principal), mais on n&#8217;a le choix qu&#8217;entre 5 possibilités. Custom HomeButton permet de <strong>lier le double-clic à n&#8217;importe quoi</strong>, que ce soit une application de l&#8217;AppStore, de Cydia ou même une page web. Je l&#8217;utilise pour lancer Flashlight <img src='http://geekfault.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley'/> </p>
<p><strong>Source:</strong> iSpazio (http://ispaziorepository.com/)</p>
<h3>CyDelete</h3>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2009/11/Cydia-Cydelete.png" title="Cydia-Cydelete"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/11/Cydia-Cydelete-150x150.png" alt="Cydia-Cydelete" title="Cydia-Cydelete" width="150" height="150" class="alignleft size-thumbnail wp-image-1612"/></a>Cette application <strong>ajoute la croix de désinstallation</strong> qu&#8217;on connait bien pour les applications de l&#8217;AppStore, mais <strong>pour les applications Cydia</strong>. Indispensable pour tous les accros de Cydia <img src='http://geekfault.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley'/> </p>
<p><strong>Source:</strong> BigBoss (http://apt.bigboss.us/repofiles/cydia/)</p>
<h3>Cyntact</h3>
<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/11/Cydia-Cyntact.png" alt="Cydia-Cyntact" title="Cydia-Cyntact" width="300" height="82" class="alignleft size-full wp-image-1592"/>Cyntact est un tweak qui <strong>affiche les photos dans les listes de contacts</strong>. Cyntact est même actif dans les applications tierces qui utilisent la liste de contacts. Cette application de Saurik est malheureusement payante (1$), mais sans DRM <img src='http://geekfault.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley'/> </p>
<p><strong>Source:</strong> Telesphoreo (http://apt.saurik.com/)</p>
<h3>Veency</h3>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2009/11/Cydia-Veency.jpg" title="Cydia-Veency"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/11/Cydia-Veency-300x225.jpg" alt="Cydia-Veency" title="Cydia-Veency" width="300" height="225" class="alignleft size-medium wp-image-1606"/></a>Veency est l&#8217;application qui m&#8217;a le plus impressioné dès son installation. C&#8217;est tout simplement un <strong>serveur VNC pour iPhone</strong>! Très pratique pour prendre le contrôle de son iPhone à distance mais le meilleur c&#8217;est tout simplement de <strong>pouvoir utiliser le clavier de son laptop</strong> pour taper par exemple des SMS sur son iPhone!</p>
<p><strong>Source:</strong> Telesphoreo (http://apt.saurik.com/)</p>
<h3>Installous</h3>
<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/11/Cydia-Installous.jpg" alt="" title="Cydia-Installous" width="144" height="145" class="alignleft size-full wp-image-1929"/>Je ne pouvais pas finir cet article sans vous le présenter : Installous permet d&#8217;<strong>installer des IPA crackés directement sur votre iPhone</strong>. Un navigateur intégré vous connecte directement à la version mobile d&#8217;Appulo.us. Et pour couronner le tout, Installous permet de <strong>synchroniser automatiquement ces nouveaux IPA avec iTunes</strong>!</p>
<p><strong>Source:</strong> Hackulo.us (http://cydia.hackulo.us/)</p>
<p>À noter qu&#8217;une nouvelle version maintenue par puy0, renommée Install0us, permet de télécharger les IPA en arrière-plan et donc en télécharger plusieurs à la fois. Celle-ci n&#8217;est malheureuement pas maintenue par Hackulo.us et il faudra donc installer son repository dédié : http://cydia.install0us.com.</p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/27/lighttpd-php-iphone/' title='Permanent Link: Serveur Lighttpd avec PHP sur iPhone'>Serveur Lighttpd avec PHP sur iPhone</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/27/internet-via-iphone/' title='Permanent Link: Internet sur votre laptop via un iPhone'>Internet sur votre laptop via un iPhone</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/06/29/iphone-os-30/' title='Permanent Link: iPhone OS 3.0'>iPhone OS 3.0</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/JRhclSPngDI" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Backup d’un compte Gmail</title>
         <link>http://geekfault.org/2009/10/24/backup-dun-compte-gmail/</link>
         <description>Il y a quelques jours, Google a dû désactiver un compte e-mail légitime. Immédiatement je me suis imaginé dans cette situation insoutenable que serait la perte de toute ma correspondance depuis deux ans !
En effet aujourd&amp;#8217;hui je préfère faire confiance à Google pour conserver mes messages plutôt que risquer la perte de ceux-ci après un [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/16/rsnapshot/' title='Permanent Link: Mise en place d&amp;#8217;un syst&amp;#xe8;me de backup avec Rsnapshot'&gt;Mise en place d&amp;#8217;un système de backup avec Rsnapshot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/26/plowshare-megaupload-rapidshare-en-cli/' title='Permanent Link: Plowshare : MegaUpload, RapidShare et autres en CLI'&gt;Plowshare : MegaUpload, RapidShare et autres en CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/05/wave-1-c-est-quoi-wave/' title='Permanent Link: Google Wave #1 : C&amp;#8217;est quoi Wave?'&gt;Google Wave #1 : C&amp;#8217;est quoi Wave?&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1541</guid>
         <pubDate>Sat, 24 Oct 2009 00:58:50 +0000</pubDate>
         <content:encoded><![CDATA[<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/09/GmailBackup-Logo-300x53.png" alt="GmailBackup-Logo" title="GmailBackup-Logo" width="300" height="53" class="alignleft size-medium wp-image-1546"/>Il y a quelques jours, <a rel="nofollow" target="_blank" href="http://www.numerama.com/magazine/14079-google-doit-suspendre-un-compte-gmail-a-cause-d-un-e-mail-recu.html">Google a dû désactiver un compte e-mail légitime</a>. Immédiatement je me suis imaginé dans cette situation insoutenable que serait la perte de toute ma correspondance depuis deux ans !</p>
<p>En effet aujourd&#8217;hui je préfère faire confiance à Google pour conserver mes messages plutôt que risquer la perte de ceux-ci après un crash de mon disque dur. Mais comment tout de même faire un backup mensuel de mon compte Google Apps?<br />
<span id="more-1541"></span></p>
<h3>Gmail Backup</h3>
<p><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2009/09/Gmail-Backup.png" title="Gmail Backup"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/09/Gmail-Backup-279x300.png" alt="Gmail Backup" title="Gmail Backup" width="279" height="300" class="alignleft size-medium wp-image-1542"/></a>Je suis tombé sur un projet intéressant : <a rel="nofollow" target="_blank" href="http://www.gmail-backup.com"><strong>Gmail Backup</strong></a>, compatible Windows et Linux. Pour Linux vous aurez le choix entre la ligne de commande et une petite interface en wxPython.</p>
<p>L&#8217;<strong>interface graphique</strong> est très simple d&#8217;utilisation puisqu&#8217;elle vous demande votre adresse Gmail, mot de passe et dossier où enregistrer le backup. On peut éventuellement demander de <strong>ne sauvegarder qu&#8217;une certaine période</strong> dans le temps.</p>
<p>L&#8217;<strong>interface en ligne de commande</strong> est tout aussi puissante, et très pratique si vous souhaitez faire vos backups sur un serveur SSH. </p>
<ul>
<li>Sauvegarder tout le compte :
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">./gmail-backup.sh backup /dossier/où/backup user@gmail.com password</div></div>
</li>
<li>Sauvegarder du 28/02/2008 au 31/08/2009 :
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">./gmail-backup.sh backup /dossier/où/backup user@gmail.com password 20080228 20090831</div></div>
</li>
<li>Restaurer un backup :
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">./gmail-backup.sh restore /dossier/où/backup user@gmail.com password</div></div>
</li>
</ul>
<h3>IMAP Backup</h3>
<p> Personnellement j&#8217;ai une confiance totale en Google pour conserver mes données (Troll inside). Si toutefois vous êtes chez un autre prestataire, le seul moyen efficace que j&#8217;aie trouvé pour faire un backup est d&#8217;utiliser un client e-mail tel que Thunderbird. </p>
<p>Si vous êtes intéressé par un tel backup, je vous renvoie à d&#8217;autres sites:</p>
<ul>
<li><a rel="nofollow" target="_blank" href="http://kb.wisc.edu/helpdesk/page.php?id=4037">En anglais et très bien illustré</a></li>
<li><a rel="nofollow" target="_blank" href="http://blog.donax.ch/index.php?p=318">Ou en français si vous êtes vraiment allergique à l&#8217;anglais</a></li> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/16/rsnapshot/' title='Permanent Link: Mise en place d&#8217;un syst&#xe8;me de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/26/plowshare-megaupload-rapidshare-en-cli/' title='Permanent Link: Plowshare : MegaUpload, RapidShare et autres en CLI'>Plowshare : MegaUpload, RapidShare et autres en CLI</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/05/wave-1-c-est-quoi-wave/' title='Permanent Link: Google Wave #1 : C&#8217;est quoi Wave?'>Google Wave #1 : C&#8217;est quoi Wave?</a></li>
</ol></p></ul><img src="http://feeds.feedburner.com/~r/Geekfault/~4/Jl29uDgd-pI" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Allocation d’IPv6 over OpenVPN</title>
         <link>http://geekfault.org/2009/10/04/allocation-dipv6-over-openvpn/</link>
         <description>Nous avons vu comment allouer des IPv4 over VPN. Nous pouvons aller plus loin et allouer des IPv6 via le VPN, plus particulièrement OpenVPN. Cette méthode pourrait même être une bonne solution pour offrir une connectivité IPv6 à vos machines alors que votre FAI s&amp;#8217;embourbe encore en IPv4.
Dans cet article, tap0 est l&amp;#8217;interface du serveur [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/28/geekfault-disponible-en-ipv6/' title='Permanent Link: Geekfault disponible en IPv6'&gt;Geekfault disponible en IPv6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/09/24/allocation-dadresses-ipv4-publiques-over-vpn/' title='Permanent Link: Allocation d&amp;#8217;adresses IPv4 publiques over VPN'&gt;Allocation d&amp;#8217;adresses IPv4 publiques over VPN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2010/02/17/ipv6-pour-les-nulswgeeks/' title='Permanent Link: IPv6 pour les nuls^Wgeeks'&gt;IPv6 pour les nuls^Wgeeks&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1493</guid>
         <pubDate>Sun, 04 Oct 2009 18:01:01 +0000</pubDate>
         <content:encoded><![CDATA[<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/08/ipv6.jpg" alt="IPv6 - Spread the love" title="IPv6 - Spread the love" width="223" height="223" class="alignleft size-full wp-image-1460"/>Nous avons vu comment <a rel="nofollow" target="_blank" href="http://geekfault.org/2009/09/24/allocation-dadresses-ipv4-publiques-over-vpn/">allouer des IPv4 over VPN</a>. Nous pouvons aller plus loin et allouer des IPv6 via le VPN, plus particulièrement OpenVPN. Cette méthode pourrait même être une bonne solution pour <strong>offrir une connectivité IPv6 à vos machines alors que votre FAI s&#8217;embourbe encore en IPv4</strong>.</p>
<p>Dans cet article, tap0 est l&#8217;interface du serveur VPN. C&#8217;est via cette interface qu&#8217;on réalise le lien. La première étape est donc d&#8217;attribuer une IPv6 à votre interface tap0. </p>
<p>tap0 représentant le mode &#8220;bridge&#8221; d&#8217;OpenVPN ,</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># "dev tun" will create a routed IP tunnel,<br />
# "dev tap" will create an ethernet tunnel.</div></div>
<p>Nous somme donc sur le même segment Ethernet que le client du VPN. Ainsi, nous pouvons envoyer des trames d&#8217;autoconfiguration IPv6 aux clients de notre VPN !</p>
<div style="background:#FFFABF;padding:4px;"><strong>Avertissement :</strong> Cet article a pour but de partager des connaissances avec un public avisé.</div>
<p><span id="more-1493"></span></p>
<h3>Configuration exemple d&#8217;un serveur OpenVPN TCP/TAP</h3>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;height:250px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">port 1194<br />
proto tcp-server<br />
dev tap<br />
dev-type tap<br />
# Clefs:<br />
ca keys/ca.crt<br />
cert keys/server.crt<br />
key keys/server.key<br />
dh keys/dh1024.pem<br />
server 10.0.98.0 255.255.255.0<br />
# On push la route pour que les autres VPN soient visibles<br />
# push "route 10.75.1.0 255.255.255.0"<br />
# push "dhcp-option DNS 10.75.1.1"<br />
ifconfig-pool-persist ipp.txt<br />
float<br />
# permet le trafic entre les clients du VPN<br />
client-to-client<br />
keepalive 10 120<br />
tls-auth keys/ta.key 0 # This file is secret<br />
cipher AES-256-CBC<br />
max-clients 200<br />
user vpn<br />
group vpn<br />
persist-key<br />
persist-tun<br />
status /var/log/openvpn/openvpn-status.log<br />
status-version 2<br />
log-append /var/log/openvpn/openvpn.log<br />
verb 4<br />
mute 20</div></div>
<h3>Configuration exemple d&#8217;un client OpenVPN TCP/TAP</h3>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;height:250px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">client<br />
dev tap1<br />
proto tcp-client<br />
remote xx.xx.xx.xx 1194<br />
resolv-retry infinite<br />
nobind<br />
user nobody<br />
group nobody<br />
persist-key<br />
persist-tun<br />
tls-client<br />
ca ipv6/ca.crt<br />
cert ipv6/ipv6.crt<br />
key ipv6/ipv6.key<br />
ns-cert-type server<br />
tls-auth ipv6/ta.key 1<br />
cipher AES-256-CBC<br />
verb 3</div></div>
<h3>Vif du sujet</h3>
<p>10.0.98.1 (concentrateur VPN) et 10.0.98.4 (client VPN) se pinguent en IPv4 sur le segment ethernet du VPN.<br />
Nous pouvons désormais avancer</p>
<ul>
<li>Activons l&#8217;IPv6 forwarding sur notre concentrateur VPN
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># echo "net.ipv6.conf.all.forwarding = 1" &gt;&gt; /etc/sysctl.conf<br />
# sysctl -p</div></div>
</li>
<li>Activons le proxy NDP (qui va nous servir a relayer les packets IPv6 entre eth0 et tap0)
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># echo "net.ipv6.conf.all.proxy_ndp = 1" &gt;&gt; /etc/sysctl.conf<br />
# sysctl -p</div></div>
<p>Notre Concentrateur VPN est quasiment prêt à forwarder des trames IPv6.</li>
<li>Installons radvd et configurons-le (/etc/radvd.conf) :
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;height:250px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">interface tap0<br />
{<br />
&nbsp; &nbsp; &nbsp; &nbsp;AdvSendAdvert on;<br />
&nbsp; &nbsp; &nbsp; &nbsp;MinRtrAdvInterval 3; <br />
&nbsp; &nbsp; &nbsp; &nbsp;MaxRtrAdvInterval 10;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp;prefix 2001:758:f00:x::/64<br />
&nbsp; &nbsp; &nbsp; &nbsp;{<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AdvOnLink on;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AdvAutonomous on;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AdvRouterAddr on;<br />
&nbsp; &nbsp; &nbsp; &nbsp;};<br />
};</div></div>
</li>
<li>Attribuons une adresse IPv6 a notre interface tap0:
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># ip -6 a add &nbsp;2001:758:f00:x:x::1/64 dev tap0</div></div>
</li>
<li>Nous pouvons lancer radvd
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># /etc/init.d/radvd start</div></div>
</li>
<li>Vérifions sur le client que nous avons bien des trames IPv6 qui arrivent (si tap1 est l&#8217;interface VPN du côté client)
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># tcpdump -t -n -i tap1 -s 512 -vv ip6 or proto ipv6</div></div>
<p>devrait donner des trames ainsi :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">IP6 (hlim 255, next-header ICMPv6 (58) payload length: 56) fe80::94c7:eaff:fe5e:ea46 &gt; ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 56<br />
&nbsp; &nbsp; &nbsp; &nbsp; hop limit 64, Flags [none], pref medium, router lifetime 30s, reachable time 0s, retrans time 0s<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; prefix info option (3), length 32 (4): 2001:758:f00:8::/64, Flags [onlink, auto, router], valid time 2592000s, pref. time 604800s<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0x0000: &nbsp;40e0 0027 8d00 0009 3a80 0000 0000 2001<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0x0010: &nbsp;0758 0f00 0008 0000 0000 0000 0000<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; source link-address option (1), length 8 (1): 96:c7:ea:5e:ea:46<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0x0000: &nbsp;96c7 ea5e ea46</div></div>
</li>
<li>Notre client VPN obtient une IPv6 grâce au radvd de notre concentrateur VPN (par exemple 2001:758:f00:x:ffff:ffff:ffff:ffff/64)</li>
<li>Configuration ndp proxy du concentrateur
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># ip -6 neigh add proxy 2001:758:f00:x:x::1 dev tap0<br />
# ip -6 neigh add proxy 2001:758:f00:x:ffff:ffff:ffff:ffff dev eth0</div></div>
<p>Ainsi les packets a destination de 2001:758:f00:x:ffff:ffff:ffff:ffff arrivant sur eth0 seront automatiquement traite par 2001:758:f00:x:x::1 se trouvant sur le meme segment ethernet que 2001:758:f00:x:ffff:ffff:ffff:ffff</li>
<li>Test de la configuration :
<ul>
<li>Sur le client OpenVPN</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># ping6 2001:758:f00:x:x::1</div></div>
</li>
<li>Sur le concentrateur OpenVPN
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># ping6 2001:758:f00:x:ffff:ffff:ffff:ffff</div></div>
</li>
</ul>
<p>Si les deux ping6 passent vous pouvez continuer, sinon vous avez un soucis lors d&#8217;une des etapes précédentes.</li>
</ul>
<h3>Tests de pings</h3>
<p>On peut essayer de pinger Google depuis le client</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># ping6 ipv6.google.com</div></div>
<p>Et pinger le client depuis une machine hors du VPN</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># ping6 2001:758:f00:x:ffff:ffff:ffff:ffff</div></div>
<p>Si tout passe c&#8217;est gagné, vous avez donné une connectivité IPv6 à une machine over VPN!</p>
<h3> ERRATA </h3>
<p>Attention openvpn à chaque connexion attribura dynamiquement et aléatoirement une adresse mac à l&#8217;interface tap1 du client du vpn.<br />
Ainsi radvd se basant sur l&#8217;adresse mac de l&#8217;interface reseau afin d&#8217;attribuer une ipv6 pourra poser des problèmes du coté du concentrateur.<br />
En effet il faut lancer la commande permettant au concentrateur via le proxy ndp de forwarder les trames.<br />
C&#8217;est donc ultra pas pratique.<br />
Plusieurs solutions s&#8217;offrent à vous en outre.<br />
1) attribuer un nouveau subnet ipv6 (autre que celui attribué à eth0) sur votre tap0 du concentrateur vpn, ainsi vous vous évitez toute la partie concernant le proxy ndp.<br />
2) Attribuer des ips fixes aux clients qui devront les donner manulement de leur coté à leur interface.<br />
3) scripter via les scripts up.sh et down.sh fourni avec openvpn en natif.</p>
<h3>Annexes</h3>
<p>Côté serveur</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;height:250px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">2: eth0: &lt;BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast qlen 100<br />
&nbsp; &nbsp; link/ether 00:30:48:82:ec:0e brd ff:ff:ff:ff:ff:ff<br />
&nbsp; &nbsp; inet 81.93.xx.xx/24 brd 81.93.xx.xx scope global eth0<br />
&nbsp; &nbsp; inet6 2001:758:f00:330:xx:xx:xx:xx/64 scope global<br />
&nbsp; &nbsp; &nbsp; &nbsp;valid_lft forever preferred_lft forever<br />
&nbsp; &nbsp; inet6 2001:758:f00:x::1/64 scope global<br />
&nbsp; &nbsp; &nbsp; &nbsp;valid_lft forever preferred_lft forever<br />
&nbsp; &nbsp; inet6 fe80::230:48ff:fe82:ec0e/64 scope link<br />
&nbsp; &nbsp; &nbsp; &nbsp;valid_lft forever preferred_lft forever<br />
<br />
7: tap0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast qlen 100<br />
&nbsp; &nbsp; link/ether 96:c7:ea:5e:ea:46 brd ff:ff:ff:ff:ff:ff<br />
&nbsp; &nbsp; inet 10.0.98.1/24 brd 10.0.98.255 scope global tap0<br />
&nbsp; &nbsp; inet6 2001:758:f00:x:x::1/64 scope global<br />
&nbsp; &nbsp; &nbsp; &nbsp;valid_lft forever preferred_lft forever<br />
&nbsp; &nbsp; inet6 fe80::94c7:eaff:fe5e:ea46/64 scope link<br />
&nbsp; &nbsp; &nbsp; &nbsp;valid_lft forever preferred_lft forever</div></div>
<p>Côté client</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">2: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000<br />
&nbsp; &nbsp; link/ether 00:1c:c0:a7:b9:1f brd ff:ff:ff:ff:ff:ff<br />
&nbsp; &nbsp; inet 95.xx.xx.xx/24 brd 95.xx.xx.255 scope global eth0<br />
&nbsp; &nbsp; inet6 fe80::xx:xx:xx:xx/64 scope link<br />
&nbsp; &nbsp; &nbsp; &nbsp;valid_lft forever preferred_lft forever<br />
9: tap1: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100<br />
&nbsp; &nbsp; link/ether 00:ff:51:47:f0:57 brd ff:ff:ff:ff:ff:ff<br />
&nbsp; &nbsp; inet 10.0.98.4/24 brd 10.0.98.255 scope global tap1<br />
&nbsp; &nbsp; inet6 2001:758:f00:x:ffff:ffff:ffff:ffff/64 scope global dynamic<br />
&nbsp; &nbsp; &nbsp; &nbsp;valid_lft 2591993sec preferred_lft 604793sec<br />
&nbsp; &nbsp; inet6 fe80::2ff:51ff:fe47:f057/64 scope link<br />
&nbsp; &nbsp; &nbsp; &nbsp;valid_lft forever preferred_lft forever</div></div> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/28/geekfault-disponible-en-ipv6/' title='Permanent Link: Geekfault disponible en IPv6'>Geekfault disponible en IPv6</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/09/24/allocation-dadresses-ipv4-publiques-over-vpn/' title='Permanent Link: Allocation d&#8217;adresses IPv4 publiques over VPN'>Allocation d&#8217;adresses IPv4 publiques over VPN</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2010/02/17/ipv6-pour-les-nulswgeeks/' title='Permanent Link: IPv6 pour les nuls^Wgeeks'>IPv6 pour les nuls^Wgeeks</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/GLgIyWdM-8c" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>IP over DNS : Contourner les limitations des hotspots</title>
         <link>http://geekfault.org/2009/09/26/ip-over-dns/</link>
         <description>Vous êtes dans une gare, un hôtel ou un aéroport. Celui-ci est équipé en hotspots WiFi mais dès que vous vous connectez ils essayent de vous sous-tirer plus de 10€ pour une petite heure de connexion, ce qui est totalement aberrant vu les coûts de déploiement actuels.
Là, vous avez deux solutions : payer (ce qui [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/14/tunnel-ssh/' title='Permanent Link: Le tunnel SSH facile'&gt;Le tunnel SSH facile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/09/24/allocation-dadresses-ipv4-publiques-over-vpn/' title='Permanent Link: Allocation d&amp;#8217;adresses IPv4 publiques over VPN'&gt;Allocation d&amp;#8217;adresses IPv4 publiques over VPN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' title='Permanent Link: EeeGW : Cr&amp;#xe9;er soi-m&amp;#xea;me une passerelle r&amp;#xe9;seau'&gt;EeeGW : Créer soi-même une passerelle réseau&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1517</guid>
         <pubDate>Sat, 26 Sep 2009 14:50:24 +0000</pubDate>
         <content:encoded><![CDATA[<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/09/WiFiZone.jpg" alt="WiFiZone" title="WiFiZone" width="200" class="alignleft size-full wp-image-1534"/>Vous êtes dans une gare, un hôtel ou un aéroport. Celui-ci est équipé en <strong>hotspots WiFi</strong> mais dès que vous vous connectez ils essayent de vous sous-tirer <strong>plus de 10€ pour une petite heure de connexion</strong>, ce qui est totalement aberrant vu les coûts de déploiement actuels.</p>
<p>Là, vous avez deux solutions : <strong>payer</strong> (ce qui peut vite devenir cher si vous passer plus d&#8217;une semaine à l&#8217;hôtel) <strong>ou contourner</strong> les limitations. Vous vous rendrez vite compte que, même avant d&#8217;avoir payé, tous les hotspots <strong>résolvent les DNS</strong>&#8230; et il ne vous aura pas échappé qu&#8217;<strong>une résolution de DNS est un échange de données</strong>!</p>
<div style="background:#FFFABF;padding:4px;"><strong>Attention :</strong> Cet article fait appel à des connaissances avancées.</div>
<p><span id="more-1517"></span></p>
<h3>Le port UDP 53</h3>
<p>Pour faciliter la configuration de ces hotspots, de nombreux administrateurs n&#8217;hésitent pas à tout simplement ouvrir le port DNS, c&#8217;est-à-dire le port UDP 53. Une solution simple pour accéder à internet serait donc d&#8217;avoir un serveur <strong>VPN sur ce port</strong>.</p>
<p>Malheureusement on tombe souvent sur des hotspots bien configurés, qui n&#8217;autorisent du trafic que vers leur propre serveur DNS. Pourtant, vous avez remarqué qu&#8217;un</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">dig geekfault.org</div></div>
<p>vous a retourné la bonne adresse IP (81.93.247.142 actuellement) et non une adresse IP du hotspot. <strong>Vous venez de communiquer avec l&#8217;internet!</strong></p>
<h3>Échange de données over DNS</h3>
<p>L&#8217;idée est donc simple : traduire vos &#8220;requêtes IP&#8221; en <strong>requêtes DNS</strong>. Un faux serveur DNS va comprendre ces requêtes, les exécuter et retourner la &#8220;réponse IP&#8221; en réponse DNS! Ce détournement du système DNS est réalisable grâce à <strong><a rel="nofollow" target="_blank" href="http://savannah.nongnu.org/projects/nstx/">NSTX</a>, ou Name Service Transfer Procotol</strong> qui crée un véritable tunnel IP entre votre laptop et votre serveur, grâce aux requêtes DNS.</p>
<p>Par exemple vous essayez de vous connecter à Geekfault.<br />
<img src="http://geekfault.org/wp-content/uploads/2009/09/Schema-NSTX.png" alt="Schema-NSTX" title="Schema-NSTX" width="580" height="125" class="alignnone size-full wp-image-1531 noborder"/></p>
<ul>
<li>Firefox génère une requête HTTP vers geekfault.org</li>
<li>Celle-ci est interceptée par le client NSTX tournant sur le laptop. Il génère une requête vers le domaine <span style="font-family:monospace;">KJhjh33.dd_2sT-XXT.dAAoi_f.tunnel.example.com</span></li>
<li>Le NSTX tournant sur le serveur reçoit cette requête DNS et décode le <span style="font-family:monospace;">KJhjh33.dd_2sT-XXT.dAAoi_f</span> en &#8220;requête HTTP vers geekfault.org&#8221;</li>
<li>Le serveur se connecte alors à geekfault.org et récupère son contenu</li>
<li>Le contenu récupéré est encodé de la même manière et transmis vers votre laptop en tant que réponse DNS TXT</li>
<li>Le NSTX tournant sur le laptop décode les données, reformant les paquets IP</li>
<li>Firefox reçoit les données HTTP, Geekfault.org s&#8217;affiche <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley'/> </li>
</ul>
<h3>Mise en place du serveur</h3>
<p>Attention il est important que votre <strong>vrai serveur DNS</strong> et votre <strong>serveur NSTX</strong> soient sur deux machines différentes, ou au moins sur <strong>deux IP différentes</strong>. En effet, il faut qu&#8217;un vrai serveur DNS fasse pointer le sous-domaine <span style="font-family:monospace;">tunnel.example.com</span> vers NSTX. Pour cela, ajoutez à la fin de votre zone DNS</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">$ORIGIN tunnel.example.com.<br />
@ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IN &nbsp; &nbsp; &nbsp;NS &nbsp; &nbsp; &nbsp;ns.tunnel.example.com.<br />
ns &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IN &nbsp; &nbsp; &nbsp;A &nbsp; &nbsp; &nbsp; 1.2.3.4</div></div>
<p>où example.com est votre domaine et 1.2.3.4 est l&#8217;IP du serveur où vous installerez NSTX.</p>
<p>Vérifiez que votre kernel est compilé avec le &#8220;Universal TUN/TAP device driver support&#8221; (dans Network device support) . Installez NSTX, disponible en package pour de nombreuses distributions.</p>
<p>Et il ne reste plus qu&#8217;à <strong>créer le tunnel</strong> côté serveur:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># modprobe tun &nbsp; #Uniquement si compilé en module<br />
# nstxd -i 1.2.3.4 tunnel.example.com<br />
# ifconfig tun0 up 172.16.42.1 netmask 255.255.255.0<br />
# iptables -t nat -A POSTROUTING -s 172.16.42.2 -o eth0 -j SNAT</div></div>
<h3>Le client sur le laptop</h3>
<p>De la même manière, vérifiez que vous avez le support TUN/TAP dans le kernel et installez NSTX.</p>
<p>Récupérez l&#8217;adresse IP du serveur DNS fourni par DHCP (dans <span style="font-family:monospace;">/etc/resolv.conf</span>) ainsi que l&#8217;adresse IP du routeur (dans <span style="font-family:monospace;">route</span>). <strong>On crée alors l&#8217;autre bout du tunnel</strong> et on route le trafic approprié dans celui-ci:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># modprobe tun &nbsp; #Uniquement si compilé en module<br />
# nstxcd tunnel.example.com &lt;IP_serveur_DNS_filtrant&gt;<br />
# ifconfig tun0 up 172.16.42.2 netmask 255.255.255.0<br />
# route del default<br />
# route add -host &lt;IP_serveur_DNS_filtrant&gt; gw &lt;IP_routeur_filtrant&gt; dev &lt;interface_réseau&gt;<br />
# route add default gw 172.16.42.1 tun0</div></div>
<h3>Performances</h3>
<p><img style='float:right;padding:4px;margin:0 0 2px 7px;' align="right" src="http://geekfault.org/wp-content/uploads/2009/09/hotspot-150x150.jpg" alt="hotspot" title="hotspot" width="150" height="150" class="alignright size-thumbnail wp-image-1536"/>Vous devriez maintenant être capable de surfer sur le web. Selon le serveur DNS du fournisseur, vous pouvez espérer <strong>entre 10 et 60ko/s</strong>. Malheureusement les <strong>fortes latences</strong> de toutes les requêtes empêchent l&#8217;utilisation de plusieurs services, dont le SSH. Mais, hé, vous accédez à internet sans vous défaire de 10€ <img src='http://geekfault.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley'/> </p>
<p><em>Vous aurez aussi sans doute compris que nous sommes là au bord de la légalité : on exploite en quelque sorte une faille dans le système de hotspot. À utiliser avec précaution et parcimonie.</em></p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/14/tunnel-ssh/' title='Permanent Link: Le tunnel SSH facile'>Le tunnel SSH facile</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/09/24/allocation-dadresses-ipv4-publiques-over-vpn/' title='Permanent Link: Allocation d&#8217;adresses IPv4 publiques over VPN'>Allocation d&#8217;adresses IPv4 publiques over VPN</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' title='Permanent Link: EeeGW : Cr&#xe9;er soi-m&#xea;me une passerelle r&#xe9;seau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/odWR0vY1m0E" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Allocation d’adresses IPv4 publiques over VPN</title>
         <link>http://geekfault.org/2009/09/24/allocation-dadresses-ipv4-publiques-over-vpn/</link>
         <description>Vous désirez monter une solution VPN publique sans NAT, pouvoir être joignable de l&amp;#8217;extérieur en dépit des firewalls/NAT derrière lesquels vous vous trouvez, ou simplement vous assurer que votre trafic soit chiffré entre votre LAN et internet ?
Je vous explique ici la mise en place d&amp;#8217;une solution d&amp;#8217;allocation d&amp;#8217;adresses IPv4 publiques over VPN. Je vous [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/10/04/allocation-dipv6-over-openvpn/' title='Permanent Link: Allocation d&amp;#8217;IPv6 over OpenVPN'&gt;Allocation d&amp;#8217;IPv6 over OpenVPN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/09/26/ip-over-dns/' title='Permanent Link: IP over DNS : Contourner les limitations des hotspots'&gt;IP over DNS : Contourner les limitations des hotspots&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/14/tunnel-ssh/' title='Permanent Link: Le tunnel SSH facile'&gt;Le tunnel SSH facile&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1473</guid>
         <pubDate>Thu, 24 Sep 2009 15:07:26 +0000</pubDate>
         <content:encoded><![CDATA[<p><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/09/preferences-system-network-proxy.png" alt="Internet" title="Internet" width="128" height="128" class="alignleft size-full wp-image-1512"/>Vous désirez monter une solution VPN publique sans NAT, pouvoir être joignable de l&#8217;extérieur en dépit des firewalls/NAT derrière lesquels vous vous trouvez, ou simplement vous assurer que votre trafic soit chiffré entre votre LAN et internet ?</p>
<p>Je vous explique ici la mise en place d&#8217;une solution d&#8217;allocation d&#8217;adresses IPv4 publiques over VPN. Je vous recommande d&#8217;avoir de bonnes notions en matière de routage avant de vous engager plus loin.</p>
<div style="background:#FFFABF;padding:4px;"><strong>Attention :</strong> Cet article fait appel à des connaissances avancées.</div>
<p><span id="more-1473"></span></p>
<h3>Prérequis</h3>
<ul>
<li>Un prefix annoncé sur la table globale</li>
<li>Un routeur (celui qui annonce le prefix)</li>
<li>Un serveur dédié (qui distribuera les IPs over VPN)</li>
</ul>
<p>Dans cet article, je prendrai les données suivantes comme exemple :</p>
<ul>
<li>Le prefix sera 1.2.3.0/24</li>
<li>L&#8217;adresse publique du routeur (quagga sous FreeBSD 7.x) sera 2.2.2.2</li>
<li>L&#8217;adresse publique du serveur dédié (Linux 2.6) sera 3.3.3.3</li>
</ul>
<h3>Mise en place d&#8217;un tunnel GRE</h3>
<p>Selon la définition de Wikipédia, « <em>Generic Routing Encapsulation (GRE) is a tunneling protocol developed by Cisco that can encapsulate a wide variety of network layer protocol packet types inside IP tunnels, creating a virtual point-to-point link to Cisco routers at remote points over an IP internetwork.</em> »</p>
<p>Ce tunnel sera établi entre le routeur et le serveur dédié. Il servira à router un subnet vers le serveur dédié. Prenons comme exemple 1.2.3.16/28. Il faut également choisir deux IPs d&#8217;interconnexion, qui doivent être des IPs publiques. Ce seront les IPs assignées à chaque bout du tunnel. Choisissons 1.2.3.225 pour le routeur et 1.2.3.226 pour le serveur (ce qui donne 1.2.3.224 comme network et 1.2.3.227 comme broadcast, un /30 donc).</p>
<p>Sur le routeur, voici la procédure à suivre :</p>
<ul>
<li>Il faut d&#8217;abord s&#8217;assurer que le module if_gre soit chargé ou bien compilé en dur. Si ce n&#8217;est pas le cas
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># kldload if_gre</div></div>
</li>
<li>On crée le tunnel
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># ifconfig gre0 create<br />
# ifconfig gre0 tunnel 2.2.2.2 3.3.3.3<br />
# ifconfig gre0 inet 1.2.3.225 1.2.3.226 netmask 255.255.255.252<br />
# ifconfig gre0 up</div></div>
</li>
<li>Vérifiez également que le forwarding soit activé :
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># sysctl net.inet.ip.forwarding=1</div></div>
</ul>
<p>Afin que le tunnel se monte automatiquement au boot, voici les quelques lignes à rajouter dans /etc/rc.conf :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">router_enable="YES"<br />
ifconfig_gre0="tunnel 2.2.2.2 3.3.3.3"<br />
ifconfig_gre0="inet 1.2.3.225 1.2.3.226 netmask 255.255.255.252 up"</div></div>
<p>Le tunnel est maintenant prêt côté routeur. Passons à la configuration côté serveur :</p>
<ul>
<li>Le kernel doit être compilé avec les options CONFIG_IP_ADVANCED_ROUTER et CONFIG_IP_MULTIPLE_TABLES activées.</li>
<li>On crée le tunnel
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># ip tun add gretun mode gre local 3.3.3.3 remote 2.2.2.2 ttl 64 dev eth0<br />
# ip addr add dev gretun 1.2.3.226 peer 1.2.3.225/30<br />
# ip link set dev gretun up</div></div>
</li>
</ul>
<p>Le tunnel est maintenant opérationnel et chaque bout devrait être capable de pinger l&#8217;autre.</p>
<h3>Routage d&#8217;un subnet vers le serveur</h3>
<p>Côté routeur, il suffit d&#8217;ajouter une entrée dans la table de routage :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># route add -net 1.2.3.16/28 1.2.3.226</div></div>
<p>Côté serveur, il faut effectuer une manipulation un peu particulière. En effet, dans l&#8217;état actuel des choses, le serveur dédié risque d&#8217;avoir des problèmes s&#8217;il utilise une des IPs du prefix 1.2.3.16/28 routé. Supposons que nous avons assigné l&#8217;IP 1.2.3.16 à une interface du serveur :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># ip addr add 1.2.3.16/28 dev gretun</div></div>
<p>Si on essaye de joindre cette IP depuis l&#8217;extérieur (un ping par exemple), les packets arriveront bien jusqu&#8217;au serveur (après avoir été routés par le routeur (encore heureux)). Le problème se pose lorsque le serveur essaye de répondre : il va router les packets sortants sur l&#8217;interface par défaut et non via l&#8217;interface gretun. Cela peut marcher chez certains hébergeurs qui ne filtrent pas l&#8217;adresse source des packets sortants, mais cela n&#8217;est pas toujours le cas. Et puis c&#8217;est plus propre d&#8217;avoir la même route pour l&#8217;aller que pour le retour. Il faut donc router en fonction de l&#8217;adresse source des packets. C&#8217;est ici qu&#8217;intervient la feature de tables de routage multiple du kernel Linux.</p>
<p>Voici la manipulation à suivre :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># echo 200 tunnel &gt;&gt; /etc/iproute2/rt_tables<br />
# ip rule add from 1.2.3.16/28 table tunnel<br />
# ip rule add from 1.2.3.226/32 table tunnel<br />
# ip route add default via 1.2.3.225 table tunnel</div></div>
<p>La première commande permet d&#8217;assigner un nom à un numéro de table (200 est ici un nombre arbitraire, il suffit de prendre un numéro de table qui n&#8217;est pas encore utilisé).</p>
<p>La deuxième commande indique que tous les packets dont l&#8217;adresse source fait partie du prefix 1.2.3.16/28 doivent être routés en consultant la table de routage &#8220;tunnel&#8221;.</p>
<p>La troisième commande fait la même chose que la deuxième, si ce n&#8217;est qu&#8217;elle n&#8217;affecte que les packets en provenance de l&#8217;adresse 1.2.3.226. Cette commande est nécessaire pour que l&#8217;IP d&#8217;interconnexion soit accessible depuis l&#8217;extérieur.</p>
<p>Enfin, la quatrième commande ajoute la route par défaut inhérente à la table &#8220;tunnel&#8221;. Les packets utiliseront dorénavant la même route pour joindre le serveur que pour en partir. Il suffit de vérifier :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># ping -I 1.2.3.16 google.com</div></div>
<p>Le ping devrait se dérouler correctement.</p>
<h3 style="text-align:justify;">Allocation d&#8217;IPs publiques over VPN</h3>
<p>Il reste à présent à mettre en place une solution VPN sur le serveur dédié. Après avoir tenté avec OpenVPN, je me suis rendu compte qu&#8217;il était incapable de prendre une autre IP principale que le .1 du subnet alloué over vpn. Cela est inacceptable dans notre cas où le subnet alloué commence à partir de .16. Je me suis alors tourné vers vtun et c&#8217;est cette solution que je vais exposer ici.</p>
<p>Premièrement, il faut choisir une adresse IP du subnet qu&#8217;utilisera vtund. Prenons 1.2.3.17. Une nouvelle règle de routage est ici nécessaire. En effet, les packets ayant comme adresse source 1.2.3.17 doivent être routés vers les interfaces du VPN, et non pas vers gretun comme c&#8217;est le cas actuellement :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># ip rule add from 1.2.3.17 lookup main</div></div>
<p>Cette commande fait une exception de routage parmis le subnet 1.2.3.16/28, indiquant que les packets en provenance de 1.2.3.17 doivent utiliser la table de routage principale et non la table &#8220;tunnel&#8221;. Il reste alors à rendre possible la communication entre deux IPs du même subnet :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># ip rule add from 1.2.3.16/28 to 1.2.3.16/28 lookup main</div></div>
<p>Ceci permet d&#8217;éviter que les packets soient envoyés sur l&#8217;interface gretun, ce qui est le comportement par défaut pour les packets en provenance de 1.2.3.16/28 selon la règle indiquée précédemment.</p>
<p>Assurez-vous également que la redirection IP est activée sur le serveur :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"># echo 1 &gt; /proc/sys/net/ipv4/ip_forward</div></div>
<p>Voici un exemple de vtund.conf pour le serveur :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;height:250px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">options {<br />
port 4444;<br />
syslog daemon;<br />
ppp /usr/sbin/pppd;<br />
ifconfig /sbin/ifconfig;<br />
route /sbin/route;<br />
firewall /sbin/iptables;<br />
ip /sbin/ip;<br />
}<br />
<br />
default {<br />
compress no;<br />
speed 0;<br />
}<br />
<br />
user0 {<br />
passwd blahblah;<br />
type tun;<br />
device user0;<br />
proto tcp;<br />
encrypt yes;<br />
keepalive yes;<br />
<br />
up {<br />
ifconfig "%% 1.2.3.17 pointopoint 1.2.3.18 mtu 1500";<br />
};<br />
}</div></div>
<p>On alloue donc l&#8217;IP publique 1.2.3.18 au client &#8220;user0&#8243;.</p>
<p>Voici la configuration correspondante côté client (Linux 2.6, avec les options kernel CONFIG_IP_ADVANCED_ROUTER et CONFIG_IP_MULTIPLE_TABLES activées) :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;height:250px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">options {<br />
port 4444;<br />
timeout 60;<br />
ppp /etc/redirectall.sh;<br />
ifconfig /sbin/ifconfig;<br />
route /sbin/route;<br />
firewall /sbin/iptables;<br />
ip /sbin/ip;<br />
}<br />
<br />
user0 {<br />
passwd blahblah;<br />
device server0;<br />
proto tcp;<br />
persist yes;<br />
<br />
up {<br />
ifconfig "%% 1.2.3.18 pointopoint 1.2.3.17 mtu 1500";<br />
ip "rule add from 1.2.3.18 lookup tunnel";<br />
ip "route add default via 1.2.3.17 table tunnel";<br />
ppp "";<br />
};<br />
<br />
down {<br />
ip "rule del from 1.2.3.18";<br />
ppp "flush";<br />
};<br />
}</div></div>
<p>Quelques explications sont ici nécessaires. Le path indiqué par &#8220;ppp&#8221; a été modifié pour pointer sur un script permettant de rediriger tout le trafic over vpn. Il est également nécessaire d&#8217;ajouter une entrée &#8220;200 tunnel&#8221; dans le /etc/iproute2/rt_tables du client.</p>
<p>Voici redirectall.sh :</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">#!/bin/bash<br />
if [ "$1" = "flush" ]; then<br />
route delete -net 0.0.0.0/1<br />
route delete -net 128.0.0.0/1<br />
route delete -host 3.3.3.3<br />
else<br />
route add -host 3.3.3.3 gw `route -n | grep -E ^0.0.0.0 | awk '{print $2}'`<br />
route add -net 0.0.0.0/1 gw 1.2.3.17<br />
route add -net 128.0.0.0/1 gw 1.2.3.17<br />
fi</div></div>
<p>Tout est à présent fin prêt. Lancez le daemon vtun sur le serveur et le client, et vous serez joignable directement sur l&#8217;IP assignée. Si vous ne désirez pas rediriger tout votre trafic over vpn, il suffit de commenter les deux commandes ppp dans le up { } et down { } de la configuration client.</p>
<h3 style="text-align:justify;">Schéma</h3>
<p>L&#8217;architecture ressemble à ceci :<br />
<img src="http://geekfault.org/wp-content/uploads/2009/09/gretun-580x287.png" alt="Schema IPv4 publique over VPN" width="580" height="287" class="alignnone size-large wp-image-1501"/></p>
<h3 style="text-align:justify;">Remerciements</h3>
<p>Merci à bragon, avec qui j&#8217;ai initialement mis en place ce système avec le /24 de GeekNode.<br />
Merci à GeekNode pour le /28 <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley'/> </p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/10/04/allocation-dipv6-over-openvpn/' title='Permanent Link: Allocation d&#8217;IPv6 over OpenVPN'>Allocation d&#8217;IPv6 over OpenVPN</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/09/26/ip-over-dns/' title='Permanent Link: IP over DNS : Contourner les limitations des hotspots'>IP over DNS : Contourner les limitations des hotspots</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/05/14/tunnel-ssh/' title='Permanent Link: Le tunnel SSH facile'>Le tunnel SSH facile</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/2TzCR38t55c" height="1" width="1"/>]]></content:encoded>
      </item>
      <item>
         <title>Télécharger les Guignols de l’Info v2</title>
         <link>http://geekfault.org/2009/09/14/telecharger-les-guignols-de-linfo-v2/</link>
         <description>En avril nous publiions notre script bash pour télécharger les Guignols de l&amp;#8217;Info. Malheureusement, et comme chaque année, Canal+ a changé les technologies de son site web, et notre méthode ne fonctionne plus aujourd&amp;#8217;hui.
Nous sommes donc fiers de vous présenter la version entièrement réécrite de ce script pour télécharger les Guignols de l&amp;#8217;Info en cette [...] &lt;h3&gt;Si vous avez aimé ce post...&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/04/10/telecharger-guingols-de-l-info/' title='Permanent Link: T&amp;#xe9;l&amp;#xe9;charger les Guignols de l&amp;#8217;Info'&gt;Télécharger les Guignols de l&amp;#8217;Info&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/26/plowshare-megaupload-rapidshare-en-cli/' title='Permanent Link: Plowshare : MegaUpload, RapidShare et autres en CLI'&gt;Plowshare : MegaUpload, RapidShare et autres en CLI&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
         <guid isPermaLink="false">http://geekfault.org/?p=1465</guid>
         <pubDate>Mon, 14 Sep 2009 14:13:06 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://geekfault.org/wp-content/uploads/2009/04/lesguignols.png" title="Les Guignols de l&#039;Info"><img style='float:left;padding:4px;margin:0 7px 2px 0;' align="left" src="http://geekfault.org/wp-content/uploads/2009/04/lesguignols-300x182.png" alt=""Nous, le t&#xe9;l&#xe9;chargement, on est pour! Si si, &#xe7;a fait 50 fois qu&#039;on t&#xe9;l&#xe9;charge le moment &#xe0; l&#039;Assembl&#xe9;e o&#xf9; la droite est ridicule!" (Fran&#xe7;ois Hollande)" title="Les Guignols de l&#039;Info" width="300" height="182" class="size-medium wp-image-182 alignleft"/></a>En avril nous publiions <a rel="nofollow" target="_blank" href="http://geekfault.org/2009/04/10/telecharger-guingols-de-l-info/">notre script bash pour télécharger les Guignols de l&#8217;Info</a>. Malheureusement, et comme chaque année, Canal+ a changé les technologies de son site web, et notre méthode ne fonctionne plus aujourd&#8217;hui.</p>
<p>Nous sommes donc fiers de vous présenter la version entièrement réécrite de ce <strong>script pour télécharger les Guignols de l&#8217;Info en cette rentrée 2009</strong>!<br />
<span id="more-1465"></span></p>
<h3>La technique</h3>
<p>Vous vous souviendrez peut-être que notre précédente technique profitait d&#8217;une faille de sécurité sur le site de Canal+ : bien que le player exploitait le RTMP, les fichiers étaient toujours accessibles en HTTP. Nous en profitions donc pour simplement <span style="font-family:monospace;">wget</span> les différentes vidéos. Évidemment <strong>cette année le HTTP est entièrement bloqué et il faut donc passer par le RTMP</strong>.</p>
<p>Le hic, c&#8217;est que récupérer une URL RTMP relève du parcours du combattant. Mais il y a quelques jours <strong>jeantube</strong> est passé nous signaler une URL très, très intéressante : <a rel="nofollow" target="_blank" href="http://www.canalplus.fr/rest/bootstrap.php?/bigplayer/search/guignols">http://www.canalplus.fr/rest/bootstrap.php?/bigplayer/search/guignols</a>. Celle-ci correspond, je pense, au résultat AJAX des recherches de vidéo sur le site de Canal+.</p>
<p>Ce qui est génial avec ce fichier, c&#8217;est qu&#8217;<strong>il comporte en clair les URL rtmp://</strong>. Il ne nous reste plus qu&#8217;à utiliser un petit logiciel nommé <span style="font-family:monospace;"><a rel="nofollow" target="_blank" href="http://lkcl.net/rtmp/">rtmpdump</a></span> pour enregistrer localement le fichier.</p>
<h3>Le script</h3>
<p>Pour automatiser la tâche, je vous ai rédigé un petit <strong>script bash</strong> très simple qui à coups de <span style="font-family:monospace;">sed</span> et <span style="font-family:monospace;">grep</span> <strong>récupère l&#8217;URL d&#8217;un épisode et lance le <span style="font-family:monospace;">rtmpdump</span></strong> dessus. Il essaye toujours de prendre la plus haute qualité disponible et s&#8217;utilise comme le précédent:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:585px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">./getGuignols.sh &nbsp; &nbsp;#Télécharge l'épisode de la veille<br />
./getGuignols.sh 0 &nbsp;#Télécharge l'épisode d'aujourd'hui<br />
./getGuignols.sh 3 &nbsp;#Télécharge l'épisode d'il y a trois jours</div></div>
<p>Le script est publié sous GPLv3 et j&#8217;ai inclu dans l&#8217;archive le binaire <span style="font-family:monospace;">rtmpdump</span> distribué sous GPLv2. <strong><a rel="nofollow" target="_blank" href='http://geekfault.org/wp-content/uploads/2009/09/getGuignols.tar.gz'>Le tout se télécharge ici</a></strong></p>
<p>A noter que le code est très facile à comprendre et devrait être aisément adapté à d&#8217;autres émissions publiées sur le site de Canal+.</p>
<h3>Remerciements</h3>
<p>Je remercie <strong>jeantube</strong> sans qui nous ne serions nulle part et les quelques acharnés de <a rel="nofollow" target="_blank" href="http://www.chrogeek.com/2009/07/petit-hack-entre-amis-comment-telecharger-une-video-de-canal-plus/"><strong>Chrogeek.com</strong></a> qui ont permis de démêler le schmilblik.</p> <p><h3>Si vous avez aimé ce post...</h3><ol><li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/04/10/telecharger-guingols-de-l-info/' title='Permanent Link: T&#xe9;l&#xe9;charger les Guignols de l&#8217;Info'>Télécharger les Guignols de l&#8217;Info</a></li>
<li><a rel="nofollow" target="_blank" href='http://geekfault.org/2009/08/26/plowshare-megaupload-rapidshare-en-cli/' title='Permanent Link: Plowshare : MegaUpload, RapidShare et autres en CLI'>Plowshare : MegaUpload, RapidShare et autres en CLI</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/Geekfault/~4/W1V1mNzxL9Q" height="1" width="1"/>]]></content:encoded>
      </item>
   </channel>
</rss><!-- fe3.pipes.ch1.yahoo.com uncompressed/chunked Sat Mar 13 19:42:16 GMT 2010 -->
