<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.ploup.net/nazgullien/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>Le bloG de Nazgullien - les démons de nazgullien</title>
  <link>http://www.ploup.net/nazgullien/</link>
  <atom:link href="https://www.ploup.net/nazgullien/feed/category/Les-demons-de-nazgullien/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Mon, 21 Feb 2022 15:48:34 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>

  
  <item>
    <title>Simulating multiple recipient delimiters ($recipient_delimiter) with postfix and mysql/postfixadmin virtual domains</title>
    <link>http://www.ploup.net/nazgullien/post/2010/10/21/Simulating-multiple-recipient-delimiters-with-postfix-and-mysql/postfixadmin-virtual-domains</link>
    <guid isPermaLink="false">urn:md5:72bb947db0341a30b6b42472723eb2b5</guid>
    <pubDate>Thu, 21 Oct 2010 23:24:00 +0200</pubDate>
    <dc:creator>nazgullien</dc:creator>
        <category>les démons de nazgullien</category>
        
    <description>    &lt;p&gt;As &lt;a href=&quot;http://blog.bfccomputing.com/2007/11/07/fudging-multiple-recipient_delimiter-statements-with-postfix&quot; hreflang=&quot;en&quot;&gt;clearly exposed by Bill McGonigle&lt;/a&gt; :&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Postfix supports the configuration item recipient_delimiter, like:&lt;/p&gt;&lt;/blockquote&gt;
&lt;pre&gt;
recipient_delimiter = +
&lt;/pre&gt;

&lt;blockquote&gt;&lt;p&gt;so that one can do ‘plus-expansion’ style e-mail addresses, like: mike+amazon@bfccomputing.com for myriad reasons, like tracking, spam filtering, auto-sorting, etc. Unfortunately, while + has long been the standard character for this purpose, half of the websites out there have been written by noodle-heads who figure that any incoming + character in a parameter is a faux-encoded space character&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Or at least do they simply reject any e-mail address containing the + character.&lt;/p&gt;


&lt;p&gt;It would be fairly straightforward to just change the parameter in postfix, but as I'm using this scheme for few years now, I'm kind of reluctant to change all previous subscriptions and I also use DSPAM which recipient delimiter character can't be changed !&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://blog.bfccomputing.com/2007/11/07/fudging-multiple-recipient_delimiter-statements-with-postfix&quot; hreflang=&quot;en&quot;&gt;In his post&lt;/a&gt; Bill McGonigle explains how to use a regexp virtual alias map to rewrite any character into the + character and so simulating the acceptance by Postfix of multiple recipient delimiters. The problem with this solution is that for each virtual domain hosted there has to be a line in the said virtual alias map ; kind of boring when the virtual domains are stored in a SQL database via a Postfixadmin portal.&lt;/p&gt;


