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

<channel>
	<title>Geekfault &#187; Logiciel</title>
	<atom:link href="http://geekfault.org/categorie/logiciel/feed/" rel="self" type="application/rss+xml" />
	<link>http://geekfault.org</link>
	<description>If it doesn&#039;t segfault, you&#039;re doing it wrong.</description>
	<lastBuildDate>Thu, 12 Aug 2010 10:05:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Zeroconf : Réseaux IP sans configuration</title>
		<link>http://geekfault.org/2010/07/15/zeroconf-reseaux-ip-sans-configuration/</link>
		<comments>http://geekfault.org/2010/07/15/zeroconf-reseaux-ip-sans-configuration/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 21:10:43 +0000</pubDate>
		<dc:creator>Tito</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[avahi]]></category>
		<category><![CDATA[bonjour]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[protocole]]></category>
		<category><![CDATA[zeroconf]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=5324</guid>
		<description><![CDATA[Zeroconf est un ensemble de protocoles permettant de créer des réseaux IP et y fournir plusieurs services sans aucune configuration. Zeroconf permet entre autres de : Allouer automatiquement des IP, sans configurer un serveur DHCP Résoudre des noms de domaines locaux, sans configurer de serveur DNS Annoncer et découvrir des services, sans serveur d&#8217;annuaire Aventurons-nous [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/05/15/ssh-sans-mot-de-passe/' rel='bookmark' title='Permanent Link: SSH sans mot de passe'>SSH sans mot de passe</a></li>
<li><a href='http://geekfault.org/2010/05/09/choisir-son-keymap-x-org-1-8-sans-xorg-conf-ni-hack/' rel='bookmark' title='Permanent Link: Choisir son keymap X.org 1.8 sans xorg.conf ni hack'>Choisir son keymap X.org 1.8 sans xorg.conf ni hack</a></li>
<li><a href='http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/' rel='bookmark' title='Permanent Link: Chromium, le Google Chrome sous Linux sans émulation'>Chromium, le Google Chrome sous Linux sans émulation</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geekfault.org/wp-content/uploads/2010/07/Bonjour.jpg" title="Bonjour" rel="lightbox.5324"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2010/07/Bonjour-150x150.jpg" alt="" title="Bonjour" width="150" height="150" class="alignleft size-medium wp-image-5337 noborder" /></a>Zeroconf est un ensemble de protocoles permettant de créer des réseaux IP et y fournir plusieurs services <strong>sans aucune configuration</strong>. Zeroconf permet entre autres de :</p>
<ul>
<li><strong>Allouer automatiquement des IP</strong>, sans configurer un serveur DHCP</li>
<li><strong>Résoudre des noms de domaines locaux</strong>, sans configurer de serveur DNS</li>
<li><strong>Annoncer et découvrir des services</strong>, sans serveur d&#8217;annuaire</li>
</ul>
<p>Aventurons-nous donc un peu dans le monde du «&nbsp;<em>zOMG ça marche tout seul !</em>&nbsp;»<br />
<span id="more-5324"></span></p>
<h3>Les protocoles dits &#8220;Zeroconf&#8221;</h3>
<p>Zeroconf n&#8217;est qu&#8217;une appellation générique de différents protocoles. Sa première implémentation est imputable à Apple, qui l&#8217;appela Rendezvous puis <strong>Bonjour</strong>. Ensuite Microsoft a plus ou moins imposé son équivalent, l&#8217;<acronym title="Universal Plug and Play">UPnP</acronym>.</p>
<p>Sous Linux nous profitons d&#8217;une implémentation des protocoles d&#8217;Apple, sous le nom de <strong>Avahi</strong>. Contrairement aux protocoles Microsoft, ceux de <strong>Bonjour et Avahi sont promulgués par l&#8217;<acronym title="Internet Engineering Task Force">IETF</acronym></strong>, l&#8217;organisme établissant les standards de l&#8217;Internet. Ils ne sont toutefois pas encore admis en tant que standards, la plupart n&#8217;étant décrits que dans des <acronym title="Request For Comments">RFC</acronym> informels.</p>
<h3>Installation</h3>
<p>Avahi apparait généralement dans les gestionnaires de paquets comme une multitude de paquets. Bien que déjà présente dans <strong>Ubuntu</strong>, on peut ajouter quelques packages utiles :</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">sudo apt-get install avahi-daemon avahi-discover avahi-utils avahi-ui-utils avahi-dnsconfd libnss-mdns service-discovery-applet mdns-scan</div></div>
<p>Sous Gentoo, c&#8217;est un peu plus délicat : il faut d&#8217;abord ajouter les USE flags <span class="font-family: monospace;"><strong>avahi</strong></span> et <span class="font-family: monospace;"><strong>zeroconf</strong></span> à votre <span class="font-family: monospace;">/etc/make.conf</span>, recompiler les packages nécessaire et installer <span class="font-family: monospace;"><strong>net-dns/avahi</strong></span> ainsi que <span class="font-family: monospace;"><strong>net-misc/mDNSResponder</strong></span>.</p>
<h3>IPv4LL : Création d&#8217;un réseau IP sans DHCP</h3>
<p>IPv4LL, pour Local-Link, fait partie de Zeroconf mais est la partie moins poétique, souvent à l&#8217;origine d&#8217;erreurs de configurations IP&#8230; Elle consiste en fait en une <a href="http://tools.ietf.org/html/rfc3927">norme RFC</a> proposant l&#8217;allocation dynamique des adresses IP de <strong>169.254.0.0 à 169.254.254.254</strong> (fe80::/16 en IPv6) sur les réseaux ne possédant pas de serveur DHCP. Il y a évidemment un test évitant que deux ordinateurs prennent la même IP.</p>
<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;' align="right"   src="http://geekfault.org/wp-content/uploads/2010/07/connectivite-limitee-xp-6.png" alt="" title="connectivite-limitee-xp-6" width="338" height="130" class="alignright size-full wp-image-5348" />Ce n&#8217;est pas très propre et ces IP sont haïes de pas mal d&#8217;administrateurs. Remarquons toutefois que les dernières versions de NetworkManager implémentent un mode &#8220;Partagé avec d&#8217;autres ordinateurs&#8221; lors de la création d&#8217;un réseau Ad-Hoc, ce qui crée un vrai serveur DHCP.</p>
<h3>Résolution de noms locale</h3>
<p>Si Avahi est correctement installé, vous pouvez commencer à résoudre des noms automatiquement. Chaque machine s&#8217;attibue un nom de domaine sous la forme <span class="font-family: monospace;"><strong>HOSTNAME</strong>.local</span>. Par exemple, ma machine s&#8217;appelant epsilon :</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">tito@epsilon:~$ ping epsilon.local<br />
PING epsilon.local (10.0.73.18) 56(84) bytes of data.</div></div>
<p><strong>epsilon.local</strong> a bien été résolu par Avahi !</p>
<p>Cette magie est amenée par Multicast DNS, ou mDNS : chaque machine membre du réseau Zeroconf maintient en fait un petit serveur avec ses propres enregistrements DNS. Lorsqu&#8217;un membre du réseau fait une requête (multicast vers 224.0.0.251 ou ff02::fb, port UDP 5353), la machine se reconnaissant répond.</p>
<h3>Découverte de services</h3>
<p><a href="http://geekfault.org/wp-content/uploads/2010/07/Avahi-discover.png" title="Avahi-discover" rel="lightbox.5324"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;' align="right"   src="http://geekfault.org/wp-content/uploads/2010/07/Avahi-discover-300x295.png" alt="" title="Avahi-discover" width="300" height="295" class="alignright size-medium wp-image-5335" /></a>Tous les serveurs supportant Zeroconf peuvent <strong>annoncer qu&#8217;ils fournissent un service</strong>. On pourra ainsi détecter automatiquement des partages de fichiers, des serveurs VNC, des serveurs SSH et bien d&#8217;autres.</p>
<p>Ce système est lui aussi basé sur un serveur mDNS, sous forme d&#8217;enregistrements de type SRV, TXT et PTR.</p>
<p>Pour lister les services disponibles sur le réseau Zeroconf il existe plusieurs outils, je citerai juste <strong>avahi-discover</strong> qui est simple et complet.</p>
<h3>Quelques applications bien cools de Zeroconf</h3>
<h4>XMPP décentralisé</h4>
<p><a href="http://geekfault.org/wp-content/uploads/2010/07/Pidgin.jpg" title="Pidgin" rel="lightbox.5324"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2010/07/Pidgin-150x150.jpg" alt="" title="Pidgin" width="150" height="150" class="alignleft size-thumbnail wp-image-5364" /></a>Intégrée dans quelques clients Jabber, dont Pidgin (libpurple) entre autres, la <a href="http://xmpp.org/extensions/xep-0174.html">norme XMPP <strong>XEP-0174</strong></a> définit les communications XMPP sans serveur. Dans Pidgin, une fois le protocole Bonjour activé, <strong>vous verrez de nouveaux contacts apparaître</strong> comme par magie dès qu&#8217;ils se connectent&nbsp;!</p>
<p>C&#8217;est très pratique pour discuter sans aucune configuration avec ses collègues, sa famille ou même des inconnus <strong>sur un réseau Ad-Hoc</strong> dans un train ^_^</p>
<h4 style="clear:both;">PulseAudio</h4>
<p>Malheureusement PulseAudio n&#8217;a pas de bonne interface pour le présenter, mais exploite très bien ZeroConf en détectant facilement les autres serveurs PulseAudio. Il m&#8217;arrive souvent de <strong>streamer l&#8217;audio de mon laptop vers mon desktop</strong> afin de profiter d&#8217;une meilleure qualité sonore. Tout ça bien entendu <strong>sans configuration</strong> ni reconfiguration en cas de changements sur mon réseau.</p>
<h4>Over VPN</h4>
<p><a href="http://geekfault.org/wp-content/uploads/2010/07/VPN.png" title="VPN" rel="lightbox.5324"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;' align="right"   src="http://geekfault.org/wp-content/uploads/2010/07/VPN-300x212.png" alt="" title="VPN" width="150" height="106" class="alignright size-medium wp-image-5352" /></a>Si vous êtes connecté sur un VPN (au sens propre du terme, pas un VPN de tunneling tel qu&#8217;IPredator) <strong>Zeroconf y passera normalement sans accroc</strong> ! Après tout, un VPN c&#8217;est aussi un réseau local.</p>
<p>Couplé au XMPP décentralisé, c&#8217;est un super moyen de discuter avec ses collègues facilement, ainsi que toutes les autres applications auxquelles vous pouvez penser.</p>
<h3>En savoir plus&#8230;</h3>
<ul>
<li><a href="http://www.zeroconf.org/">ZeroConf.org</a></li>
<li><a href="http://www.multicastdns.org/">MultiCast DNS</a></li>
<li>«&nbsp;Zero Configuration Networking: The Definitive Guide&nbsp;» de Daniel H Steinberg et Stuart Cheshire, O&#8217;Reilly, Décembre 2005.</li>
</ul>


<p><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/05/15/ssh-sans-mot-de-passe/' rel='bookmark' title='Permanent Link: SSH sans mot de passe'>SSH sans mot de passe</a></li>
<li><a href='http://geekfault.org/2010/05/09/choisir-son-keymap-x-org-1-8-sans-xorg-conf-ni-hack/' rel='bookmark' title='Permanent Link: Choisir son keymap X.org 1.8 sans xorg.conf ni hack'>Choisir son keymap X.org 1.8 sans xorg.conf ni hack</a></li>
<li><a href='http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/' rel='bookmark' title='Permanent Link: Chromium, le Google Chrome sous Linux sans émulation'>Chromium, le Google Chrome sous Linux sans émulation</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/07/15/zeroconf-reseaux-ip-sans-configuration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XCompose → Enlarge your keymap</title>
		<link>http://geekfault.org/2010/07/07/xcompose-%e2%86%92-enlarge-your-keymap/</link>
		<comments>http://geekfault.org/2010/07/07/xcompose-%e2%86%92-enlarge-your-keymap/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 16:05:17 +0000</pubDate>
		<dc:creator>Lord</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[clavier]]></category>
		<category><![CDATA[keymap]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=4494</guid>
		<description><![CDATA[Vous avez désormais un clavier ergonomique et utilisez un layout adapté au français. Et si on ajoutait des caractères plus exotiques à votre clavier ou plutôt votre keymap ? On va donc utiliser une touche méconnue de votre clavier : Compose. La touche Compose est une touche morte de fonction. Elle ne produit rien en [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/03/27/keymap-linux-sous-windows/' rel='bookmark' title='Permanent Link: Keymap Linux sous Windows'>Keymap Linux sous Windows</a></li>
<li><a href='http://geekfault.org/2010/05/09/choisir-son-keymap-x-org-1-8-sans-xorg-conf-ni-hack/' rel='bookmark' title='Permanent Link: Choisir son keymap X.org 1.8 sans xorg.conf ni hack'>Choisir son keymap X.org 1.8 sans xorg.conf ni hack</a></li>
<li><a href='http://geekfault.org/2009/03/21/synergy/' rel='bookmark' title='Permanent Link: Synergy'>Synergy</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Vous avez désormais <a href="http://geekfault.org/2009/05/16/review-clavier-typematrix-ez-reach-2030/">un clavier ergonomique</a> et utilisez <a href="http://www.bepo.fr">un layout adapté au français</a>. Et si on ajoutait des caractères plus exotiques à votre clavier ou plutôt votre keymap ? On va donc utiliser une touche méconnue de votre clavier : Compose.</p>
<p>La touche Compose est une touche morte de fonction. Elle ne produit rien en elle-même mais suivies d&#8217;autres touches classiques, elle prend effet. Il devient possible d&#8217;écrire du grec λ , des flêches ← , des symboles mathématiques ½ , d&#8217;écrire en ᵉˣᵖᵒˢᵃⁿᵗ , des symboles (in)utiles ♥ ☭ ☺ ™ … en fait vous pouvez écrire tout les caractères existants d&#8217;unicode, vous aurez juste besoin d&#8217;une suffisamment bonne mémoire pour vous souvenir des enchaînements de touches. Le plus fort, c&#8217;est vous qui définissez ces enchaînements.</p>
<p><span id="more-4494"></span></p>
<h3>Mais où est cette fichue touche ?</h3>
<p>Bien qu&#8217;une réponse de trois lettres s&#8217;impose d&#8217;elle même, elle se situe en fait où vous la définissez. Oui oui pour ça aussi vous avez le choix. La touche Windows est souvent déclarée comme telle mais j&#8217;ai préféré utiliser la touche Ctrl droite. En définissant la touche Windows, vous rendez inaccessible les raccourcis qui lui sont liés alors qu&#8217;avec Ctrl droit il vous reste toujours Ctrl gauche … Enfin vous avez compris, de toute façon vous êtes libres. Pour ce faire tout dépend de votre environnement :</p>
<ul>
<li><strong>Gnome :</strong> Dans les options du clavier, rendez-vous sur l&#8217;onglet « layout » puis cliquez sur <em>Options</em>. Vous pourrez alors y définir la touche de votre choix.</li>
<li><strong>Xorg nature :</strong> La manipulation est un peu plus longue mais pas compliquée :<br />
Premièrement il faut déterminer le keycode de la touche que vous souhaitez utiliser. Pour cela lancez <em>xev</em>. Cet utilitaire vous affichera le keycode des touches que vous pressez. Mémorisez ce keycode. Créez ensuite un fichier</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">~/.xmodmap</div></div>
<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">keycode 105 = Multi_key</div></div>
<p>105 correspondant à Ctrl droit. Il ne reste plus qu&#8217;à lancer la commande</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">$ xmodmap ~/.xmodmap</div></div>
<p>pour que le changement soit effectif (commande à lancer au lancement de X).</li>
</ul>
<p>Le dernier obstacle avant de pouvoir utiliser votre Compose personnalisé est la méthode de saisie. Seule la méthode dite <em>xim</em> permet cette petite fantaisie. La plupart des applications permettent de changer ce paramètres en faisant un clic droit dans les zones de texte. Il est également possible de la mettre par défaut grâce à la commande <em>im-switch -c</em> et de choisir <em>xim-default</em>.</p>
<h3>Make it big !</h3>
<p>Bon la touche est prête à être dégainée. Il faut maintenant définir votre fichier XCompose. Ce fichier est spécifique à chaque utilisateur de votre système et se trouve là → <em>/home/$user/.XCompose</em> . Voilà sa syntaxe :</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;$touche1&gt; &lt;$touche2&gt; &lt;$touche3&gt; : &quot;$résutat&quot; $num</div></div>
<p>Vous pouvez mettre plusieurs touches d&#8217;affilées. Le résultat ou le numéro ou les deux doivent être présents. Le résultat est le caractère escompté.</p>
<p>Le numéro est celui défini dans la <a href="http://fr.wikipedia.org/wiki/Unicode#Jeu_de_caract.C3.A8res_cod.C3.A9s_.28Coded_Character_Set.29">norme CCS d&#8217;unicode</a>.</p>
<p>Par exemple si vous voulez faire une flèche vers la droite en appuyant sur compose puis la flèche droite de votre clavier.</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;Multi_key&gt; &lt;Right&gt; : &quot;→&quot; U2192</div></div>
<p>Et voilà le chemin est tout tracé. Bon parce que je sais que vous êtes flemmards (si si ça se voit, la moitié n&#8217;a pas lu jusqu&#8217;à la fin et ne regarde que les images), sachez qu&#8217;il est possible d&#8217;inclure un fichier externe afin de ne pas avoir à recopier le ficher pour chaque utilisateurs ou alors carrément de réutiliser le boulot du paqueteur de votre distrib :</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">include &quot;/usr/share/X11/locale/en_US.UTF-8/Compose&quot;</div></div>
<p>Ce fichier compte de très nombreuses lignes pas toujours intéressantes, à survoler vite fait pour voir un paquet de combinaisons déjà existantes.</p>


<p><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/03/27/keymap-linux-sous-windows/' rel='bookmark' title='Permanent Link: Keymap Linux sous Windows'>Keymap Linux sous Windows</a></li>
<li><a href='http://geekfault.org/2010/05/09/choisir-son-keymap-x-org-1-8-sans-xorg-conf-ni-hack/' rel='bookmark' title='Permanent Link: Choisir son keymap X.org 1.8 sans xorg.conf ni hack'>Choisir son keymap X.org 1.8 sans xorg.conf ni hack</a></li>
<li><a href='http://geekfault.org/2009/03/21/synergy/' rel='bookmark' title='Permanent Link: Synergy'>Synergy</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/07/07/xcompose-%e2%86%92-enlarge-your-keymap/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Redshift, ne vous abimez plus les yeux la nuit</title>
		<link>http://geekfault.org/2010/06/30/redshift-ne-vous-abimez-plus-les-yeux-la-nuit/</link>
		<comments>http://geekfault.org/2010/06/30/redshift-ne-vous-abimez-plus-les-yeux-la-nuit/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 11:23:16 +0000</pubDate>
		<dc:creator>roidelapluie</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[environnement]]></category>
		<category><![CDATA[ergonomie]]></category>
		<category><![CDATA[nuit]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[X]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=5245</guid>
		<description><![CDATA[Ne vous est-il jamais arrivé de passer des nuits ou des soirées devant votre pc? C&#8217;est une question rhétorique, bien sûr! Je vais vous présenter un logiciel libre qui pourrait améliorer sensiblement votre expérience nocturne. Ce logiciel s&#8217;appelle Redshift. Comme l&#8217;indique son site officiel, Redshift ajuste la température des couleurs de votre écran en fonction [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/03/21/minimeter-votre-quota-de-telechargement-en-permanence-sous-les-yeux/' rel='bookmark' title='Permanent Link: Minimeter : votre quota de téléchargement en permanence sous les yeux'>Minimeter : votre quota de téléchargement en permanence sous les yeux</a></li>
<li><a href='http://geekfault.org/2009/03/28/ubuntu-jaunty-jackalope-9-04/' rel='bookmark' title='Permanent Link: On a testé pour vous : Ubuntu Jaunty Jackalope 9.04'>On a testé pour vous : Ubuntu Jaunty Jackalope 9.04</a></li>
<li><a href='http://geekfault.org/2010/02/21/liberez-votre-esprit-avec-freemind/' rel='bookmark' title='Permanent Link: Libérez votre esprit avec Freemind'>Libérez votre esprit avec Freemind</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geekfault.org/2010/06/30/redshift-ne-vous-abimez-plus-les-yeux-la-nuit/redshift-icon-128/" rel="attachment wp-att-5261"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;' align="right"   src="http://geekfault.org/wp-content/uploads/2010/06/redshift-icon-128.png" alt="Icone de redshift" title="Redshift icon" width="128" height="128" class="alignright size-full wp-image-5261" /></a> Ne vous est-il jamais arrivé de passer des nuits ou des soirées devant votre pc? C&#8217;est une question rhétorique, bien sûr! Je vais vous présenter un logiciel libre qui pourrait améliorer sensiblement votre <strong>expérience nocturne</strong>.</p>
<p>Ce logiciel s&#8217;appelle <strong>Redshift</strong>.<br />
Comme l&#8217;indique son <a href="http://jonls.dk/redshift/">site officiel</a>, Redshift ajuste la température des couleurs de votre écran en fonction de votre environnement, et plus précisément de la position du soleil. Ce qui permettra d&#8217;avoir un écran blanc en journée, un écran orangé en soirée et un écran rougeâtre en pleine nuit. L&#8217;idéal étant que votre écran aie la même chaleur que la lampe de votre cave^Wchambre.<br />
<span id="more-5245"></span></p>
<h3>Paint it red</h3>
<p>Si vous vous demandez à quoi diable peut bien servir d&#8217;avoir un écran rougeâtre dans l&#8217;obscurité, sachez que dans de nombreux domaines, y compris l&#8217;aéronautique, les instruments sont faits de façon à être rétro-éclairés dans une teinte rouge la nuit.<br />
En effet, cette couleur, dans le bas de notre spectre visible est <strong>moins agressive</strong> à l&#8217;œil dans un environnement sombre.</p>
<p>De plus, non seulement l&#8217;éclat pâle de votre écran dans l&#8217;obscurité peut vous fatiguer la vue, mais des études ont démontré qu&#8217;il tenait éveillé, et provoquais des <strong>difficultés à trouver le sommeil</strong>.<br />
<br />Pour vos yeux, et pour votre productivité, <strong>aimez le rouge</strong> !</p>
<h3>Utilisation</h3>
<p>Afin de commencer à l&#8217;utiliser, entrez dans une console:</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">$ redshift -l 48.8:2.32</div></div>
<p></p>
<p>48.8:2.32 représente vos coordonnées (latitude et longitude). Si vous utilisez gnome, redshift pourra trouver votre position si vous l&#8217;avez encodée dans l&#8217;applet horloge. Il est également possible de passer une option -t afin e définir les différentes températures (jour:nuit). 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">$ redshift -l 48.8:2.32 -t 5500:4500</div></div>
<p></p>
<p>Enfin, sachez qu&#8217;en envoyant le signal USR1 à redshift, on le désactive et réactive temporairement.</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">$ killall -USR1 redshift</div></div>
<p></p>
<p>Je vous renvoie à vos tests et au <a href="http://jonls.dk/redshift/">site officiel</a> afin de découvrir d&#8217;autres options et des explications plus poussées. </p>
<h3>installation</h3>
<p>Redshift est packagé dans les principales distributions, pour l&#8217;installer sous <strong>ubuntu</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">$ sudo add-apt-repository ppa:jonls/redshift-ppa<br />
$ sudo apt-get update &amp;&amp; sudo apt-get install redshift</div></div>
<p>sous <strong>gentoo</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"># emerge x11-misc/redshift</div></div>
<p>sous <strong>exherbo</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"># cave resolve -x repository/roidelapluie<br />
# cave resolve -x x11-apps/redshift</div></div>
<p>Il peut être utilisé avec son interface iconifiée gtk minimaliste en apposant le préfixe &#8220;gtk-&#8221; à la commande redshift :</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">$ gtk-redshift -l 48.8:2.32 -t 5500:4500</div></div>


<p><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/03/21/minimeter-votre-quota-de-telechargement-en-permanence-sous-les-yeux/' rel='bookmark' title='Permanent Link: Minimeter : votre quota de téléchargement en permanence sous les yeux'>Minimeter : votre quota de téléchargement en permanence sous les yeux</a></li>
<li><a href='http://geekfault.org/2009/03/28/ubuntu-jaunty-jackalope-9-04/' rel='bookmark' title='Permanent Link: On a testé pour vous : Ubuntu Jaunty Jackalope 9.04'>On a testé pour vous : Ubuntu Jaunty Jackalope 9.04</a></li>
<li><a href='http://geekfault.org/2010/02/21/liberez-votre-esprit-avec-freemind/' rel='bookmark' title='Permanent Link: Libérez votre esprit avec Freemind'>Libérez votre esprit avec Freemind</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/06/30/redshift-ne-vous-abimez-plus-les-yeux-la-nuit/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>L&#8217;arche des mascottes du Libre</title>
		<link>http://geekfault.org/2010/06/13/larche-des-mascotes-du-libre/</link>
		<comments>http://geekfault.org/2010/06/13/larche-des-mascotes-du-libre/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 10:04:54 +0000</pubDate>
		<dc:creator>madx</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[animaux]]></category>
		<category><![CDATA[logos]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[planet-libre]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=2622</guid>
		<description><![CDATA[Dans le monde du Logiciel Libre, on aime bien les animaux, ils sont partout ! C&#8217;est bien simple, on se croirait à un safari photo au Kenya.Vous vous êtes surement demandé un jour : &#8220;Pourquoi un dromadaire pour Perl ?&#8221; ou encore &#8220;C&#8217;est quoi ce poisson bizarre pour OpenBSD ?&#8220;. Autant de questions, et bien [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
<li><a href='http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/' rel='bookmark' title='Permanent Link: nginx et python &#8211; le perfect setup'>nginx et python &#8211; le perfect setup</a></li>
<li><a href='http://geekfault.org/2010/04/24/photoshop-cs5-content-aware-fill-vs-gimp-resynthesizer/' rel='bookmark' title='Permanent Link: Photoshop CS5 <i>content aware fill</i> VS Gimp <i>resynthesizer</i>'>Photoshop CS5 <i>content aware fill</i> VS Gimp <i>resynthesizer</i></a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><!--pagetitle:Introduction--></p>
<p><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   class="alignleft" src="/wp-content/uploads/2010/06/teaser_animals.jpg" alt="Animaux" />Dans le monde du <strong>Logiciel Libre</strong>, on aime bien les <strong>animaux</strong>, ils sont partout ! C&#8217;est bien simple, on se croirait à un <strong>safari photo au Kenya</strong>.<br />Vous vous êtes surement demandé un jour : &#8220;<strong>Pourquoi un dromadaire pour Perl ?</strong>&#8221; ou encore &#8220;<strong>C&#8217;est quoi ce poisson bizarre pour OpenBSD ?</strong>&#8220;. Autant de questions, et bien d&#8217;autres encore que vous ne vous êtes même pas posées, auxquelles vous aurez la réponse dans cet article !<br /><span id="more-2622"></span>Cet article est relativement long (il y a <strong>beaucoup d&#8217;animaux</strong>) mais la bonne nouvelle c&#8217;est que vous pouvez le lire par n&#8217;importe quel bout donc n&#8217;hésitez pas à aller directement dans la section qui vous intéresse.</p>


<p><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
<li><a href='http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/' rel='bookmark' title='Permanent Link: nginx et python &#8211; le perfect setup'>nginx et python &#8211; le perfect setup</a></li>
<li><a href='http://geekfault.org/2010/04/24/photoshop-cs5-content-aware-fill-vs-gimp-resynthesizer/' rel='bookmark' title='Permanent Link: Photoshop CS5 <i>content aware fill</i> VS Gimp <i>resynthesizer</i>'>Photoshop CS5 <i>content aware fill</i> VS Gimp <i>resynthesizer</i></a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/06/13/larche-des-mascotes-du-libre/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>PXE : Y a-t-il un bootloader sur l&#8217;réseau ?</title>
		<link>http://geekfault.org/2010/05/15/pxe-ya-til-un-bootloader-sur-lreseau/</link>
		<comments>http://geekfault.org/2010/05/15/pxe-ya-til-un-bootloader-sur-lreseau/#comments</comments>
		<pubDate>Sat, 15 May 2010 14:02:25 +0000</pubDate>
		<dc:creator>Lord</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[boot]]></category>
		<category><![CDATA[diskless]]></category>
		<category><![CDATA[nfs]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[pxe]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=3993</guid>
		<description><![CDATA[


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' rel='bookmark' title='Permanent Link: EeeGW : Créer soi-même une passerelle réseau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
<li><a href='http://geekfault.org/2010/07/15/zeroconf-reseaux-ip-sans-configuration/' rel='bookmark' title='Permanent Link: Zeroconf : Réseaux IP sans configuration'>Zeroconf : Réseaux IP sans configuration</a></li>
<li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><!--pagetitle:Le PXE quoi que c'est ?--><a href="http://geekfault.org/2010/05/15/pxe-ya-til-un-bootloader-sur-lreseau/diagram1/" rel="attachment wp-att-4379"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2010/05/Diagram1-300x176.png" alt="Graph du réseau" width="300" height="176" class="alignleft size-medium wp-image-4379" /></a>Comment installer un OS sur une machine sans lecteur CD et sans clé USB ? Comment utiliser le même nunux quelque soit votre PC sur votre réseau ? Comment avoir votre nunux de secours pour dépanner les machines de votre réseau ? C&#8217;est simple, le <strong>P</strong>reboot e<strong>X</strong>ecution <strong>E</strong>nvironment est une technique permettant de booter une machine par le réseau.<br />
On pourrait simplifier la chose en disant qu&#8217;il s&#8217;agit d&#8217;une sorte de grub téléchargé et exécuté par le réseau. </p>
<p><span id="more-3993"></span></p>
<p>Pour démarrer une machine sur le réseau, il faut tout d&#8217;abord que son bios supporte cette technologie (c&#8217;est le cas de la plupart des machines modernes). Il faut ensuite un serveur DHCP et un serveur TFTP configurés pour fournir un bail spécial ainsi que les fichiers nécessaires au boot. Cet article couvre donc la mise en place d&#8217;un système basique. On abordera ensuite le côté esthétique par un petit coup de maquillage, ensuite on ajoutera quelques fonctions parfois utiles et enfin la mise en place d&#8217;un système complètement <strong>diskless</strong>.</p>
<h3>Récupération du matos </h3>
<p>La grande majorité des serveurs DHCP est à même de faire tourner un PXE. J&#8217;aborderai ici <strong>Dnsmasq</strong> qui a l&#8217;avantage d&#8217;être très léger et de  pouvoir faire office de serveur DNS et TFTP. Nous n&#8217;aurons donc qu&#8217;un seul et unique serveur pour tout faire.</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=&quot;dhcp tftp&quot; emerge dnsmasq</div></div>
<p>Il vous faudra également syslinux pour récupérer les précieux fichiers de boot ainsi que quelques petits utilitaires bonus.<br />
Vous trouverez la dernière version sur le très sérieux site de kernel.org:</p>
<p>http://www.kernel.org/pub/linux/utils/boot/syslinux/</p>
<p>Il ne manque plus que la distribution à booter et son kernel. Tout dépendra de ce que vous voulez proposer. Ici on va monter un installeur 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">wget ftp://ftp.fr.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/linux /var/tftp/distros/debian/lenny/i386/linux<br />
wget ftp://ftp.fr.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz /var/tftp/distros/debian/lenny/i386/initrd.gz<br />
wget ftp://ftp.fr.debian.org/debian/dists/etch/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux /var/tftp/distros/debian/lenny/amd64/linux<br />
wget ftp://ftp.fr.debian.org/debian/dists/etch/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz /var/tftp/distros/debian/lenny/amd64/initrd.gz</div></div>
<h3>Configuration du serveur </h3>
<p>Je n&#8217;aborderai pas la configuration complète de Dnsmasq, uniquement les parties relatives à notre objecif.</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/dnsmasq.conf</div></div>
<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">dhcp-boot=pxelinux.0<br />
enable-tftp<br />
tftp-root=/var/tftp</div></div>
<p>La première ligne fournit le nom du fichier de PXE, la seconde active le tftp et la troisième déclare le dossier qui sera la racine de notre TFTP. Ça suffit pour obtenir le fonctionnement désiré. Relancez Dnsmasq, désormais on n&#8217;y touchera plus.</p>
<h3>Mise en place basique </h3>
<p>Commençons par créer la racine du tftp et récupérer le fameux pxelinux.0</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"># mkdir /var/tftp/pxelinux.cfg<br />
# tar xvf syslinux-3.81.tar.gz<br />
# cp syslinux-3.81/core/pxelinux.0 /var/tftp/</div></div>
<p>Créons maintenant un petit menu tout 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">/var/tftp/menu.txt</div></div>
<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">-: PXE BOOT :-<br />
<br />
lenny_i386_installer<br />
lenny_i386_expert<br />
lenny_amd64_installer<br />
lenny_amd64_expert</div></div>
<p>C&#8217;est ce menu qui s&#8217;affichera. C&#8217;est moche mais efficace. Il faut créer le fichier de configuration associé :</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">/var/tftp/pxelinux.cfg/default</div></div>
<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">DISPLAY menu.txt<br />
<br />
DEFAULT lenny_i386_installer<br />
<br />
LABEL lenny_i386_installer<br />
&nbsp; &nbsp; kernel distros/debian/lenny/i386/linux<br />
&nbsp; &nbsp; append vga=normal initrd=debian/lenny/i386/initrd.gz<br />
<br />
LABEL lenny_i386_expert<br />
&nbsp; &nbsp; kernel distros/debian/lenny/i386/linux<br />
&nbsp; &nbsp; append priority=low vga=normal initrd=debian/lenny/i386/initrd.gz<br />
<br />
LABEL lenny_amd64_linux<br />
&nbsp; &nbsp; kernel distros/debian/lenny/amd64/linux<br />
&nbsp; &nbsp; append vga=normal initrd=debian/lenny/amd64/initrd.gz<br />
<br />
LABEL lenny_amd64_expert<br />
&nbsp; &nbsp; kernel distros/debian/lenny/amd64/linux<br />
&nbsp; &nbsp; append priority=low vga=normal initrd=debian/lenny/amd64/initrd.gz<br />
<br />
PROMPT 1<br />
TIMEOUT 0</div></div>
<p>Vous avez maintenant un PXE tout ce qu&#8217;il y a de plus simple. C&#8217;est assez brut mais ça fonctionne. Maintenant vous pouvez tester. La machine se verra attribé sa config réseau et vous devriez voir s&#8217;afficher le contenu de votre boot.txt . Vous n&#8217;aurez plus qu&#8217;à taper le « label » désiré pour lancer le boot.</p>


<p><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' rel='bookmark' title='Permanent Link: EeeGW : Créer soi-même une passerelle réseau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
<li><a href='http://geekfault.org/2010/07/15/zeroconf-reseaux-ip-sans-configuration/' rel='bookmark' title='Permanent Link: Zeroconf : Réseaux IP sans configuration'>Zeroconf : Réseaux IP sans configuration</a></li>
<li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/05/15/pxe-ya-til-un-bootloader-sur-lreseau/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Linux &#8211; Laptop &#8211; Ultimate Powersaving !</title>
		<link>http://geekfault.org/2010/05/13/linux-laptop-ultimate-powersaving/</link>
		<comments>http://geekfault.org/2010/05/13/linux-laptop-ultimate-powersaving/#comments</comments>
		<pubDate>Thu, 13 May 2010 12:52:48 +0000</pubDate>
		<dc:creator>bragon</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[Matériel]]></category>
		<category><![CDATA[batterie optimisation]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[powertop]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=4331</guid>
		<description><![CDATA[Le but de cet article est de faire économiser de la batterie à votre laptop sous Linux. Avec quelques tips, c&#8217;est possible très facilement. On peut gagner 1h de batterie avec quelques méthodes simples. Follow the white rabbit Outils indispensable Déjà il va vous falloir vous munir d&#8217;un outils indispensable développé par intel nommé : [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/08/14/faille-critique-dans-tous-les-noyaux-linux/' rel='bookmark' title='Permanent Link: Faille critique dans tous les noyaux Linux'>Faille critique dans tous les noyaux Linux</a></li>
<li><a href='http://geekfault.org/2009/07/12/transformer-laptop-en-routeur-wifi/' rel='bookmark' title='Permanent Link: Partager la connexion de son laptop'>Partager la connexion de son laptop</a></li>
<li><a href='http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/' rel='bookmark' title='Permanent Link: Chromium, le Google Chrome sous Linux sans émulation'>Chromium, le Google Chrome sous Linux sans émulation</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geekfault.org/2010/05/13/linux-laptop-ultimate-powersaving/attachment/308/" rel="attachment wp-att-4334"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2010/05/308-300x300.jpg" alt="" title="308" width="300" height="300" class="alignleft size-medium wp-image-4334" /></a></p>
<p>Le but de cet article est de faire économiser de la batterie à votre laptop sous Linux.</p>
<p>Avec quelques tips, c&#8217;est possible très facilement.<br />
On peut  gagner 1h de batterie avec quelques méthodes simples.</p>
<p>Follow the white rabbit</p>
<p><span id="more-4331"></span></p>
<h3> Outils indispensable </h3>
<p>Déjà il va vous falloir vous munir d&#8217;un outils indispensable développé par intel nommé : powertop<br />
Le gars qui cherche à économiser de la batterie et qui n&#8217;a pas installé powertop c&#8217;est vraiment un gros naz <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </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 powertop</div></div>
<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 powertop</div></div>
<p>Lancez powertop en root, et suivez le guide, tout est expliqué directement dans l&#8217;interface ncurses.</p>
<h3> Désactive le superflu dans l&#8217;bios petite loutre </h3>
<p>Il convient d&#8217;aller désactiver les choses dont vous ne vous servez jamais dans le bios.<br />
Exemple :</p>
<li>Désactiver le bluetooth</li>
<li>Désactiver le wake on lan sur eth0</li>
<li>Désactiver l&#8217;extension Wimax de votre carte wifi.</li>
<li>Désactiver le lecteur CD si vous ne vous en servez jamais.</li>
<p>Etc &#8230; etc &#8230;</p>
<p>ça permet d&#8217;économiser déjà pas mal de batterie.</p>
<h3> Modifies ton sysctl.conf petit castor </h3>
<p>Quelques réglages à avoir dans le sysctl.conf</p>
<p>modifier : /etc/sysctl.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">vm.laptop_mode = 5 &nbsp;# Activating laptop mode, power friendly I/Os<br />
vm.dirty_writeback_centisecs = 2000<br />
kernel.nmi_watchdog = 0<br />
vm.swappiness = 5</div></div>
<p>Le writeback du cache du système de fichiers sur le disque dur se fait assez fréquemment. Pour réduire la consommation, il suffit de le faire moins fréquemment.<br />
Par defaut le writeback est à 500</p>
<h3> fout ça dans ton /sys petit scarabée </h3>
<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 10 &gt; /sys/module/snd_hda_intel/parameters/power_save<br />
echo min_power &gt; /sys/class/scsi_host/host0/link_power_management_policy<br />
echo min_power &gt; /sys/class/scsi_host/host1/link_power_management_policy</div></div>
<h3> Actives le power management dans ta carte wifi Intel petite fourmis des bois </h3>
<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">iwconfig wlan0 power on</div></div>
<h3>  Mon petit script à la con, lis ça petit phasmid </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">#!/bin/bash<br />
<br />
#echo 5 &gt; /sys/bus/pci/drivers/iwlagn/*/power_level<br />
echo 5 &gt; /sys/bus/pci/drivers/iwlagn/0000\:03\:00.0/power_level<br />
<br />
echo 1 &gt; /sys/devices/system/cpu/sched_mc_power_savings<br />
<br />
echo 1500 &gt; /proc/sys/vm/dirty_writeback_centisecs<br />
<br />
echo 5 &gt; /proc/sys/vm/laptop_mode<br />
<br />
# passe en economie d'energie la carte son<br />
echo 10 &gt; /sys/module/snd_hda_intel/parameters/power_save<br />
echo min_power &gt; /sys/class/scsi_host/host0/link_power_management_policy<br />
# desactive le wake on lan sur eth0<br />
ethtool -s eth0 wol d<br />
# met la luminosité à 30%<br />
xbacklight -set 30<br />
# Passe le frequency scaling en &quot;on demand&quot;<br />
echo ondemand &gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor<br />
<br />
## Spécifique thinkpad x300 ou equivalent<br />
# desactive le bluetooth<br />
echo disable &gt; /proc/acpi/ibm/bluetooth<br />
# desactive le modem 3G<br />
echo disable &gt; /proc/acpi/ibm/wan<br />
echo min_power &gt; /sys/class/scsi_host/host0/link_power_management_policy</div></div>
<p>Le paramètre sched_smt_power_savings sous /sys/devices/system/cpu/ contrôle le multithreading. Par défaut, il vaut 0 pour des performances optimales<br />
Mettez le à 1 pour avoir plus de batterie, ainsi vous ne vous servirez du second cœur de votre cpu qu&#8217;en cas de besoin ! :</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; /sys/devices/system/cpu/sched_smt_power_savings</div></div>
<h3> Conclusion </h3>
<p>Cet article n&#8217;est pas complet car j&#8217;ai également des optimisations dans mon kernel, mais ça peut déjà vous donner une bonne base de travail.<br />
N&#8217;hésitez pas à faire des bench avec powertop à CHAQUE modification pour voir ce que ça change sur votre consommation en Watts.</p>


<p><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/08/14/faille-critique-dans-tous-les-noyaux-linux/' rel='bookmark' title='Permanent Link: Faille critique dans tous les noyaux Linux'>Faille critique dans tous les noyaux Linux</a></li>
<li><a href='http://geekfault.org/2009/07/12/transformer-laptop-en-routeur-wifi/' rel='bookmark' title='Permanent Link: Partager la connexion de son laptop'>Partager la connexion de son laptop</a></li>
<li><a href='http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/' rel='bookmark' title='Permanent Link: Chromium, le Google Chrome sous Linux sans émulation'>Chromium, le Google Chrome sous Linux sans émulation</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/05/13/linux-laptop-ultimate-powersaving/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Photoshop CS5 content aware fill VS Gimp resynthesizer</title>
		<link>http://geekfault.org/2010/04/24/photoshop-cs5-content-aware-fill-vs-gimp-resynthesizer/</link>
		<comments>http://geekfault.org/2010/04/24/photoshop-cs5-content-aware-fill-vs-gimp-resynthesizer/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 14:23:24 +0000</pubDate>
		<dc:creator>madx</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[comparatif]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[content aware fill]]></category>
		<category><![CDATA[gimp]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[resynthesizer]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=3638</guid>
		<description><![CDATA[Vous en avez forcement entendu parler, le content aware fill est la feature du futur Photoshop CS5 : on dessine vaguement les contours de l&#8217;objet qu&#8217;on veux enlever d&#8217;une photo, on lance la fonction et *pouf* l&#8217;objet disparait en laissant place à ce qui se trouve derrière. Vous avez aussi surement vu les démonstrations sur [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/06/13/larche-des-mascotes-du-libre/' rel='bookmark' title='Permanent Link: L&#8217;arche des mascottes du Libre'>L&#8217;arche des mascottes du Libre</a></li>
<li><a href='http://geekfault.org/2009/08/19/echinus-wm/' rel='bookmark' title='Permanent Link: Echinus, un WM, simplement.'>Echinus, un WM, simplement.</a></li>
<li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><!--pagetitle:Introduction--><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2010/04/resynthesizer_title21.png" alt="resynthesizer_title" title="resynthesizer_title" width="200" height="300" class="alignleft" /></p>
<p>Vous en avez forcement entendu parler, le <i>content aware fill</i> est <b>la</b> feature du futur <strong>Photoshop CS5</strong> : on dessine vaguement les <strong>contours de l&#8217;objet</strong> qu&#8217;on veux enlever d&#8217;une photo, on lance la fonction et <b>*pouf*</b> l&#8217;objet disparait en laissant place à ce qui se trouve derrière.</p>
<p>Vous avez aussi surement vu les <a href="http://www.youtube.com/watch?v=NH0aEp1oDOI">démonstrations</a> sur youtube et les réactions de fanboys Photoshop telles que &#8220;<i>That&#8217;s beyond insane!</i>&#8220;, &#8220;<i>BLACK MAGIC</i>&#8220;, &#8220;<i>I will buy this over everything i&#8217;ve ever wanted ever</i>&#8220;, ou encore &#8220;<i>And then i, JIZZED, IN MY PANTS</i>&#8221; (tous absolument véridiques).</p>
<p>On ne vas pas s&#8217;éterniser sur le comment (de l&#8217;extrapolation mixé avec du random) mais sur le fait que <strong>Gimp possède cette fonction depuis &#8230; 2004</strong>. Oui, 6 ans.</p>
<p><span id="more-3638"></span></p>
<h3>6 ans après, Photoshop rattrape Gimp</h3>
<p>Au cas ou vous n&#8217;auriez pas vu les démonstrations et pour bien comprendre de quoi on parle, rien de mieux qu&#8217;une photo, ou deux pour le coup.</p>
<div style="text-align:center">
<table style="margin-left:auto; margin-right:auto;">
<tr>
<th style="text-align:center">Avant</th>
</tr>
<tr>
<td>
<a href="http://geekfault.org/wp-content/uploads/2010/04/rust_original.jpg" title="Original" rel="lightbox.3638"><img style=' display: block; margin-right: auto; margin-left: auto;' align="center"   src="http://geekfault.org/wp-content/uploads/2010/04/rust_original-300x225.jpg" alt="Original" title="Original" width="300" height="225" class="aligncenter size-medium wp-image-3434" /></a></td>
</tr>
</table>
<table style="margin-left:auto; margin-right:auto;">
<tr>
<th style="text-align:center">Après</th>
</tr>
<tr>
<td>
<a href="http://geekfault.org/wp-content/uploads/2010/04/rust_gimp.jpg" title="Résultat" rel="lightbox.3638"><img style=' display: block; margin-right: auto; margin-left: auto;' align="center"   src="http://geekfault.org/wp-content/uploads/2010/04/rust_gimp-300x225.png" alt="Gimp" title="Résultat" width="300" height="225" class="aligncenter size-medium wp-image-3435" /></a></td>
</tr>
</table>
</div>
<p>A noter que cette fonction n&#8217;est pas de série dans Gimp, mais sous forme de plug-in (en licence GPL), disponible dans toutes les bonnes distributions sous le nom de <i>gimp-resynthesizer</i> ou quelque chose de proche.</p>


<p><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/06/13/larche-des-mascotes-du-libre/' rel='bookmark' title='Permanent Link: L&#8217;arche des mascottes du Libre'>L&#8217;arche des mascottes du Libre</a></li>
<li><a href='http://geekfault.org/2009/08/19/echinus-wm/' rel='bookmark' title='Permanent Link: Echinus, un WM, simplement.'>Echinus, un WM, simplement.</a></li>
<li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/04/24/photoshop-cs5-content-aware-fill-vs-gimp-resynthesizer/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Filtrer ses mails ! Un cauchemard !</title>
		<link>http://geekfault.org/2010/04/09/filtrer-ses-mails-un-cauchemard/</link>
		<comments>http://geekfault.org/2010/04/09/filtrer-ses-mails-un-cauchemard/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 17:18:10 +0000</pubDate>
		<dc:creator>bragon</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[planet-libre]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=2808</guid>
		<description><![CDATA[Le but de ce howto est de vous présenter ma façon de filtrer mes mails de tous mes comptes pop/imap, afin de les centraliser dans une même interface. Afin de filtrer les mails qui arrivent nous allons utiliser &#8220;sieve&#8221; un merveilleux ajout disponible dans le packet dovecot, qui permet de filtrer les messages directement AVANT [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/04/09/maildir-mbox-la-migration/' rel='bookmark' title='Permanent Link: Maildir mbox &#8211; La migration'>Maildir mbox &#8211; La migration</a></li>
<li><a href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' rel='bookmark' title='Permanent Link: EeeGW : Créer soi-même une passerelle réseau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
<li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><!--pagetitle:Introduction et objectifs--><a href="http://geekfault.org/2010/04/09/filtrer-ses-mails-un-cauchemard/casserole3/" rel="attachment wp-att-2887"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2010/04/casserole3-300x200.jpg" alt="" title="casserole3" width="300" height="200" class="alignleft size-medium wp-image-2887" /></a>Le but de ce howto est de vous présenter <strong>ma</strong> façon de filtrer mes mails de tous mes comptes pop/imap, afin de les centraliser dans une même interface.<br />
Afin de filtrer les mails qui arrivent nous allons utiliser &#8220;sieve&#8221; un merveilleux ajout disponible dans le packet dovecot, qui permet de filtrer les messages directement <strong> AVANT </strong> qu&#8217;ils arrivent dans la casserole IMAP.<br />
<span id="more-2808"></span></p>
<h3>Les mails sans rangement c&#8217;est immangeable, ceci est une petite recette d&#8217;assaisonnement </h3>
<p>Centraliser mes mails m&#8217;apporte plusieurs choses :<br />
<strong><br />
- Faciliter le filtrage.<br />
- Faciliter le rangement dans différents dossiers.<br />
- Effectuer un backup de tous mes comptes IMAP/POP.<br />
- Faire apprendre à mon antispam mes différents réglages.<br />
</strong></p>
<p>Cette recette ne couvre pas l&#8217;installation de Apache + php + MySQL<br />
Nous supposons ici que vous savez faire ce type d&#8217;installation.</p>
<p>Cette recette ne couvre pas non plus l&#8217;utilisation de mutt (je mettrai tout de même en ligne ma configuration).<br />
En effet, l&#8217;utilisation de mutt mérite un article à lui seul !</p>
<p>Postulat1 : Les mails seront stockés dans cette recette ici : /home/utilisateur/.maildir<br />
Postulat2 : Nous supposons que vous avez plusieurs comptes email à rapatrier.<br />
Postulat3 : Nous supposons que vous disposez d&#8217;une machine GNU/Linux sous Gentoo et/ou Debian pour effectuer ce howto.<br />
Postulat4 : Nous supposons que vous stockez vos mails dans le format Maildir ! (se reporter au Howto Sur la conversion mbox => maildir en cas de soucis) Allez lire : <a href="http://geekfault.org/2010/04/09/maildir-mbox-la-migration/">http://geekfault.org/2010/04/09/maildir-mbox-la-migration/</a></p>
<h3> Résultat une fois que la recette est en place </h3>
<p><a href="http://geekfault.org/2010/04/09/filtrer-ses-mails-un-cauchemard/filtermail-2/" rel="attachment wp-att-2969"><img style=' display: block; margin-right: auto; margin-left: auto;' align="center"   src="http://geekfault.org/wp-content/uploads/2010/04/filtermail1.jpeg" alt="" title="filtermail" width="662" height="945" class="aligncenter size-full wp-image-2969" /></a></p>


<p><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/04/09/maildir-mbox-la-migration/' rel='bookmark' title='Permanent Link: Maildir mbox &#8211; La migration'>Maildir mbox &#8211; La migration</a></li>
<li><a href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' rel='bookmark' title='Permanent Link: EeeGW : Créer soi-même une passerelle réseau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
<li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/04/09/filtrer-ses-mails-un-cauchemard/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Maildir mbox &#8211; La migration</title>
		<link>http://geekfault.org/2010/04/09/maildir-mbox-la-migration/</link>
		<comments>http://geekfault.org/2010/04/09/maildir-mbox-la-migration/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 17:16:18 +0000</pubDate>
		<dc:creator>pistache</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[Non classé]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[maildir]]></category>
		<category><![CDATA[mbox]]></category>
		<category><![CDATA[pam_mail.so]]></category>
		<category><![CDATA[planet-libre]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=2754</guid>
		<description><![CDATA[Traditionellement, les serveurs UNIX utilisent mbox pour stocker les mails. Pour mbox, chaque dossier de votre boîte mail (Reçu, Envoyés, Archive, Corbeille, etc) est representé par un fichier, ou tout les mails sont enregistrés à la suite, séparés par une ligne vide. Ce format, très simple à utiliser, pose de nombreux problèmes. Premièrement, on ne [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/04/09/filtrer-ses-mails-un-cauchemard/' rel='bookmark' title='Permanent Link: Filtrer ses mails ! Un cauchemard !'>Filtrer ses mails ! Un cauchemard !</a></li>
<li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
<li><a href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' rel='bookmark' title='Permanent Link: EeeGW : Créer soi-même une passerelle réseau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geekfault.org/wp-content/uploads/2010/04/illustration-maildir.jpg" title="illustration-maildir" rel="lightbox.2754"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2010/04/illustration-maildir-300x270.jpg" alt="" title="illustration-maildir" width="300" height="270" class="alignleft size-medium wp-image-3040" /></a>
<p>Traditionellement, les serveurs UNIX utilisent <a href="http://fr.wikipedia.org/wiki/Mbox">mbox</a> pour stocker les mails. Pour mbox, chaque dossier de votre boîte mail (Reçu, Envoyés, Archive, Corbeille, etc) est representé par un fichier, ou tout les mails sont enregistrés à la suite, séparés par une ligne vide.</p>
</p>
<p>Ce format, très simple à utiliser, pose de nombreux problèmes. Premièrement, on ne peut pas faire d&#8217;accès parallèles, même sur des mails différents, puisque le fichier est le même (problème de verrou). Deuxièment, les serveurs POP/IMAP (comme Dovecot) ont souvent un support limité de mbox. Dovecot est obligé de placer un mail &#8220;interne&#8221; dans la boîte, pour garder l&#8217;arborescence et l&#8217;organisation des dossiers. Courier ne supporte pas mbox.</p>
<p>L&#8217;avantage principal de mbox, c&#8217;est le fait qu&#8217;il soit très répandu. Il est supporté par tout les MUA (mailutils/mail, bsd-mailx, mutt, emacs, Kmail, thunderbird, evolution). Mais les problèmes récurrents qu&#8217;il pose ont poussé <a href="http://en.wikipedia.org/wiki/Daniel_J._Bernstein">le principal développeur de qmail</a> a créer un nouveau format : <a href="http://fr.wikipedia.org/wiki/Maildir">Maildir</a>.</p>
<p><span id="more-2754"></span></p>
<h3>Maildir</h3>
<p>Avec Maildir, chaque mail est <b>un</b> fichier, et chaque dossier de la boîte mail, un répertoire. Attention, c&#8217;est un peu plus compliqué que ça. Les mails ne sont pas directement enregistrés dans <b>boîte/mail</b> :</p>
<ul>
<li>Le <a href="http://fr.wikipedia.org/wiki/Mail_Delivery_Agent">MDA</a> enregistre le mail dans <b>boîte/tmp/unique</b> (&#8220;unique&#8221; est un nom de fichier unique généré a partir de données pseudo-aléatoires)</li>
<li>Une fois que le mail est écrit, le MDA le déplace dans <b>boîte/new/unique</b></li>
<li>Le <a href="http://fr.wikipedia.org/wiki/Mail_User_Agent">MUA</a> le déplace dans <b>boîte/cur/unique</b> une fois qu&#8217;il voit qu&#8217;un nouveau message est arrivé dans <b>boîte/new/</b></li>
</ul>
<p><b>Pourquoi ? </b>Ce comportement est utilisé pour éviter que le MUA voit un mail incomplet (car le MDA est encore en train de l&#8217;écrire), ce qui peut arriver si la machine est surchargée, si le Maildir est sur un serveur distant (NFS,FTP), voire même si le mail est gigantesque.</p>
<h3>Maildir et procmail</h3>
<p>Le but de cet article n&#8217;est pas d&#8217;expliquer comment configurer un MDA pour qu&#8217;il enregistre les mails en Maildir,  mais malgré tout je fais une petite encartade pour les gens qui utilisent procmail. Le code suivant dans /etc/procmailrc permet de dire à procmail de mettre <b>par défaut</b> (cela peut donc être supplanté par une directive contraire dans le ~/.procmailrc) :</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">DEFAULT=$HOME/Maildir/</div></div>
<p>Aussi, si vous n&#8217;utilisez pas encore procmail je vous conseille d&#8217;y migrer rapidement :</p>
<ul>
<li>Plus besoin de toucher à la configuration du MTA pour changer les méthodes de livraison des mails</li>
<li>Les utilisateurs peuvent écrire leurs propres règles pour leurs boîtes mails (pour avoir des boîtes séparées pour certains mails, par exemple)</li>
<li>Si vous changez de MTA vous pouvez toujours garder la même configuration, à condition de dire à votre MTA d&#8217;utiliser procmail</li>
</ul>
<h3>Configuration de mutt</h3>
<p>mutt gère très bien les Maildirs, mais il faut le configurer. Dans le .muttrc, rajoutez :</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"># pour dire à mutt de que mbox est un Maildir<br />
set mbox_type=Maildir <br />
# pour dire à mutt que les chemins relatifs (avec +) sont dans &quot;~/Maildir/&quot;<br />
set folder=&quot;~/Maildir/&quot; <br />
# pour dire à mutt que les mails arrivent dans Maildir/<br />
set spoolfile=&quot;~/Maildir/&quot; <br />
# les mails archivés (pas nouveau) seront envoyés dans +Mailbox <br />
# (+ est remplacé par la variable folder). <br />
set mbox=&quot;+Mailbox&quot;<br />
<br />
# remplacez par votre propre choix (ce n'est pas un tutorial de la configuration de mutt)<br />
# on indique à mutt d'envoyer les mails de ~/Maildir/ dans la boîte indiquée par la variable &quot;mbox&quot;<br />
set move=&quot;ask-yes&quot;<br />
<br />
# ce code montre la puissance de mutt (inclure des scripts shell dans sa configuration)<br />
# ouvrir tous les dossiers qu'il trouve dans ~/Maildir/<br />
mailboxes ! + `\<br />
for file in ~/Maildir/.*; do \<br />
&nbsp; box=$(basename &quot;$file&quot;); \<br />
&nbsp; if [ ! &quot;$box&quot; = '.' -a ! &quot;$box&quot; = '..' -a ! &quot;$box&quot; = '.customflags' \<br />
&nbsp; &nbsp; &nbsp; -a ! &quot;$box&quot; = '.subscriptions' ]; then \<br />
&nbsp; &nbsp; echo -n &quot;\&quot;+$box\&quot; &quot;; \<br />
&nbsp; fi; \<br />
done`</div></div>
<p>On note qu&#8217;il faut créer les boîtes mails dans ~/Maildir/, ainsi que le Maildir en lui-même (même si procmail peut le créer tout seul, et que si vous avez converti vos mbox il existe déjà). On va créer la boîtes &#8220;Mailbox&#8221; (utilisé par mutt avec <i>set mbox=&#8221;+Mailbox&#8221;</i>).</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 # on se place dans $HOME<br />
mkdir Maildir # on crée Maildir (ça sera peut-être déjà fait)<br />
cd Maildir<br />
mkdir cur new tmp # on crée une arborescence Maildir<br />
mkdir .Mailbox # on crée une nouvelle boite<br />
cd .Mailbox<br />
mkdir cur new tmp</div></div>
<p>On note que :</p>
<ul>
<li>La boîte principale, ou les mails entrants sont enregistrés par le MDA, est à la racine du Maildir</li>
<li>Les sous-dossiers de la boîte, <b>commencent tous par un .</b></li>
</ul>
<p>Vous pouvez maintenant démarrer mutt, et exploiter votre mbox (pour naviguer dans les boîtes, utilisez &#8220;y&#8221;)
</p>
<h3>Migrer des boîtes mbox en Maildir</h3>
<p>Pour migrer les mbox en Maildir, le script <a href="http://perfectmaildir.home-dn.net/">perfect_maildir.pl</a> est parfait, et son usage est 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">./perfect_maildir.pl path_to_Maildir/ &lt; mbox</div></div>
</p>
<h3>pam_mail.so et You have new mail</h3>
<p>Vous avez peut-être déjà remarqué que quand vous vous ouvrez un shell, vous avez un beau message &#8220;You have new mail&#8221; qui indique de nouveaux mail dans /var/mail/$USER. Cet avertissement est geré par pam_mail.so, un module de PAM qui permet de faire ça. Si on utilise Maildir il est intéressant de dire à pam_mail.so d&#8217;aller vérifier les nouveaux mails dans le Maildir. Cette configuration se fait dans <b>/etc/pam.d/</b> sous Debian et Gentoo. Tout d&#8217;abord éditer le fichier <b>login</b>, et trouver cette ligne :</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">session &nbsp; &nbsp;optional &nbsp; pam_mail.so standard</div></div>
<p>Remplacer par :</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">session optional pam_mail.so standard dir=~/Maildir</div></div>
<p>Je recommande d&#8217;effectuer aussi la manipulation pour le fichier &#8220;ssh&#8221;.</p>
<p>Normalement PAM devra modifier la variable d&#8217;environnement MAIL à Maildir/, si par hasard ce comportement ne marche pas (en fonction de la configuration de PAM) il y a toujours moyen d&#8217;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">MAIL=Maildir/</div></div>
<p>dans /etc/environment.</p>
<h3>Faire fonctionner la commande &#8220;mail&#8221;</h3>
<p>La commande mail est le moyen le plus simple de lire ses mails sous unix. Vous constaterez probablement que votre commande mail ne marche plus (même avec MAIL=Maildir/), car elle ne supporte pas Maildir. Mais il y a plusieurs versions de cette commande, la plus répandue étant celle de bsd (bsd-mailx avec Debian). Je vous conseille d&#8217;installer <a href="http://heirloom.sourceforge.net/mailx.html">une autre version</a>, appellée &#8220;heirloom-mailx&#8221; (sous Debian), voire &#8220;nail&#8221;, qui supporte très bien les Maildir.<br />
<img src="http://pistaches.net/~pistache/stuff/maildir.png"/></p>
<h3>Liens relatifs</h3>
<ul>
<li><a href="http://wiki.dovecot.org/MailLocation/Maildir">Configurer Maildir et Dovecot</a></li>
<li><a href="http://linux.die.net/man/8/pam_mail">man pam_mail</a></li>
<li><a href="http://cr.yp.to/proto/maildir.html">la première spécification de Maildir</a> (a changé depuis)</li>
</ul>
<p>Ironiquement j&#8217;ai trouvé beaucoup de mes renseignements sur <a href="http://bugs.debian.org/">bugs.debian.org</a> :</p>
<ul>
<li><a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=421010">libpam-modules: pam_mail doesn&#8217;t set MAIL enviroment variable when .hushlogin exists.</a></li>
<li><a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=109279">login.defs: QMAIL_DIR problems</a></li>
</ul>


<p><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/04/09/filtrer-ses-mails-un-cauchemard/' rel='bookmark' title='Permanent Link: Filtrer ses mails ! Un cauchemard !'>Filtrer ses mails ! Un cauchemard !</a></li>
<li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
<li><a href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' rel='bookmark' title='Permanent Link: EeeGW : Créer soi-même une passerelle réseau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/04/09/maildir-mbox-la-migration/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>L&#8217;email : un vilain petit cafardeur !</title>
		<link>http://geekfault.org/2010/03/13/lemail-un-vilain-petit-cafardeur/</link>
		<comments>http://geekfault.org/2010/03/13/lemail-un-vilain-petit-cafardeur/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 18:49:26 +0000</pubDate>
		<dc:creator>ckg</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[mta]]></category>
		<category><![CDATA[mua]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[thunderbird]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=2436</guid>
		<description><![CDATA[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.


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' rel='bookmark' title='Permanent Link: EeeGW : Créer soi-même une passerelle réseau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
<li><a href='http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/' rel='bookmark' title='Permanent Link: nginx et python &#8211; le perfect setup'>nginx et python &#8211; le perfect setup</a></li>
<li><a href='http://geekfault.org/2010/04/09/maildir-mbox-la-migration/' rel='bookmark' title='Permanent Link: Maildir mbox &#8211; La migration'>Maildir mbox &#8211; La migration</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><!--pagetitle:Introduction et lecture des headers d'un email--><br />
<a href="http://geekfault.org/wp-content/uploads/2010/03/geekfault-art01.png" title="geekfault-art01" rel="lightbox.2436"><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, <abbr title="Domain Name Server">dns</abbr> interne, chaîne de <abbr title="Mail Transfert Agent">mta</abbr>&#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 href="http://tools.ietf.org/html/rfc5321">http://tools.ietf.org/html/rfc5321</a></li>
</ul>
<h3></h3>
<h1>Cas concret</h1>
<p></br><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: &quot;Monsieur CORRESPONDANT&quot; &lt;monsieur@correspondant.fr&gt;<br />
Sender: &quot;Monsieur CORRESPONDANT&quot; &lt;monsieur@correspondant.fr&gt;<br />
To: &quot;Monsieur DESTINATAIRE&quot; &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 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 <abbr title="Network Time Protocol">ntp</abbr>. 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><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' rel='bookmark' title='Permanent Link: EeeGW : Créer soi-même une passerelle réseau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
<li><a href='http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/' rel='bookmark' title='Permanent Link: nginx et python &#8211; le perfect setup'>nginx et python &#8211; le perfect setup</a></li>
<li><a href='http://geekfault.org/2010/04/09/maildir-mbox-la-migration/' rel='bookmark' title='Permanent Link: Maildir mbox &#8211; La migration'>Maildir mbox &#8211; La migration</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/03/13/lemail-un-vilain-petit-cafardeur/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx et python &#8211; le perfect setup</title>
		<link>http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/</link>
		<comments>http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 11:47:32 +0000</pubDate>
		<dc:creator>pistache</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[gunicorn]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wsgi]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=2272</guid>
		<description><![CDATA[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 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. [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/04/09/maildir-mbox-la-migration/' rel='bookmark' title='Permanent Link: Maildir mbox &#8211; La migration'>Maildir mbox &#8211; La migration</a></li>
<li><a href='http://geekfault.org/2010/04/09/filtrer-ses-mails-un-cauchemard/' rel='bookmark' title='Permanent Link: Filtrer ses mails ! Un cauchemard !'>Filtrer ses mails ! Un cauchemard !</a></li>
<li><a href='http://geekfault.org/2009/05/15/ssh-sans-mot-de-passe/' rel='bookmark' title='Permanent Link: SSH sans mot de passe'>SSH sans mot de passe</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/nginx_logo/" rel="attachment wp-att-2406"><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 title="Django" href="http://djangoproject.com/"><strong>Django</strong></a><strong>, </strong><a title="Pylons" href="http://pylonshq.com/"><strong>Pylons</strong></a><strong> et </strong><a title="webpy" 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 title="nginx" 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 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 title="Flup" 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 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 title="WSGI" 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 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 href="http://blog.dscpl.com.au/2009/05/blocking-requests-and-nginx-version-of.html">ici</a> et <a 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élisme" src="http://pistaches.net/~pistache/stuff/patch1.png" alt="Comparaison des performances entre uwsgi et gunicorn en fonction du niveau de parallé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 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 &quot;Hello, world.&quot;<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 &quot;Hello, world.&quot;<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 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 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=&quot;font-weight: normal;&quot;&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 href="http://wsgi.org">wsgi.org</a></p>
<p><a href="http://gunicorn.org/">gunicorn.org/</a></p>
<p><a href="http://projects.unbit.it/uwsgi/">projects.unbit.it/uwsgi/</a></p>
<p><a href="irc://irc.freenode.org/#gunicorn">irc.freenode.org/#gunicorn</a></p>
<p><a href="http://nginx.org/">nginx.org/</a></p>
<p><a href="http://djangoadvent.com/">djangoadvent.com/</a></p>
<p><a href="http://www.django-fr.org/">www.django-fr.org/</a></p>
<p><a href="http://www.djangoproject.com/">www.djangoproject.com/</a></p>
<p><a 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 href='http://geekfault.org/2010/04/09/maildir-mbox-la-migration/' rel='bookmark' title='Permanent Link: Maildir mbox &#8211; La migration'>Maildir mbox &#8211; La migration</a></li>
<li><a href='http://geekfault.org/2010/04/09/filtrer-ses-mails-un-cauchemard/' rel='bookmark' title='Permanent Link: Filtrer ses mails ! Un cauchemard !'>Filtrer ses mails ! Un cauchemard !</a></li>
<li><a href='http://geekfault.org/2009/05/15/ssh-sans-mot-de-passe/' rel='bookmark' title='Permanent Link: SSH sans mot de passe'>SSH sans mot de passe</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Chromium: l&#8217;adolescence de l&#8217;enfant de google.</title>
		<link>http://geekfault.org/2010/02/27/chromium-ladolescence-de-lenfant-de-google/</link>
		<comments>http://geekfault.org/2010/02/27/chromium-ladolescence-de-lenfant-de-google/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 22:39:55 +0000</pubDate>
		<dc:creator>koolfy</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[comparatif]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[chromium]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[navigateur]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=1934</guid>
		<description><![CDATA[


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/' rel='bookmark' title='Permanent Link: Chromium, le Google Chrome sous Linux sans émulation'>Chromium, le Google Chrome sous Linux sans émulation</a></li>
<li><a href='http://geekfault.org/2009/08/13/maturation-de-chromium/' rel='bookmark' title='Permanent Link: La maturation de Chromium'>La maturation de Chromium</a></li>
<li><a href='http://geekfault.org/2009/08/17/exit-google/' rel='bookmark' title='Permanent Link: La recherche web… sans Google!'>La recherche web… sans Google!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><!--pagetitle:Un peu d'histoire subjective.--><a href="http://geekfault.org/wp-content/uploads/2010/02/Chromium_Logo.png" title="Chromium_Logo" rel="lightbox.1934"><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 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 href="http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/"><strong>naissance sur Linux</strong></a>, le <strong><a 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; -moz-border-radius: 6px; 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 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 href="http://geekfault.org/wp-content/uploads/2010/02/4browsers.jpg" title="4browsers" rel="lightbox.1934"><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 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 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 href="http://geekfault.org/wp-content/uploads/2010/02/chrome.jpg" title="chrome" rel="lightbox.1934"><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 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><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/' rel='bookmark' title='Permanent Link: Chromium, le Google Chrome sous Linux sans émulation'>Chromium, le Google Chrome sous Linux sans émulation</a></li>
<li><a href='http://geekfault.org/2009/08/13/maturation-de-chromium/' rel='bookmark' title='Permanent Link: La maturation de Chromium'>La maturation de Chromium</a></li>
<li><a href='http://geekfault.org/2009/08/17/exit-google/' rel='bookmark' title='Permanent Link: La recherche web… sans Google!'>La recherche web… sans Google!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/02/27/chromium-ladolescence-de-lenfant-de-google/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</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>
		<comments>http://geekfault.org/2010/02/24/denyhosts-pour-empecher-le-bruteforce-sur-ssh/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 10:31:35 +0000</pubDate>
		<dc:creator>Lord</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=2206</guid>
		<description><![CDATA[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 [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/05/15/ssh-sans-mot-de-passe/' rel='bookmark' title='Permanent Link: SSH sans mot de passe'>SSH sans mot de passe</a></li>
<li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
<li><a href='http://geekfault.org/2010/02/17/ipv6-pour-les-nulswgeeks/' rel='bookmark' title='Permanent Link: IPv6 pour les nuls^Wgeeks'>IPv6 pour les nuls^Wgeeks</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-2207" 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 href="http://www.denyhosts.sourceforge.net">Site officiel</a><br /> <a 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 href='http://geekfault.org/2009/05/15/ssh-sans-mot-de-passe/' rel='bookmark' title='Permanent Link: SSH sans mot de passe'>SSH sans mot de passe</a></li>
<li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
<li><a href='http://geekfault.org/2010/02/17/ipv6-pour-les-nulswgeeks/' rel='bookmark' title='Permanent Link: IPv6 pour les nuls^Wgeeks'>IPv6 pour les nuls^Wgeeks</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/02/24/denyhosts-pour-empecher-le-bruteforce-sur-ssh/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Libérez votre esprit avec Freemind</title>
		<link>http://geekfault.org/2010/02/21/liberez-votre-esprit-avec-freemind/</link>
		<comments>http://geekfault.org/2010/02/21/liberez-votre-esprit-avec-freemind/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 02:32:55 +0000</pubDate>
		<dc:creator>koolfy</dc:creator>
				<category><![CDATA[Geeklife]]></category>
		<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[Organisation]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[projets]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=2139</guid>
		<description><![CDATA[Ça semble évident : dans le monde de l&#8217;OpenSource, 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. 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 [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
<li><a href='http://geekfault.org/2009/03/21/faire-planter-le-weechat-de-votre-correspondant/' rel='bookmark' title='Permanent Link: Faire planter le Weechat de votre correspondant'>Faire planter le Weechat de votre correspondant</a></li>
<li><a href='http://geekfault.org/2009/03/21/minimeter-votre-quota-de-telechargement-en-permanence-sous-les-yeux/' rel='bookmark' title='Permanent Link: Minimeter : votre quota de téléchargement en permanence sous les yeux'>Minimeter : votre quota de téléchargement en permanence sous les yeux</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><!--pagetitle:Un projet sain, dans un esprit sain.--><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 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 href="http://www.google.com/buzz">Google Buzz</a>, <a href="http://www.facebook.com">Facebook</a>, <a href="http://identi.ca">Identi.ca</a> et <a 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 href="http://geekfault.org/wp-content/uploads/2010/02/SocialNetwork_Wrong.png" title="SocialNetwork_Wrong" rel="lightbox.2139"><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>
<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 href="http://geekfault.org/wp-content/uploads/2010/02/SocialNetwork.png" title="SocialNetwork" rel="lightbox.2139"><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 :</p>
<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><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
<li><a href='http://geekfault.org/2009/03/21/faire-planter-le-weechat-de-votre-correspondant/' rel='bookmark' title='Permanent Link: Faire planter le Weechat de votre correspondant'>Faire planter le Weechat de votre correspondant</a></li>
<li><a href='http://geekfault.org/2009/03/21/minimeter-votre-quota-de-telechargement-en-permanence-sous-les-yeux/' rel='bookmark' title='Permanent Link: Minimeter : votre quota de téléchargement en permanence sous les yeux'>Minimeter : votre quota de téléchargement en permanence sous les yeux</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/02/21/liberez-votre-esprit-avec-freemind/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Monitoring &#8211; Munin</title>
		<link>http://geekfault.org/2010/02/20/monitoring-munin/</link>
		<comments>http://geekfault.org/2010/02/20/monitoring-munin/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 17:40:17 +0000</pubDate>
		<dc:creator>bragon</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[munin]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[serveur]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=1893</guid>
		<description><![CDATA[Je vais ici vous parler de Munin. C&#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&#8217;en suis pleinement convaincu, je vais vous le présenter ici. L&#8217;intégration de plugins supplémentaire afin de grapher des choses non prévu à la base est enfantine. [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/' rel='bookmark' title='Permanent Link: nginx et python &#8211; le perfect setup'>nginx et python &#8211; le perfect setup</a></li>
<li><a href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' rel='bookmark' title='Permanent Link: EeeGW : Créer soi-même une passerelle réseau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
<li><a href='http://geekfault.org/2010/04/09/filtrer-ses-mails-un-cauchemard/' rel='bookmark' title='Permanent Link: Filtrer ses mails ! Un cauchemard !'>Filtrer ses mails ! Un cauchemard !</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geekfault.org/2010/02/20/monitoring-munin/munin_logo/" rel="attachment wp-att-2099"><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 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 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\.PRIVE\.DU-SERVEUR-QUI-GRAPH\.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 \.bak$<br />
ignore_file %$<br />
ignore_file \.dpkg-(tmp|new|old|dist)$<br />
ignore_file \.rpm(save|new)$<br />
<br />
allow ^10\.0\.69\.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 href="http://geekfault.org/2010/02/20/monitoring-munin/acpi-month/" rel="attachment wp-att-2102"><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 href="http://geekfault.org/2010/02/20/monitoring-munin/openvpn_clients-week/" rel="attachment wp-att-2103"><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 href="http://geekfault.org/2010/02/20/monitoring-munin/sdf_mysql_queries-day/" rel="attachment wp-att-2104"><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 href="http://geekfault.org/2010/02/20/monitoring-munin/cps_0-week/" rel="attachment wp-att-2105"><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 href="http://geekfault.org/2010/02/20/monitoring-munin/nfsd-week/" rel="attachment wp-att-2108"><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 href="http://geekfault.org/2010/02/20/monitoring-munin/if_eth0-day/" rel="attachment wp-att-2109"><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 href='http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/' rel='bookmark' title='Permanent Link: nginx et python &#8211; le perfect setup'>nginx et python &#8211; le perfect setup</a></li>
<li><a href='http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/' rel='bookmark' title='Permanent Link: EeeGW : Créer soi-même une passerelle réseau'>EeeGW : Créer soi-même une passerelle réseau</a></li>
<li><a href='http://geekfault.org/2010/04/09/filtrer-ses-mails-un-cauchemard/' rel='bookmark' title='Permanent Link: Filtrer ses mails ! Un cauchemard !'>Filtrer ses mails ! Un cauchemard !</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2010/02/20/monitoring-munin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</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>
		<comments>http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 11:44:59 +0000</pubDate>
		<dc:creator>bragon</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[Matériel]]></category>
		<category><![CDATA[eeegw]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[how]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[nat]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[routeur]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=1711</guid>
		<description><![CDATA[Le routeur-passerelle (gateway, en anglais) est le lien entre votre réseau local et l&#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&#8217;un EeePC, qui ne me [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/02/20/eeegw-ze-retour-du-detour-proxycache/' rel='bookmark' title='Permanent Link: EeeGW &#8211; ZE retour du détour ! &#8211; Proxycache.'>EeeGW &#8211; ZE retour du détour ! &#8211; Proxycache.</a></li>
<li><a href='http://geekfault.org/2010/05/24/eeegw-part-iii-quality-of-service-aka-qos/' rel='bookmark' title='Permanent Link: Eeegw &#8211; part III &#8211; Quality Of Service aka QOS'>Eeegw &#8211; part III &#8211; Quality Of Service aka QOS</a></li>
<li><a href='http://geekfault.org/2009/05/20/firmware-linksys-wag200g/' rel='bookmark' title='Permanent Link: Firmware modifié pour Linksys WAG200G'>Firmware modifié pour Linksys WAG200G</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><!--pagetitle:Introduction--><a href="http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/img00263/" rel="attachment wp-att-1864"><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 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><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/02/20/eeegw-ze-retour-du-detour-proxycache/' rel='bookmark' title='Permanent Link: EeeGW &#8211; ZE retour du détour ! &#8211; Proxycache.'>EeeGW &#8211; ZE retour du détour ! &#8211; Proxycache.</a></li>
<li><a href='http://geekfault.org/2010/05/24/eeegw-part-iii-quality-of-service-aka-qos/' rel='bookmark' title='Permanent Link: Eeegw &#8211; part III &#8211; Quality Of Service aka QOS'>Eeegw &#8211; part III &#8211; Quality Of Service aka QOS</a></li>
<li><a href='http://geekfault.org/2009/05/20/firmware-linksys-wag200g/' rel='bookmark' title='Permanent Link: Firmware modifié pour Linksys WAG200G'>Firmware modifié pour Linksys WAG200G</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>IP over DNS : Contourner les limitations des hotspots</title>
		<link>http://geekfault.org/2009/09/26/ip-over-dns/</link>
		<comments>http://geekfault.org/2009/09/26/ip-over-dns/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 14:50:24 +0000</pubDate>
		<dc:creator>Tito</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[hotspot]]></category>
		<category><![CDATA[nstx]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=1517</guid>
		<description><![CDATA[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 [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/05/14/tunnel-ssh/' rel='bookmark' title='Permanent Link: Le tunnel SSH facile'>Le tunnel SSH facile</a></li>
<li><a href='http://geekfault.org/2009/09/24/allocation-dadresses-ipv4-publiques-over-vpn/' rel='bookmark' title='Permanent Link: Allocation d&#8217;adresses IPv4 publiques over VPN'>Allocation d&#8217;adresses IPv4 publiques over VPN</a></li>
<li><a href='http://geekfault.org/2009/05/27/internet-via-iphone/' rel='bookmark' title='Permanent Link: Internet sur votre laptop via un iPhone'>Internet sur votre laptop via un iPhone</a></li>
</ol>]]></description>
			<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; -moz-border-radius: 6px; 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 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 href='http://geekfault.org/2009/05/14/tunnel-ssh/' rel='bookmark' title='Permanent Link: Le tunnel SSH facile'>Le tunnel SSH facile</a></li>
<li><a href='http://geekfault.org/2009/09/24/allocation-dadresses-ipv4-publiques-over-vpn/' rel='bookmark' title='Permanent Link: Allocation d&#8217;adresses IPv4 publiques over VPN'>Allocation d&#8217;adresses IPv4 publiques over VPN</a></li>
<li><a href='http://geekfault.org/2009/05/27/internet-via-iphone/' rel='bookmark' title='Permanent Link: Internet sur votre laptop via un iPhone'>Internet sur votre laptop via un iPhone</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2009/09/26/ip-over-dns/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Plowshare : MegaUpload, RapidShare et autres en CLI</title>
		<link>http://geekfault.org/2009/08/26/plowshare-megaupload-rapidshare-en-cli/</link>
		<comments>http://geekfault.org/2009/08/26/plowshare-megaupload-rapidshare-en-cli/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 12:32:45 +0000</pubDate>
		<dc:creator>Tito</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[megaupload]]></category>
		<category><![CDATA[rapidshare]]></category>
		<category><![CDATA[warez]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=1427</guid>
		<description><![CDATA[Récemment j&#8217;ai découvert un petit script en ligne de commande qui pemet de télécharger sur MegaUpload, RapidShare, 2Shared, Badongo, Mediafire, 4Shared et Zshare ! Ce script sait en plus utiliser les comptes Premium sur MegaUpload (mon préféré) ainsi qu&#8217;uploader sur MegaUpload, RapidShare et 2Shared. Si vous n&#8217;avez pas de compte premium, il est même capable [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/04/12/les-autres-nouveautes-de-html-5/' rel='bookmark' title='Permanent Link: Les autres nouveautés de l&#8217;HTML 5'>Les autres nouveautés de l&#8217;HTML 5</a></li>
<li><a href='http://geekfault.org/2009/09/14/telecharger-les-guignols-de-linfo-v2/' rel='bookmark' title='Permanent Link: Télécharger les Guignols de l&#8217;Info v2'>Télécharger les Guignols de l&#8217;Info v2</a></li>
<li><a href='http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/' rel='bookmark' title='Permanent Link: nginx et python &#8211; le perfect setup'>nginx et python &#8211; le perfect setup</a></li>
</ol>]]></description>
			<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/vive-wget.jpg" alt="C&#039;est wget le meilleur!" title="C&#039;est wget le meilleur!" width="310" height="259" class="alignleft size-full wp-image-1446" />Récemment j&#8217;ai découvert un petit <strong>script en ligne de commande</strong> qui pemet de télécharger sur <strong>MegaUpload, RapidShare, 2Shared, Badongo, Mediafire, 4Shared et Zshare</strong> !</p>
<p>Ce script sait en plus utiliser les comptes Premium sur MegaUpload (mon préféré) ainsi qu&#8217;<strong>uploader</strong> sur MegaUpload, RapidShare et 2Shared. Si vous n&#8217;avez pas de compte premium, il est même capable de <strong>déchiffrer les captcha</strong>!<br />
<span id="more-1427"></span></p>
<h3>Installation</h3>
<p>Assurez-vous d&#8217;abord d&#8217;avoir toutes les dépendances nécessaires : <span style="font-family: monospace;">curl recode imagemagick tesseract spidermonkey aview</span>.</p>
<p>Ensuite, <a href="http://code.google.com/p/plowshare/downloads/list">téléchargez</a> et décompressez la dernière version de plowdown. En root, déplacez-vous dans son répertoire et exécutez</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">./setup.sh install</div></div>
<p>Vous pouvez désormais utiliser les commandes <span style="font-family: monospace; font-weight: bold;">plowdown</span> pour télécharger et <span style="font-family: monospace; font-weight: bold;">plowup</span> pour uploader !</p>
<h3>Quelques exemples de commandes</h3>
<ul>
<li>Simplement télécharger un fichier sur un des fournisseurs compatibles :</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">plowdown http://...</div></div>
</li>
<li>Télécharger avec un compte utilisateur (MegaUpload uniquement) :
<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">plowdown -a user:password http://www.megaupload.com/?d=XXXXXXXX</div></div>
</li>
<li>Télécharger tous liens répertoriés dans fichier.txt, un lien par ligne :
<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">plowdown fichier.txt</div></div>
</li>
<li>Récupérer le lien de download direct :
<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">plowdown --link-only http://...</div></div>
</li>
<li>Si vous préférez wget :
<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">plowdown --link-only http://... | xargs -rt wget</div></div>
</li>
<li>Uploader un fichier chez MegaUpload :
<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">plowup -a user:password -d &quot;Description&quot; film.avi megaupload</div></div>
</li>
<h3>Lecture des captchas</h3>
<p><a href="http://geekfault.org/wp-content/uploads/2009/08/Captcha-MegaUpload.png" title="Le captcha de MegaUpload décrypté en un seul essai" rel="lightbox.1427"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2009/08/Captcha-MegaUpload-300x175.png" alt="Le captcha de MegaUpload décrypté en un seul essai" title="Le captcha de MegaUpload décrypté en un seul essai" width="300" height="175" class="alignleft size-medium wp-image-1429" /></a>Grâce à tesseract ce script arrive à <strong>déchiffer les captchas</strong> parfois présents sur ces services de téléchargement. Je n&#8217;ai essayé que celui de MegaUpload et, même s&#8217;il lui faut souvent plusieurs essais, il y arrive quand même à tous les coups.</p>
<p>À noter que sous Gentoo j&#8217;ai dû télécharger et <a href="http://code.google.com/p/tesseract-ocr/wiki/ReadMe">installer manuellement</a> tesseract <strong>plus les fichiers data</strong> (absents de l&#8217;ebuild officiel) pour qu&#8217;il arrive à lire les captcha.</p>
<h3>Un script bien pratique!</h3>
<p>Ce script est très utile si vous possédez un <strong>serveur dédié</strong>. Vous pourrez ainsi exploiter la puissance (j&#8217;ai déjà pompé à plus de 9Mo/sec <img src='http://geekfault.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) et stabilité de sa connexion. Ensuite vous pouvez récupérer le fichier sur votre propre ordinateur avec le support de la reprise d&#8217;un téléchargement interrompu!</p>
<p>Le but premier de ce script n&#8217;était sans doute pas le warez mais il faut avouer qu&#8217;il s&#8217;y prête bien <img src='http://geekfault.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Il est d&#8217;ailleurs très pratique pour partager un compte Premium (uniquement MegaUpload dans sa version actuelle) derrière une seule et même IP.</p>


<p><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/04/12/les-autres-nouveautes-de-html-5/' rel='bookmark' title='Permanent Link: Les autres nouveautés de l&#8217;HTML 5'>Les autres nouveautés de l&#8217;HTML 5</a></li>
<li><a href='http://geekfault.org/2009/09/14/telecharger-les-guignols-de-linfo-v2/' rel='bookmark' title='Permanent Link: Télécharger les Guignols de l&#8217;Info v2'>Télécharger les Guignols de l&#8217;Info v2</a></li>
<li><a href='http://geekfault.org/2010/03/01/nginx-et-python-le-perfect-setup/' rel='bookmark' title='Permanent Link: nginx et python &#8211; le perfect setup'>nginx et python &#8211; le perfect setup</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2009/08/26/plowshare-megaupload-rapidshare-en-cli/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Echinus, un WM, simplement.</title>
		<link>http://geekfault.org/2009/08/19/echinus-wm/</link>
		<comments>http://geekfault.org/2009/08/19/echinus-wm/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 16:19:26 +0000</pubDate>
		<dc:creator>roidelapluie</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[WM]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=1253</guid>
		<description><![CDATA[Sur le marché des WM, il est parfois compliqué de s&#8217;y retrouver, et il arrive que certains d&#8217;entre eux restent injustement cachés. Le WM dont je vais vous parler aujourd&#8217;hui s&#8217;appelle Echinus, et je l&#8217;ai découvert tout à fait par hasard, suite à une faute de frappe. Au premier test, je me suis demandé si [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/04/19/mpd-le-demon-des-media-players/' rel='bookmark' title='Permanent Link: MPD : Le démon des media players.'>MPD : Le démon des media players.</a></li>
<li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
<li><a href='http://geekfault.org/2009/08/21/wave-3-interface-google/' rel='bookmark' title='Permanent Link: Google Wave #3 : L&#8217;interface de Google Wave Sandbox'>Google Wave #3 : L&#8217;interface de Google Wave Sandbox</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><!--pagetitle:Les Window Managers--><a href="http://geekfault.org/wp-content/uploads/2009/08/hérisson.jpg"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2009/08/hérisson-300x225.jpg" alt="hérisson" title="hérisson" width="225" height="175" class="alignleft size-medium wp-image-1325" /></a>Sur le marché des <abbr title="Window Manager">WM</abbr>, il est parfois compliqué de s&#8217;y retrouver, et il arrive que certains d&#8217;entre eux restent injustement cachés. Le <abbr title="Window Manager">WM</abbr> dont je vais vous parler aujourd&#8217;hui s&#8217;appelle <strong>Echinus</strong>, et je l&#8217;ai découvert tout à fait par hasard, suite à une faute de frappe.</p>
<p>Au premier test, je me suis demandé si le <abbr title="Window Manager">WM</abbr> s&#8217;était bien lancé. Et pour cause: rien n&#8217;apparaissait à l&#8217;écran. Un clic droit sur le «bureau» m&#8217;a cependant affiché xterm, me permettant alors d&#8217;utiliser mon pc et de lire documentation et site web du projet.</p>
<p>De fil en aiguille, et avec mes quelques personnalisations détaillées plus loin, je suis devenu fan de ce petit <abbr title="Window Manager"><strong>WM</strong></abbr> qui n&#8217;attire pas autant qu&#8217;il devrait la lumière des projeteurs.</p>
<p>Au fil de cet article, vous (re-)découvrirez ce qu&#8217;est un <abbr title="Window Manager">WM</abbr> (gestionnaire de fenêtre, en français), avant de vous pencher plus précisément sur Echinus.<br />
<span id="more-1253"></span></p>
<h3>Un <abbr title="Window Manager">WM</abbr>, qu&#8217;est-ce que c&#8217;est?</h3>
<p>Les <abbr title="Window Manager">WM</abbr>, gestionnaires de fenêtres, sont ces logiciels qui sont chargés de l&#8217;affichage et du placement des fenêtres, nous informe <a href="http://fr.wikipedia.org/wiki/Window_manager"><strong>Wikipédia</strong></a>.</p>
<p>Cette définition devrait vous éclairer sur leur fonction, mais surtout sur leur <strong>omniprésence</strong>. Pour la plupart des utilisateurs, dès qu&#8217;il y a des fenêtres, il y a un gestionnaire de fenêtres qui se cache derrière. C&#8217;est lui qui choisit où se place la fenêtre, la taille qu&#8217;elle a, si elle doit être maximisée, minimisée, si elle doit avoir une barre de titre, etc&#8230;</p>
<h4>Concrètement, que fait-il?</h4>
<p>Un <abbr title="Window Manager">WM</abbr> peut gérer les barres de titres, les bureaux virtuels, les fonds d&#8217;écran, les raccourcis claviers, le déplacement, le redimensionnement, l&#8217;icônification des fenêtres, les effets 3d, et bien d&#8217;autres choses.</p>
<h3>Des exemples de <abbr title="Window Manager">WM</abbr></h3>
<div id="attachment_1330" class="wp-caption alignright" style="width: 260px"><a href="http://geekfault.org/wp-content/uploads/2009/08/gnome.jpg" title="gnome" rel="lightbox.1253"><img src="http://geekfault.org/wp-content/uploads/2009/08/gnome-300x187.jpg" alt="Gnome n&#039;est en fait qu&#039;un «gestionnaire» pour Metacity" title="gnome" width="250" height="137" class="size-medium wp-image-1330" /></a><p class="wp-caption-text">Gnome n'est en fait qu'un «gestionnaire» pour Metacity</p></div>Les <abbr title="Window Manager">WM</abbr> les plus fréquents, intégrés à la plupart des grosses distributions, sont Metacity, Compiz-Fusion, Kwin, Openbox, Xfwm4.</p>
<p>Cependant, pas mal d&#8217;autres <abbr title="Window Manager">WM</abbr>, malgré qu&#8217;ils ne sont pas intégrés de base dans ces méga-distributions, disposent de leur public et d&#8217;une communauté plus ou moins active. Ces <abbr title="Window Manager">WM</abbr> ont traversé les âges. Je parle de fvwm2, Icewm, Fluxbox, awesome, <abbr title="Dynamic Window Manager">dwm</abbr> (dont nous reparleront), et bien d&#8217;autres encore.</p>
<p>Voyons maintenant comment classer ces différents <abbr title="Window Manager">WM</abbr>.</p>
<h3>Classification des <abbr title="Window Manager">WM</abbr></h3>
<p>Il est possible de classer les différents <abbr title="Window Manager">WM</abbr> selon plusieurs critères. Parmi ceux-ci, l&#8217;âge, la licence, le système d&#8217;exploitation, l&#8217;activité, la taille de la communauté et l&#8217;origine sont des critères certes intéressants, mais ils permettent de classifier n&#8217;importe quels logiciels.</p>
<p>Nous préfèrerons ici une classification propre aux <abbr title="Window Manager">WM</abbr>: d&#8217;une part, les <strong>Floating Window Manager</strong>, et d&#8217;autre part les <strong>Tiling Window Manager</strong>.</p>
<h4>La technique du Floating</h4>
<p><div id="attachment_1334" class="wp-caption alignright" style="width: 260px"><a href="http://geekfault.org/wp-content/uploads/2009/08/profont.png" title="profont" rel="lightbox.1253"><img src="http://geekfault.org/wp-content/uploads/2009/08/profont-300x187.png" alt="Echinus en mode Floating" title="profont" width="250" height="137" class="size-medium wp-image-1334" /></a><p class="wp-caption-text">Echinus en mode Floating</p></div>
<p>Dans un Floating Window Manager, une fenêtre est dite <em>flottante</em>. C&#8217;est à dire qu&#8217;elle se déplace où vous le voulez sur l&#8217;écran, elle prend la place qu&#8217;elle désire, et les fenêtres peuvent se superposer.</p>
<h4>La technique du Tiling</h4>
<p>Les Tiling Window Managers fonctionnent tout à fait différemment. Une nouvelle fenêtre créée changera la taille de toutes les autres fenêtres, afin que toutes les fenêtres soient visibles en même temps, et occupent tout l&#8217;espace disponible à l&#8217;écran.<br />
<div id="attachment_1342" class="wp-caption aligncenter" style="width: 590px"><a href="http://geekfault.org/wp-content/uploads/2009/08/tiling.png" title="tiling" rel="lightbox.1253"><img src="http://geekfault.org/wp-content/uploads/2009/08/tiling-580x362.png" alt="Mon Echinus en mode Tiling" title="tiling" width="580" height="362" class="size-large wp-image-1342" /></a><p class="wp-caption-text">Mon Echinus en mode Tiling</p></div><br />
À noter que la méthode du tiling n&#8217;est pas incompatible avec la notion de bureaux virtuels.</p>
<h4>En pratique: les WM mixtes</h4>
<p>La technique du tiling peut sembler la meilleure, mais n&#8217;est pas adaptée à de nombreux cas.</p>
<p>Par exemple, le logiciel Gimp, qui est constitué de plusieurs fenêtres, la messagerie instantannée, la bureautique, le visionnage de vidéos demandent des fenêtres flottantes, avec leur propre placement et leur propre taille.</p>
<p>Pour cela, la plupart des Tiling Window manager sont <strong>mixtes</strong>: ils permettent d&#8217;avoir certaines fenêtres toujours flottantes, et même certains bureaux virtuels où toutes les fenêtres seront flottantes. Il s&#8217;agit de l&#8217;immense majorité des gestionnaires de fenêtres en tiling.<br />
<div id="attachment_1344" class="wp-caption aligncenter" style="width: 590px"><a href="http://geekfault.org/wp-content/uploads/2009/08/echinusmix.png" title="echinusmix" rel="lightbox.1253"><img src="http://geekfault.org/wp-content/uploads/2009/08/echinusmix-580x362.png" alt="Echinus organise les terminaux du fond en Tiling, mais permet la superposition d&#039;une fenêtre en Floating par dessus" title="echinusmix" width="580" height="362" class="size-large wp-image-1344" /></a><p class="wp-caption-text">Echinus organise les terminaux du fond en Tiling, mais permet la superposition d'une fenêtre en Floating par dessus</p></div><br />
Approchons maintenant un de ces fameux gestionnaires de fenêtres mixte: <strong>Echinus</strong>.</p>


<p><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2009/04/19/mpd-le-demon-des-media-players/' rel='bookmark' title='Permanent Link: MPD : Le démon des media players.'>MPD : Le démon des media players.</a></li>
<li><a href='http://geekfault.org/2009/05/16/rsnapshot/' rel='bookmark' title='Permanent Link: Mise en place d&#8217;un système de backup avec Rsnapshot'>Mise en place d&#8217;un système de backup avec Rsnapshot</a></li>
<li><a href='http://geekfault.org/2009/08/21/wave-3-interface-google/' rel='bookmark' title='Permanent Link: Google Wave #3 : L&#8217;interface de Google Wave Sandbox'>Google Wave #3 : L&#8217;interface de Google Wave Sandbox</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2009/08/19/echinus-wm/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Faille critique dans tous les noyaux Linux</title>
		<link>http://geekfault.org/2009/08/14/faille-critique-dans-tous-les-noyaux-linux/</link>
		<comments>http://geekfault.org/2009/08/14/faille-critique-dans-tous-les-noyaux-linux/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 19:18:19 +0000</pubDate>
		<dc:creator>Tito</dc:creator>
				<category><![CDATA[Logiciel]]></category>
		<category><![CDATA[faille]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[sécurité]]></category>

		<guid isPermaLink="false">http://geekfault.org/?p=1001</guid>
		<description><![CDATA[Hier, Tavis Ormandy et Julien Tinnes (Google Security) ont dévoilé une faille qui affecte tous les kernels Linux 2.4 et 2.6 depuis 2001. C&#8217;est un bug de type NULL Pointer Deference qui permet au pirate d&#8217;exécuter n&#8217;importe quel code au niveau du kernel et donc d&#8217;acquérir les droits root. NULL Pointer Dans le noyau Linux, [...]


<h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/05/13/linux-laptop-ultimate-powersaving/' rel='bookmark' title='Permanent Link: Linux &#8211; Laptop &#8211; Ultimate Powersaving !'>Linux &#8211; Laptop &#8211; Ultimate Powersaving !</a></li>
<li><a href='http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/' rel='bookmark' title='Permanent Link: Chromium, le Google Chrome sous Linux sans émulation'>Chromium, le Google Chrome sous Linux sans émulation</a></li>
<li><a href='http://geekfault.org/2009/03/27/keymap-linux-sous-windows/' rel='bookmark' title='Permanent Link: Keymap Linux sous Windows'>Keymap Linux sous Windows</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://geekfault.org/wp-content/uploads/2009/08/Exploit-Wunderbar.png" title="Exploit Wunderbar" rel="lightbox.1001"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;' align="left"   src="http://geekfault.org/wp-content/uploads/2009/08/Exploit-Wunderbar-300x189.png" alt="Exploit Wunderbar" title="Exploit Wunderbar" width="300" height="189" class="alignleft size-medium wp-image-1002" /></a>Hier, Tavis Ormandy et Julien Tinnes (Google Security) <a href="http://blog.cr0.org/2009/08/linux-null-pointer-dereference-due-to.html">ont dévoilé</a> une faille qui affecte <strong>tous les kernels Linux 2.4 et 2.6 depuis 2001</strong>.</p>
<p>C&#8217;est un bug de type NULL Pointer Deference qui permet au pirate d&#8217;exécuter n&#8217;importe quel code au niveau du kernel et donc d&#8217;<strong>acquérir les droits root</strong>.<br />
<span id="more-1001"></span></p>
<h3>NULL Pointer</h3>
<p>Dans le noyau Linux, chaque <strong>socket de connexion</strong> a une structure d&#8217;opérations associée (<span style="font-family: monospace">proto_ops</span>) qui contient des pointeurs vers diverses opérations : accept, bind, shutdown, &#8230;</p>
<p>Si une des opérations n&#8217;est pas nécessaire à ce type de socket, le pointeur <em>devrait</em> tout de même être défini vers une fonction &#8220;inutile&#8221;. Mais évidemment tous les développeurs n&#8217;y pensent pas forcément et beaucoup de sockets laissent ces <strong>pointeurs non-initialisés</strong> (NULL).</p>
<p>Le problème, c&#8217;est que certaines fonctions du noyau Linux (<a href="http://lxr.linux.no/linux+v2.6.30.4/net/socket.c#L727"><span style="font-family: monospace">sock_sendpage</span></a>, par exemple) <strong>ne vérifient pas</strong> si ces pointeurs sont bien initialisés et <strong>exécutent le code</strong> &#8220;NULL&#8221;, c&#8217;est à dire un code à l&#8217;emplacement 0.</p>
<p>Un pirate n&#8217;a donc qu&#8217;à insérer son code dans l&#8217;emplacement 0 et faire en sorte que le kernel l&#8217;exécute. Puisque le kernel possède des droits absolus, il est très facile d&#8217;exploiter cette faille pour acquérir les droits de root (<strong>privilege escalation</strong>).</p>
<h3>Des exploits déjà disponibles</h3>
<p>Comme le précise Julien Tinnes, ce type de vulnérabilité est <strong>très facile à exploiter</strong> : « <em>ça ne nous a pris que quelques minutes pour adapter un ancien exploit</em> ». Et forcément il y en a déjà plusieurs qui circulent sur la toile.</p>
<p>Nous avons trouvé un exploit nommé <span style="font-family: monospace; font-weight: bold;"><a href="http://grsecurity.net/~spender/wunderbar_emporium.tgz">wunderbar_emporium</a></span>. Celui-ci exploite un bug dans pulseaudio et n&#8217;est donc pas dangereux pour la plupart des serveurs. <em>(NB aux petits script kiddies <img src='http://geekfault.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</em>  Comme vous pouvez le voir dans le screenshot ci-dessus il fonctionne plutôt pas mal!</p>
<p>Bien sûr des exploits existent pour des failles dans <a href="http://archives.neohapsis.com/archives/fulldisclosure/2009-08/0174.html">d&#8217;autres protocoles</a>, plus largement répandus que Pulseaudio. </p>
<h3>Mais un patch aussi disponible</h3>
<p><a href="http://geekfault.org/wp-content/uploads/2009/08/Diff-Correctif.png" title="Différentiel du correctif" rel="lightbox.1001"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;' align="right"   src="http://geekfault.org/wp-content/uploads/2009/08/Diff-Correctif-300x136.png" alt="Différentiel du correctif" title="Différentiel du correctif" width="300" height="136" class="alignright size-medium wp-image-1008" /></a>Très exactement <strong>9 minutes après la publication</strong> de l&#8217;article sur le blog de Jean Tinnes, Linus Torvalds lui-même a mis en ligne <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e694958388c50148389b0e9b9e9e8945cf0f1b98;hp=a3620f7545344f932873bf98fbdf416b49409c8e">le patch</a> comblant cette faille en remplaçant la fonction <span style="font-family: monospace">sock->ops->sendpage</span> par <span style="font-family: monospace">kernel_sendpage</span>, fonction ne laissant pas passer ce genre d&#8217;erreurs.</p>
<p>Les kernels gérant <span style="font-stype: monospace">mmap_min_addr</span> peuvent aussi se prémunir de certains exploits en règlant cette variable à une valeur supérieure à 0 :</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 4096 &gt; /proc/sys/vm/mmap_min_addr</div></div>
<p>Celle-ci empêche toute écriture dans la mémoire 0&#8230; Mais cette mesure de sécurité est toute neuve et contournable pour les kernels inférieurs à 2.6.30.2. Il est donc plus qu&#8217;impératif d&#8217;appliquer le patch kernel au plus vite.</p>
<h3>La faille couvrant le plus grand nombre de kernels Linux</h3>
<p>Couvrant <strong>tous les kernels publiés depuis 2001</strong>, que ce soit en version 2.4 ou 2.6, cette faille décroche la palme de la faille portant sur le plus grand nombre de releases stables du kernel Linux. Elle est potentiellement <strong>très dangereuse</strong> puisqu&#8217;un utilisateur lambda peut acquérir les droits de root!</p>
<p>Nous ne pouvons que vous conseiller d&#8217;appliquer le patch au plus vite. Les différentes distributions devraient d&#8217;ailleurs publier le kernel mis à jour dans les prochaines heures&#8230;. Enfin, espérons <img src='http://geekfault.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h3>En savoir plus</h3>
<ul>
<li><a href="http://blog.cr0.org/2009/08/linux-null-pointer-dereference-due-to.html">L&#8217;article sur le blog de Jean Tinnes</a></li>
<li><a href="http://archives.neohapsis.com/archives/fulldisclosure/2009-08/0174.html">Le full disclosure par Tavis Ormandy</a></li>
<li><a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e694958388c50148389b0e9b9e9e8945cf0f1b98;hp=a3620f7545344f932873bf98fbdf416b49409c8e">Le patch correctif commité dans la branche stable par Linux Torvalds</a></li>
</ul>


<p><h3>Si vous avez aimé ce post...</h3><ol><li><a href='http://geekfault.org/2010/05/13/linux-laptop-ultimate-powersaving/' rel='bookmark' title='Permanent Link: Linux &#8211; Laptop &#8211; Ultimate Powersaving !'>Linux &#8211; Laptop &#8211; Ultimate Powersaving !</a></li>
<li><a href='http://geekfault.org/2009/05/31/chromium-google-chrome-sous-linux/' rel='bookmark' title='Permanent Link: Chromium, le Google Chrome sous Linux sans émulation'>Chromium, le Google Chrome sous Linux sans émulation</a></li>
<li><a href='http://geekfault.org/2009/03/27/keymap-linux-sous-windows/' rel='bookmark' title='Permanent Link: Keymap Linux sous Windows'>Keymap Linux sous Windows</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geekfault.org/2009/08/14/faille-critique-dans-tous-les-noyaux-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
