<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.grdscarabe.net/index.php?feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Free Spirit, Libre Software</title>
  <link>http://www.grdscarabe.net/index.php?</link>
  <atom:link href="http://www.grdscarabe.net/index.php?feed/navlang:en/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>en</language>
  <pubDate>Thu, 05 Aug 2010 20:30:36 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Je ne poste plus ...</title>
    <link>http://www.grdscarabe.net/index.php?post/2009/02/13/Je-ne-poste-plus</link>
    <guid isPermaLink="false">urn:md5:5c641ed0784416ee32f3dbf5fa7eacd3</guid>
    <pubDate>Friday, February 13 2009</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
            
    <description>    &lt;p&gt;J&amp;rsquo;ai plus ou moins arrêté de poster sur ce blog. Plusieurs raisons à cela&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Je n&amp;rsquo;ai jamais réellement commencé à poster sérieusement&lt;/li&gt;
&lt;li&gt;Je tiens un autre blog plus &quot;sérieux&quot; où je commence à parler de tout et n&amp;rsquo;importe quoi&amp;thinsp;;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En d&amp;rsquo;autres termes je pense que je vais tout rassembler dans le même blog&amp;nbsp;:&lt;a href=&quot;http://www.fabienpoulard.info/&quot; hreflang=&quot;fr&quot;&gt; http://www.fabienpoulard.info/&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>XUbuntu + Sugar sous QEmu</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/11/08/XUbuntu-Sugar-sous-QEmu</link>
    <guid isPermaLink="false">urn:md5:308c2bf5afdcfe554d417dd61ff39207</guid>
    <pubDate>Saturday, November  8 2008</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>olpc</category><category>remastering</category><category>XUbuntu</category><category>éducation</category>    
    <description>    &lt;p&gt;Ce billet décrit comment j&amp;rsquo;ai mis en place une démonstration de Sugar dans une machine virtuelle QEmu tournant sous XUbuntu. Pour le reste de ce billet, le terme &lt;em&gt;machine hôte&lt;/em&gt; fera référence à la machine sur laquelle s&amp;rsquo;exécute QEmu et &lt;em&gt;machine virtuelle&lt;/em&gt; la machine simulée par QEmu.&lt;/p&gt;


&lt;p&gt;J&amp;rsquo;ai utilisé pour cette démonstration une Ubuntu Studio Hardy 64 bits comme machine hôte et une XUbuntu Hardy 32 bits comme machine virtuelle.&lt;/p&gt;


&lt;h2&gt;Installation de QEmu sous Ubuntu&lt;/h2&gt;


&lt;p&gt;QEmu étant empaqueté et disponible dans les dépôts Ubuntu, son installation se fait comme à l&amp;rsquo;habitude en utilisant &lt;em&gt;apt-get&lt;/em&gt; ou &lt;em&gt;aptitude&lt;/em&gt;, ou encore le gestionnaire graphique d&amp;rsquo;installation d&amp;rsquo;applications&amp;nbsp;: Synaptic.&lt;/p&gt;

&lt;pre&gt;
$ sudo aptitude install qemu
&lt;/pre&gt;


&lt;p&gt;Afin de profiter de accélération matérielle, il est intéressant (pour les architectures i386 ou x84) d&amp;rsquo;installer le module noyau kqemu. La procédure d&amp;rsquo;installation est un peu plus complexe car il est nécessaire de compiler le module et de le charger en mémoire. La procédure est entièrement décrite sur &lt;a href=&quot;http://www.alterego7.com/2008/02/running-windows-xp-pro-on-ubuntu-with.html&quot; hreflang=&quot;fr&quot;&gt;le site d&amp;rsquo;Alter Ego&lt;/a&gt;. En voici un résumé rapide&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
$ sudo aptitude install module-assistant kqemu-common kqemu-source
$ sudo module-assistant prepare
$ sudo module-assistant auto-install kqemu-source
&lt;/pre&gt;


&lt;p&gt;Une fois le module compilé et installé, il ne reste plus qu&amp;rsquo;à le charger et en permettre l&amp;rsquo;accès à tous&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
$ sudo modprobe kqemu
$ sudo chmod 666 /dev/kqemu
&lt;/pre&gt;


&lt;p&gt;QEmu devrait désormais pouvoir tirer parti de l&amp;rsquo;accélération matérielle pour l&amp;rsquo;émulation du processeur. Si tout fonctionne correctement, la différence est notable.&lt;/p&gt;


&lt;h2&gt;Installation de XUbuntu sous QEmu&lt;/h2&gt;


&lt;p&gt;Pour installer XUbuntu sous QEmu il va nous falloir une image ISO de XUbuntu, ainsi qu&amp;rsquo;un disque virtuel. L&amp;rsquo;image ISO s&amp;rsquo;obtiend facilement sur &lt;a href=&quot;http://www.xubuntu.org/get&quot; hreflang=&quot;en&quot;&gt;le site officiel de la distribution&lt;/a&gt;. Pour ce qui est de la création du disque virtuel, nous allons utiliser l&amp;rsquo;utilitaire &lt;code&gt;qemu-img&lt;/code&gt; plutôt que &lt;code&gt;dd&lt;/code&gt; comme présenté dans le &lt;a href=&quot;http://doc.ubuntu-fr.org/qemu&quot; hreflang=&quot;fr&quot;&gt;tutoriel d&amp;rsquo;Ubuntu&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;
$ qemu-img create -f qcow ubuntuimage 5G
&lt;/pre&gt;


&lt;p&gt;La commande ci-dessus permet ainsi de créer un disque virtuel de 5Go nommé &lt;em&gt;ubuntuimage&lt;/em&gt;. Le format de disque choisi est &lt;em&gt;qcow&lt;/em&gt;. Il s&amp;rsquo;agit du format de QEmu. Il permet notamment de limiter le gaspillage d&amp;rsquo;espace disque sur la machine hôte en ne requisitionnant que l&amp;rsquo;espace réellement utilisé dans le disque virtuel.&lt;/p&gt;


&lt;p&gt;Une fois le disque virtuel créé, et l&amp;rsquo;image ISO téléchargée, il ne reste plus qu&amp;rsquo;à lancer QEmu en lui indiquant&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le disque virtuel à utiliser&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;de considérer l&amp;rsquo;image ISO comme cdrom&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;de démarrer à partir du cdrom&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;qu&amp;rsquo;il ne doit pas utiliser plus XMo de RAM (dans notre cas 128).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Encore une fois, toute la procédure, et notamment ce qui concerne l&amp;rsquo;utilisation de kqemu est décrit sur le &lt;a href=&quot;http://www.alterego7.com/2008/03/qemu-on-ubuntu-804-hardy-heron.html&quot; hreflang=&quot;fr&quot;&gt;site d&amp;rsquo;Alter Ego&lt;/a&gt;. Voici un résumé&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
$ qemu-system-x86_64 -hda ubuntuimage -cdrom xubuntu-8.10-alternate-i386.iso -boot d -m 128 -kernel-kqemu
&lt;/pre&gt;


&lt;p&gt;Le reste ne diffère en rien d&amp;rsquo;une installation standard de XUbuntu.&lt;/p&gt;


&lt;h2&gt;Installation de Sugar sous XUbuntu&lt;/h2&gt;


&lt;p&gt;L&amp;rsquo;installation de Sugar sous Ubuntu et son utilisation par défaut est très bien décrite sur &lt;a href=&quot;http://dev.laptop.org/~probono/sbuntu/&quot; hreflang=&quot;en&quot;&gt;le site d&amp;rsquo;OLPC&lt;/a&gt;. En résumé et pour ceux qui ne lisent pas l&amp;rsquo;anglais ou qu&amp;rsquo;ils veulent aller directement à l&amp;rsquo;essentiel, la démarche est la suivante.&lt;/p&gt;


&lt;p&gt;Dans un premier temps, lancez votre XUbuntu, ouvrez un terminal et ajoutez le dépôt logicielles suivant au fichier &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;, et mettez à jour votre liste de logiciels disponibles à l&amp;rsquo;aide de &lt;code&gt;aptitude update&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
deb http://ppa.launchpad.net/sugarteam/ubuntu hardy main
&lt;/pre&gt;


&lt;p&gt;La condition &lt;em&gt;sinequanon&lt;/em&gt; à une bonne mise à jour est l&amp;rsquo;accès de la machine virtuelle à l&amp;rsquo;internet. Si vous êtes perdu sur ce point, n&amp;rsquo;hésitez pas à vous référer &lt;a href=&quot;http://www.h7.dion.ne.jp/~qemu-win/HowToNetwork-en.html&quot; hreflang=&quot;en&quot;&gt;aux documentations présentes sur internet&lt;/a&gt;. Une fois la mise-à-jour des paquets disponibles effectuée, vous devriez pouvoir installer l&amp;rsquo;environnement éducatif du projet OLPC&amp;nbsp;: &lt;a href=&quot;http://www.grdscarabe.net/index.php?post/2008/11/08/Sugar&quot; hreflang=&quot;fr&quot;&gt;http://wiki.laptop.org/go/Sugar/lang-fr&lt;/a&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
$ sudo aptitude install sugar python-gobject
&lt;/pre&gt;


&lt;p&gt;De nombreuses dépendances sont nécessaires à Sugar, l&amp;rsquo;installation peut donc demander un certain temps.&lt;/p&gt;


&lt;p&gt;Une fois l&amp;rsquo;installation terminée, déconnectée de votre session et reconnectez-vous en ayant pris soin de sélectionner la session &lt;em&gt;Sugar&lt;/em&gt;. Petit truc pratique, pour faire apparaître le cadre de l&amp;rsquo;environnement de travail, il suffit de déplacer le pointeur de souris dans un coin de l&amp;rsquo;écran. Vous trouverez une documentation permettant de découvrir Sugar sur &lt;a href=&quot;http://wiki.laptop.org/go/Simplified_user_guide/lang-fr&quot; hreflang=&quot;fr&quot;&gt;le site d&amp;rsquo;OLPC&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Pour arrêter Sugar, il faut se placer dans la vue personnelle (le rond avec un seul point au centre dans le cadre), faire un clique-droit sur l&amp;rsquo;icône du bonhomme et choisir &quot;Arrêter&quot;.&lt;/p&gt;


&lt;h2&gt;Démonstration&lt;/h2&gt;


&lt;p&gt;Voici quelques copies d&amp;rsquo;écran de Sugar tournant dans QEmu&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.grdscarabe.net/public/OLPC/connexion-choix_du_nom.jpg&quot;&gt;&lt;img src=&quot;http://www.grdscarabe.net/public/OLPC/.connexion-choix_du_nom_t.jpg&quot; alt=&quot;Connexion Sugar&amp;nbsp;: choix du nom&quot; title=&quot;Connexion Sugar&amp;nbsp;: choix du nom, nov 2008&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.grdscarabe.net/public/OLPC/connexion-choix_de_couleur.jpg&quot;&gt;&lt;img src=&quot;http://www.grdscarabe.net/public/OLPC/.connexion-choix_de_couleur_t.jpg&quot; alt=&quot;Connexion Sugar&amp;nbsp;: choix de couleur du profil&quot; title=&quot;Connexion Sugar&amp;nbsp;: choix de couleur du profil, nov 2008&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.grdscarabe.net/public/OLPC/environnement_de_travail-journal.jpg&quot;&gt;&lt;img src=&quot;http://www.grdscarabe.net/public/OLPC/.environnement_de_travail-journal_t.jpg&quot; alt=&quot;Environnement Sugar&amp;nbsp;: journal d&amp;#039;activités&quot; title=&quot;Environnement Sugar&amp;nbsp;: journal d&amp;#039;activités, nov 2008&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>XUbuntu en école primaire : premier retour</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/11/08/XUbuntu-en-ecole-primaire-%3A-premier-retour</link>
    <guid isPermaLink="false">urn:md5:de447f2cfc6648722b1a66e0c7d75cf1</guid>
    <pubDate>Saturday, November  8 2008</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>imprimantes</category><category>mairie</category><category>olpc</category><category>XUbuntu</category><category>éducation</category>    
    <description>    &lt;p&gt;Comme j&amp;rsquo;en avais parlé dans un &lt;a href=&quot;http://www.grdscarabe.net/index.php?post/2008/10/23/Deploiement-de-Linux-dans-les-ecoles-retour-d-experience&quot;&gt;billet précédent&lt;/a&gt;, j&amp;rsquo;ai tenté de faire entrer GNU/Linux dans l&amp;rsquo;école primaire de ma commune. Pour résumer la situation, l&amp;rsquo;école primaire ne possède que deux ordinateurs, tous les deux obsolètes. Le seul ordinateur fonctionnel (900MHz et 128Mo de RAM) tournait sous Microsoft Windows XP avec certainement une version pirate. Visiblement sa lenteur ne permettait plus aux enseignants de l&amp;rsquo;utiliser et j&amp;rsquo;ai donc décidé d&amp;rsquo;y installer une XUbuntu.&lt;/p&gt;


&lt;p&gt;À noter que n&amp;rsquo;étant pas sur ma commune la semaine (thèse sur Nantes oblige), j&amp;rsquo;ai laissé l&amp;rsquo;ordinateur sous XUbuntu, sans aucune explication et sans pouvoir en discuter avec qui que ce soit. J&amp;rsquo;ai rencontré un des enseignants, une semaine plus tard.  La première bonne nouvelle c&amp;rsquo;est qu&amp;rsquo;en parallèle de mon intervention, un ami lui avait installé Ubuntu. Il avait donc déjà pris en main Synaptic et se lançait dans l&amp;rsquo;installation d&amp;rsquo;OpenOffice. Un autre enseignant avait testé le système d&amp;rsquo;exploitation fraîchement installé et avait laissé quelques notes.&lt;/p&gt;


&lt;p&gt;Les principales remarques étaient les suivantes&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;l&amp;rsquo;imprimante ne fonctionnait pas&lt;/li&gt;
&lt;li&gt;il n&amp;rsquo;y avait pas OpenOffice&lt;/li&gt;
&lt;li&gt;la traduction était approximative&lt;/li&gt;
&lt;li&gt;les logiciels Windows n&amp;rsquo;étaient pas compatibles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;J&amp;rsquo;ai installé l&amp;rsquo;imprimante en ajoutant simplement &lt;em&gt;cupsys-driver-gutenprint&lt;/em&gt; et en utilisant &lt;em&gt;system-config-printer&lt;/em&gt;. De plus j&amp;rsquo;ai résolu le problème de traduction incomplète en lançant &lt;em&gt;gnome-language-selector&lt;/em&gt; et en choisissant le français.&lt;/p&gt;


&lt;p&gt;En ce qui concerne OpenOffice, la machine est bien trop pauvre en mémoire vive pour le faire fonctionner convenablement. J&amp;rsquo;ai donc proposé d&amp;rsquo;installer &lt;em&gt;Abiword&lt;/em&gt;. L&amp;rsquo;enseignant sceptique au départ a été convaincu lorsque j&amp;rsquo;ai ouvert des documents Word avec cette application dont le nom ne lui parlait pas.&lt;/p&gt;


&lt;p&gt;En ce qui concerne les logiciels Windows non compatibles, je n&amp;rsquo;ai pas été en mesure d&amp;rsquo;apporter de solution. Wine ne peut pas fonctionner sur une machine aussi pauvre en mémoire vive et de toute façon nous n&amp;rsquo;avons pas de licence Windows à disposition. De plus, les logiciels incompatibles n&amp;rsquo;étaient pas nommés, je n&amp;rsquo;ai donc pas pu proposer d&amp;rsquo;alternatives libres.&lt;/p&gt;


&lt;p&gt;Je n&amp;rsquo;ai pas eu de retour depuis (cela fait une semaine), j&amp;rsquo;espère que le système va les convaincre. Nous (les élus), les enseignants devons nous réunir avec l&amp;rsquo;inspecteur d&amp;rsquo;académie afin de traiter de l&amp;rsquo;équipement informatique des classes. J&amp;rsquo;espère avoir le temps d&amp;rsquo;ici là de préparer une démonstration de XUbuntu avec Sugar, l&amp;rsquo;interface éducative développé dans le cadre &lt;a href=&quot;http://laptop.org/&quot; hreflang=&quot;en&quot;&gt;d&amp;rsquo;OLPC&lt;/a&gt;. J&amp;rsquo;en parlerai dans un prochain billet ...&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Déploiement de Linux dans les écoles ... retour d'expérience</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/10/23/Deploiement-de-Linux-dans-les-ecoles-retour-d-experience</link>
    <guid isPermaLink="false">urn:md5:ae6c48408868ec8847a1ee0e9e3071c2</guid>
    <pubDate>Thursday, October 23 2008</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>linux</category><category>mairie</category><category>éducation</category>    
    <description>    &lt;p&gt;En tant qu&amp;rsquo;informaticien, je ne peux que me réjouir de l&amp;rsquo;avènement du &lt;a href=&quot;http://www2.educnet.education.fr/formation/certification/b2i/&quot; hreflang=&quot;fr&quot;&gt;B2i&lt;/a&gt;. Cependant en tant que conseiller municipal, je ne peux que regretter le fait qu&amp;rsquo;une fois encore le gouvernement lance un projet et laisse les collectivités se débrouiller pour le mettre en place sans leur donner de moyen.&lt;/p&gt;


&lt;p&gt;Pour information, l&amp;rsquo;intégralité du financement de l&amp;rsquo;environnement éducatif du primaire est à la charge des municipalités. En d&amp;rsquo;autres termes, l&amp;rsquo;entretient des bâtiments, l&amp;rsquo;achat de matériel et le salaire des ATSEM est payé par la municipalité.&lt;/p&gt;


&lt;p&gt;Le lancement du B2i implique donc l&amp;rsquo;achat de matériel informatique assez performant pour pouvoir former les élèves et leur faire valider ce brevet. L&amp;rsquo;école primaire de ma commune possède déjà quelques ordinateurs pour les élèves. Cependant ces derniers sont assez vieux et les systèmes d&amp;rsquo;exploitation sont soit désués (Microsoft Windows 98), soit trop lourd pour les performances de la machine (Microsoft Windows  XP). J&amp;rsquo;ai pris l&amp;rsquo;initiative de remplacer le Windows XP d&amp;rsquo;un de ces ordinateurs par une Xubuntu, système d&amp;rsquo;exploitation récent mais beaucoup plus léger. L&amp;rsquo;avenir nous dira si l&amp;rsquo;initiative entraînera un retour en arrière ou bien entraînera la migration complète du parc sous un environnement libre.&lt;/p&gt;