&lt;p&gt;The solution I found lies in the following MySQL query which will replace (in this case) the _ character by a + character in the recipient part of the address&lt;/p&gt;
&lt;pre class=&quot;mysql mysql&quot; style=&quot;font-family:inherit&quot;&gt;&lt;span style=&quot;color: #990099; font-weight: bold;&quot;&gt;select&lt;/span&gt; &lt;span style=&quot;color: #000099;&quot;&gt;concat&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000099;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000099;&quot;&gt;left&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;'&lt;span style=&quot;color: #008080; font-weight: bold;&quot;&gt;%&lt;/span&gt;s'&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000099;&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;'&lt;span style=&quot;color: #008080; font-weight: bold;&quot;&gt;%&lt;/span&gt;s'&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #CC0099;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #000099;&quot;&gt;instr&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000099;&quot;&gt;reverse&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;'&lt;span style=&quot;color: #008080; font-weight: bold;&quot;&gt;%&lt;/span&gt;s'&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;'@'&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;'&lt;span style=&quot;color: #008080; font-weight: bold;&quot;&gt;_&lt;/span&gt;'&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;'+'&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;'@'&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000099;&quot;&gt;reverse&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000099;&quot;&gt;substring_index&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000099;&quot;&gt;reverse&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;'&lt;span style=&quot;color: #008080; font-weight: bold;&quot;&gt;%&lt;/span&gt;s'&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;'@'&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #008080;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;&amp;quot;goto&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #990099; font-weight: bold;&quot;&gt;from&lt;/span&gt; domain &lt;span style=&quot;color: #990099; font-weight: bold;&quot;&gt;where&lt;/span&gt; domain &lt;span style=&quot;color: #CC0099;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #000099;&quot;&gt;reverse&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000099;&quot;&gt;substring_index&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000099;&quot;&gt;reverse&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;'&lt;span style=&quot;color: #008080; font-weight: bold;&quot;&gt;%&lt;/span&gt;s'&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;'@'&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #008080;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #CC0099; font-weight: bold;&quot;&gt;and&lt;/span&gt; active &lt;span style=&quot;color: #CC0099;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008080;&quot;&gt;1&lt;/span&gt; &lt;span style=&quot;color: #CC0099; font-weight: bold;&quot;&gt;and&lt;/span&gt; &lt;span style=&quot;color: #000099;&quot;&gt;instr&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000099;&quot;&gt;left&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;'&lt;span style=&quot;color: #008080; font-weight: bold;&quot;&gt;%&lt;/span&gt;s'&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #000099;&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;'&lt;span style=&quot;color: #008080; font-weight: bold;&quot;&gt;%&lt;/span&gt;s'&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #CC0099;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #000099;&quot;&gt;instr&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000099;&quot;&gt;reverse&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #008000;&quot;&gt;'&lt;span style=&quot;color: #008080; font-weight: bold;&quot;&gt;%&lt;/span&gt;s'&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;'@'&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #000033;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #008000;&quot;&gt;'&lt;span style=&quot;color: #008080; font-weight: bold;&quot;&gt;_&lt;/span&gt;'&lt;/span&gt;&lt;span style=&quot;color: #FF00FF;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #CC0099;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #008080;&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;This query might neither be very elegant nor quite optimal but it works.&lt;/p&gt;


&lt;p&gt;In context, create a file named mysql_multi_recipient_delimiter.cf in your postfix config folder containing :&lt;/p&gt;
&lt;pre&gt;
user = &amp;lt;mysql_user&amp;gt;
password = &amp;lt;mysql_password&amp;gt;
hosts = &amp;lt;mysql_host_or_localhost&amp;gt;
dbname = &amp;lt;mysql_database_name&amp;gt;
query = select concat(replace(left('%s', length('%s') - instr(reverse('%s'), '@')), '_', '+'), '@', reverse(substring_index(reverse('%s'), '@', 1))) &amp;quot;goto&amp;quot; from domain where domain = reverse(substring_index(reverse('%s'), '@', 1)) and active = 1 and instr(left('%s', length('%s') - instr(reverse('%s'), '@')), '_') &amp;gt; 0
&lt;/pre&gt;


&lt;p&gt;And in main.cf, modify the line :&lt;/p&gt;
&lt;pre&gt;
virtual_alias_maps = proxy:mysql:$config_directory/mysql_virtual_alias_maps.cf
&lt;/pre&gt;

&lt;p&gt;to :&lt;/p&gt;
&lt;pre&gt;
virtual_alias_maps = proxy:mysql:$config_directory/mysql_virtual_alias_maps.cf proxy:mysql:$config_directory/mysql_multi_recipient_delimiter.cf
&lt;/pre&gt;


&lt;p&gt;Reload postfix :&lt;/p&gt;
&lt;pre&gt;
postfix reload
&lt;/pre&gt;

&lt;p&gt;et voilà !&lt;/p&gt;</description>

    

      </item>
  
  <item>
    <title>Latin-9 c'est bien, mais pas top encore ...</title>
    <link>http://www.ploup.net/nazgullien/post/2007/12/14/23-latin-9-c-est-bien-mais-peut-mieux-faire</link>
    <guid isPermaLink="false">urn:md5:eb0fc212f3efa26ec5bb63beac30375d</guid>
    <pubDate>Fri, 14 Dec 2007 18:15:13 +0000</pubDate>
    <dc:creator>nazgullien</dc:creator>
        <category>les démons de nazgullien</category>
        <category>dev</category><category>malchance</category><category>xml</category>
    <description>    &lt;p&gt;Latin-9 (de son petit nom ISO-8859-15) ajoute le support (entre autres) le suport du caractère € qui manquait à Latin-1 (ISO-8859-1), et c'est bien.&lt;/p&gt;


&lt;p&gt;Cependant Latin-9, et c'est déjà beaucoup moins bien, supprime le support (entre autres) du caractère '¨' (Tréma isolé), et - je l'ai déjà dit, mais - c'est beaucoup moins bien.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://64.233.183.104/search?q=cache:1677ugo2HDIJ:www.aph-metaphore.com.fr/newbie/texte/codage.html+ISO-8859-15+trema+isol%C3%A9&amp;amp;hl=fr&amp;amp;ct=clnk&amp;amp;cd=1&amp;amp;gl=fr&amp;amp;client=firefox-a&quot; hreflang=&quot;fr&quot;&gt;Je cite&lt;/a&gt;&amp;nbsp;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;ins&gt;Avec ISO-8859-1&lt;/ins&gt;&amp;nbsp;:
- vous disposez des&amp;nbsp;: ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª «&amp;nbsp;¬ ­ ®¯ ° ± ² ³ ´ µ ¶·¸ ¹ º» ¼ ½ ¾. (Code décimale de 161 à 162).
&lt;a href=&quot;http://www.ploup.net/nazgullien/post/2007/12/14/...&quot;&gt;...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;ins&gt;ISO-8859-15 ou latin9 surnommé latin0&lt;/ins&gt;&amp;nbsp;:
Il pallie les insuffisances de ISO-8859-1 mais, à mon avis, d'une manière moins élégante. (Note de moi, ça c'est sur)
&lt;a href=&quot;http://www.ploup.net/nazgullien/post/2007/12/14/...&quot;&gt;...&lt;/a&gt;
Disparaissent aussi et sont remplacés par des caractères finlandais&amp;nbsp;: ¦ (broken bar)&amp;nbsp;; le tréma isolé&amp;nbsp;: ¨ l'accent aigu&amp;nbsp;: ´&amp;nbsp;; la cédille isolée&amp;nbsp;: ¸&amp;nbsp;; et le ¾&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Et voilà comment on fait vautrer une application en ajoutant le support du sigle '€' ...&lt;/p&gt;


&lt;p&gt;Cependant, on pourra noter les choses suivantes&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;le parseur XML de Java traite &lt;strong&gt;lit&lt;/strong&gt; et &lt;strong&gt;enregistre&lt;/strong&gt; sans erreur ce caractère ('€') même dans un flux XML encodé en Latin-1&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;le parseur MSXML de Microsoft &lt;strong&gt;lit&lt;/strong&gt; correctement ce caractère (même si ça ne ressemble à rien) dans un flux XML encodé en Latin-1&lt;/li&gt;
&lt;li&gt;le parseur MSXML de Microsoft &lt;strong&gt;plante&lt;/strong&gt; lors de l'enregistrement d'un caractère '€' dans un flux XML encodé en Latin-1. La méthode save() renvoie une COleException dont le libellé est &quot;erreur inconnue&quot; et arrête d'écrire dans le fichier ... (ce qu'il fait d'ailleurs à priori dès qu'un caractère invalide dans l'encodage courant doit être écrit). Et ça, je trouve que c'est mal&amp;nbsp;; mais peut-être que je me trompe &lt;img src=&quot;/nazgullien/themes/default/smilies/normal.png&quot; alt=&quot;:-|&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Vive l'UTF-8 !!! (enfin ... pour le moment)&lt;/p&gt;