&lt;p&gt;Tout ça pour marquer le travail effectué par Yves Gesnel, et couché sur son &lt;a href=&quot;http://www.gesnel.fr/ubuntu/&quot; hreflang=&quot;fr&quot;&gt;blog&lt;/a&gt;, concernant le déploiement volontariste d&amp;rsquo;Ubuntu dans un collège. Ce dernier se lance dans l&amp;rsquo;écriture &lt;a href=&quot;http://www.gesnel.fr/ubuntu/2008/10/23/lexperience-gnulinux-dun-college/trackback/&quot; hreflang=&quot;fr&quot;&gt;d&amp;rsquo;un livre&lt;/a&gt; traitant de son retour d&amp;rsquo;expérience. Ce livre sera diffusé sous &lt;a href=&quot;http://artlibre.org/&quot; hreflang=&quot;en&quot;&gt;licence art libre&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Google Chrome ... bluffant ?</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/09/02/Google-Chrome-bluffant</link>
    <guid isPermaLink="false">urn:md5:aed68d0d2eadae581e1b3db62128311e</guid>
    <pubDate>Tuesday, September  2 2008</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>buzz</category><category>google</category><category>web</category>    
    <description>&lt;p&gt;Google chrome &lt;a href=&quot;http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html&quot; hreflang=&quot;en&quot;&gt;fait son buzz&lt;/a&gt; ... le nouveau navigateur estampillé du G bleu fait son coming out ce soir sur le web. D&amp;rsquo;ici là tout le monde y va de son article. Une petite revue de presse et un résumé des faits les plus intéressants en attendant la sortie officielle&amp;thinsp;;)&lt;/p&gt;    &lt;p&gt;Vous avez certainement entendu parler aujourd&amp;rsquo;hui de &lt;em&gt;Google chrome&lt;/em&gt;, le navigateur de Google&amp;nbsp;? Si ce n&amp;rsquo;est pas le cas c&amp;rsquo;est que vous ne vous êtes certainement pas connecté à internet étant donné le nombre de sites qui y font référence, que ce soit dans la presse (&lt;a href=&quot;http://www.vnunet.fr/news/google_chrome___une__plate_forme_moderne_pour_pages_web_et_applications_-2028531&quot; hreflang=&quot;fr&quot;&gt;VNunet&lt;/a&gt;, &lt;a href=&quot;http://www.zdnet.fr/actualites/internet/0,39020774,39382941,00.htm&quot; hreflang=&quot;fr&quot;&gt;ZDNet&lt;/a&gt;, &lt;a href=&quot;http://www.challenges.fr/actualites/high_tech/20080902.CHA5850/google_chrome_a_lassautde_microsoft.html&quot; hreflang=&quot;fr&quot;&gt;Challenges&lt;/a&gt;, &lt;a href=&quot;http://www.01net.com/editorial/389444/chrome-le-navigateur-signe-google-arrive-ce-soir/&quot; hreflang=&quot;fr&quot;&gt;01net&lt;/a&gt;, &lt;a href=&quot;http://www.lemondeinformatique.fr/actualites/lire-google-lance-chrome-son-navigateur-internet-gratuit-26824.html&quot; hreflang=&quot;fr&quot;&gt;Le Monde Informatique&lt;/a&gt;, &lt;a href=&quot;http://www.svmlemag.fr/actu/03350/google_lancera_son_navigateur_web_ce_soir&quot; hreflang=&quot;fr&quot;&gt;SVM&lt;/a&gt;, &lt;a href=&quot;http://www.pcinpact.com/actu/news/45689-google-chrome-navigateur-javascript-webkit.htm&quot; hreflang=&quot;fr&quot;&gt;PCInpact&lt;/a&gt;) ou bien sur la blogosphère (&lt;a href=&quot;http://standblog.org/blog/post/2008/09/02/A-propos-de-Google-Chrome-et-du-reste&quot; hreflang=&quot;fr&quot;&gt;Tristan Nitot&lt;/a&gt; ou &lt;a href=&quot;http://www.0xdeadbeef.com/weblog/?p=672&quot; hreflang=&quot;en&quot;&gt;Christopher Blizzard&lt;/a&gt; ...).&lt;/p&gt;


&lt;p&gt;La meilleure source d&amp;rsquo;information sur le sujet pour le moment est sans aucun celle provenant de Google eux-même, proposée sous la forme d&amp;rsquo;un &lt;a href=&quot;http://blogoscoped.com/google-chrome/&quot; hreflang=&quot;en&quot;&gt;web comic&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;On y apprend que le navigateur sera multi-processus, en gros chaque traitement de chaque page sera placé dans un espace mémoire séparé des autres. Ça peut paraître techniquement imbuvable pour certains, mais celà signifie que  l&amp;rsquo;application Flash que vous avez chargé sans le savoir dans un onglet en arrière plan ne fera plus planter tout le navigateur, juste l&amp;rsquo;onglet incriminé ... dans le pire des cas&amp;nbsp;! Tout simplement génial, on se demande pourquoi ça n&amp;rsquo;a pas été fait plutôt. Certainement car c&amp;rsquo;est techniquement assez complexe ...&lt;/p&gt;


&lt;p&gt;On y apprend également que le moteur de rendu ne sera pas Gecko (le moteur de rendu développé et utilisé chez Mozilla), mais WebKit le moteur de Safari, dérivé de celui de Konqueror. Il s&amp;rsquo;agit d&amp;rsquo;un moteur qui a fait ses preuves et qui est aussi respectueux (&lt;a href=&quot;http://www.ab-d.fr/date/2008-03-28/&quot; hreflang=&quot;fr&quot;&gt;sinon plus&amp;thinsp;?&lt;/a&gt;) des standards du web que Gecko&amp;nbsp;! C&amp;rsquo;est donc une bonne nouvelle...&lt;/p&gt;


&lt;p&gt;Et finalement, mais ce n&amp;rsquo;est même pas étonnant, le navigateur est sous licence libre&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Sans trop nous émerveiller, on peut s&amp;rsquo;interroger sur comment la vie privé et l&amp;rsquo;anonymité sur le web sera gérée par ce navigateur conçu par le plus gros distributeur de contenu publicitaire sur le web&amp;nbsp;! La seule information que l&amp;rsquo;on ait est le mode &lt;em&gt;incognito&lt;/em&gt; qui peut être chargé pour un onglet. Ce dernier a alors un accès en lecture-seule aux informations d&amp;rsquo;historique et aux favoris ... on reste un peu sur notre fin, notamment en ce qui concerne la gestion des cookies ou l&amp;rsquo;accès aux données d&amp;rsquo;historique et de favoris par les pages visitées.&lt;/p&gt;


&lt;p&gt;Les réponses ce soir sans doute ...&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>OpenStreetMap, se lancer dans l'aventure sous OpenMoko</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/08/28/OpenStreetMap-se-lancer-dans-l-aventure-sous-OpenMoko</link>
    <guid isPermaLink="false">urn:md5:1e7cafebfeb70c3c401ca17b70d5b56d</guid>
    <pubDate>Thursday, August 28 2008</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>bidouille</category><category>matériel</category><category>openmoko</category><category>openstreetmap</category>    
    <description>&lt;p&gt;&lt;a href=&quot;http://www.openstreetmap.org&quot; hreflang=&quot;en&quot;&gt;OpenStreetMap&lt;/a&gt; est le projet communautaire de création de fonds de carte libre, chacun peut contribuer, et si vous possédez un OpenMoko c&amp;rsquo;est le moment de vous lancer. Voici un rapide guide histoire de sauter le pas&amp;nbsp;!&lt;/p&gt;    &lt;h2&gt;Se connecter au NeoFreerunner&lt;/h2&gt;


&lt;p&gt;Pour se connecter au Neo Freerunner, la méthode la plus simple est d&amp;rsquo;y brancher le câble USB et de créer une interface réseau et de s&amp;rsquo;y connecter par ssh. Toute la procédure est décrite &lt;a href=&quot;http://wiki.openmoko.org/wiki/USB_Networking&quot; hreflang=&quot;en&quot;&gt;sur le wiki&lt;/a&gt; d&amp;rsquo;OpenMoko.&lt;/p&gt;


&lt;h2&gt;Installation des paquets&lt;/h2&gt;


&lt;p&gt;Après vous être connectés par ssh à l&amp;rsquo;appareil, installez les paquets &lt;em&gt;openmoko-agpsui&lt;/em&gt; et &lt;em&gt;tangogps&lt;/em&gt;. Le premier permet de visualiser la qualité de la connexion GPS, le second permet de visualiser la position GPS sur une carte&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
root@om-gta02:~# opkg update
root@om-gta02:~# opkg install tangogps openmoko-agpsui
&lt;/pre&gt;


&lt;p&gt;Une fois les paquets installées, deux nouvelles entrées doivent apparaître dans le menu&amp;nbsp;: &lt;em&gt;GPS &amp;amp; Map&lt;/em&gt; et &lt;em&gt;Openmoko AGPS UI&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/openmoko/.menu-agps_gps_s.jpg&quot; alt=&quot;Entrées AGPS et GPS dans le menu&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Entrées AGPS et GPS dans le menu, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;L&amp;rsquo;application &lt;em&gt;Openmoko AGPS UI&lt;/em&gt; permet de s&amp;rsquo;assurer de la bonne connexion du module GPS aux satellites. L&amp;rsquo;application lancée, il est possible de placer le module GPS sous tension à l&amp;rsquo;aide du bouton &lt;em&gt;Power on&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/openmoko/.agps-run_s.jpg&quot; alt=&quot;Lancement du GPS dans AGPS UI&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Lancement du GPS dans AGPS UI, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Une fois le module placé sous tension, l&amp;rsquo;onglet &lt;em&gt;SS&lt;/em&gt; permet de visualiser la découverte des satellites. Lorsqu&amp;rsquo;un nombre suffisant de liens satellites de bonne qualité est atteint, la connexion se fixe et le module devient en mesure de récupérer les coordonnées GPS.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/openmoko/.agps-ss_s.jpg&quot; alt=&quot;Recherche des satellites&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Recherche des satellites, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;h2&gt;Enregistrement et récupération des traces&lt;/h2&gt;


&lt;p&gt;Lorsque le module GPS est fixé et capable de récupérer des coordonnées GPS, il suffit de lancer l&amp;rsquo;application &lt;em&gt;GPS &amp;amp; Map&lt;/em&gt;, de se rendre sur l&amp;rsquo;onglet &lt;em&gt;Track&lt;/em&gt; et de lancer la trace.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/openmoko/.track_s.jpg&quot; alt=&quot;Enregistrement des traces GPS&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Enregistrement des traces GPS, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Par défaut toutes les traces sont enregistrées dasns &lt;em&gt;/tmp&lt;/em&gt;, ceci peut-être modifié en cliquant sur &lt;em&gt;Configure&lt;/em&gt; puis en spécifiant un nouveau chemin de sauvegarde.&lt;/p&gt;


&lt;p&gt;Si vous voulez séparer les traces en plusieurs fichiers, il suffit de cliquer sur &lt;em&gt;Split&lt;/em&gt; pour lancer l&amp;rsquo;enregistrement dans un nouveau fichier. Ceci peut-être utile pour différencier les rues tracées, les lieux, ...&lt;/p&gt;


&lt;h2&gt;Préparation des traces avec les outils OSM&lt;/h2&gt;


&lt;p&gt;Avant toute chose il vous faut récupérer les traces enregistrées. Pour ce faire, remettez en place &lt;a href=&quot;http://wiki.openmoko.org/wiki/USB_Networking&quot; hreflang=&quot;en&quot;&gt;la connexion ethernet&lt;/a&gt; par USB, puis récupérez les journaux grâce à &lt;em&gt;scp&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
monlaptopt$ scp root@192.168.0.202:&amp;quot;/tmp/*.log&amp;quot; .
&lt;/pre&gt;


&lt;p&gt;Une fois les journaux de traces récupérées, il faut les convertir dans le format utilisé par les outils d&amp;rsquo;OpenStreetMap, ce qui se fait avec le script &lt;a href=&quot;http://www.tangogps.org/downloads/convert2osm.pl&quot;&gt;convert2osm.pl&lt;/a&gt; développé par les gens de &lt;a href=&quot;http://www.tangogps.org/gps/articles/13-Howto-contribute-to-OpenStreetMap.html&quot; hreflang=&quot;en&quot;&gt;tangogps&lt;/a&gt;.&lt;/p&gt;

&lt;pre&gt;
monlaptopt$ ./convert2osm.pl 20080429_103552.log
20080429_103552.log.gpx
converting to osm...
20080429_103552.log.gpxcsv at ./convert2osm.pl line 180, &amp;lt;&amp;gt; line 63.
&lt;/pre&gt;


&lt;p&gt;Désormais, il ne reste plus qu&amp;rsquo;à éditer nos traces à l&amp;rsquo;aide de &lt;a href=&quot;http://wiki.openstreetmap.org/index.php/JOSM&quot; hreflang=&quot;en&quot;&gt;JOSM&lt;/a&gt; le logiciel d&amp;rsquo;édition de traces d&amp;rsquo;OpenStreetMap. La dernière version stable de JOS est disponible &lt;a href=&quot;http://josm.openstreetmap.de/download/josm-latest.jar&quot;&gt;ici&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Préparer l'environnement de remasterisation de DSL</title>
    <link>http://www.grdscarabe.net/index.php?post/2007/09/08/Preparer-l-environnement-de-remasterisation-de-DSL</link>
    <guid isPermaLink="false">urn:md5:671f31099e5709897f32b093ce20f324</guid>
    <pubDate>Saturday, September  8 2007</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>distribution live</category><category>linux</category><category>remastering</category>    
    <description>&lt;p&gt;Cet article décrit les différentes étapes nécessaires à la mise en place de l&amp;rsquo;environnement de remasterisation&amp;nbsp;: obtention de l&amp;rsquo;ISO, extraction et chroot.&lt;/p&gt;    &lt;h2&gt;À propos de DSL&lt;/h2&gt;


&lt;p&gt;&lt;a href=&quot;http://www.damnsmalllinux.org&quot; hreflang=&quot;en&quot;&gt;DSL (Damn Small Linux)&lt;/a&gt; est une distribution légère tenant sur une business card et bootable depuis un cd, une clée usb, ... sur des ordinateurs d&amp;rsquo;un certain âge (486 avec 16Mo de ram).&lt;/p&gt;


&lt;p&gt;DSL est basée sur l&amp;rsquo;excellente distribution &lt;a href=&quot;http://www.fr.debian.org&quot; hreflang=&quot;fr&quot;&gt;Debian&lt;/a&gt; ce qui permet d&amp;rsquo;utiliser certains paquets développés pour cette distribution.&lt;/p&gt;


&lt;h2&gt;Obtention de l&amp;rsquo;image ISO&lt;/h2&gt;


&lt;p&gt;L&amp;rsquo;image ISO de la distribution s&amp;rsquo;obtient facilement à partir de la &lt;a href=&quot;http://www.damnsmalllinux.org/download.html&quot; hreflang=&quot;en&quot;&gt;page dédiée&lt;/a&gt;. Lors de l&amp;rsquo;écriture de cet article, la version la plus récente était la 3.4.&lt;/p&gt;


&lt;p&gt;Placez-vous dans un répertoire dédié car la manipulation va créer une arborescence propre&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ mkdir DSLRemastering
shell$ cd DSLRemastering
shell$ wget ftp://ftp.oss.cc.gatech.edu/pub/linux/distributions/damnsmall/current/dsl-3.4.2.iso
&lt;/pre&gt;


&lt;h2&gt;Extraction des fichiers de l&amp;rsquo;image ISO&lt;/h2&gt;


&lt;p&gt;L&amp;rsquo;extraction des fichiers de l&amp;rsquo;image s&amp;rsquo;effectue en deux temps&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;montage de l&amp;rsquo;image&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;copie des fichiers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L&amp;rsquo;image se monte à l&amp;rsquo;aide d&amp;rsquo;une &quot;loop&quot;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ mkdir /tmp/iso
shell$ mount -t iso9660 -o loop dsl-3.4.2.iso /tmp/iso
&lt;/pre&gt;


&lt;p&gt;On copie ensuite les fichiers en conservant les attributs de permission à l&amp;rsquo;aide de &lt;em&gt;rsync&lt;/em&gt;. Il n&amp;rsquo;est pas nécessaire de copier le fichier &lt;em&gt;KNOPPIX/KNOPPIX&lt;/em&gt; qui correspond au système de fichier compressé.&lt;/p&gt;

&lt;pre&gt;
shell$ mkdir remaster-iso
shell$ rsync --exclude=/KNOPPIX/KNOPPIX -a /tmp/iso remaster-iso
&lt;/pre&gt;


&lt;h2&gt;Extraction du système de fichier&lt;/h2&gt;


&lt;p&gt;En réalité, seul le noyau est présent dans les fichiers que nous venons de copier. Le plus gros de la distribution se situe en réalité dans le fameux et imposant fichier &lt;em&gt;KNOPPIX/KNOPPIX&lt;/em&gt;. Nous allons devoir mettre en place une &lt;em&gt;cloop&lt;/em&gt; (compressed loop) pour le copier. Le module correspondant n&amp;rsquo;est pas forcément présent par défaut sur votre distribution, vous devrez peut être l&amp;rsquo;installer, ainsi que les utilitaires associés.&lt;/p&gt;

&lt;pre&gt;
shell$ modprobe cloop
shell$ losetup /dev/cloop0 /tmp/iso/KNOPPIX/KNOPPIX
shell$ mkdir /tmp/fs
shell$ mount -t iso9660 /dev/cloop0 /tmp/fs
&lt;/pre&gt;


&lt;p&gt;Une fois le système de fichier monté, vous pouvez le copier en préservant les informations sur les fichiers&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ mkdir remaster-fs
shell$ cp -a /tmp/fs/* remaster-fs
&lt;/pre&gt;


&lt;h2&gt;Mise en place du chroot&lt;/h2&gt;


&lt;p&gt;Vous devriez maintenant vous trouver avec les répertoires suivants dans le répertoire courant&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;remaster-iso&lt;/em&gt; contenant les fichiers issus de l&amp;rsquo;ISO&lt;/li&gt;
&lt;li&gt;&lt;em&gt;remaster-fs&lt;/em&gt; contenant la distribution à proprement parler.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nous allons utiliser comme racine le répertoire &lt;em&gt;remaster-fs&lt;/em&gt; afin d&amp;rsquo;y effectuer les manipulation de customisation. Cette manipulation est appelée &lt;em&gt;chrooter&lt;/em&gt; et n&amp;rsquo;est possible qu&amp;rsquo;avec les droits du superutilisateur&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ chroot remaster-fs
bash-2.05b# ls
bin     cdrom   etc     home    mnt     opt     root    tmp     var
boot    dev     floppy  lib     none    proc    sbin    usr
&lt;/pre&gt;


&lt;p&gt;Si jamais vous obtenez le message d&amp;rsquo;erreur suivant&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
Inconsistency detected by ld.so: rtld.c: 1108: dl_main: Assertion `(void *) ph-&amp;gt;p_vaddr == _rtld_local._dl_sysinfo_dso' failed!
&lt;/pre&gt;


&lt;p&gt;Vous devrez désactiver le &lt;a href=&quot;http://www.trilithium.com/johan/2005/08/linux-gate/&quot; hreflang=&quot;en&quot;&gt;VDSO&lt;/a&gt;, puis réitérer la manipulation. Pour désactiver le vDSO&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ echo 0 &amp;gt; /proc/sys/vm/vdso_enabled
&lt;/pre&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Indiquer à subversion des fichiers à ignorer lors du svn status</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/08/09/Indiquer-a-subversion-des-fichiers-a-ignorer-lors-du-svn-status</link>
    <guid isPermaLink="false">urn:md5:7d1ebc5dd2805480a97b01c4ed0ace3d</guid>
    <pubDate>Tuesday, July 24 2007</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>administration</category><category>subversion</category>    
    <description>&lt;p&gt;Lorsque l&amp;rsquo;on gère un dépôt subversion, il y a certains fichiers qui ne sont pas sous contrôle de version et qui peuvent apparaître au sein du répertoire. Ainsi, les fichiers intermédiaires de compilation, les exécutables, les core dump, ... peuvent s&amp;rsquo;inviter dans votre dépôt. Vous souhaitez que lors d&amp;rsquo;un {svn status} ces fichiers n&amp;rsquo;apparaissent plus&amp;nbsp;? C&amp;rsquo;est possible ...&lt;/p&gt;    &lt;p&gt;Lorsque l&amp;rsquo;on travaille au sein d&amp;rsquo;un répertoire dont le contrôle de version est soumis à subversion, il est très fréquent qu&amp;rsquo;apparaissent des fichiers qui n&amp;rsquo;ont pas lieu d&amp;rsquo;être géré par le gestionnaire de contrôle de version et dont il n&amp;rsquo;est pas nécessaire d&amp;rsquo;indiquer les modifications ou même la présence lors d&amp;rsquo;un &lt;em&gt;svn status&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Sous cvs, le fichier &lt;em&gt;.cvsignore&lt;/em&gt; était utilisé pour gérer les exceptions à ne pas soumettre au contrôle de version. Subversion intègre un système plus souple qui se base sur la gestion des propriétés.&lt;/p&gt;


&lt;h2&gt;Subversion et les propriétés&amp;nbsp;: &lt;em&gt;propget&lt;/em&gt;, &lt;em&gt;propset&lt;/em&gt;, &lt;em&gt;proplist&lt;/em&gt;&lt;/h2&gt;


&lt;p&gt;Au sein d&amp;rsquo;un dépôt subversion, tous les fichiers, les dossiers ainsi que le dépôt en général ont des propriétés. Ces dernières peuvent être définies automatiquement (la propriété &lt;em&gt;svn:executable&lt;/em&gt; par exemple) ou bien manuellement. Vous pouvez connaître les propriétés d&amp;rsquo;un fichier ou d&amp;rsquo;un dépôt à l&amp;rsquo;aide de la commande &lt;em&gt;svn proplist&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell:~/mon-depot$ svn proplist
Propriétés sur '.'
  license
  svn:ignore
&lt;/pre&gt;


&lt;p&gt;Pour connaître la valeur d&amp;rsquo;une propriété, il suffit d&amp;rsquo;utiliser la commande &lt;em&gt;svn propget&lt;/em&gt; suivie du nom de la propriété et du répertoire ou du fichier dont on veut connaître la propriété. Si aucun fichier n&amp;rsquo;est précisé, le répertoire courant est considéré.&lt;/p&gt;

&lt;pre&gt;
shell:~/mon-depot$ svn propget license
GPLv2
&lt;/pre&gt;


&lt;h2&gt;La propriété &lt;em&gt;svn:ignore&lt;/em&gt;&lt;/h2&gt;


&lt;p&gt;La propriété &lt;em&gt;svn:ignore&lt;/em&gt; est celle qui nous intéresse. Elle permet de spécifier les motifs de fichiers à ignorer au sein d&amp;rsquo;un répertoire. La syntaxe permettant de spécifier cette propriété est la suivante&amp;nbsp;: &lt;em&gt;svn propset svn:ignore -F &amp;lt;fichier_des_motifs&amp;gt; &amp;lt;repertoire&amp;gt;&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Par exemple, dans le cadre d&amp;rsquo;un dépôt de fichiers en Python, il est inutile de conserver dans le dépôt les versions compilés des sources Python (*.pyc), on peut donc indiquer au gestionnaire de les ignorer&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell:~/mon-depot$ cat &amp;gt; .svn/svnignore &amp;lt;&amp;lt;EOF
&amp;gt; *.pyc
&amp;gt; EOF
shell:~/mon-depot$ svn propset svn:ignore -F .svn/svnignore .
Propriété 'svn:ignore' définie sur '.'
&lt;/pre&gt;


&lt;p&gt;Ou bien pour un dépôt de fichiers LaTeX, on peut ignorer tous les fichiers de compilation intermédiaires&amp;nbsp;: les *.log, *.aux, *.bbl, *.blg, ...&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell:~/mon-depot$ cat &amp;gt; .svn/svnignore &amp;lt;&amp;lt;EOF
&amp;gt; *.aux
&amp;gt; *.log
&amp;gt; *.bbl
&amp;gt; *.blg
&amp;gt; EOF
shell:~/mon-depot$ svn propset svn:ignore -F .svn/svnignore .
Propriété 'svn:ignore' définie sur '.'
shell:~/mon-depot$ svn proplist
Propriétés sur '.'
  svn:ignore
shell:~/mon-depot$ svn propget svn:ignore
*.aux
*.log
*.bbl
*.blg
&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;ATTENTION! La propriété &lt;em&gt;svn:ignore&lt;/em&gt; n&amp;rsquo;est pas appliquée de manière récursive, il est donc nécessaire de la spécifier manuellement pour chaque dossier dans lequel vous souhaitez qu&amp;rsquo;elle s&amp;rsquo;appliquer&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;
shell:~/mon-depot$ svn status
 M     .
?      annexes/main.tex
?      annexes/Annexes.aux
M      annexes/Annexes.tex
?      notes_a-_integrer/unites_bloc_detection.aux
?      notes_a-_integrer/unites_bloc_detection.bbl
?      notes_a-_integrer/unites_bloc_detection.log
?      notes_a-_integrer/unites_bloc_detection.blg
?      notes_a-_integrer/unites_bloc_detection.pdf
M      Makefile
shell:~/mon-depot$ svn propset svn:ignore -F .svn/svnignore annexes/ notes_a-_integrer/
Propriété 'svn:ignore' définie sur 'annexes'
Propriété 'svn:ignore' définie sur 'notes_a-_integrer'
shell:~/mon-depot$  svn status
 M     .
?      annexes/main.tex
 M     annexes
M      annexes/Annexes.tex
?      notes_a-_integrer/unites_bloc_detection.pdf
 M     notes_a-_integrer
M      Makefile
&lt;/pre&gt;


&lt;p&gt;Si toutefois vous avez un doute quant aux fichiers ignorés grâce à cette propriété, vous pouvez forcer svn à l&amp;rsquo;ignorer à l&amp;rsquo;aide de l&amp;rsquo;option &lt;em&gt;--no-ignore&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell:~/mon-depot$ svn status --no-ignore
 M     .
?      annexes/main.tex
I      annexes/Annexes.aux
I      annexes/Annexes.tex~
 M     annexes
M      annexes/Annexes.tex
I      notes_a-_integrer/unites_bloc_detection.aux
I      notes_a-_integrer/unites_bloc_detection.tex~
I      notes_a-_integrer/unites_bloc_detection.bbl
I      notes_a-_integrer/unites_bloc_detection.log
I      notes_a-_integrer/unites_bloc_detection.blg
?      notes_a-_integrer/unites_bloc_detection.pdf
 M     notes_a-_integrer
M      Makefile
&lt;/pre&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Permettre une administration basique sans mot de passe</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/08/09/Permettre-une-administration-basique-sans-mot-de-passe</link>
    <guid isPermaLink="false">urn:md5:50d7f9e8073494b512a75a43d745ebe3</guid>
    <pubDate>Thursday, June 14 2007</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>administration</category><category>linux</category><category>sécurité</category>    
    <description>&lt;p&gt;J&amp;rsquo;ai fait le choix sur un système que j&amp;rsquo;ai installé de permettre aux utilisateurs de réaliser certaines tâches administratives basiques telles que la mise à jour du système ou l&amp;rsquo;installation de nouvelles applications. L&amp;rsquo;authorisation de ce genre de tâches passe par une simple configuration du système &lt;em&gt;sudo&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;La difficulté lors de la mise en place d&amp;rsquo;un système que l&amp;rsquo;on veut robuste et sécurisé, mais également accessible et administrable sans connaissances particulières, est de trouver un compromis entre laxisme et sécurisation. Mon choix est de bloquer l&amp;rsquo;accès à toutes les tâches administratives, exceptées l&amp;rsquo;utilitaire de mise à jour du système (&lt;em&gt;update-manager&lt;/em&gt;) ainsi que l&amp;rsquo;installation de nouvelles applications (&lt;em&gt;gnome-app-install&lt;/em&gt;).&lt;/p&gt;


&lt;h2&gt;Fichier de configuration de sudo&lt;/h2&gt;


&lt;p&gt;Par défaut sous Xubuntu, l&amp;rsquo;accès à toutes les applications d&amp;rsquo;administration concernant le système sont inaccessibles aux utilisateurs de base. L&amp;rsquo;accès à ces applications passe par le biais du système &lt;em&gt;sudo&lt;/em&gt;. Ce dernier est configuré par le biais du fichier &lt;em&gt;/etc/sudoers&lt;/em&gt; que l&amp;rsquo;on édite via la commande &lt;em&gt;visudo&lt;/em&gt;. Lancez donc cette commande à partir d&amp;rsquo;un compte ayant les droits d&amp;rsquo;administration.&lt;/p&gt;


&lt;p&gt;Votre configuration se résume très certainement à un groupe &lt;em&gt;%admin&lt;/em&gt; ayant tout les droits sur le système et ressemble à ceci&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
# User alias specification

# Cmnd alias specification

# Defaults

Defaults        !lecture,tty_tickets,!fqdn

# User privilege specification
root    ALL=(ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
&lt;/pre&gt;


&lt;h2&gt;Permettre l&amp;rsquo;accès à certaines commandes&lt;/h2&gt;


&lt;p&gt;Le système &lt;em&gt;sudo&lt;/em&gt; permet l&amp;rsquo;utilisation d&amp;rsquo;alias, ce qui permet de regrouper des utilisateurs ou des commandes sous une dénomination  commune et ainsi traiter les authorisations par lots. L&amp;rsquo;utilisateur par défaut du système pour la bibliothèque est &lt;em&gt;biblio&lt;/em&gt;, il s&amp;rsquo;agit d&amp;rsquo;un compte qui est automatique connecté lors du démarrage de l&amp;rsquo;ordinateur. Bien qu&amp;rsquo;il ne soit pas vraiment nécessaire de créer un alias pour un seul utilisateur, je préfère prévenir l&amp;rsquo;apparition éventuelle d&amp;rsquo;autres utilisateurs. Le mot clé &lt;em&gt;User_Alias&lt;/em&gt; permet la création d&amp;rsquo;un alias d&amp;rsquo;utilisateurs. Créons donc un alias d&amp;rsquo;utilisateurs que nous appelerons &lt;em&gt;PUBLIC&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
# User alias specification
User_Alias      PUBLIC=biblio
&lt;/pre&gt;


&lt;p&gt;Les deux programmes auxquels nous permettons l&amp;rsquo;accès sont &lt;em&gt;update-manager&lt;/em&gt; et &lt;em&gt;gnome-app-install&lt;/em&gt;, créons un alias de commande à l&amp;rsquo;aide du mot clé &lt;em&gt;Cmnd_Alias&lt;/em&gt; que nous appellerons &lt;em&gt;BASIC_ADMIN&lt;/em&gt;. Il faut toutefois noter que &lt;em&gt;gnome-app-install&lt;/em&gt; est un front-end pour &lt;em&gt;synaptic&lt;/em&gt;, il est donc nécessaire d&amp;rsquo;ajouter également &lt;em&gt;/usr/sbin/synaptic&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
# Cmnd alias specification
Cmnd_Alias      BASIC_ADMIN=/usr/bin/gnome-app-install,/usr/bin/update-manager,/usr/sbin/synaptic
&lt;/pre&gt;


&lt;p&gt;L&amp;rsquo;alias pour les utilisateurs et les commandes étant créé, nous n&amp;rsquo;avons plus qu&amp;rsquo;à relier le tout. Petite spécification, les utilisateurs ne doivent pas être embarassés d&amp;rsquo;un mot de passe, le mot clé &lt;em&gt;NOPASSWD&lt;/em&gt; est là pour ça&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
PUBLIC  ALL=NOPASSWD:BASIC_ADMIN
&lt;/pre&gt;


&lt;p&gt;Cette ligne nécessite peut être d&amp;rsquo;être un petit peu décortiquée pour être comprise. Le premier mot (&lt;em&gt;PUBLIC&lt;/em&gt;) correspond aux utilisateur concernés par la règle, s&amp;rsquo;ensuit les machines sur lesquelles s&amp;rsquo;applique cette règle. L&amp;rsquo;administration n&amp;rsquo;étant pas centralisé, un &lt;em&gt;ALL&lt;/em&gt; (indiquant&amp;nbsp;: toutes les machines) est suffisant. On s&amp;rsquo;attaque ensuite à la règle en permettant l&amp;rsquo;accès aux commandes &lt;em&gt;BASIC_ADMIN&lt;/em&gt; sans avoir besoin de rentrer un mot de passe (&lt;em&gt;NOPASSWD&lt;/em&gt;).&lt;/p&gt;


&lt;p&gt;Le nouveau fichier de configuration ressemble désormais à ceci&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
# User alias specification
User_Alias      PUBLIC=biblio

# Cmnd alias specification
Cmnd_Alias      BASIC_ADMIN=/usr/bin/gnome-app-install,/usr/bin/update-manager,/usr/sbin/synaptic

# Defaults

Defaults        !lecture,tty_tickets,!fqdn

# User privilege specification
root    ALL=(ALL) ALL
PUBLIC  ALL=NOPASSWD:BASIC_ADMIN

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
&lt;/pre&gt;


&lt;h2&gt;Cas spécifique des applications graphiques&lt;/h2&gt;


&lt;p&gt;Les applications graphiques posent un problème particulier, le système X ne permet pas à n&amp;rsquo;importe qui d&amp;rsquo;ouvrir des fenêtres sur le bureau d&amp;rsquo;un utilisateur. Le lancement d&amp;rsquo;une commande par le biais de &lt;em&gt;sudo&lt;/em&gt; résultera très certainement en une erreur du système comme quoi il &lt;em&gt;ne peut pas accéder au serveur&amp;nbsp;:0&lt;/em&gt;. Pour ce faire nous allons permettre à n&amp;rsquo;importe qui d&amp;rsquo;ouvrir des fenêtre sur le bureau de l&amp;rsquo;utilisateur &lt;em&gt;biblio&lt;/em&gt; en rajoutant &lt;em&gt;xhost +&lt;/em&gt; dans le fichier &lt;em&gt;$HOME/.xsession&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
#! /bin/sh
xhost +
&lt;/pre&gt;


&lt;p&gt;Enfin, l&amp;rsquo;utilisation de &lt;em&gt;sudo&lt;/em&gt; nécessite l&amp;rsquo;ouverture d&amp;rsquo;un terminal, ce qui n&amp;rsquo;est pas forcément très pratique lorsque l&amp;rsquo;on veut lancer des applications graphiques. J&amp;rsquo;utilise pour ma part le petit utilitaire &lt;em&gt;gksu&lt;/em&gt; qui permet d&amp;rsquo;éviter ces inconvénients et lancer directement les applications sans passer par un terminal.&lt;/p&gt;


&lt;p&gt;Et notre utilisateur &lt;em&gt;biblio&lt;/em&gt; peut désormais mettre à jour son système et installer des applications sans avoir à rentrer de mots de passe.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Réflexion sur la réalisation d'un Live CD Linux ludique pour les 3-7 ans</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/08/09/Reflexion-sur-la-realisation-d-un-Live-CD-Linux-ludique-pour-les-3-7-ans</link>
    <guid isPermaLink="false">urn:md5:b4cc8971c088ffd8dd45004d2642e7ce</guid>
    <pubDate>Thursday, June 14 2007</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>linux</category><category>remastering</category><category>éducation</category>    
    <description>&lt;p&gt;Linux s&amp;rsquo;impose un petit peu partout&amp;nbsp;: sur les serveurs, les bureaux, à l&amp;rsquo;école, au bureau, .... il reste cependant des besoins - oserais-je dire des &quot;marchés&quot; - pour lesquels il y a encore du travail. Les crêches en sont un bon exemple. Les éducateurs proposent de plus en plus tôt aux enfants de s&amp;rsquo;essayer à l&amp;rsquo;informatique, le but étant de rendre ces derniers les plus indépendants possibles face à l&amp;rsquo;ordinateur. Malheureusement, pour ce qui est des petits (3 à 5 ans), il n&amp;rsquo;existe pas véritablement d&amp;rsquo;environnements protégés dans lesquels les éducateurs comme les parents peuvent laisser gambader les petits&amp;nbsp;!&lt;/p&gt;    &lt;h2&gt;L&amp;rsquo;existant ...&lt;/h2&gt;


&lt;p&gt;Le web fourmille bien de sites ou de pages à caractère ludique tels que&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.poissonrouge.com/&quot;&gt;www.poissonrouge.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.kidzo.net/&quot;&gt;www.kidzo.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.absoluflash.com/jeux-enfant-eveil/&quot;&gt;www.absoluflash.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.letopweb.org/&quot;&gt;www.letopweb.org&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le défaut de ces solutions c&amp;rsquo;est que l&amp;rsquo;enfant se trouve sur internet et est donc exposé aux méfaits potentiels de ce dernier si l&amp;rsquo;ordinateur familial n&amp;rsquo;est pas protégé. De plus l&amp;rsquo;environnement (plugin flash, navigateur web, système d&amp;rsquo;exploitation) peut à tout moment venir perturber le jeux sous le coup d&amp;rsquo;une mauvaise manipulation de l&amp;rsquo;enfant et risque ainsi de le bloquer, voire de le décourager.&lt;/p&gt;


&lt;p&gt;A ces problèmes &lt;em&gt;techniques&lt;/em&gt; ajoutons également le fait que la plupart des sites ludiques nécessitent rapidement un abonement pour devenir intéressants ou bien se voient envahis par &lt;a href=&quot;http://www.tfou.fr&quot;&gt;des contenus commerciaux animés&lt;/a&gt; qui peuvent déstabiliser (lobotomiser&amp;thinsp;?) ce dernier.&lt;/p&gt;


&lt;h2&gt;Le besoin ....&lt;/h2&gt;


&lt;p&gt;L&amp;rsquo;idée est donc de développer un système d&amp;rsquo;exploitation complet qui sera dédié à cette tranche d&amp;rsquo;âge tel que l&amp;rsquo;enfant n&amp;rsquo;y soit pas perdu quelque soit la situation. Ce système doit posséder les caractéristiques suivantes&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;être assez simple pour qu&amp;rsquo;un enfant de 3 ans puisse le manipuler sans l&amp;rsquo;aide de ses parents, de l&amp;rsquo;allumage de l&amp;rsquo;ordinateur à l&amp;rsquo;extinction&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;donner accès à une multitude d&amp;rsquo;activités ludiques ou éducatives dans la langue maternelle de l&amp;rsquo;enfant&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;être évolutif et permettre aux parents de sélectionner les activités à proposer à l&amp;rsquo;enfant&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;utiliser massivement les formes, les couleurs et les sons pour tout ce qui concerne la navigation&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;permettre un traitement personnalisé dans le cadre d&amp;rsquo;une utilisation par plusieurs enfants&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;le tout entièrement basé sur des logiciels et du contenu &quot;libre&quot; (au sens des 4 libertés fondamentales)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plusieurs développements peuvent être intégrés à ce système, on peut notamment citer&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://gcompris.net/-fr-&quot;&gt;GCompris&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://childsplay.sourceforge.net/&quot;&gt;Childsplay&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tuxpaint.org/&quot;&gt;TuxPaint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pysycache.org/&quot;&gt;Pysycache&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.programming.de/freeware_windows_games.php&quot;&gt;Simple Paint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tuxtype.sourceforge.net/&quot;&gt;Tux Typing 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://fillets.sourceforge.net/&quot;&gt;Fish Fillets&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et pour ce qui est des frameworks de développement&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://clic.xtec.net/en/jclic/index.htm&quot;&gt;Jclic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.squeak.org/&quot;&gt;Squeak&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pygame.org&quot;&gt;pyGame&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Idées ...&lt;/h2&gt;


&lt;p&gt;De mon point de vue, il faut conserver l&amp;rsquo;idée d&amp;rsquo;&quot;environnement de bureau&quot; tels que l&amp;rsquo;ont les adultes, mais l&amp;rsquo;adapter. De cette manière, l&amp;rsquo;enfant pourra plus facilement migrer vers le modèle plus traditionnel d&amp;rsquo;ordinateur et de système d&amp;rsquo;exploitation en grandissant. Il faut cependant guider l&amp;rsquo;enfant dans ses jeux, pour ce faire, une mascotte est la bienvenue. Elle accompagne l&amp;rsquo;enfant dans le choix de ses jeux, lors du jeux et le félicite ou l&amp;rsquo;encourage selon la réussite de ce dernier.&lt;/p&gt;


&lt;p&gt;Les jeux se lancent comme des applications traditionnelles, mais ne doivent pas pouvoir occuper tout l&amp;rsquo;écran afin de toujours conserver des repères qui permettront à l&amp;rsquo;enfant de retrouver ses marques à tout moment. Ces jeux doivent également s&amp;rsquo;intégrer à l&amp;rsquo;environnement par le biais d&amp;rsquo;une charte graphique ainsi qu&amp;rsquo;une traduction dans la langue maternelle de l&amp;rsquo;enfant.&lt;/p&gt;


&lt;p&gt;Des niveaux de difficultés doivent être proposés en fonction de la réussite de l&amp;rsquo;enfant sur les jeux précédents en prenant en compte les capacités de l&amp;rsquo;enfant (ex&amp;nbsp;: capacité à reconnaître les couleurs, les sons, les images, ....). Le système évolue ainsi en même temps que l&amp;rsquo;enfant progresse ... de manière transparent. Bien sûr, la progression est limitée, mais elle doit tout de même être sensible. Ce suivi peut par exemple être réalisée par la mascotte accompagnatrice. Le système &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/dbus&quot; hreflang=&quot;en&quot;&gt;DBUS&lt;/a&gt; semble totalement adapté à cette communication entre la mascotte, le système, les jeux ...&lt;/p&gt;


&lt;p&gt;L&amp;rsquo;idée est lancée ... un groupe de personnes sur Nantes semble paré à tenter l&amp;rsquo;aventure ... voyons si comme à son habitude la communauté du libre va être capable de répondre rapidement et avec qualité à la demande.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Mise en place d'un dépôt subversion local</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/08/09/Mise-en-place-d-un-depot-subversion-local</link>
    <guid isPermaLink="false">urn:md5:0b2fbbe49e0bcb6e059242ea32ab75ed</guid>
    <pubDate>Saturday, May 26 2007</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>subversion</category>    
    <description>&lt;p&gt;Subversion est gestionnaire de versions de fichiers extrêmement pratique pour gérer les modifications sur les fichiers sources d&amp;rsquo;un projet.&lt;/p&gt;


&lt;p&gt;Nous allons décrire ci-dessous les méthodes permettant de mettre en place un dépôt local subversion afin d&amp;rsquo;utiliser subversion pour gérer les fichiers d&amp;rsquo;un projet.&lt;/p&gt;    &lt;h2&gt;Installation des utilitaires nécessaires&lt;/h2&gt;


&lt;p&gt;Pour la mise en place d&amp;rsquo;un dépôt local, seul le paquet {subversion} est nécessaire. Suivant le gestionnaire de paquet de votre distribution, lancez son processus d&amp;rsquo;installation. Pour Debian&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
apt-get install subversion
&lt;/pre&gt;


&lt;p&gt;Pour Ubuntu, utilisez l&amp;rsquo;application graphique d&amp;rsquo;ajout/suppression, sélectionnez le paquet &lt;em&gt;subversion&lt;/em&gt; pour installation et appliquez les changements.&lt;/p&gt;


&lt;h2&gt;Préparation des fichiers pour lesquels le dépôt est créé&lt;/h2&gt;


&lt;p&gt;Subversion laisse libre la hiérarchie du dépôt, cependant, comme le préconise &lt;a href=&quot;http://svnbook.red-bean.com/nightly/en/svn.tour.importing.html#svn.tour.importing.layout&quot; hreflang=&quot;en&quot;&gt;le livre officiel&lt;/a&gt;, il est préférable de placer à la racine du dépôt les trois dossiers&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;trunk (&lt;em&gt;contenant la version courante&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;tags (&lt;em&gt;répertoriant les différents tags&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;branches (&lt;em&gt;répertoriant les différentes branches de développement&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ne vous formalisez pas trop sur l&amp;rsquo;utilisation de ces dits répertoires, vous découvrirez leur utilité au fur et à mesure de votre utilisation. Pour le moment, concentrons-nous sur la création de cette hiérarchie&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ mkdir /tmp/depot_a_importer
shell$ cd /tmp/depot_a_importer
shell$ mkdir trunk tags branches
&lt;/pre&gt;


&lt;p&gt;Et plaçons le contenu que l&amp;rsquo;on a déjà dans le répertoire &lt;em&gt;trunk&lt;/em&gt;. En effet, c&amp;rsquo;est ce répertoire qui est le plus utilisé, il contiendra la version courante du dépôt.&lt;/p&gt;

&lt;pre&gt;
shell$ tar -xzvf mes_fichiers_sources.tar.gz -C /tmp/depot_a_importer/trunk
&lt;/pre&gt;


&lt;p&gt;Si vos sources ne sont pas présentes dans une archive, copiez les directement dans le répertoire &lt;em&gt;trunk&lt;/em&gt;.&lt;/p&gt;


&lt;h2&gt;Création du dépôt&lt;/h2&gt;


&lt;p&gt;La gestion des dépôts se fait par le biais de l&amp;rsquo;utilitaire &lt;em&gt;svnadmin&lt;/em&gt;. Si par hasard ce dernier n&amp;rsquo;est pas installé en même temps que &lt;em&gt;svn&lt;/em&gt;, regardez si votre distribution n&amp;rsquo;offre pas un paquet &lt;em&gt;svn-utils&lt;/em&gt; ou quelque chose d&amp;rsquo;équivalent.&lt;/p&gt;


&lt;p&gt;Placez-vous à l&amp;rsquo;endroit où vous souhaitez placer votre dépôt svn. Sachez toutefois que vous ne manipulerez jamais le dépôt, mais seulement le checkout de ce dernier qui sera placé à un autre emplacement. Placer un répertoire &lt;em&gt;svn-depot&lt;/em&gt; à la racine du système de fichier est une solution acceptable. Le répertoire &lt;em&gt;/var/db&lt;/em&gt; est également un emplacement possible.&lt;/p&gt;


&lt;p&gt;Nous allons créer le dépôt dans un répertoire spécifique sous le répertoire &lt;em&gt;/home&lt;/em&gt;, mais pas dans notre répertoire home&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ mkdir -p /home/www-data/subversion
shell$ cd /home/www-data/subversion
shell$ svnadmin create mon_depot
&lt;/pre&gt;


&lt;p&gt;Vous devriez maintenant voir apparaître un dossier nommé &lt;em&gt;mon_depot&lt;/em&gt; dans ce répertoire avec en son sein tout un tas de choses&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ ls mon_depot
conf  dav  db  format  hooks  locks  README.txt
&lt;/pre&gt;


&lt;p&gt;Voilà, le dépôt est créé, importons-y maintenant les fichiers que nous avons préparé dans le répertoire &lt;em&gt;/tmp&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ svn import /tmp/depot_a_importer file:///home/www-data/subversion/mon_depot/mon_projet -m &amp;quot;First Import&amp;quot;
&lt;/pre&gt;


&lt;p&gt;Un dépôt peut gérer plusieurs projets, nous ajoutons ici au dépôt les fichiers que nous plaçons dans un nouveau projet que nous appelons &lt;em&gt;mon_projet&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Vous pouvez lister les projets contenus dans un dépôt&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ svn list file:///home/www-data/subversion/mon_depot/
mon_projet/
&lt;/pre&gt;


&lt;h2&gt;Récupérer les fichiers du dépôt&lt;/h2&gt;


&lt;p&gt;Maintenant que nos fichiers sont gérés en amont dans le dépôt, nous pouvons en récupérer une copie de travail. En effet, si vous regardez dans le répertoire du dépôt, vous vous appercevrez qu&amp;rsquo;il n&amp;rsquo;y a aucun fichier qui ressemble à ce que nous y avons importé.&lt;/p&gt;


&lt;p&gt;Pour récupérer la dernière version des fichiers dans un répertoire&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ svn checkout file:///home/www-data/subversion/mon_depot/mon_projet/trunk ~/fichiers-du-projet
Révision 1 extraite.
&lt;/pre&gt;


&lt;p&gt;Placez vous maintenant dans le répertoire &lt;em&gt;~/fichiers-du-projet&lt;/em&gt;, vous y retrouvez tout vos fichiers...&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Adaptateur USB - Série</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/08/09/Adaptateur-USB-Serie</link>
    <guid isPermaLink="false">urn:md5:78cbd6c1c15dbbe9d114eeb70a7d4584</guid>
    <pubDate>Saturday, May 26 2007</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>bidouille</category><category>driver</category><category>linux</category><category>matériel</category>    
    <description>&lt;p&gt;Si vous aimez bidouillez un tant soit peu d&amp;rsquo;électronique pilotée par informatique, vous êtes certainement frustrés de ne plus voir de ports séries sur les nouveau PCs et notamment les PCs portables.&lt;/p&gt;


&lt;p&gt;La solution existe cependant&amp;nbsp;: les convertisseurs USB - Série&lt;/p&gt;    &lt;p&gt;Etant donné que je voulais pouvoir faire des choses amusantes avec les routeurs de type &lt;a href=&quot;http://fr.wikipedia.org/wiki/WRT54G&quot; hreflang=&quot;fr&quot;&gt;Linksys WRT&lt;/a&gt; avec &lt;a href=&quot;http://www.nantes-wireless.org&quot; hreflang=&quot;fr&quot;&gt;Nantes-Wireless&lt;/a&gt; (de ce &lt;a href=&quot;http://www.nantes-wireless.org/pages/wiki/index.php?pagename=NWFirmware54GLIntegration&quot; hreflang=&quot;fr&quot;&gt;style&lt;/a&gt; notamment), il me fallait un moyen de me procurer un port série. J&amp;rsquo;avais certes des ports séries sur mes machines de bureau, mais j&amp;rsquo;effectue la plupart de mon travail de développement avec mon portable.&lt;/p&gt;


&lt;h2&gt;Achat d&amp;rsquo;un convertisseur USB - Série&lt;/h2&gt;


&lt;p&gt;Si les ports séries ont disparus des listes des interfaces en standard sur les PCs portables, les ports USB eux ont litérallement trouvés leur place. Il est en effet impossible de ne pas passer à côté d&amp;rsquo;une paire de ports USB lors de l&amp;rsquo;achat d&amp;rsquo;une nouvelle machine.&lt;/p&gt;


&lt;p&gt;L&amp;rsquo;USB, comme son nom l&amp;rsquo;indique (Universal Serial Bus&amp;nbsp;: Ports Série Universel) est également un port série. Il sont certes beaucoup plus évolués que les ports séries d&amp;rsquo;origine, mais le principe reste le même. Il est donc ainsi possible de transformer un port USB en un port série classique.&lt;/p&gt;


&lt;p&gt;J&amp;rsquo;ai porté mon dévolu sur le convertisseur série 1 port en vente sur &lt;a href=&quot;http://www.materiel.net/details_040361.html&quot; hreflang=&quot;fr&quot;&gt;matériel.net&lt;/a&gt;. Il est basé sur le chipset &lt;em&gt;Prolific Technology Inc.&lt;/em&gt; très bien reconnu par Linux sous le nom &lt;em&gt;PL2303&lt;/em&gt;.&lt;/p&gt;


&lt;h2&gt;Compilation du module pour Linux&lt;/h2&gt;


&lt;p&gt;Ce genre de périphérique est assez rarement supporté par défaut dans les distributions, il va donc être nécessaire de compiler le module à partir des sources du noyau. Je considère que vous êtes capable de récupérer les sources du noyau pour votre distribution et de les placer dans le répertoire&amp;nbsp;: &lt;em&gt;/usr/src/linux&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Placez-vous dans ce répertoire et ajoutez les lignes&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_PL2303=m
&lt;/pre&gt;


&lt;p&gt;au fichier &lt;em&gt;.config&lt;/em&gt; afin d&amp;rsquo;activer le support du convertisseur.&lt;/p&gt;


&lt;p&gt;Lancez alors la compilation des modules, suivi de leur installation&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# make modules
   CHK     include/linux/version.h
   HOSTLD  scripts/kconfig/conf
   SPLIT   include/linux/autoconf.h -&amp;gt; include/config/*
   Building modules, stage 2.
   MODPOST
   CC [M]  drivers/usb/serial/usbserial.o
   CC [M]  drivers/usb/serial/pl2303.o
   LD [M]  drivers/usb/serial/usbserial.ko
shell# make modules_install
   INSTALL drivers/usb/serial/pl2303.ko
   INSTALL drivers/usb/serial/safe_serial.ko
   INSTALL drivers/usb/serial/usbserial.ko
&lt;/pre&gt;


&lt;h2&gt;Chargement du module&lt;/h2&gt;


&lt;p&gt;Maintenant que le module est compilé et installé, vous pouvez le charger à l&amp;rsquo;aide de la commande&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# modprobe pl2303
&lt;/pre&gt;


&lt;p&gt;Vérifiez qu&amp;rsquo;il est bien reconnu comme chargé&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# lsmod
 Module                  Size  Used by
 pl2303                 16068  0
 usbserial              25064  1 pl2303
&lt;/pre&gt;


&lt;p&gt;Branchez maintenant votre convertisseur, puis faites&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# dmesg
 hub 3-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101
 usb 3-1: new full speed USB device using uhci_hcd and address 3
 usb 3-1: default language 0x0409
 usb 3-1: new device strings: Mfr=1, Product=2, SerialNumber=0
 usb 3-1: Product: USB-Serial Controller
 usb 3-1: Manufacturer: Prolific Technology Inc.
 usb 3-1: uevent
 usb 3-1: device is bus-powered
 usb 3-1: configuration #1 chosen from 1 choice
 usb 3-1: adding 3-1:1.0 (config #1, interface 0)
 usb 3-1:1.0: uevent
 usbserial_generic 3-1:1.0: usb_probe_interface
 usbserial_generic 3-1:1.0: usb_probe_interface - got id
 pl2303 3-1:1.0: usb_probe_interface
 pl2303 3-1:1.0: usb_probe_interface - got id
 pl2303 3-1:1.0: pl2303 converter detected
 usb 3-1: pl2303 converter now attached to ttyUSB0
 drivers/usb/core/inode.c: creating file '003'
 hub 3-0:1.0: state 7 ports 2 chg 0000 evt 0002
&lt;/pre&gt;


&lt;p&gt;Si tout s&amp;rsquo;est bien passé, le périphérique est reconnu par les drivers et il est accessible par le biais d&amp;rsquo;un fichier {dev}&amp;nbsp;; ici&amp;nbsp;: {/dev/ttyUSB0}.&lt;/p&gt;


&lt;h2&gt;Connexion à /dev/ttyUSB0&lt;/h2&gt;


&lt;p&gt;L&amp;rsquo;avantage d&amp;rsquo;un port série c&amp;rsquo;est qu&amp;rsquo;il est maintenant possible de se connecter à un terminal (par exemple à celui du WRT&amp;thinsp;;) ). Pour ce faire, il faut utiliser la commande {stty} (pour Serial TTY)&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
 shell# stty -F /dev/ttyUSB0
&lt;/pre&gt;


&lt;p&gt;Il se peut que vous n&amp;rsquo;ayez pas les droits d&amp;rsquo;accéder au fichier spécial &lt;em&gt;/dev/ttyUSB0&lt;/em&gt;. Placez alors les permissions sur ce fichier comme ça vous arrange. Il se peut également que vous pouissiez vous ajouter au groupe &lt;em&gt;tty&lt;/em&gt; présent sur plusieurs distributions.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Bouton &quot;Imprimer&quot; désactivé sous Ubuntu (Gnome)</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/08/09/Bouton-Imprimer-desactive-sous-Ubuntu-Gnome</link>
    <guid isPermaLink="false">urn:md5:bde9d7c1a74047230c785f82b40cbd23</guid>
    <pubDate>Monday, May 14 2007</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>administration</category><category>cups</category><category>gnome</category><category>imprimantes</category>    
    <description>&lt;p&gt;Vous venez de passer à Feisty et vous vous rendez compte que le bouton &quot;Imrpimer&quot; ne s&amp;rsquo;active plus lorsque vous voulez imprimer alors que votre imprimante est détectée et prête&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;Quelque soit le programme GTK, le bouton &quot;Imprimer&quot; reste désespérement grisé alors que toutes vos imprimantes semblent correctement installées et prêtes à imprimer. Ceci est un bug connu de Gnome qui nécessite une petite manipulation pour être &quot;corrigé&quot; en attendant une prochaine version.&lt;/p&gt;    &lt;p&gt;En réalité, le système d&amp;rsquo;impression vérifie l&amp;rsquo;existence d&amp;rsquo;un fichier &lt;em&gt;ppd&lt;/em&gt; dans &lt;em&gt;/etc/cups/ppd/&lt;/em&gt; et si il ne le trouve pas, il met l&amp;rsquo;imprimante en erreur.&lt;/p&gt;


&lt;p&gt;La solution simple en attendant de voir le bug corrigé est de créer un fichier vide correspondant à chaque imprimante qui n&amp;rsquo;en possède pas. Ceci se réalise en deux étapes&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;Premièrement,&amp;rsquo; récupérer l&amp;rsquo;identifiant de l&amp;rsquo;imprimante à l&amp;rsquo;aide de la commande &lt;em&gt;lpstat -v&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# lpstat -v
périphérique pour Laser_1erHP : http://servimp:631/printers/laser_1erhp
périphérique pour Laser_2ndHP : http://servimp:631/printers/laser_2ndhp
périphérique pour Laser_rdc-HP : http://servimp:631/printers/laser_rdc
périphérique pour sharp_2nd : ipp://172.16.9.59:631/printers/sharp_2nd
périphérique pour sharpcouleur : ipp://172.16.9.59:631/printers/sharpcouleur
&lt;/pre&gt;


&lt;p&gt;Dans le résultat ci-dessus, nous avons donc 5 imprimantes identifiées dans l&amp;rsquo;ordre par&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Laser_1erHP&lt;/li&gt;
&lt;li&gt;Laser_2ndHP&lt;/li&gt;
&lt;li&gt;Laser_rdc-HP&lt;/li&gt;
&lt;li&gt;sharp_2nd&lt;/li&gt;
&lt;li&gt;sharpcouleur&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Deuxièmement, créer un fichier correspondant au nom de l&amp;rsquo;imprimante suivi avec une extension &lt;em&gt;ppd&lt;/em&gt; dans le répertoire &lt;em&gt;/etc/cups/ppd/&lt;/em&gt;. Par exemple&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# sudo touch /etc/cups/ppd/Laser_1erHP.ppd
&lt;/pre&gt;


&lt;p&gt;Si vous avez plusieurs imprimantes, et que vous n&amp;rsquo;avez pas envie de les recréer à la main, voici un petit code shell qui le fera pour vous&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
for print in $(lpstat -v | cut -d' ' -f3); do
   if [ ! -f /etc/cups/ppd/$print.ppd ]; then 
       sudo touch /etc/cups/ppd/$print.ppd
   fi
done
&lt;/pre&gt;


&lt;p&gt;Et voilà ... vous devriez maintenant de nouveau pouvoir imprimer depuis ces imprimantes.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Installation d'un serveur de mail sous Debian</title>
    <link>http://www.grdscarabe.net/index.php?post/2007/04/28/Installation-d-un-serveur-de-mail-sous-Debian</link>
    <guid isPermaLink="false">urn:md5:1571b81cca69c1ebc253d97e487f1e5d</guid>
    <pubDate>Saturday, April 28 2007</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>administration</category><category>debian</category><category>linux</category><category>mail</category><category>postfix</category><category>réseau</category>    
    <description>&lt;p&gt;L&amp;rsquo;installation d&amp;rsquo;un serveur de mail est une étape &quot;initiatrice&quot; qui permet de sauter le pas vers l&amp;rsquo;administration système avancée... L&amp;rsquo;email est en effet une partie très technique d&amp;rsquo;internet&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;La mise en place d&amp;rsquo;une serveur email - smtp, imap, ... - est un petit peu technique, mais pas inaccessible grâce aux merveilleux serveurs développés par la communauté. En route pour le chemin initiatique ...&lt;/p&gt;    &lt;h2&gt;Installation du serveur Postfix&lt;/h2&gt;


&lt;p&gt;Si vous connaissez un petit peu  l&amp;rsquo;administration sous Debian, alors vous n&amp;rsquo;allez pas être surpris de commencer par la commande suivante&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# apt-get install postfix postfix-doc
&lt;/pre&gt;


&lt;p&gt;Selon le niveau de votre &lt;em&gt;DEBCONF&lt;/em&gt;, vous aurez plus ou moins de questions sur la configuration. Répondez simplement &lt;em&gt;Internet Site&lt;/em&gt; à la question sur le type de configuration général. Choisissez également l&amp;rsquo;adresse à laquelle faire suivre les messages destinés à &lt;em&gt;root&lt;/em&gt;. Donnez également la liste des domaines pour lesquels le serveur doit accepter les emails, séparés par des espaces.&lt;/p&gt;


&lt;p&gt;Pour ce qui est des mises à jour synchrones, il n&amp;rsquo;est pas utile des les activer. En effet, il y a vraiment peu de chance qu&amp;rsquo;un email soit perdu. Ne l&amp;rsquo;activez donc que si votre serveur ne doit absoluement pas perdre un seul email.&lt;/p&gt;


&lt;p&gt;Une fois ces diverses questions répondues, l&amp;rsquo;installation devrait se dérouler normalement... et vous devriez vous retrouver avec un serveur Postfix fonctionnel, mais très certainement pas configuré exactement selon vos besoins. La configuration du serveur se trouve dans le fichier &lt;em&gt;/etc/postfix/main.cf&lt;/em&gt;, nous allons y jeter un coup d&amp;rsquo;oeil.&lt;/p&gt;


&lt;h2&gt;Configuration du DNS&lt;/h2&gt;


&lt;p&gt;La première chose à faire est de configurer le serveur DNS pour choisir le nom sous-lequel le serveur va s&amp;rsquo;authentifier. La configuration d&amp;rsquo;un DNS sort du cadre de cet article, je me contenterai donc du minimum. Dans votre fichier &lt;em&gt;/etc/bind/db.mon_domaine&lt;/em&gt;, ajoutez deux lignes du type&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
mail .mon_domaine.   A      mon_ip_publique
@       MX      5       mail.mon_domaine.
&lt;/pre&gt;


&lt;p&gt;La ligne avec le &lt;em&gt;CNAME&lt;/em&gt; déclare un nouveau sous-domaine, tandis que la ligne avec le MX indique que le serveur qui prend en charge le courrier email de ce domaine est celui indiqué par le troisième champs. Le deuxième champs indique la priorité du serveur indiqué par cette entrée. N&amp;rsquo;oubliez pas non plus de modifier le &lt;em&gt;Serial&lt;/em&gt; afin de forcer la synchronisation des autres serveurs DNS.&lt;/p&gt;


&lt;p&gt;Vérifiez que la zone est toujours valide par le biais des utilitaires bind&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# named-checkzone mon_domaine /etc/bind/db.mon_domaine
zone mon_domain/IN: loaded serial 2007042301
OK
&lt;/pre&gt;


&lt;p&gt;Si tout se passe bien, vous pouvez simplement recharger la configuration du serveur DNS&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# /etc/init.d/bind9 reload
&lt;/pre&gt;


&lt;p&gt;Testez alors de l&amp;rsquo;extérieur les réponses du serveur - il se peut qu&amp;rsquo;il soit nécessaire d&amp;rsquo;attendre plusieurs heures avant que les changements ne soient visibles de l&amp;rsquo;extérieur -&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ dig mx festepreuves.com

; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.4.0 &amp;lt;&amp;lt;&amp;gt;&amp;gt; mx festepreuves.com
;; global options:  printcmd
;; Got answer:
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 12940
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;festepreuves.com.              IN      MX

;; ANSWER SECTION:
festepreuves.com.       10800   IN      MX      5 mail.festepreuves.com.

;; ADDITIONAL SECTION:
festepreuves.com.       10800   IN      A       81.56.231.122

;; Query time: 140 msec
;; SERVER: 10.44.27.1#53(10.44.27.1)
;; WHEN: Mon Apr 23 23:47:43 2007
;; MSG SIZE  rcvd: 71
&lt;/pre&gt;


&lt;p&gt;Au passage, un petit site très pratique pour tester la configuration de ses serveurs DNS&amp;nbsp;: &lt;a href=&quot;http://pingability.com/zoneinfo.jsp&quot; title=&quot;http://pingability.com/zoneinfo.jsp&quot;&gt;http://pingability.com/zoneinfo.jsp&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Désormais, le serveur DNS est paré à router tranquillement les emails à destination de notre domaine vers notre serveur. Il ne reste plus qu&amp;rsquo;à configurer correctement ce dernier&amp;nbsp;:)&lt;/p&gt;


&lt;h2&gt;Configuration du serveur SMTP (Postfix)&lt;/h2&gt;


&lt;p&gt;Lançons-nous dans la lecture ... et la compréhension je l&amp;rsquo;espère, du fichier &lt;em&gt;main.cf&lt;/em&gt;. Choisissez votre éditeur préférez et ouvrez le fichier. Ce dernier ne fait qu&amp;rsquo;une vingtaine de lignes ... comparé à un Apache ça semble être du gâteau&amp;nbsp;! Rassuré&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;La première chose que nous allons modifier est le contenu de la variable &lt;em&gt;myhostname&lt;/em&gt;, cette dernière doit correspondre au nom du serveur email. En gros il faut y mettre ce que vous avez placé dans le champs MX sur votre serveur DNS&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
myhostname = my_domaine
&lt;/pre&gt;


&lt;p&gt;La variable &lt;em&gt;relayhost&lt;/em&gt; définit si l&amp;rsquo;on passe par un serveur SMTP tiers, ou bien si l&amp;rsquo;on gère nous même l&amp;rsquo;envoi de nos messages. Si nous mettons en place notre propre serveur, c&amp;rsquo;est bien pour ne pas dépendre d&amp;rsquo;autres. Laissons donc cette variable vide&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
relayhost =
&lt;/pre&gt;


&lt;p&gt;La variable &lt;em&gt;inet_interfaces&lt;/em&gt; permet de spécifier les interfaces réseaux sur lesquels doit répondre le serveur. Dans notre cas, nous désirons pouvoir poster du réseau local et d&amp;rsquo;internet, il est donc nécessaire d&amp;rsquo;activer toutes les interfaces&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
inet_interfaces = all
&lt;/pre&gt;


&lt;p&gt;La variable &lt;em&gt;masquerade_domain&lt;/em&gt; permet d&amp;rsquo;indiquer au serveurs que certains domaines ou sous-domaines ne doivent pas être conservés tels quels, mais transformés. Ainsi, notre serveur répond au sous-domaine &lt;em&gt;mail.mon_domain.com&lt;/em&gt;, mais nous voulons que les mails soient envoyés avec l&amp;rsquo;adresse&amp;nbsp;: &lt;em&gt;mon_domain.com&lt;/em&gt;.
Indiquons donc que le domaine &lt;em&gt;mail.mon_domain.com&lt;/em&gt; doit être géré par le masquerading&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
masquerade_domains = mail.mon_domain.com 
masquerade_exceptions =
&lt;/pre&gt;


&lt;p&gt;Les alias permettent de mettre en relation des adresses du serveur local et d&amp;rsquo;autres utilisateurs ou adresses. Pour le moment nous allons stocker ces adresses dans le fichier &lt;em&gt;/etc/aliases&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
&lt;/pre&gt;


&lt;h2&gt;Test du fonctionnement du serveur de mail&lt;/h2&gt;


&lt;p&gt;La configuration du serveur est certe incomplète car il manque le stockage des emails et leur consultation à distance, la gestion de plusieurs noms de domaine, la vérification du contenu par un antivirus, l&amp;rsquo;anti-spam, ... mais chaque chose en son temps.&lt;/p&gt;


&lt;p&gt;Commençons par recharger la configuration du serveur avec la commande suivante&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# /etc/init.d/postfix reload
Reloading Postfix configuration...done.
&lt;/pre&gt;


&lt;p&gt;Si tout va bien il ne devrait pas y avoir de messages d&amp;rsquo;erreur. Maintenant, tentez de vous envoyer un message à vous même (en gras ce que vous devez taper) à partir du serveur directement&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ mail -s &amp;quot;Petit test&amp;quot; moi@mon_domain.com
 Voilà, c'est juste un petit test pour voir
 .
 Cc:
shell$
&lt;/pre&gt;


&lt;p&gt;Vérifions que le message a bien été reçu&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
&amp;quot;/var/mail/moi&amp;quot;: 1 message 1 new
&amp;gt;N  1 moi@mon_do  Sat Apr 28 14:20   14/517   Petit test
&amp;amp; {{1}}
Message 1:
From grdscarabe@festepreuves.com  Sat Apr 28 14:20:59 2007
X-Original-To: grdscarabe@festepreuves.com
To: grdscarabe@festepreuves.com
Subject: Petit test
Date: Sat, 28 Apr 2007 14:20:59 +0200 (CEST)
From: grdscarabe@festepreuves.com (GrdScarabe)

Juste un test

&amp;amp; q
&lt;/pre&gt;


&lt;p&gt;Il semble bien que ça fonctionne. Attelons-nous maintenant à ajouter un alias dans le fichier &lt;em&gt;/etc/alias&lt;/em&gt;. Par exemple, étant donné que nous n&amp;rsquo;avons pas mis en place de moyen de récupérer les messages, renvoyons-les vers une adresse que nous possédons déjà&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# vi /etc/aliases
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: moi
moi: moi@mon_autre_adresse.fr
shell# postalias /etc/aliases
&lt;/pre&gt;


&lt;p&gt;La commande &lt;em&gt;postalias&lt;/em&gt; permet de mettre à jour la base des alias auprès du serveur, sinon il n&amp;rsquo;aurait pas pris en compte votre modification dans &lt;em&gt;/etc/aliases&lt;/em&gt;. Envoyons alors maintenant un message à cette adresse&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell$ mail -s &amp;quot;Petit test des alias&amp;quot; moi@mon_domain.com
 Voilà, c'est juste un petit test pour voir si les alias fonctionnent
 .
 Cc:
&lt;/pre&gt;


&lt;p&gt;Une fois le message parti, allez voir dans la boîte que vous avez spécifié au niveau de l&amp;rsquo;alias. Le message doit y apparaître&amp;nbsp;:) Bravo ... vous avez mis en place votre premier serveur de mail. Offrons lui l&amp;rsquo;ouverture sur le monde  maintenant ...&lt;/p&gt;


&lt;h2&gt;Configuration du firewall&lt;/h2&gt;


&lt;p&gt;Si vous voulez que votre serveur accepte des mails provenant de l&amp;rsquo;extérieur, il est nécessaire de laisser le port 25 ouvert au niveau de votre firewall&amp;nbsp;! Si vous êtes chez free, commencez par lire &lt;a href=&quot;http://www.grdscarabe.net/dotclear/index.php?post/2007/01/27/Desactiver-le-blocage-du-port-25-envoie-d-emails-sur-la-Freebox&quot;&gt;cet article&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Pour ma part j&amp;rsquo;utilise directement &lt;em&gt;iptables&lt;/em&gt; pour gérer mon firewall, je ne décrirai donc que cette méthode qui est de toute manière certainement la plus &lt;em&gt;complexe&lt;/em&gt;. Il y a de fortes chances que si vous n&amp;rsquo;utilisez pas &lt;em&gt;iptables&lt;/em&gt;, il suffise de spécifier à votre firewall de laisser passer les emails ou de débloquer le port 25.&lt;/p&gt;


&lt;p&gt;La chaîne permettant d&amp;rsquo;autoriser l&amp;rsquo;accès au port 25 et bloquer le reste par le biais d&amp;rsquo;iptables est la suivante&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
shell# iptables -A INPUT -j REJECT
&lt;/pre&gt;


&lt;p&gt;Si toutefois vous avez d&amp;rsquo;autres serveurs tournant sur la machine avec leur propre configuration du firewall, il est certainement préférable d&amp;rsquo;utiliser la chaîne suivante&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# iptables -I INPUT 1 -p tcp --dport 25 -j ACCEPT
&lt;/pre&gt;


&lt;p&gt;Si vous voulez en savoir plus sur les règles iptales, je vous conseille de lire &lt;a href=&quot;http://www.grdscarabe.net/dotclear/index.php?post/2008/08/09/Securiser-l-acces-aux-serveurs-grace-a-iptables&quot;&gt;cet article&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Vous devriez maintenant pouvoir envoyer/recevoir des mails de votre domaine d&amp;rsquo;un peu n&amp;rsquo;importe où dans le monde&amp;nbsp;:)&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Utiliser tkinter sous Gentoo</title>
    <link>http://www.grdscarabe.net/index.php?post/2007/02/22/Utiliser-tkinter-sous-Gentoo</link>
    <guid isPermaLink="false">urn:md5:5bc9f8e7b64119898fc9af5f5e217a4f</guid>
    <pubDate>Thursday, February 22 2007</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>administration</category><category>gentoo</category><category>linux</category><category>python</category><category>tk</category>    
    <description>&lt;p&gt;Utilisation de l&amp;rsquo;interface &lt;q&gt;tk&lt;/q&gt; pour Python sous Gentoo.&lt;/p&gt;    &lt;p&gt;&lt;em&gt;tk&lt;/em&gt; est un toolkit graphique très simple à utiliser et qui peut s&amp;rsquo;interfacer avec des langages tels que &lt;em&gt;tcl&lt;/em&gt;, &lt;em&gt;C&lt;/em&gt; et surtout &lt;em&gt;Python&lt;/em&gt;. Pour ce dernier langage, la version de &lt;em&gt;tk&lt;/em&gt; interfacée se nomme &lt;em&gt;tkinter&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Sous Gentoo Linux il n&amp;rsquo;y a pas de paquet &lt;em&gt;tkinter&lt;/em&gt;, l&amp;rsquo;accès à la librairie s&amp;rsquo;obtient par le biais du &lt;em&gt;user flag&lt;/em&gt; &lt;strong&gt;tcltk&lt;/strong&gt;.  Selon vos habitudes, ajoutez ce flag à la main dans le fichier &lt;em&gt;/etc/make.conf&lt;/em&gt; ou bien utilisez l&amp;rsquo;éditeur &lt;em&gt;ufed&lt;/em&gt; comme montré ci-dessous&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/Gentoo/ufed.jpg&quot; alt=&quot;Sélection de tcl/tk avec ufed&quot; title=&quot;Sélection de tcl/tk avec ufed, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Vous pouvez ensuite réemerger Python par le biais des commandes&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# emerge --newuse python
shell# /usr/sbin/python-updater
&lt;/pre&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/Gentoo/pythonupdate.jpg&quot; alt=&quot;Lancement de python-update&quot; title=&quot;Lancement de python-update, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Vous devriez désormais avoir accès au module &lt;em&gt;tkinter&lt;/em&gt; et commencer à utiliser &lt;em&gt;tk&lt;/em&gt; pour vos développement graphiques avec Python&amp;thinsp;;)&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Désactiver le blocage du port 25 (envoie d'emails) sur la Freebox</title>
    <link>http://www.grdscarabe.net/index.php?post/2007/01/27/Desactiver-le-blocage-du-port-25-envoie-d-emails-sur-la-Freebox</link>
    <guid isPermaLink="false">urn:md5:507812455ee996f8a4712c1edc53ff1a</guid>
    <pubDate>Saturday, January 27 2007</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>administration</category><category>free</category><category>mail</category>    
    <description>&lt;p&gt;Depuis fin janvier 2007, Free - dans le cadre de la lutte contre le spam - a pris l&amp;rsquo;initiative de bloquer le port smtp (port 25) afin de limiter l&amp;rsquo;envoi d&amp;rsquo;emails de ses clients aux seuls serveurs &lt;em&gt;smtp.free.fr&lt;/em&gt;. Sachez que la fermeture du port 25 est une protection contre vous même. En effet, si vous n&amp;rsquo;utilisez pas d&amp;rsquo;autre fournisseur de compte email que Free, le blocage de ce port est une excellente chose. Il limite ainsi les risques de voir vos machines devenir des relais à Spam.&lt;/p&gt;


&lt;p&gt;Je vous conseille donc de suivre cette procédure si, et seulement si, vous êtes certain d&amp;rsquo;avoir besoin d&amp;rsquo;envoyer des emails par le biais d&amp;rsquo;autres serveurs que ceux de Free (ceux de votre entreprise, école, ...).&lt;/p&gt;    &lt;p&gt;Comme à son habitude, Free nous propose une manière simple de désactiver ce blocage, en utilisant l&amp;rsquo;interface en ligne sur &lt;a href=&quot;http://adsl.free.fr&quot; title=&quot;http://adsl.free.fr&quot;&gt;http://adsl.free.fr&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Connectez-vous donc à votre interface de gestion personnelle Freebox à l&amp;rsquo;aide de votre identifiant (ancien numéro de téléphone France Télécom), ainsi que de votre mot de passe. Une fois dans l&amp;rsquo;interface, cliquez sur la rubrique &lt;em&gt;Fonctionnalités optionnelles de la Freebox&lt;/em&gt; comme indiqué ci-dessous&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/Free/.freebox_port25_1_s.jpg&quot; alt=&quot;Interface de gestion Freebox&amp;nbsp;: fonctionnalités optionnelles&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Interface de gestion Freebox&amp;nbsp;: fonctionnalités optionnelles, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Sur la nouvelle page qui doit apparaître, cliquez alors sur le lien &lt;em&gt;configurer&lt;/em&gt; en face de &lt;em&gt;Autres fonctions&lt;/em&gt;, comme le montre l&amp;rsquo;image ci-dessous&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/Free/freebox_port25_2.jpg&quot; alt=&quot;Interface de gestion Freebox&amp;nbsp;: autres fonctionnalités optionnelles&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Interface de gestion Freebox&amp;nbsp;: autres fonctionnalités optionnelles, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Finalement, décoché la case &lt;em&gt;Blocage SMTP sortant&lt;/em&gt; puis cliquez sur &lt;em&gt;Envoyer&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/Free/freebox_port25_3.jpg&quot; alt=&quot;Interface de gestion Freebox&amp;nbsp;: blocage SMTP sortant&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Interface de gestion Freebox&amp;nbsp;: blocage SMTP sortant, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Il ne vous reste alors plus qu&amp;rsquo;à rebooter votre Freebox pour pouvoir envoyer de nouveau des emails par le biais de serveurs autres que ceux de Free.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Reprendre le contrôle du Web avec Firefox et Greasemonkey</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/08/09/Reprendre-le-controle-du-Web-avec-Firefox-et-Greasemonkey</link>
    <guid isPermaLink="false">urn:md5:c821685f993c11ed854813dd325da215</guid>
    <pubDate>Sunday, January 21 2007</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>firefox</category><category>greasemonkey</category><category>web</category>    
    <description>&lt;p&gt;Cet article montre, de manière didactique, le développement d&amp;rsquo;un &lt;em&gt;userscript&lt;/em&gt; pour &lt;a href=&quot;http://greasemonkey.mozdev.org&quot; hreflang=&quot;en&quot;&gt;Greasemonkey&lt;/a&gt;. Il part de l&amp;rsquo;installation de l&amp;rsquo;extension à l&amp;rsquo;écriture du code en passant par l&amp;rsquo;étude du besoin.&lt;/p&gt;


&lt;p&gt;La navigation sur le web nous ramène très souvent à parcourir encore et encore nos sites favoris. Cependant, il arrive que ces derniers aient parfois des petits défauts que nous aimerions bien pouvoir corriger afin de profiter encore mieux de leur contenu. Greasemonkey nous offre la possibilité d&amp;rsquo;écrire des scripts javascript qui nous permettrons de fixer ces petites impuretés et ainsi améliorer la lecture de nos sites favoris&amp;nbsp;!&lt;/p&gt;    &lt;h2&gt;Installation de l&amp;rsquo;extension&lt;/h2&gt;


&lt;p&gt;Greasemonkey est une &lt;a href=&quot;https://addons.mozilla.org/firefox/faq/&quot;&gt;extension&lt;/a&gt; du navigateur Web que l&amp;rsquo;on ne présente plus&amp;nbsp;: &lt;a href=&quot;http://www.mozilla.com/products/firefox&quot;&gt;Mozilla Firefox&lt;/a&gt;. Cette extension offre la possibilité de lancer automatiquement des scripts javascripts écrits par l&amp;rsquo;utilisateur (&lt;em&gt;userscript&lt;/em&gt;) et non le webmestre.&lt;/p&gt;


&lt;p&gt;Le processus d&amp;rsquo;installation est assez simple. Il suffit que vous vous rendiez sur la page &lt;a href=&quot;http://greasemonkey.mozdev.org&quot; title=&quot;http://greasemonkey.mozdev.org&quot;&gt;http://greasemonkey.mozdev.org&lt;/a&gt; avec Mozilla Firefox et que vous cliquiez sur le lien &lt;em&gt;Install Greasemonkey&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/Web/.greasemonkey_webpage_m.jpg&quot; alt=&quot;Page de GreaseMonkey&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Page de GreaseMonkey, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Une fenêtre vous demandant la confirmation d&amp;rsquo;installation de l&amp;rsquo;extension devrait alors apparaître. Par sécurité vous ne pouvez pas cliquer aussitôt sur le bouton d&amp;rsquo;installation et devez attendre 3 secondes&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/Web/.greasemonkey_install_s.jpg&quot; alt=&quot;Installation de l&amp;#039;extension GreaseMonkey&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Installation de l&amp;#039;extension GreaseMonkey, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Cliquez-alors sur le bouton &lt;em&gt;Installer&lt;/em&gt;, puis redémarrez Firefox.&lt;/p&gt;


&lt;p&gt;Au redémarrage de ce dernier, une nouvelle icône devrait apparaître en bas à droite de la barre des statuts&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/Web/greasemonkey_statusbar.jpg&quot; alt=&quot;Icône de GreaseMonkey dans la barre de status&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Icône de GreaseMonkey dans la barre de status, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Dans le cas où le visage du singe est grisé et que ce dernier fait la grimace, cliquez sur l&amp;rsquo;icône, puis dans le menu sur l&amp;rsquo;entrée &lt;em&gt;Enabled&lt;/em&gt;. Le visage devrait alors se colorer, indiquant que Greasemonkey fonctionne.&lt;/p&gt;


&lt;h2&gt;Installation et utilisation de &lt;em&gt;userscript&lt;/em&gt;&lt;/h2&gt;


&lt;p&gt;Si vous n&amp;rsquo;avez pas le courage, les compétences ou le temps d&amp;rsquo;écrire vos propres scripts, ne vous inquiétez pas beaucoup de personnes l&amp;rsquo;ont déjà fait pour vous&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Vous pouvez notamment vous en rendre compte en vous rendant sur le site &lt;a href=&quot;http://userscripts.org/&quot; title=&quot;http://userscripts.org/&quot;&gt;http://userscripts.org/&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Connaissez-vous le site &lt;em&gt;&lt;a href=&quot;http://www.atomfilms.com&quot;&gt;AtomFilms&lt;/a&gt;&lt;/em&gt;&amp;nbsp;? Pour l&amp;rsquo;exemple, installons un &lt;em&gt;&lt;a href=&quot;http://userscripts.org/scripts/show/1280&quot;&gt;userscript&lt;/a&gt;&lt;/em&gt; qui se lancera automatiquement lors de l&amp;rsquo;accès à ce site web. &lt;a href=&quot;http://userscripts.org/scripts/show/1280&quot;&gt;Ce userscript&lt;/a&gt; supprime les vidéos de publicité qui passent avant le visionnage.&lt;/p&gt;


&lt;p&gt;Pour l&amp;rsquo;installer, rendez-vous donc sur &lt;a href=&quot;http://userscripts.org/scripts/show/1280&quot;&gt;cette page&lt;/a&gt;, puis cliquez sur le lien &lt;em&gt;Install this script&lt;/em&gt; en haut à droite. Une boîte de dialogue dans ce style devrait s&amp;rsquo;afficher&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/Web/greasemonkey_installuserscript.jpg&quot; alt=&quot;Installation d&amp;#039;un user script avec GreaseMonkey&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Installation d&amp;#039;un user script avec GreaseMonkey, aoû 2008&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Cliquez sur &lt;em&gt;Install&lt;/em&gt;... et le script est aussitôt installé. Vous pouvez alors vous rendre sur &lt;a href=&quot;http://www.atomfilms.com&quot;&gt;AtomFilms&lt;/a&gt; et tester. Pour vous rendre compte de la différence, faites le test avec Greasmonkey activé, puis désactivé.&lt;/p&gt;


&lt;h2&gt;Exemple d&amp;rsquo;un besoin de &lt;em&gt;userscript&lt;/em&gt;&lt;/h2&gt;


&lt;p&gt;Vous connaissez très certainement les sites qui vous permettent de mettre en ligne gratuitement photos pour que vous puissiez les utiliser sur votre blog, comme le site &lt;a href=&quot;http://www.imagevenue.com&quot; title=&quot;http://www.imagevenue.com&quot;&gt;http://www.imagevenue.com&lt;/a&gt; par exemple&amp;nbsp;?&lt;/p&gt;


&lt;p&gt;Prenons l&amp;rsquo;exemple de ce site web&amp;nbsp;: &lt;a href=&quot;http://www.gtaforums.com/index.php?showtopic=248845&quot; title=&quot;http://www.gtaforums.com/index.php?showtopic=248845&quot;&gt;http://www.gtaforums.com/index.php?...&lt;/a&gt;, les images sont hébergées chez &lt;em&gt;imagevenue&lt;/em&gt;. Lorsque vous cliquez dessus, vous arrivez sur une page contenant la dite image, ainsi que des publicités et autres artifices. Cependant, ce qui nous intéresse c&amp;rsquo;est seulement l&amp;rsquo;image elle-même&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Grâce à Greasemonkey, il est possible de développer un script qui récupère automatiquement l&amp;rsquo;adresse de l&amp;rsquo;image et nous redirige automatiquement vers cette dernière.&lt;/p&gt;


&lt;p&gt;Avant d&amp;rsquo;écrire le script, nous devons commencer par étudier un peu les pages de &lt;a href=&quot;http://img138.imagevenue.com/view.php?loc=loc8&amp;amp;image=th_95426_Marathon_Lowoo_1.jpg&quot;&gt;ce type&lt;/a&gt;. A l&amp;rsquo;aide de l&amp;rsquo;explorateur de DOM on s&amp;rsquo;apperçoit rapidement que l&amp;rsquo;image qui nous intéresse est identifiée par l&amp;rsquo;id &lt;em&gt;thepic&lt;/em&gt;. L&amp;rsquo;accès à cette image est donc aisée, de même pour l&amp;rsquo;écriture de notre script.&lt;/p&gt;


&lt;h2&gt;Ecriture d&amp;rsquo;un &lt;em&gt;userscript&lt;/em&gt;&lt;/h2&gt;


&lt;h3&gt;Les contraintes pour un &lt;em&gt;userscript&lt;/em&gt;&lt;/h3&gt;


&lt;p&gt;Pour qu&amp;rsquo;un script javascript soit reconnu comme &lt;em&gt;userscript&lt;/em&gt; par Greasemonkey il doit respecter certaines contraintes. La toute première est qu&amp;rsquo;il doit se terminer par &lt;em&gt;.user.js&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;L&amp;rsquo;autre contrainte est qu&amp;rsquo;il contienne quelques metainformations, en commentaire, telles que le nom du script, une description ainsi que les domaines auxquels ils s&amp;rsquo;appliquent. Ces informations sont renseignées grâce aux lignes de ce type&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
// ==UserScript==
// @name          ViewImage
// @description   Display directly only the image on the imagevenue like websites
// @include       http://*.imagevenue.com/view.php*.jpg
// @include       http://*.imagevenue.com/img.php*.jpg
// ==/UserScript==
&lt;/pre&gt;


&lt;h3&gt;Ecriture de notre script&lt;/h3&gt;


&lt;p&gt;Pour écrire notre script, ouvrez un nouveau fichier &lt;em&gt;viewimage.user.js&lt;/em&gt; dans votre éditeur de texte favoris.&lt;/p&gt;


&lt;p&gt;Notre script doit&amp;nbsp;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;isoler l&amp;rsquo;image intéressante dans la page&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;récupérer la source de cette image (attribut &lt;em&gt;src&lt;/em&gt;)&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;rediriger la page vers l&amp;rsquo;image directement.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;D&amp;rsquo;après nos observations, nous pouvons récupérer l&amp;rsquo;image à partir de son identifiant&amp;nbsp;: &lt;em&gt;thepic&lt;/em&gt;. Nous le faisons à l&amp;rsquo;aide du code&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
var img = document.getElementById(&amp;quot;thepic&amp;quot;);
&lt;/pre&gt;


&lt;p&gt;Nous récupérons ensuite la source de cette image&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
var url = img.getAttribute(&amp;quot;src&amp;quot;);
&lt;/pre&gt;


&lt;p&gt;Et nous redirigons finalement la page directement vers l&amp;rsquo;image&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
var protocol, host, newurl;
protocol = window.location.protocol;
host     = window.location.hostname;
newurl = protocol + &amp;quot;//&amp;quot; + host + &amp;quot;/&amp;quot; + url;
window.location.href = newurl;
&lt;/pre&gt;


&lt;p&gt;Ce qui nous donne au final, le script&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
// ViewImage
// version 0.1 BETA!
// 2007-01-18
// Copyright (c) 2007, GrdScarabe
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
//
// --------------------------------------------------------------------
//
// This is a Greasemonkey user script.  To install it, you need
// Greasemonkey 0.3 or later: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to &amp;quot;Install User Script&amp;quot;.
// Accept the default configuration and install.
//
// To uninstall, go to Tools/Manage User Scripts,
// select &amp;quot;Salon Auto-Pass&amp;quot;, and click Uninstall.
//
// --------------------------------------------------------------------
//
// ==UserScript==
// @name          ViewImage
// @description   Display directly only the image on the imagevenue like websites
// @include       http://*.imagevenue.com/view.php*.jpg
// @include       http://*.imagevenue.com/img.php*.jpg
// ==/UserScript==

var img, src, protocol, host, newurl;
// on recherche dans la page l'image a afficher
img = document.getElementById(&amp;quot;thepic&amp;quot;);
    
// on prepare l'url de l'image
src      = img.getAttribute(&amp;quot;src&amp;quot;);
protocol = window.location.protocol;
host     = window.location.hostname;
newurl = protocol + &amp;quot;//&amp;quot; + host + &amp;quot;/&amp;quot; + src;
    
// ... et on s'y deplace
window.location.href = newurl;
&lt;/pre&gt;


&lt;h3&gt;Installation du script&lt;/h3&gt;


&lt;p&gt;La prise en compte du script par Greasemonkey est très simple. Il suffit en effet d&amp;rsquo;ouvrir le script directement dans Firefox, une boîte de dialogue vous demandera alors si vous voulez installer le script.&lt;/p&gt;


&lt;p&gt;A vous de vous lancer dans la réalisation de &lt;em&gt;userscript&lt;/em&gt; ... n&amp;rsquo;hésitez pas à les proposer aux autres par le biais de ce site ou bien de &lt;a href=&quot;http://userscripts.org/&quot; title=&quot;http://userscripts.org/&quot;&gt;http://userscripts.org/&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Vous trouverez mes scripts Greasemonkey à l&amp;rsquo;adresse&amp;nbsp;: &lt;a href=&quot;http://www.grdscarabe.net/pub/dev/greasemonkey&quot; title=&quot;http://www.grdscarabe.net/pub/dev/greasemonkey&quot;&gt;http://www.grdscarabe.net/pub/dev/g...&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Connaître le niveau de la batterie sous GNU/Linux sur un Acer Aspire 1680</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/08/09/Connaitre-le-niveau-de-la-batterie-sous-GNU/Linux-sur-un-Acer-Aspire-1680</link>
    <guid isPermaLink="false">urn:md5:d4d565e2c40ebd7762f0ebea44c5bc95</guid>
    <pubDate>Wednesday, January  3 2007</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>acpi</category><category>driver</category><category>linux</category>    
    <description>&lt;p&gt;Les Acer Aspire 1680 utilisent un système pas génial pour la gestion de la batterie, à savoir&amp;nbsp;: &lt;em&gt;Smart Battery System&lt;/em&gt;. Contrairement à son nom, ce système n&amp;rsquo;est pas vraiement &lt;em&gt;smart&lt;/em&gt; étant donné qu&amp;rsquo;il est beaucoup moins évolué que l&amp;rsquo;ACPI actuel et qu&amp;rsquo;en plus les systèmes ACPI n&amp;rsquo;arrivent pas à discuter avec lui.&lt;/p&gt;    &lt;h2&gt;Prérequis&lt;/h2&gt;


&lt;p&gt;Pour pouvoir suivre cet article, vous devez savoir&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;compiler un noyau&lt;/li&gt;
&lt;li&gt;installer un programme sous votre distribution&lt;/li&gt;
&lt;li&gt;lancer une commande en mode console&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Configuration du noyau&lt;/h2&gt;


&lt;p&gt;La gestion du SBS est dans le noyau courant (2.6.19) présente sous la forme de code expérimental. Pour y avoir accès il est donc nécessaire de cocher l&amp;rsquo;option&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
-&amp;gt; Code maturity level options
   [*] Prompt for development and/or incomplete code/drivers
&lt;/pre&gt;


&lt;p&gt;Le support de SBS est intégré au sous-système ACPI. Il est donc nécessaire que celui-ci soit compilé dans le noyau pour pouvoir accéder à l&amp;rsquo;option. De plus, le support de ces batteries semble également se faire par le biais d&amp;rsquo;un bus I2C. Il est donc nécessaire de compiler ce dernier.&lt;/p&gt;


&lt;p&gt;Je fais le choix de compiler SBS sous la forme d&amp;rsquo;un module afin de&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;alléger mon noyau de base;&lt;/li&gt;
&lt;li&gt;car le code est expérimental;&lt;/li&gt;
&lt;li&gt;car il n&amp;rsquo;est pas nécessaire au système pour démarrer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L&amp;rsquo;option de compilation se trouve à&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
-&amp;gt; Power management options (ACPI, APM)
     -&amp;gt; ACPI (Advanced Configuration and Power Interface) Support
        -&amp;gt; ACPI Support (ACPI [=y])
               &amp;lt;M&amp;gt;   Smart Battery System (EXPERIMENTAL) 
&lt;/pre&gt;


&lt;p&gt;Vous devriez maintenant voir les options suivantes dans votre fichier &lt;em&gt;.config&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
...
#
# I2C support
#
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
...
#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
CONFIG_PM_LEGACY=y
CONFIG_PM_DEBUG=y
...
#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
...
CONFIG_ACPI_SBS=m
...
&lt;/pre&gt;



&lt;h2&gt;Compilation du noyau et chargement du module&lt;/h2&gt;


&lt;p&gt;Selon que vous aviez déjà le support de I2C et de l&amp;rsquo;ACPI dans votre noyau, ou non, vous devrez respectivement recompiler tout le noyau ou juste les modules.&lt;/p&gt;


&lt;p&gt;Dans le cas où il est nécessaire de ne compiler que les modules, vous pouvez lancer les commandes suivantes&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# make modules &amp;amp;&amp;amp; make modules_install
&lt;/pre&gt;


&lt;p&gt;Puis vous pouvez charger le module SBS par le biais de la commande&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# modprobe sbs
&lt;/pre&gt;


&lt;p&gt;Si tout s&amp;rsquo;est passé comme prévu, vous devriez voir apparaître une arborescence du type suivant sous le répertoire &lt;em&gt;/proc/acpi/battery&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
+ /proc/acpi/battery
   + BAT0
        + alarm
        + info
        + state
&lt;/pre&gt;


&lt;h2&gt;Visionner le niveau de batterie&lt;/h2&gt;


&lt;p&gt;Vous pouvez bien entendu &quot;lire&quot; le niveau de la batterie par le biais des fichiers présents dans le sous-répertoire &lt;em&gt;/proc/acpi/battery/BAT0&lt;/em&gt;&amp;nbsp;; cependant un petit utilitaire graphique pourrait être bien plus appréciable&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Parmis les applications intéressantes - et étant donné que j&amp;rsquo;utilise un bureau de type &lt;em&gt;wm&lt;/em&gt; -, on peut trouver&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;wmbattery&lt;/em&gt; qui permet de surveiller le niveau de batterie et de vous avertir lorsque cette dernière arrive à un niveau bas;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;wmacpi&lt;/em&gt; qui permet de surveiller plusieurs évènements ACPI, dont la batterie. Je le trouve personnellement moins pratique que &lt;em&gt;wmbattery&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si vous utilisez des environnements comme Gnome ou KDE, il existe un certain nombre d&amp;rsquo;applets permettant de surveiller les niveaux de batterie. Je vous laisse le soin de les découvrir par vous même.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Sécuriser l'accès aux serveurs grâce à iptables</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/08/09/Securiser-l-acces-aux-serveurs-grace-a-iptables</link>
    <guid isPermaLink="false">urn:md5:b9c4f7bff09dec56c9e62a76d856d97e</guid>
    <pubDate>Thursday, December 28 2006</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>administration</category><category>firewall</category><category>iptables</category><category>linux</category><category>sécurité</category>    
    <description>&lt;p&gt;La mise en place d&amp;rsquo;une machine sur un réseau apporte toujours son lot d&amp;rsquo;embêtement. Lorsque ce réseau est internet, la masse d&amp;rsquo;ennuis potentiels s&amp;rsquo;accroît encore plus. Un des premiers remparts à élever contre ces risques est la mise en place d&amp;rsquo;un firewall. Il existe énormément de solutions de firewall &quot;clés en main&quot; sous Linux, cet article propose d&amp;rsquo;utiliser un outil présent par défaut dans la plupart des distributions&amp;nbsp;: &lt;em&gt;iptables&lt;/em&gt;.&lt;/p&gt;    &lt;h2&gt;Prérequis&lt;/h2&gt;


&lt;p&gt;Pour la compréhension de cet article, il est recommandé de savoir éditer des fichiers, savoir taper des commandes en mode console, avoir des notions minimales de réseau et comprendre le fonctionnement des scripts de démarrage de type &lt;em&gt;System V&lt;/em&gt;.&lt;/p&gt;


&lt;h2&gt;Outils&lt;/h2&gt;


&lt;p&gt;J&amp;rsquo;utilise personnellement la distribution Debian Sarge avec un noyau linux 2.6.8 et l&amp;rsquo;outil iptables en version iptables v1.3.7. Cependant, la méthode devrait fonctionner pour tous les noyaux de la branche 2.6.x, ainsi que pour les version 1.x de iptables.&lt;/p&gt;


&lt;h2&gt;Un peu de théorie sur iptables&lt;/h2&gt;


&lt;p&gt;Avant toute chose, &lt;em&gt;iptables&lt;/em&gt; n&amp;rsquo;est pas un firewall. En lui même, iptables n&amp;rsquo;est qu&amp;rsquo;un outil qui permet de configurer la pile réseau du noyau Linux. C&amp;rsquo;est cependant un outil extrêmement puissant, et assez difficile à prendre en main. Une fois que vous maîtriserez cet outil (ce à quoi cet article ne suffira pas), vous appécierez alors le potentiel de la pile réseau offerte par le noyau Linux.&lt;/p&gt;


&lt;p&gt;Lorsque qu&amp;rsquo;un paquet est reçu par une machine GNU/Linux, ce dernider passe par un certain nombre de &quot;chaînes de filtrages&quot;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PREROUTING&lt;/strong&gt; est la première chaîne par laquelle passe les paquets. Cette chaîne se situe juste avant la prise de décision sur le routage du paquet;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;INPUT&lt;/strong&gt; est la chaîne juste après la prise de décision du routage du paquet, lorsque le paquet est à destination de la machine elle-même;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FORWARD&lt;/strong&gt; est la chaîne juste après la prise de décision du routage du paquet, lorsque ce dernier n&amp;rsquo;est pas à destination de la machine;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OUTPUT&lt;/strong&gt; est la chaîne empruntée par les paquets qui proviennent de la machine elle-même avant qu&amp;rsquo;ils soient routés vers l&amp;rsquo;extérieur;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;POSTROUTING&lt;/strong&gt; est la chaîne empruntée par les paquets provenants de la machine, en sortie de la chaîne &lt;em&gt;OUTPUT&lt;/em&gt; et juste avant que les paquets sortent vers l&amp;rsquo;extérieur.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Un dessin valant souvent mieux que de longs discours, voici un récapitulatif schématique des chemins parcourus par les paquets&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.grdscarabe.net/dotclear/public/2008/Iptables/chaines_iptables-2.png&quot;&gt;&lt;img src=&quot;http://www.grdscarabe.net/dotclear/public/2008/Iptables/.chaines_iptables-2_m.jpg&quot; alt=&quot;Chaîne IPTables&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Chaîne IPTables, aoû 2008&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Ce schéma est inspiré du &lt;a href=&quot;http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TRAVERSINGGENERAL&quot;&gt;tutoriel iptables 1.2.2 de Oskar Andreasson&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Nous allons découvrir par la suite chacune des chaînes un peu plus en profondeur.&lt;/p&gt;


&lt;h2&gt;Manipulations basiques&lt;/h2&gt;


&lt;p&gt;Pour ajouter une règle à une chaîne, il faut suivre une des structures suivantes&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
iptables -I &amp;lt;nom de la chaîne&amp;gt; -t &amp;lt;nom de la table&amp;gt; &amp;lt;règle&amp;gt;
iptables -I &amp;lt;nom de la chaîne&amp;gt; &amp;lt;position&amp;gt; -t &amp;lt;nom de la table&amp;gt; &amp;lt;règle&amp;gt;
iptables -A &amp;lt;nom de la chaîne&amp;gt; -t &amp;lt;nom de la table&amp;gt; &amp;lt;règle&amp;gt;
&lt;/pre&gt;


&lt;p&gt;La première permet d&amp;rsquo;ajouter la règle en début de chaîne, la seconde de l&amp;rsquo;insérer à la position précisée en paramètre et enfin, la dernière de la placer en fin de chaîne. La position des règles dans la chaîne est importante car les paquets sont transformés par la première chaîne dans la liste qui leur correspond. Il est ainsi assez courant de placer en fin de chaîne une règle qui rejette tout afin de bloquer tous les paquets qui n&amp;rsquo;ont pas été acceptés par les chaînes précédentes.&lt;/p&gt;


&lt;p&gt;Par exemple, les règles ci-dessous permettent de router les connexions tcp sur le port 80 vers l&amp;rsquo;hôte 192.168.50.1 et de rejeter tout le reste&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
shell# iptables -I PREROUTING -t nat -p tcp --dport 80 -j DNAT --to 192.168.50.1:80
shell# iptables -A PREROUTING -t nat -j DROP
shell#  iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 to:192.168.50.1:80 
DROP       0    --  0.0.0.0/0            0.0.0.0/0           

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
&lt;/pre&gt;


&lt;p&gt;Bien entendu cet ensemble de règle est un peu trop strict pour la plupart des usages&amp;nbsp;:) Il est possible de supprimer les règles une par une avec la commande&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 to:192.168.50.1:80 
DROP       0    --  0.0.0.0/0            0.0.0.0/0           

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 
shell# iptables -D PREROUTING 1 -t nat
shell# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DROP       0    --  0.0.0.0/0            0.0.0.0/0           

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
&lt;/pre&gt;


&lt;p&gt;Cette manière de supprimer les règles devient rapidement fastidieuse lorsque plusieurs dizaines de règles sont présentes dans les tables. Afin de supprimer d&amp;rsquo;un seul coup toutes les règles présentes dans un tables, vous pouvez utiliser la commande&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
iptables -F -t &amp;lt;nom de la table&amp;gt;
&lt;/pre&gt;


&lt;h2&gt;Chaîne PREROUTING&lt;/h2&gt;


&lt;p&gt;Au sein même des chaînes, il y a plusieurs tables contenant les règles à appliquer. Pour la chaîne PREROUTING, les tables les plus courantes sont&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;mangle&lt;/strong&gt; est la table utilisée pour effectuer des modifications dans les entêtes des paquets;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;nat&lt;/strong&gt; (pour Network Address Translation) permet de manipuler les champs destinations et sources des paquets afin de modifier leur routage.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La chaîne &lt;em&gt;PREROUTING&lt;/em&gt; est la première par laquelle passent les paquets à destination de la machine et/ou transitant par la machine. Elle est donc très fréquemment utilisée pour&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;router des paquets provenant de l&amp;rsquo;internet vers des machines du réseau local ne possédant pas d&amp;rsquo;ip internet;&lt;/li&gt;
&lt;li&gt;marquer les paquets pour ensuite les router en conséquence, ou bien effectuer des opérations de QuOS (Quality Of Service = Qualité de Service). Il est ainsi possible de répartir la bande passante selon les sous-réseaux, ou ce genre de chose.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L&amp;rsquo;utilisation principale de la chaîne &lt;em&gt;PREROUTING&lt;/em&gt; est liée au &lt;em&gt;DNAT&lt;/em&gt;, la table &lt;em&gt;mangle&lt;/em&gt; est trop spécifique pour être largement utilisée. Le &lt;em&gt;DNAT&lt;/em&gt; permet d&amp;rsquo;exposer sur internet les services d&amp;rsquo;une machine qui n&amp;rsquo;y est pas directement connecté. Par exemple, si votre passerelle internet est 192.168.1.1 et que vous souhaitez rendre disponible l&amp;rsquo;accès au serveur web présent sur la machine 192.168.1.10 à internet, alors vous allez utiliser le &lt;em&gt;DNAT&lt;/em&gt; pour redirigier les connexions vers la passerelle sur le port 80 vers le port 80 de la machine 192.168.1.10&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# iptables -A PREROUTING -t nat -p tcp --dport 80 -j DNAT --to-destination 192.168.50.10:80
&lt;/pre&gt;


&lt;p&gt;Dans le même ordre d&amp;rsquo;idée, si vous avez un proxy transparent présent sur votre passerelle web, vous devriez rediriger le traffice internet vers ce dernier&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# iptables -A PREROUTING -t nat -p tcp --dport 80 -j DNAT --to-port 8888
&lt;/pre&gt;


&lt;h2&gt;Chaîne INPUT&lt;/h2&gt;


&lt;p&gt;La chaîne &lt;em&gt;INPUT&lt;/em&gt; est la chaîne traitant les paquets à destination de la machine et qui vont aussitôt après être réceptionnés par les différents services présents sur la machine et qui sont en écoute sur le réseau. Il s&amp;rsquo;agit donc de la dernière barrière avant l&amp;rsquo;entre du paquet sur votre machine.&lt;/p&gt;


&lt;p&gt;Les tables disponibles pour la chaîne &lt;em&gt;INPUT&lt;/em&gt; sont&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;mangle&lt;/strong&gt; qui a le même rôle que précédemment;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;filter&lt;/strong&gt; qui permet de filtrer (autoriser/rejeter/ignorer/...) les paquets qui s&amp;rsquo;apprêtent à entrer dans le système.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La table &lt;strong&gt;filter&lt;/strong&gt; est extrêmement intéressante, elle permet de bien se protéger des attaques extérieures en bloquant les tentatives d&amp;rsquo;intrusion provenant du réseau. En effet, à l&amp;rsquo;aide de cette table, vous pouvez spécifier quels sont les types de paquets qui peuvent passer et ceux qui ne peuvent pas.&lt;/p&gt;


&lt;p&gt;Afin d&amp;rsquo;identifier un paquet, il existe plusieurs options disponibles dans la commande iptables. Les plus intéressantes sont celles-ci&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;-s&lt;/strong&gt; permet de spécifier l&amp;rsquo;origine du paquet sous la forme d&amp;rsquo;un réseau (192.168.50.0/24) ou d&amp;rsquo;un hôte (192.168.50.1);&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;-d&lt;/strong&gt; permet de spécifier la destination d&amp;rsquo;un paquet sous la forme d&amp;rsquo;un réseau ou d&amp;rsquo;un hôte;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;-p&lt;/strong&gt; permet de spécifier le type de protocol encapsulé dans le paquet (tcp, udp, icmp, ...)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;--dport&lt;/strong&gt; est accessible lorsque le protocole est udp ou tcp, il permet de spécifier le port de destination du paquet;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;--sport&lt;/strong&gt; est accessible lorsque le protocole est udp ou tcp, il permet de spécifier le port source du paquet;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;-i&lt;/strong&gt; permet de spécifier l&amp;rsquo;interface réseau par lequel est entré le paquet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Associé à ces règles d&amp;rsquo;identifications, il existe plusieurs actions&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ACCEPT&lt;/strong&gt; permet d&amp;rsquo;accepter le paquet;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DROP&lt;/strong&gt; permet d&amp;rsquo;ignorer le paquet;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;REJECT&lt;/strong&gt; permet de renvoyer un paquet indiquant que l&amp;rsquo;accès est impossible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Il est également possible de rajouter des options de reconnaissance ou de traitement plus pointus en chargeant certains modules dédiés.&lt;/p&gt;


&lt;p&gt;Si vous souhaitez par exemple authoriser tous les paquets en provenance du sous-réseau 192.168.50.0/24, ainsi que les paquets internet destinés au port 80, ais bloquer tous les paquets à destination du port 138, voilà ce à quoi pourraient ressembler vos règles&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# iptbales -A INPUT -p tcp --dport 138 -j REJECT --reject-with tcp-reset
shell# iptables -A INPUT -s 192.168.50.0/24 -j ACCEPT
shell# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
&lt;/pre&gt;


&lt;h2&gt;Chaîne FORWARD&lt;/h2&gt;


&lt;p&gt;Les tables disponibles pour la chaîne &lt;em&gt;FORWARD&lt;/em&gt; sont&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;mangle&lt;/strong&gt; qui a le même rôle que précédemment;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;filter&lt;/strong&gt; qui fonctionne exactement comme pour la chaîne &lt;em&gt;INPUT&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La chaîne &lt;em&gt;FORWARD&lt;/em&gt; est empruntée par les paquets qui transitent par votre machine. Ceci est le cas si votre machine sert de passerelle entre plusieurs réseaux, entre votre réseau local et internet par exemple. Il y a de fortes chances que vous  n&amp;rsquo;ayez pas trop à vous soucier de cette chaîne sur vos ordinateurs de bureau. Sur votre serveur toutefois, vous voulez très certainement limiter la transition des paquets aux seuls provenant de votre réseau local ou à destination de ce dernier.&lt;/p&gt;


&lt;p&gt;Par exemple, si votre passerelle offre l&amp;rsquo;internet à un sous-réseau 192.168.0.0/24, vous pouvez limiter le transite des paquets grâce aux règles&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
shell# iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
shell# iptables -A FORWARD -j DROP
&lt;/pre&gt;


&lt;h2&gt;Chaîne OUTPUT&lt;/h2&gt;


&lt;p&gt;La chaîne &lt;em&gt;OUTPUT&lt;/em&gt; est la chaîne empruntée par les paquets juste sortis des services disponibles sur la machine, juste avant leur routage. Les tables et les options disponibles sont les mêmes que celles de la chaîne &lt;em&gt;INPUT&lt;/em&gt;.&lt;/p&gt;


&lt;h2&gt;Chaîne POSTROUTING&lt;/h2&gt;


&lt;p&gt;La chaîne &lt;em&gt;POSTROUTING&lt;/em&gt; est la chaîne empruntée juste après la chaîne &lt;em&gt;OUTPUT&lt;/em&gt; et après la décision de routage des paquets. Les tables et les options disponibles sont les mêmes que celles de la chaîne &lt;em&gt;PREROUTING&lt;/em&gt;.&lt;/p&gt;


&lt;h2&gt;Création de chaînes personnalisées&lt;/h2&gt;


&lt;p&gt;Afin de répondre à des besoins spécifiques, il est possible de mettre en place des chaînes personnalisées pour le traitement des paquets. C&amp;rsquo;est notamment très couramment utilisé pour logguer certains paquets particuliers afin de détecter des attaques.&lt;/p&gt;


&lt;p&gt;La création d&amp;rsquo;une nouvelle chaîne se fait grâce à l&amp;rsquo;option &lt;strong&gt;-N&lt;/strong&gt; de la commande iptables, suivi du nom de la chaîne (qui doit bien entendu ne pas être un nom déjà utilisé. Une fois la chaîne créée, vous pouvez alors l&amp;rsquo;utiliser comme une chaîne standard.&lt;/p&gt;


&lt;p&gt;Par exemple, les commandes suivantes permettent de créer une chaîne qui logguent certains paquets avant de les supprimer. Il est ainsi possible de garder une trace des éventuelles tentatives d&amp;rsquo;attaques contre votre réseau&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# iptables -N LOG_DROP
shell# iptables -A LOG_DROP -p udp --dport 138 -j LOG --log-prefix '[FIREWALL] Netbios intrusion udp/138: ' --log-ip-options
shell# iptables -A LOG_DROP -p udp --dport 137 -j LOG --log-prefix '[FIREWALL] Netbios intrusion udp/137: ' --log-ip-options
shell# iptables -A LOG_DROP -j REJECT
&lt;/pre&gt;


&lt;p&gt;Pour que cette chaîne soit utilisée, il suffit de la spécifier comme paramètre &lt;strong&gt;-j&lt;/strong&gt; au lieu de &lt;strong&gt;DROP&lt;/strong&gt; dans les règles. Par exemple&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j LOG_DROP
&lt;/pre&gt;


&lt;p&gt;La suppression des chaînes personnalisées se fait par le biais de l&amp;rsquo;option &lt;strong&gt;-X&lt;/strong&gt; suivie du nom de la chaîne&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
shell# iptables -X LOG_DROP
&lt;/pre&gt;


&lt;h2&gt;Exemple complet&lt;/h2&gt;


&lt;p&gt;Voici un exemple de code utilisant iptables pour mettre en place des règles de firewall pour un serveur à moi. Je l&amp;rsquo;utilise en tant que script init. Il n&amp;rsquo;est pas très complet, mais donne déjà une idée des possibilités offertes&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
#!/bin/sh
# Copyright 2006 GrdScarabe
# Distributed under the terms of the GNU General Public License v2

## ------------------------- VARIABLES ---------------------------- ##
IPT=/sbin/iptables # iptable executable
OUT=eth1           # internet interface
IN=eth0            # network interface
# IP de l'interface internet
EXT_IP=&amp;quot;`ifconfig $OUT | grep 'inet addr' | \
        awk '{print $2}' | sed -e 's/.*://'`&amp;quot;
# IP de l'interface reseau interne
INT_IP=&amp;quot;`ifconfig $IN | grep 'inet addr' | \
        awk '{print $2}' | sed -e 's/.*://'`&amp;quot;

## ---------------- FONCTIONS D'INITIALISATION --------------------- ##

# Function to clear all entered rules
clear_all_rules () {
        # removing the rules of each table
        for table in filter nat mangle; do
                $IPT -t $table -F
                $IPT -t $table -X
        done;
}

# Function to create the logging chain for dropping packets
create_reject_log_chain () {
        # creation de la chaine
        $IPT -N REJECT_LOG

        # regles de log
        $IPT -A REJECT_LOG -i $OUT -p udp --dport 138 -j LOG \
                --log-prefix &amp;quot;[FIREWALL] Netbios udp/138 : &amp;quot; \
                --log-ip-options
        $IPT -A REJECT_LOG -i $OUT -p udp --dport 139 -j LOG \
                --log-prefix &amp;quot;[FIREWALL] Netbios udp/139 : &amp;quot; \
                --log-ip-options

        # log par defaut
        $IPT -A REJECT_LOG -j LOG \
                --log-prefix &amp;quot;[FIREWALL] Unknown : &amp;quot; \
                --log-ip-options

        # drop de tous les paquets qui passent chaines
        $IPT -A REJECT_LOG -j DROP
}

# Function to set the default policies for the main chains
set_default_policies () {
        # Drop ICMP echo-request messages sent to broadcast 
        # or multicast addresses
        echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
        # Drop source routed packets
        echo 0 &amp;gt; /proc/sys/net/ipv4/conf/all/accept_source_route
        # Enable TCP SYN cookie protection from SYN floods
        echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies
       # Don't accept ICMP redirect messages
        echo 0 &amp;gt; /proc/sys/net/ipv4/conf/all/accept_redirects
        # Don't send ICMP redirect messages
        echo 0 &amp;gt; /proc/sys/net/ipv4/conf/all/send_redirects
        # Enable source address spoofing protection
        echo 1 &amp;gt; /proc/sys/net/ipv4/conf/all/rp_filter
        # Log packets with impossible source addresses
        echo 0 &amp;gt; /proc/sys/net/ipv4/conf/all/log_martians

        # on recupere la policy par defaut
        if [ &amp;quot;x$1&amp;quot; == &amp;quot;x&amp;quot; ]; then
                # par defaut on rejette tout
                def=&amp;quot;DROP&amp;quot;
        else
                def=&amp;quot;$1&amp;quot;
        fi

        # default policy for incoming packets
        $IPT -P INPUT $def
        # default policy for outgoing packets
        $IPT -P OUTPUT $def
        # default policy for forwarding packetss
        $IPT -P FORWARD $def
}

## ---------------- GESTION DES SOUS-RESEAUX --------------------- ##

# Give access to everything on the loopback interface
allow_loopback_access () {
        # access to everyting in INPUT
        $IPT -A INPUT -i lo -j ACCEPT
        # access to everything in OUTPUT
        $IPT -A OUTPUT -o lo -j ACCEPT
}

# Mise en place du routage des paquets vers l'internet
add_masquerading(){
        # partage d'internet avec le reseau
        echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward
        $IPT -A POSTROUTING -t nat -o $OUT -j MASQUERADE
        $IPT -A FORWARD -i $OUT -j ACCEPT
        $IPT -A FORWARD -s 192.168.50.0/24 -j ACCEPT
}

# Tous les paquets sortants vers l'internet sont autorises
# de meme que les paquets provenant du serveur vers le 
# reseau local
allow_outgoing_packets(){
        # les paquets vers internet sont autorises
        $IPT -A OUTPUT -t filter -o $OUT -j ACCEPT
        # les paquets du serveur vers le reseau egalement
        $IPT -A OUTPUT -t filter -o $IN -s $EXT_IP -j ACCEPT
        $IPT -A OUTPUT -t filter -o $IN -s $INT_IP -j ACCEPT
}
## -------------- REGLES POUR L'ACCES AUX SERVEURS ---------------- ##

# Autorisation aux connections en cours de continuer
allow_current_connections(){
        $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
        $IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
}

# Add rule for enabling access to dhcp server from subnet
allow_dhcp_access (){
        # accepting dhcp from subnet
        $IPT -A INPUT -i $IN -p udp --dport 67 -j ACCEPT
}

# Add rules for enabling dns requests from the machine
allow_dns_access () {
        # accepting DNS request
        $IPT -A INPUT  -p udp --sport 53 -j ACCEPT
}

# Add rules for enabling web access to the machine
allow_web_access () {
        # access from the web granted
        $IPT -A INPUT -p tcp --dport 80 -j ACCEPT
        $IPT -A INPUT -p tcp --dport https -j ACCEPT
}

# Add rules to allow ssh connections from my pc
allow_ssh_access () {
        # for connections to the machine
        $IPT -A INPUT -p tcp --dport 22 -j ACCEPT
}

## ---------------REGLES DU SOUS-RESEAU 192.168.50.0/24 -------------- ##

# Add rules for allowing ping from local network
allow_ping_from_subnet () {
        # Allow ICMP ECHO REQUESTS from anywhere on local network
        $IPT -A INPUT -s 192.168.50.0/24 -p icmp --icmp-type echo-request -j ACC
EPT
}

# Tout ce qui provient du reseau est sur
allow_all_from_subnet () {
        $IPT -A INPUT -s 192.168.50.0/24 -i $IN -j ACCEPT
}

##### ----------------------------------------------------------- #####
##### ----------------------------------------------------------- #####
##### ----------------------------------------------------------- #####


case &amp;quot;$1&amp;quot; in
        start)
                echo -e &amp;quot;\n===== Hermes Firewall v0.5 =====\n&amp;quot;

                echo -e &amp;quot;Adresse internet : $EXT_IP&amp;quot;
                echo -e &amp;quot;Adresse locale   : $INT_IP\n&amp;quot;

                # -- Initialisation des regles -- #     
                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Creation de la chaine de log..........&amp;quot;
                create_reject_log_chain
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Politiques par defaut.................&amp;quot;
                set_default_policies &amp;quot;DROP&amp;quot;
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                # -- Regles de base -- #
                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Autorisation des connexions connues...&amp;quot;
                allow_current_connections
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Acces a l'interface loopback..........&amp;quot;
                allow_loopback_access
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Routage vers internet (masquerade)....&amp;quot;
                add_masquerading
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Autorisation sortie des paquets.......&amp;quot;
                allow_outgoing_packets
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                # -- Configuration du sous-reseau 192.168.50.0/24 -- #
                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Autoriser tout de 192.168.50.0/24.....&amp;quot;
                allow_all_from_subnet
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Ping de 192.168.50.0/24 autorises.....&amp;quot;
                allow_ping_from_subnet
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                # -- Acces aux serveurs -- #
                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Acces au serveur DHCP.................&amp;quot;
                allow_dhcp_access
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Acces au serveur DNS..................&amp;quot;
                allow_dns_access
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;


                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Acces au serveur Web..................&amp;quot;
                allow_web_access
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;


                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Acces au serveur SSH..................&amp;quot;
                allow_ssh_access
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                # -- On rejette tout le reste -- #
                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Rejet en masse du reste...............&amp;quot;
                $IPT -A INPUT   -j REJECT_LOG
                $IPT -A OUTPUT  -j REJECT_LOG
                $IPT -A FORWARD -j REJECT_LOG
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;
                ;;

        stop)
                # -- On remet tout propre -- #
                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Nettoyage des regles presentes........&amp;quot;
                clear_all_rules
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Politiques par defaut.................&amp;quot;
                set_default_policies &amp;quot;ACCEPT&amp;quot;
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;
                ;;

        restart)
                eval $0 stop
                eval $0 start
                ;;

        min)
                # -- On met juste en marche le routage -- #
                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Nettoyage des regles presentes........&amp;quot;
                clear_all_rules
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Politiques par defaut.................&amp;quot;
                set_default_policies &amp;quot;ACCEPT&amp;quot;
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                # -- Regles de base -- #
                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Autorisation des connexions connues...&amp;quot;
                allow_current_connections
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Acces a l'interface loopback..........&amp;quot;
                allow_loopback_access
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Routage vers internet (masquerade)....&amp;quot;
                add_masquerading
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Autorisation sortie des paquets.......&amp;quot;
                allow_outgoing_packets
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;
                ;;

        bloc)
                # -- On bloque tout -- #
                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Nettoyage des regles presentes........&amp;quot;
                clear_all_rules
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;Politiques par defaut.................&amp;quot;
                set_default_policies &amp;quot;DROP&amp;quot;
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;

                echo -ne &amp;quot;\033[01;32m*\033[00m&amp;quot;
                echo -ne &amp;quot;On stoppe tout traffic................&amp;quot;
                $IPT -A INPUT   -j DROP
                $IPT -A OUTPUT  -j DROP
                $IPT -A FORWARD -j DROP
                echo -e &amp;quot;\033[01;32m[OK]\033[00m&amp;quot;
                ;;

        status)
                echo -ne &amp;quot;.........TABLE MANGLE........\n&amp;quot;
                $IPT -nvL -t mangle
                echo -ne &amp;quot;...........TABLE NAT.........\n&amp;quot;
                $IPT -nvL -t nat
                echo -ne &amp;quot;.........TABLE FILTER........\n&amp;quot;
                $IPT -nvL -t filter
                ;;

        *)
                echo &amp;quot;Uses : &amp;quot;
                echo &amp;quot;        $0 start to set up firewall rules&amp;quot;
                echo &amp;quot;        $0 stop to disable firewall&amp;quot;
                echo &amp;quot;        $0 restart to reinitialize firewall&amp;quot;
                echo &amp;quot;        $0 min for minimal service&amp;quot;
                echo &amp;quot;        $0 bloc for stopping traffic&amp;quot;
                echo &amp;quot;        $0 status for displaying rules&amp;quot;
                ;;
esac
&lt;/pre&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Apache : rediriger automatiquement vers un répertoire</title>
    <link>http://www.grdscarabe.net/index.php?post/2008/08/09/Apache-%3A-rediriger-automatiquement-vers-un-repertoire</link>
    <guid isPermaLink="false">urn:md5:b5c0c0aa65d54793611dc3e751071893</guid>
    <pubDate>Thursday, December 28 2006</pubDate>
    <dc:creator>Fabien Poulard</dc:creator>
        <category>administration</category><category>apache</category><category>web</category>    
    <description>    &lt;p&gt;Lorsque vous installez des applications web, sur votre espace web, il se peut que, pour une raison ou une autre, vous aimeriez que la page d&amp;rsquo;accueil de votre site soit une page présente dans un sous-répertoire.&lt;/p&gt;


&lt;p&gt;Vous aimeriez que lorsque l&amp;rsquo;internaute qui visite votre site web tape l&amp;rsquo;adresse de ce dernier, il se trouve automatiquement projeté dans le répertoire désiré&amp;nbsp;? Pour ce faire, rendez-vous à la racine de votre site web et créez un fichier nommé &lt;em&gt;.htaccess&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Ouvrez ce fichier et ajoutez-y une ligne du style&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
RedirectMatch 301 ^/$ /repertoire/
&lt;/pre&gt;


&lt;p&gt;... et le tour est joué&amp;thinsp;;)&lt;/p&gt;


&lt;p&gt;Afin de s&amp;rsquo;assurer que l&amp;rsquo;astuce fontionne, il faudra recharger la configuration d&amp;rsquo;Apache et s&amp;rsquo;assurer que les fichiers &lt;em&gt;.htaccess&lt;/em&gt; sont autorisés à surcharger les fonctions de redirection&amp;nbsp;!&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>