&lt;p&gt;C'était mon coup de gueule du vendredi &lt;img src=&quot;/nazgullien/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>

    

      </item>
  
  <item>
    <title>Copie d'une arborescence sans perte d'attributs avec pax et ssh ...</title>
    <link>http://www.ploup.net/nazgullien/post/2006/08/29/14-copie-d-une-arborescence-sans-perte-d-attributs-avec-pax-et-ssh</link>
    <guid isPermaLink="false">urn:md5:54b0ee91270583642aa0291c47a5d4df</guid>
    <pubDate>Tue, 29 Aug 2006 19:50:44 +0000</pubDate>
    <dc:creator>nazgullien</dc:creator>
        <category>les démons de nazgullien</category>
        <category>shell</category><category>sysadmin</category>
    <description>&lt;p&gt;Comment copier les fichiers du disque-dur d'un ordinateur vers un autre, au travers d'un réseau, sans pour autant perdre les attributs des fichiers&amp;nbsp;?&lt;/p&gt;    &lt;p&gt;C'est plutôt facile grâce à &lt;a href=&quot;http://www.freebsd.org/cgi/man.cgi?query=pax&amp;amp;apropos=0&amp;amp;sektion=0&amp;amp;manpath=FreeBSD+6.1-RELEASE&amp;amp;format=html&quot; hreflang=&quot;en&quot;&gt;pax(1)&lt;/a&gt; et &lt;a href=&quot;http://www.freebsd.org/cgi/man.cgi?query=ssh&amp;amp;apropos=0&amp;amp;sektion=0&amp;amp;manpath=FreeBSD+6.1-RELEASE&amp;amp;format=html&quot; hreflang=&quot;en&quot;&gt;ssh(1)&lt;/a&gt; (pax est probablement disponible uniquement sur les systèmes BSD. &lt;a href=&quot;http://www.freebsd.org/cgi/man.cgi?query=cpio&amp;amp;apropos=0&amp;amp;sektion=0&amp;amp;manpath=FreeBSD+6.1-RELEASE&amp;amp;format=html&quot; hreflang=&quot;en&quot;&gt;cpio(1L)&lt;/a&gt; devrait fonctionner également)&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;cd répertoire/à/copier
pax -w -x sv4crc . |
ssh root@hôtedistant &quot;cd répertoire/de/destination &amp;amp;&amp;amp; pax -r -p e&quot;&lt;/pre&gt;


&lt;p&gt;Vous devriez effectuer cette manipulation avec l'utilisateur &quot;root&quot;, afin de garantir l'appartenance des fichiers aux utilisateurs. L'utilisation du format d'archive sv4crc permet d'éviter la limitation à 255 caractères de la longueur du chemin par les autres formats.&lt;/p&gt;


&lt;p&gt;Pour vérifier que tous les fichiers ont été transférés correctement, utilisez mtree(8)&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;cd répertoire/à/copier
mtree -c -k md5digest -p . | ssh root@hôtedistant &quot;cd répertoire/de/destination &amp;amp;&amp;amp; mtree -k md5digest -p .&quot;&lt;/pre&gt;


&lt;p&gt;S'il aucun message ne s'affiche, c'est que tout est Ok&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Traduction de&amp;nbsp;: &lt;a href=&quot;http://www.ntecs.de/blog-old/Tech/Sysadm/FreeBSD/RemoteDiskCopy.rdoc&quot; hreflang=&quot;en&quot;&gt;Mike's Weblog&lt;/a&gt;
Edit: l'url source est maintenant &lt;a href=&quot;http://www.ntecs.de/blog/articles/2005/07/31/remote-disk-copy&quot; hreflang=&quot;en&quot;&gt;Mike's Weblog&lt;/a&gt;&lt;/p&gt;</description>

    

      </item>
  
  <item>
    <title>Où l'on découvre une des nombreuses activités du guique ....</title>
    <link>http://www.ploup.net/nazgullien/post/2006/05/18/12-ou-l-on-decouvre-les-activites-favorites-du-guique</link>
    <guid isPermaLink="false">urn:md5:fd53e9adf84f62782d507b4e9deb06f9</guid>
    <pubDate>Thu, 18 May 2006 16:32:20 +0000</pubDate>
    <dc:creator>nazgullien</dc:creator>
        <category>les démons de nazgullien</category>
        <category>fun</category><category>sysadmin</category>
    <description>&lt;p&gt;&lt;a href=&quot;http://www.zonkedout.org&quot; hreflang=&quot;fr&quot;&gt;Matt&lt;/a&gt; a trouvé un truc plutôt marrant sur le blog &lt;a href=&quot;http://fashion.hosmoz.net/blog/2006/05/09/532-vroum-vroum&quot; hreflang=&quot;fr&quot;&gt;Digital Fashion&lt;/a&gt;.
On peut se rendre compte en regardant les headers http que renvoie(nt) le(s) serveur(s) web de la chaîne des hôtels Accor que ces gens-là utilisent un serveur web peu répandu&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;Server: Tracteur-Diesel/MF7480 Type E60TA,ISO Boost&lt;/pre&gt;

&lt;p&gt;étonnant non&amp;nbsp;? &lt;img src=&quot;/nazgullien/themes/default/smilies/cool.png&quot; alt=&quot;8-)&quot; class=&quot;smiley&quot; /&gt;&lt;br /&gt;
&lt;em&gt;P.S.: si vous ne savez pas comment voir les headers http d'une page, vous pouvez utiliser &lt;a href=&quot;http://www.webrankinfo.com/outils/header.php&quot; hreflang=&quot;fr&quot;&gt;cette page&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;Bon ... je ne pense pas que ce soit un vrai serveur web (quoique !?), mais juste un maquillage pour plusieurs raisons&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ce sont des guiques, ça les fait triper&lt;/li&gt;
&lt;li&gt;Dérouter Jean-Kévin qui vient de trouver un rootkit qu'il viendrait de découvrir&lt;/li&gt;
&lt;li&gt;Eviter les attaques visant un serveur web ou une version d'un serveur web bien spécifiques ...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Forcément ça m'a donné une idée&amp;nbsp;: &lt;strong&gt;JE VEUX FAIRE PAREIL A LA MAISON !!!&lt;/strong&gt; :'(
Chez &lt;a href=&quot;http://httpd.apache.org/&quot; hreflang=&quot;en&quot;&gt;Apache&lt;/a&gt; la directive &lt;a href=&quot;http://httpd.apache.org/docs/1.3/mod/core.html#servertokens&quot; hreflang=&quot;en&quot;&gt;ServerTokens&lt;/a&gt; peut prendre plusieurs valeurs pour afficher différents niveaux de détails sur la configuration utilisée. Voici quelques exemples&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;Server: Apache
Server: Apache/1.3.0
Server: Apache/1.3.0 (Unix)
Server: Apache/1.3.0 (Unix) PHP/3.0 MyMod/1.2&lt;/pre&gt;

&lt;p&gt;Malheureusement, on ne peut pas aller beaucoup plus loin dans la customisation de la chose depuis la configuration d'&lt;a href=&quot;http://httpd.apache.org/&quot; hreflang=&quot;en&quot;&gt;Apache&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Un petit tour dans les sources s'impose donc et au renfort de quelques &lt;code&gt;grep -r&lt;/code&gt; bien sentis, on trouve la variable à modifier !! (qui diffère selon la version)&lt;/p&gt;

&lt;pre&gt;Apache 1.3.35:
    src/include/httpd.h:
    ====================
    - #define SERVER_BASEPRODUCT &quot;Apache&quot;
    + #define SERVER_BASEPRODUCT &quot;un truc a la con&quot;&lt;/pre&gt;


&lt;pre&gt;Apache 2.2.2:
    include/ap_release.h:
    =====================
    - #define AP_SERVER_BASEPRODUCT &quot;Apache&quot;
    + #define AP_SERVER_BASEPRODUCT &quot;un truc a la con&quot;&lt;/pre&gt;

&lt;p&gt;On recompile, on réintalle,on va rajouter la directive &lt;strong&gt;&lt;code&gt;ServerTokens Prod&lt;/code&gt;&lt;/strong&gt; dans le fichier &lt;strong&gt;&lt;code&gt;httpd.conf&lt;/code&gt;&lt;/strong&gt;, on redémarre le serveur et voilà&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;Response Headers - http://www.ploup.net/

Date: Thu, 18 May 2006 14:51:25 GMT
Server: VIEILLE BROUETTE BRANLANTE/0.4.51 (Poclain tueuse) TRACTOPELLE AUTOROTATIF/56.44.289431
X-Powered-By: PHP/4.4.2
Content-Type: text/html

200 OK&lt;/pre&gt;

&lt;p&gt;&lt;br /&gt;
Et là, c'est le drame !!! &lt;img src=&quot;/nazgullien/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt; y'a un vieux &lt;code&gt;X-Powered-By: PHP/4.4.2&lt;/code&gt; qui nous pollue notre zouli serveur masqué !!
Ca se trouve cette fois-ci du côté des sources de &lt;a href=&quot;http://www.php.net/&quot; hreflang=&quot;en&quot;&gt;PHP&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Et ceci devrait être suffisant&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;main/SAPI.h:
============
    - #define SAPI_PHP_VERSION_HEADER   &quot;X-Powered-By: PHP/&quot; PHP_VERSION
    + #define SAPI_PHP_VERSION_HEADER   &quot;X-Powered-By: Broute-moi-la-mais-pas-trop 69.69&quot;&lt;/pre&gt;


&lt;p&gt;Voici ce que ça donne à la fin&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;Response Headers - http://www.ploup.net/

Date: Thu, 18 May 2006 15:54:21 GMT
Server: VIEILLE BROUETTE BRANLANTE/0.4.51 (Poclain tueuse) TRACTOPELLE AUTOROTATIF/56.44.289431
X-Powered-By: Broute-moi-la-mais-pas-trop 69.69
Content-Type: text/html
X-Cache: MISS from pbx.qualigaz.com
Proxy-Connection: close 

200 OK&lt;/pre&gt;

&lt;p&gt;C'est tout pour aujourd'hui. Have fun les amis&amp;nbsp;! &lt;img src=&quot;/nazgullien/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>

    

      </item>
  
  <item>
    <title>/home sweet /home</title>
    <link>http://www.ploup.net/nazgullien/post/2006/03/01/10--home-sweet-home</link>
    <guid isPermaLink="false">urn:md5:b95b8d8cb4eef83f38eb9897d21961aa</guid>
    <pubDate>Wed, 01 Mar 2006 00:29:06 +0000</pubDate>
    <dc:creator>nazgullien</dc:creator>
        <category>les démons de nazgullien</category>
        <category>ma life</category><category>malchance</category><category>sysadmin</category>
    <description>&lt;p&gt;Après quelques recherches, j'ai remis la main sur la partie &lt;em&gt;intelligente&lt;/em&gt; et &lt;em&gt;émergente&lt;/em&gt; de mon site web &lt;a href=&quot;http://nazgull.ath.cx/&quot; hreflang=&quot;fr&quot;&gt;nazgull.ath.cx&lt;/a&gt;, les pertes pour la partie visible portant essentiellement sur de &lt;em&gt;vieilles&lt;/em&gt; rubriques pas &lt;em&gt;vraiment&lt;/em&gt; intéressantes ...&lt;/p&gt;    &lt;p&gt;Les pertes pour la partie &lt;em&gt;internet&lt;/em&gt; sont donc&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;des vieux bouts de code auxquels je tenais tout de même un peu (infographie, tests, web-&lt;a href=&quot;http://www.nog.net/~tony/warez/cowsay.shtml&quot; hreflang=&quot;en&quot;&gt;cowsay&lt;/a&gt;, ...)&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;webnews&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;les statistiques &lt;a href=&quot;http://www.cacti.net/&quot; hreflang=&quot;en&quot;&gt;cacti&lt;/a&gt; (les données sont là, mais pas le moteur donc ça devrait en plus me permettre de mettre une version plus récente&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;le répertoire &lt;a href=&quot;http://nazgull.ath.cx/pub/&quot;&gt;/pub&lt;/a&gt; qui contenait essentiellement des conneries&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;le répertoire /priv qui servait de dépôt pour les choses privées &lt;img src=&quot;/nazgullien/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt; ...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour ce qui est du reste, j'ai malheureusement une fois de plus (et je crois que cette fois-ci est la bonne) perdu tout le code que j'avais fait à l'IUT et à Epita ainsi que ma petites librairies graphiques libnax &lt;img src=&quot;/nazgullien/themes/default/smilies/sad.png&quot; alt=&quot;:(&quot; class=&quot;smiley&quot; /&gt; .&lt;/p&gt;


&lt;p&gt;J'ai profité de cette séance récupération pour retrouver un modules de stats pour &lt;a href=&quot;http://jarel.ploup.net/&quot; hreflang=&quot;fr&quot;&gt;notre forum&lt;/a&gt; que je vais par la même occasion terminer un de ces jours ainsi que les bases &lt;a href=&quot;http://www.mysql.com/&quot; hreflang=&quot;en&quot;&gt;MySql&lt;/a&gt; de divers logiciels que j'avais installés sur la machine qui hébergeait &lt;a href=&quot;http://www.ploup.net/&quot; hreflang=&quot;fr&quot;&gt;ploup.net&lt;/a&gt; à l'origine.&lt;/p&gt;


&lt;p&gt;Voilà, il neige et je crois que c'est l'heure pour moi d'aller me coucher &lt;img src=&quot;/nazgullien/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;img src=&quot;http://www.ploup.net/nazgullien/images/neige-nuit_01042006.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;</description>

    

      </item>
  
  <item>
    <title>A mon /home tant regretté ...</title>
    <link>http://www.ploup.net/nazgullien/post/2006/02/28/9-a-mon-home-tant-regrette</link>
    <guid isPermaLink="false">urn:md5:fdb8752e430f7aa05d0cccf2a2c96a6a</guid>
    <pubDate>Tue, 28 Feb 2006 16:30:16 +0000</pubDate>
    <dc:creator>nazgullien</dc:creator>
        <category>les démons de nazgullien</category>
        <category>malchance</category><category>sysadmin</category>
    <description>&lt;p&gt;de l'utilité des sauvegardes et des scripts de sauvegarde vérifiés ... &lt;br /&gt;&lt;/p&gt;


&lt;p&gt;Un script de sauvegarde qui fait des jolies sauvegardes et qui supprime les sauvegardes de plus de 15 jours, c'est &lt;em&gt;bien&lt;/em&gt; !&lt;br /&gt;
Quand il est testé, c'est &lt;strong&gt;mieux&lt;/strong&gt; &lt;img src=&quot;/nazgullien/themes/default/smilies/sad.png&quot; alt=&quot;:-(&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;    &lt;p&gt;Hier soir j'ai mis dans ma table &lt;a href=&quot;http://www.freebsd.org/cgi/man.cgi?query=cron&amp;amp;sektion=8&amp;amp;apropos=0&amp;amp;manpath=FreeBSD+6.0-RELEASE+and+Ports&quot; hreflang=&quot;en&quot;&gt;cron(8)&lt;/a&gt; un script de sauvegarde que je lançais jusque là manuellement ...&lt;br /&gt;
Seulement, ce script était toujours éxécuté depuis un répertoire bien spécifique ... sauf que &lt;a href=&quot;http://www.freebsd.org/cgi/man.cgi?query=cron&amp;amp;sektion=8&amp;amp;apropos=0&amp;amp;manpath=FreeBSD+6.0-RELEASE+and+Ports&quot; hreflang=&quot;en&quot;&gt;cron(8)&lt;/a&gt; l'a lancé depuis mon répertoire home et a supprimé tous les fichiers datant de plus de 15 jours à partir de là :'(&lt;/p&gt;


&lt;p&gt;Résultat près de 5 ans de données en tous genres (sites web, docs, fichiers de conf bien commentés, ...), 3 ans d'archives de mails, mon site web principal, etc. ...&lt;/p&gt;


&lt;p&gt;M'enfin voilà, je suis aujourd'hui tout endeuillé et je ne peux même plus prendre la main sur la machine dont le démon &lt;a href=&quot;http://www.freebsd.org/cgi/man.cgi?query=sshd&amp;amp;apropos=0&amp;amp;sektion=8&amp;amp;manpath=FreeBSD+6.0-RELEASE+and+Ports&amp;amp;format=html&quot; hreflang=&quot;en&quot;&gt;ssh&lt;/a&gt; est configuré pour n'utiliser que la méthode d'authentification par clef publique, dont la clef privée a été supprimée par le fameux&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;find . -mtime +15 -exec rm {} \;&lt;/pre&gt;


&lt;p&gt;Repose en paix mon /home &lt;img src=&quot;/nazgullien/themes/default/smilies/normal.png&quot; alt=&quot;:-|&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>

    

      </item>
  
  <item>
    <title>Problèmes de dns ...</title>
    <link>http://www.ploup.net/nazgullien/post/2006/02/23/8-problemes-de-dns</link>
    <guid isPermaLink="false">urn:md5:2734591cd568efbb1cbd34d64c163127</guid>
    <pubDate>Thu, 23 Feb 2006 18:52:00 +0000</pubDate>
    <dc:creator>nazgullien</dc:creator>
        <category>les démons de nazgullien</category>
        <category>bind</category><category>dns</category><category>sysadmin</category>
    <description>&lt;p&gt;Deux fois en deux semaines mon serveur a subi une charge importante due à une innondation des logs par le service named&lt;br /&gt;
&lt;a href=&quot;http://img71.imageshack.us/img71/9233/ahem17og.png&quot;&gt;&lt;img src=&quot;http://img71.imageshack.us/img71/9233/ahem17og.th.png&quot; alt=&quot;graphe charge système&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://img158.imageshack.us/img158/334/ahem23pt.png&quot;&gt;&lt;img src=&quot;http://img158.imageshack.us/img158/334/ahem23pt.th.png&quot; alt=&quot;graphe utilisation processeur&quot; /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;BIND ne trouvait pas les adresses des serveurs racine et balançait sans arrêt les lignes suivantes dans syslog qui mettait du coup lui aussi la machine à genoux ! Voici quelques lignes en exemple :&lt;/p&gt;
&lt;pre&gt;Feb 22 17:46:15 fly named[121]: sysquery: no addrs found for root NS (L.ROOT-SERVERS.NET)&lt;br /&gt;Feb 22 17:46:15 fly named[121]: sysquery: no addrs found for root NS (M.ROOT-SERVERS.NET)&lt;br /&gt;Feb 22 17:46:15 fly named[121]: sysquery: no addrs found for root NS (I.ROOT-SERVERS.NET)&lt;br /&gt;Feb 22 17:46:15 fly named[121]: sysquery: no addrs found for root NS (E.ROOT-SERVERS.NET)&lt;br /&gt;Feb 22 17:46:15 fly named[121]: sysquery: no addrs found for root NS (D.ROOT-SERVERS.NET)&lt;br /&gt;Feb 22 17:46:15 fly named[121]: sysquery: no addrs found for root NS (C.ROOT-SERVERS.NET)&lt;br /&gt;Feb 22 17:46:15 fly named[121]: sysquery: no addrs found for root NS (C.ROOT-SERVERS.NET)&lt;/pre&gt;
&lt;p&gt;Après quelques recherches, j'ai trouvé &lt;a href=&quot;http://unix.derkeiler.com/Mailing-Lists/FreeBSD/questions/2004-09/0573.html&quot; hreflang=&quot;en&quot;&gt;ce post&lt;/a&gt; sur la ml freebsd-questions qui dit en gros qu'il faut éviter de BIND à la fois des forwarders et les serveurs racine.&lt;br /&gt;
Il semblerait que si le(s) forwarder(s) fonctionnent bien, BIND n'utilise jamais les serveurs racine pour faire ses résolutions. Au bout d'un certain temps, le cache des adresses de ces serveurs expire et BIND ne va pas relire ses informations sur le disque ... Au final, si BIND a finallement besoin de contacter ces serveurs racine, les données pour ces serveurs ne sont plus disponibles et BOUM!&lt;/p&gt;
&lt;p&gt;La solution est donc d'utiliser uniquement les forwarders en configurant une zone &quot;.&quot; avec les options&lt;/p&gt;
&lt;pre&gt;zone &quot;.&quot; in {&lt;br /&gt;  type forward;&lt;br /&gt;  forward only;&lt;br /&gt;  forwarders {...};&lt;br /&gt;};&lt;/pre&gt;
&lt;p&gt;Soit utiliser uniquement les serveurs racine :
&lt;/p&gt;
&lt;pre&gt;zone &quot;.&quot; in {&lt;br /&gt;  type hint;&lt;br /&gt;  file &quot;named.root&quot;;&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;et de récupérer un fichier &lt;a href=&quot;http://www.internic.net/zones/named.root&quot; hreflang=&quot;en&quot;&gt;named.root&lt;/a&gt; à jour&lt;/p&gt;
&lt;p&gt;Pour le moment ça semble fonctionner, wait &amp;amp; see !&lt;/p&gt;</description>

    

      </item>
  
</channel>
</rss>

