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

<channel>
	<title>www.pc-kc.fr</title>
	<atom:link href="http://www.pc-kc.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pc-kc.fr</link>
	<description>Le site pour garder le contact avec votre PC</description>
	<lastBuildDate>Fri, 09 Jul 2010 07:44:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Retour d’expérience : Panne d’un serveur HP Proliant &amp; SAV HP</title>
		<link>http://www.arnaudbosquet.fr/reseau-informatique/panne-dun-serveur-hp-proliant-sav-hp</link>
		<comments>http://www.arnaudbosquet.fr/reseau-informatique/panne-dun-serveur-hp-proliant-sav-hp#comments</comments>
		<pubDate>Fri, 09 Jul 2010 07:44:23 +0000</pubDate>
		<dc:creator>Arnaud</dc:creator>
				<category><![CDATA[Chez les autres]]></category>

		<guid isPermaLink="false">http://www.arnaudbosquet.fr/?p=839</guid>
		<description><![CDATA[La semaine dernière dans ma boîte, notre serveur de fichiers, un HP Proliant 185 G5 est tombé en panne; enfin c&#8217;est surtout la carte mère qui est tombée en panne. Malgré notre contrat J+1, la panne est réparée une semaine plus tard. J&#38;#82...]]></description>
			<content:encoded><![CDATA[La semaine dernière dans ma boîte, notre serveur de fichiers, un HP Proliant 185 G5 est tombé en panne; enfin c&#8217;est surtout la carte mère qui est tombée en panne. Malgré notre contrat J+1, la panne est réparée une semaine plus tard. J&#8217;ai rédigé un article pour notre communication interne, pour nos utilisateurs. Je vous [...]]]></content:encoded>
			<wfw:commentRss>http://www.arnaudbosquet.fr/reseau-informatique/panne-dun-serveur-hp-proliant-sav-hp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faire tourner IIS et Apache sur le même serveur</title>
		<link>http://www.arnaudbosquet.fr/developpement/faire-tourner-iis-et-apache-sur-le-meme-serveur</link>
		<comments>http://www.arnaudbosquet.fr/developpement/faire-tourner-iis-et-apache-sur-le-meme-serveur#comments</comments>
		<pubDate>Mon, 28 Jun 2010 08:13:52 +0000</pubDate>
		<dc:creator>Arnaud</dc:creator>
				<category><![CDATA[Chez les autres]]></category>

		<guid isPermaLink="false">http://www.arnaudbosquet.fr/?p=831</guid>
		<description><![CDATA[Quand on a des scripts ASP qui tournent dans les même dossiers que du PHP, c&#8217;est un peu la galère. Sur le même serveur tourne un serveur Apache (pour le PHP)  &#38; un serveur IIS (pour l&#8217;ASP).
L&#8217;astuce consiste à faire écouter ...]]></description>
			<content:encoded><![CDATA[Quand on a des scripts ASP qui tournent dans les même dossiers que du PHP, c&#8217;est un peu la galère. Sur le même serveur tourne un serveur Apache (pour le PHP)  &#38; un serveur IIS (pour l&#8217;ASP).
L&#8217;astuce consiste à faire écouter le serveur d&#8217;IIS sur le port 81.
On fait ensuite une règle de redirection d&#8217;url [...]]]></content:encoded>
			<wfw:commentRss>http://www.arnaudbosquet.fr/developpement/faire-tourner-iis-et-apache-sur-le-meme-serveur/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>utilisateurs postfix virtuels : ajouter un répondeur “vacation”</title>
		<link>http://michauko.org/blog/2010/06/16/utilisateurs-postfix-virtuels-ajouter-un-repondeur-vacation/</link>
		<comments>http://michauko.org/blog/2010/06/16/utilisateurs-postfix-virtuels-ajouter-un-repondeur-vacation/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 08:30:27 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[Chez les autres]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=1047</guid>
		<description><![CDATA[Avec mes précédents articles ci-dessous, vous avez de quoi monter une architecture complète de mails avec utilisateurs virtuels. Pour faire simple. configurer postfix pour gérer des utilisateurs virtuels monter une architecture complète &#8220;postfix / postgrey / amavisd-new / clamav / spamassassin&#8221; Il manque cependant un morceau : la possibilité de faire appel à des &#8220;procmail&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Avec mes précédents articles ci-dessous, vous avez de quoi monter une architecture complète de mails avec utilisateurs virtuels. Pour faire simple.</p>
<ul>
<li>
<a href="http://michauko.org/blog/2009/10/20/postfix-utilisateurs-virtuels-mysql-acces-pop3s-imaps-sasl-et-tls-quota-bingo-jai-tout-mis-dans-le-titre/">configurer postfix pour gérer des utilisateurs virtuels</a>
</li>
<li>
<a href="http://michauko.org/blog/2009/09/21/montage-dun-serveur-de-mail-complet-postfix-postgrey-amavisd-new-clamav-spamassassin-etc/">monter une architecture complète &#8220;postfix / postgrey / amavisd-new / clamav / spamassassin&#8221;</a>
</li>
</ul>
<p></p>
<p><strong>Il manque cependant un morceau : la possibilité de faire appel à des &#8220;procmail&#8221; personnalisés pour ces utilisateurs virtuels.</strong></p>
<p>Lorsqu&#8217;on n&#8217;est pas avec des utilisateurs virtuels, chaque utilisateur réel (ayant un compte utilisateur, donc) utilise généralement son <code>~/.procmailrc</code> pour trier un peu ou <strong>- cas qui m&#8217;intéresse particulièrement &#8211; activer son répondeur d&#8217;absence, &#8220;<code>vacation</code>&#8220;</strong> pour ne pas le nommer.<br />
Dans le cas d&#8217;utilisateurs virtuels, c&#8217;est sensiblement différent. C&#8217;est ce que je décrirai dans cet article. Ce n&#8217;est au final pas compliqué, mais il faut comprendre le rôle de chaque composant et les limites de fonctionnement de chaque outil.<br />
En effet, je n&#8217;ai pas trouvé de doc ultra-claire sur le sujet sur le web, surtout les bricoles de chacun. Avec un peu de recul, et, voyant ma propre solution, j&#8217;ai l&#8217;impression qu&#8217;il y a tellement de configurations possibles (maildrop et pas procmail, mes utilisateurs virtuels comme ci, pas comme ça, il utilise postfixadmin et pas moi etc) qu&#8217;il est impossible d&#8217;écrire un truc qui n&#8217;est pas spécifique.<br />
Le plus dur est donc de comprendre ce qu&#8217;on fait pour transposer à sa conf. Je tâcherai donc, comme d&#8217;hab, d&#8217;expliquer ce que je fais plutôt que de copier-coller les fichiers de conf.</p>
<p>Allez, let&#8217;s go pour la mise en place sur la base d&#8217;une archi postfix &#038; co comme décrite dans les docs mentionnées en début de cet article.</p>
<p><em>Ah, dernier point : à la base, et tel que je le décris, l&#8217;utilisateur ne pourra pas mettre lui même son répondeur en place. Dans mon cas, ce n&#8217;est pas important. En effet, j&#8217;utilise des utilisateurs virtuels car il s&#8217;agit d&#8217;un serveur frontal de mails (qui trie le spam, en gros), livre les messages dans des arborescences virtuelles en attendant d&#8217;être POPées depuis un backend de mails quelconque (un vilain Exchange <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). Donc, le répondeur d&#8217;absence des utilisateurs &#8220;physiques&#8221; est géré par eux-mêmes dans Outlook &#8220;normalement&#8221;, et je n&#8217;applique ce principe de répondeur qu&#8217;exceptionnellement, à quelques boîtes mails IMAP génériques, qui n&#8217;ont pas vraiment de notion de &#8220;vacances&#8221;. Des boîtes partagées entre plusieurs personnes, si vous voulez, mais stockées sur le frontal et pas dans le backend, pour diverses raisons dont on se moque ici. Après vous pourrez toujours bricoler un truc pour que tout un chacun accède à son procmail ou son message d&#8217;asbence pour le mettre, l&#8217;enlever etc.</em><span id="more-1047"></span></p>
<h1>Le principe</h1>
<p>On veut activer le répondeur de toto@domaine.fr en utilisant l&#8217;outil &#8220;<code>vacation</code>&#8221; qui gère très bien les réponses. &#8220;<code>vacation</code>&#8221; ne joue qu&#8217;avec des comptes utilisateurs existants. Premier problème.</p>
<p>Pour y arriver, on va créer des alias pour ce compte virtuel &#8220;toto@domaine.fr&#8221; afin que postfix &#8220;forward&#8221; (du nom de la table &#8220;forwardings&#8221; gérant les alias des utilisateurs virtuels) tout mail à destination de toto@domaine.fr vers 2 endroits :</p>
<ul>
<li>
le réel toto@domaine.fr, histoire de délivrer le mail quand même, au final
</li>
<li>
et en plus vers un certain toto@vacation.domaine.fr qui n&#8217;existe pas
</li>
</ul>
<p><bR>Ce dernier nom &#8220;vacation.domaine.fr&#8221; n&#8217;a pas besoin d&#8217;exister au sens DNS et ne correspond pas non plus à un MX réel. On va juste créer un &#8220;transport&#8221; (du nom de la table MySQL qu&#8217;on a créée avec les docs précédentes) particulier afin de router les messages à destination du domaine &#8220;vacation.domaine.fr&#8221; vers un &#8220;<code>pipe</code>&#8221; particulier de postfix qu&#8217;on va créer pour l&#8217;occasion.<br />
Ce &#8220;<code>pipe</code>&#8221; UNIX, composant qu&#8217;on ajoute à la chaîne postfix, gèrera en fait l&#8217;appel à <code>procmail </code>configuré d&#8217;une manière globale (un gros <code>procmailrc </code>générique, si vous voulez).<br />
Ce <code>procmail </code>fera ensuite un tri sur le nom du destinaire et appellera &#8220;<code>vacation</code>&#8221; lorsqu&#8217;on le veut avec un message personnalisé.</p>
<p><i>C&#8217;est ce procmail global qu&#8217;il conviendrait de découper (avec des INCLUDE), ainsi que les fichiers de messages d&#8217;absence qui vont avec, si on voulait donner la main d&#8217;une manière pas super pratique (FTP ? samba ?) à des utilisateurs réels sur leur répondeur de compte virtuel&#8230;</i></p>
<p>Je me suis basé sur pas mal de docs bizarroïdes, et surtout sur les quelques explications <a href="http://lists.mailscanner.info/pipermail/mailscanner/2005-January/044873.html">trouvées ici</a>. Le cheminement y est, mais c&#8217;est pas détaillé sur le principe et le type propose son propre script de répondeur ; script qui peut générer une belle boucle infinie entre répondeurs, à mon humble avis. Ce risque n&#8217;existe pas avec &#8220;<code>vacation</code>&#8220;, car il garde une liste des gens &#8220;déjà répondus&#8221;, sauf si vous forcez à répondre à chaque fois.</p>
<h1>Mise en place</h1>
<h2>Paquets, utilisateur etc</h2>
<p>Au besoin, suivant l&#8217;état de votre installation :</p>
<pre>aptitude install procmail vacation</pre>
<p>Ensuite, j&#8217;ai expliqué que &#8220;<code>vacation</code>&#8221; ne travaillait que sur un compte réel. Je lui dédie donc un compte :</p>
<pre>useradd -m vacation -s /bin/nologin -c "Utilisateur vacation"</pre>
<h2>Création du pipe UNIX</h2>
<p>On crée le processus qui sera en charge de router (de manière interne à postfix) les messages arrivant dans un <code>pipe </code>qu&#8217;on nomme &#8220;repondeur&#8221; vers <code>procmail</code> (lui même appelant le cas échéant le programme de répondeur &#8220;<code>vacation</code>&#8220;).<br />
Dans <code>/etc/postfix/master.cf</code>, à la fin (peu importe), on définit ce pipe comme suit :</p>
<pre>#ajout d'un appel à procmail pour gérer certains 'vacation' sur les boites IMAP
#attention, l'appel à ce pipe est géré dans la table des transports virtuels + des forwardings qui vont bien
repondeur   unix    -       n       n       -       10      pipe
  flags=Rq user=vacation argv=/usr/bin/procmail -Y -m /etc/postfix/procmail-global-repondeur.rc ${sender} ${recipient}
</pre>
<p>Les espaces avant &#8220;flags&#8221; sont importants, c&#8217;est ce qui explique à postfix qu&#8217;il s&#8217;agit d&#8217;option du <code>pipe </code> nommé &#8220;repondeur&#8221;.<br />
Je décrirai le fichier <code>/etc/postfix/procmail-global-repondeur.rc</code> plus tard. C&#8217;est lui qui contiendra les appels aux &#8220;<code>vacation</code>&#8221; de tels et tels utilisateurs.<br />
J&#8217;avoue ne pas être super sûr des flags utilisés, voyez <code>man pipe</code> au besoin.</p>
<h2>transport virtuel</h2>
<p>Si votre base MySQL est exactement celle que je décris dans mes précédentes documentations, insérez une ligne dans la table &#8220;transport&#8221; afin d&#8217;avoir :</p>
<pre>mysql> select * from transport;
+---------------------+-----------+
| domain              | transport |
+---------------------+-----------+
| vacation.domaine.fr | repondeur |
+---------------------+-----------+
1 row in set (0.00 sec)</pre>
<p>Pour bien relier cette table à votre configuration &#8220;virtuelle&#8221;, la table &#8220;transport&#8221; dont je parle est celle décrite comme ça dans postfix :</p>
<pre>[extraits de fichiers]
main.cf:transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
mysql-virtual_transports.cf:query = SELECT transport FROM transport WHERE domain='%s'</pre>
<h2>Création des alias pour router vers le &#8220;pipe&#8221; &#8220;repondeur&#8221;</h2>
<p>Pour chaque utilisateur virtuel qui devra avoir un répondeur actif (ou potentiellement actif), il faudra ajouter 2 alias le concernant dans la table des alias (&#8220;forwardings&#8221; dans mon cas, là encore, ça dépend de votre conf de &#8220;postfix virtuel&#8221;). Ajoutez donc les lignes pour avoir :</p>
<pre>mysql> select * from forwardings where source like 'j%doma%';
+--------------------+-----------------------------+
| source             | destination                 |
+--------------------+-----------------------------+
| jacques@domaine.fr | jacques@domaine.fr          |
| jacques@domaine.fr | jacques@vacation.domaine.fr |
+--------------------+-----------------------------+
2 rows in set (0.00 sec)</pre>
<p>J&#8217;ai eu un souci pour insérer ces 2 lignes, car il y a une contrainte de clef primaire sur &#8220;source&#8221;, ce qui semble logique, mais qui est en fait bloquant pour nous et inutile dans un cas normal d&#8217;alias d&#8217;utilisateurs virtuels (on pourrait faire une liste de diffusion en créant plusieurs lignes pour une même source car postfix gère très bien le fait d&#8217;avoir plusieurs destination pour une même source).<br />
Bref, j&#8217;ai fait sauté la contrainte PK que j&#8217;avais mise dans mes docs précédents :</p>
<pre>ALTER TABLE forwardings
DROP PRIMARY KEY;</pre>
<p>Rassurez-vous, ça ne fait pas sauter les entrées déjà stockées dans la table si vous en avez.</p>
<h2>procmailrc et vacation</h2>
<p>On y est presque.<br />
Reste à définir le <code>procmail </code>global appelant vacation :<br />
Dans mon &#8220;<code>pipe</code>&#8220;, j&#8217;appelle ce fichier :</p>
<pre>servr:/etc/postfix# cat /etc/postfix/procmail-global-repondeur.rc
SHELL=/bin/sh

:0c
* ^(To|Cc).*jacques@domaine.fr
| vacation -f /home/vacation/jacques@domaine.fr.db -m /home/vacation/jacques@domaine.fr.msg -a jacques@domaine.fr vacation

:0c
* ^(To|Cc).*autre_type@domaine.fr
| vacation -f /home/vacation/autre_type@domaine.fr.db -m /home/vacation/autre_type@domaine.fr.msg -a autre_type@domaine.fr vacation

:0
/dev/null</pre>
<p><strong>Alors, c&#8217;est presque le plus compliqué car ce fichier est plein de petites ruses</strong>. Il vous montre comment procéder lorsque vous aurez plusieurs boîtes concernées par un vacation.<br />
<i>Je rappelle que de cette manière, c&#8217;est un peu pénible à maintenir car c&#8217;est l&#8217;admin qui gère. Là il s&#8217;agit de boîte IMAP partagées et peu nombreuses, donc c&#8217;est gérable.</i></p>
<p>Le détail est donc :</p>
<ul>
<li>
Je stocke tous mes messages de &#8220;vacances&#8221; dans ~vacation/
</li>
<li>
-f : pour indiquer dans quelle &#8220;base de données&#8221; on stocke les gens à qui on a déjà répondu</li>
<li>
</li>
<li>
-m : pour indiquer le mail de réponse d&#8217;un utilisateur donné, je le détaille plus bas
</li>
<li>
-a : <strong>hyper important </strong> : en effet, <code>vacation </code>ne travaille que sur un utilisateur réel. Donc obligé de spécifier un utilisateur réel en fin de commande <code>vacation</code>, c&#8217;est l&#8217;utilisateur &#8220;vacation&#8221; himself qui figure en dernier argument de la ligne de commande. Donc, pour que <code>vacation </code> travaille, j&#8217;explique aussi que cet utilisateur réel peut être connu sous l&#8217;alias (-a) jacques@domaine.fr (ou autre_type@domaine.fr dans la 2è règle). Sinon aucune règle ne s&#8217;appliquera jamais.
</li>
<li>
&#8220;:0c&#8221; : <strong>OUI : il faut activer le &#8220;carbon copy&#8221;</strong>. J&#8217;ai constaté ça à force de tests. En effet, un message arrivant dans postfix a un ID, il est dédoublé avec le même ID, l&#8217;un part vers l&#8217;utilisateur réel pour livraison, l&#8217;autre vers le &#8220;<code>pipe</code>&#8220;, puis <code>procmail</code>, puis <code>vacation</code>. &#8220;<code>vacation</code>&#8221; arrête les règles (si on ne met pas le &#8220;c&#8221; de carbon copy) dès que ça &#8220;match&#8221;. Si un expéditeur envoi un unique mail à en même temps jacques@domaine.fr et autre_type@domaine.fr, la première règle va marcher, donc procmail arrêtera de bosser. Résultat : pas de répondeur pour &#8220;autre_type&#8221;. On ne sait pas qu&#8217;il est en vacances.
</li>
<li>
Et enfin, le piège des &#8220;carbon copy&#8221; : si on ne fait pas une dernière règle virant vers /dev/null tout message au final, un message légitime auquel on aura répondu par &#8220;vacation&#8221; sortira de procmail et continuera sa route : il sera donc livré. Mais c&#8217;est un utilisateur complètement bidon, untel@vacation.domaine.fr, domaine inexistant => erreur de livraison => log dans <code>/var/log/mail.info</code> et <strong>surtout</strong>, mail d&#8217;erreur bien crade informant l&#8217;expéditeur&#8230;</li>
</ul>
<h2>fichier .msg de vacation</h2>
<p>Voici à quoi doit ressembler un fichier de réponse minimaliste :</p>
<pre>servr:/etc/postfix# cat ~vacation/jacques\@domaine.fr.msg
From: jacques@domaine.fr (Jacques)
Subject: Re: $SUBJECT
Precedence: Bulk

Votre mail a bien été reçu, blablablabla
-- Jacques
</pre>
<h2>reload postfix et tests</h2>
<p>A la fin, <code>/etc/init.d/postfix reload</code> et zou, testez des envois de mails, de réenvois de mails (pour n&#8217;avoir qu&#8217;une fois la réponse etc).<br />
Le plus risqué dans cette manip&#8217; sur un serveur en production, c&#8217;est que tout les adresses normales commencent à merdouiller. Le plus rapide pour annuler tout ça le temps de réfléchir, est de commenter les 2 lignes définissant le pipe et de rechargez postfix.</p>
<h1>Autres remarques</h1>
<h2>Réinit d&#8217;un répondeur</h2>
<p>A une époque, il me semblait qu&#8217;en modifiant le fichier .msg, <code>vacation </code>détectait le changement et donc ne tenait plus compte des expéditeurs &#8220;déjà répondus&#8221;. Après quelques tests, je n&#8217;en suis plus si sûr. Le plus simple pour relancer un répondeur &#8220;pour tous&#8221; : supprimez le fichier .db correspondant.</p>
<h2>Permissions</h2>
<p>Attention, j&#8217;ai interdit le login pour l&#8217;utilisateur vacation. Donc tout ce que vous créerez dans ~vacation/*msg sera sûrement au nom de &#8220;root&#8221;, par exemple. Pensez à changer les droits.<br />
Si vous avez raté un truc, les logs sont très explicites dans <code>/var/log/mail.info</code>.<br />
Je crois aussi me rappeler que si <code>vacation </code>ne voit pas le fichier .msg, il ne fera rien. A vérifier, mais c&#8217;est une méthode simple (et crade car ça va faire du log à coup sûr) pour activer/désactiver un répondeur <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>un log complet pour illustrer</h2>
<p>Si tout se passe bien, vous avez ça :<br />
Connexion du serveur expéditeur :</p>
<pre>Jun 14 17:10:21 servr postfix/smtpd[20107]: connect from expediteur.org[xx.yy.zz.tt]
Jun 14 17:10:21 servr postgrey[12166]: action=pass, reason=client AWL, client_name=expediteur.org, client_address=xx.yy.zz.tt, sender=exped@expediteur.org, recipient=jacques@domaine.fr
Jun 14 17:10:21 servr postfix/smtpd[20107]: C2B829C4081: client=expediteur.org[xx.yy.zz.tt]
Jun 14 17:10:21 servr postfix/cleanup[20065]: C2B829C4081: message-id=<20100614151021.AF0F0EEC57C@mail.expediteur.org>
Jun 14 17:10:21 servr postfix/qmgr[19547]: C2B829C4081: from=<exped@expediteur.org>, size=515, nrcpt=2 (queue active)
Jun 14 17:10:21 servr postfix/smtpd[20107]: disconnect from expediteur.org[xx.yy.zz.tt]
Jun 14 17:10:23 servr postfix/smtpd[20208]: connect from localhost.localdomain[127.0.0.1]
Jun 14 17:10:23 servr postfix/smtpd[20208]: 8A0E69C4085: client=localhost.localdomain[127.0.0.1]
Jun 14 17:10:23 servr postfix/cleanup[20065]: 8A0E69C4085: message-id=<20100614151021.AF0F0EEC57C@mail.expediteur.org>
Jun 14 17:10:23 servr postfix/smtpd[20208]: disconnect from localhost.localdomain[127.0.0.1]
Jun 14 17:10:23 servr postfix/qmgr[19547]: 8A0E69C4085: from=<exped@expediteur.org>, size=1045, nrcpt=3 (queue active)</pre>
<p>Pas de greylisting, car c&#8217;est un pote. Analyse par amavis OK, on dédouble le message vers jacques@domaine.fr et jacques@vacation.domaine.fr.<br />
Chaque file suivra alors sa route :</p>
<pre>Jun 14 17:10:23 servr amavis[18918]: (18918-18) Passed CLEAN, [xx.yy.zz.tt] [xx.yy.zz.tt] <exped@expediteur.org> -> <jacques@domaine.fr>,<jacques@vacation.domaine.fr>, Message-ID: <20100614151021.AF0F0EEC57C@mail.expediteur.org>, mail_id: uuW4XqNAoH7S, Hits: 1.714, size: 515, queued_as: 8A0E69C4085, 1902 ms
Jun 14 17:10:23 servr postfix/smtp[20190]: C2B829C4081: to=<jacques@domaine.fr>, relay=127.0.0.1[127.0.0.1]:10024, delay=1.9, delays=0.03/0/0/1.9, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=18918-18, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 8A0E69C4085)
Jun 14 17:10:23 servr postfix/smtp[20190]: C2B829C4081: to=<jacques@vacation.domaine.fr>, orig_to=<jacques@domaine.fr>, relay=127.0.0.1[127.0.0.1]:10024, delay=1.9, delays=0.03/0/0/1.9, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=18918-18, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 8A0E69C4085)
Jun 14 17:10:23 servr postfix/qmgr[19547]: C2B829C4081: removed</pre>
<p>La partie &#8220;utilisateur virtuel de postfix&#8221; traite le &#8220;mail normal&#8221; => &#8220;delivered to maildir&#8221;. Ca roule :</p>
<pre>Jun 14 17:10:23 servr postfix/virtual[20212]: 8A0E69C4085: to=<jacques@domaine.fr>, relay=virtual, delay=0.3, delays=0.15/0.01/0/0.14, dsn=2.0.0, status=sent (delivered to maildir)</pre>
<p>La partie &#8220;vacation&#8221; (pipe repondeur) route vers le &#8220;relay=repondeur&#8221;. Le job s&#8217;accomplit correctement &#8220;(delivered via repondeur service)&#8221;. Là on n&#8217;a pas d&#8217;autre erreur, sinon on pourrait voir vacation ou procmail pas content :</p>
<pre>Jun 14 17:10:23 servr postfix/pickup[19550]: ECF179C408A: uid=5001 from=<vacation>
Jun 14 17:10:23 servr postfix/pipe[20209]: 8A0E69C4085: to=<jacques@vacation.domaine.fr>, orig_to=<jacques@domaine.fr>, relay=repondeur, delay=0.41, delays=0.15/0/0/0.25, dsn=2.0.0, status=sent (delivered via repondeur service)
Jun 14 17:10:23 servr postfix/pipe[20209]: 8A0E69C4085: to=<jacques@vacation.domaine.fr>, relay=repondeur, delay=0.41, delays=0.15/0/0/0.25, dsn=2.0.0, status=sent (delivered via repondeur service)
Jun 14 17:10:23 servr postfix/cleanup[20065]: ECF179C408A: message-id=<20100614151023.ECF179C408A@domaine.fr>
Jun 14 17:10:23 servr postfix/qmgr[19547]: 8A0E69C4085: removed
Jun 14 17:10:24 servr postfix/qmgr[19547]: ECF179C408A: from=<vacation@domaine.fr>, size=343, nrcpt=1 (queue active)</pre>
<p>Deux secondes plus tard, &#8220;vacation&#8221; a détecté qu&#8217;il fallait répondre à &#8220;exped@expediteur.org&#8221;, donc on envoit un mail :<br />
(le champ From sera jacques@domaine.fr, seul Return-Path sera à vacation@domaine.fr)</p>
<pre>Jun 14 17:10:26 servr postfix/smtpd[20208]: connect from localhost.localdomain[127.0.0.1]
Jun 14 17:10:26 servr postfix/smtpd[20208]: 174A99C4081: client=localhost.localdomain[127.0.0.1]
Jun 14 17:10:26 servr postfix/cleanup[20065]: 174A99C4081: message-id=<20100614151023.ECF179C408A@domaine.fr>
Jun 14 17:10:26 servr postfix/qmgr[19547]: 174A99C4081: from=<vacation@domaine.fr>, size=770, nrcpt=1 (queue active)
Jun 14 17:10:26 servr amavis[20202]: (20202-01) Passed CLEAN, <vacation@domaine.fr> -> <exped@expediteur.org>, Message-ID: <20100614151023.ECF179C408A@domaine.fr>, mail_id: xw6dpgfdz+b5, Hits: -0.001, size: 343, queued_as: 174A99C4081, 2197 ms
Jun 14 17:10:26 servr postfix/smtp[20190]: ECF179C408A: to=<exped@expediteur.org>, relay=127.0.0.1[127.0.0.1]:10024, delay=2.3, delays=0.14/0/0/2.2, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=20202-01, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 174A99C4081)
Jun 14 17:10:26 servr postfix/qmgr[19547]: ECF179C408A: removed
Jun 14 17:10:26 servr postfix/smtp[20219]: 174A99C4081: to=<exped@expediteur.org>, relay=mail.expediteur.org[xx.yy.zz.tt]:25, delay=0.21, delays=0.14/0/0.02/0.05, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4337FEEC560)
Jun 14 17:10:26 servr postfix/qmgr[19547]: 174A99C4081: removed</pre>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2010/06/16/utilisateurs-postfix-virtuels-ajouter-un-repondeur-vacation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top 10 Logo Designs from Top 10 Logo Designers</title>
		<link>http://www.arnaudbosquet.fr/vu-sur-le-web/top-10-logo-designs-from-top-10-logo-designers</link>
		<comments>http://www.arnaudbosquet.fr/vu-sur-le-web/top-10-logo-designs-from-top-10-logo-designers#comments</comments>
		<pubDate>Wed, 09 Jun 2010 10:07:34 +0000</pubDate>
		<dc:creator>Arnaud</dc:creator>
				<category><![CDATA[Chez les autres]]></category>

		<guid isPermaLink="false">http://www.arnaudbosquet.fr/?p=817</guid>
		<description><![CDATA[La sélection complète [via The Design Buzz]
]]></description>
			<content:encoded><![CDATA[La sélection complète [via The Design Buzz]
]]></content:encoded>
			<wfw:commentRss>http://www.arnaudbosquet.fr/vu-sur-le-web/top-10-logo-designs-from-top-10-logo-designers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu, Lucid Lynx, eeePC, RaLink RT2860 et wifi WPA</title>
		<link>http://michauko.org/blog/2010/05/31/ubuntu-lucid-lynx-eeepc-ralink-rt2860-et-wifi-wpa/</link>
		<comments>http://michauko.org/blog/2010/05/31/ubuntu-lucid-lynx-eeepc-ralink-rt2860-et-wifi-wpa/#comments</comments>
		<pubDate>Mon, 31 May 2010 12:23:21 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[Chez les autres]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=1036</guid>
		<description><![CDATA[Une fois n&#8217;est pas coutume, j&#8217;upgrade Ubuntu vers la dernière release, et là, le wifi me fait des misères. Ca marchait ça marche plus etc. Dans le cas présent, j&#8217;ai upgradé un ASUS eeePC (peu importe le modèle, je crois qu&#8217;ils sont tous concernés car basés sur à peu près la même puce wifi) depuis [...]]]></description>
			<content:encoded><![CDATA[<p>Une fois n&#8217;est pas coutume, j&#8217;upgrade Ubuntu vers la dernière release, et là, le wifi me fait des misères. Ca marchait ça marche plus etc.<br />
Dans le cas présent, j&#8217;ai upgradé un ASUS eeePC (peu importe le modèle, je crois qu&#8217;ils sont tous concernés car basés sur à peu près la même puce wifi) depuis la release précédente (Karmic Koala) où tout marchait très bien.<br />
Voici le problème et des solutions.<span id="more-1036"></span></p>
<h1>Les symptomes</h1>
<p>Après l&#8217;upgrade, on se retrouve en kernel 2.6.32-22. Le wifi fonctionne par exemple sur un réseau en WPA2, mais ça n&#8217;accroche pas sur un réseau WPA (certains disent WPA mixte WPA2, j&#8217;en sais rien).<br />
<strong>Autant utiliser du WPA2. Oui d&#8217;accord, mais ma freebox, elle fait que du WPA&#8230;</strong><br />
=> Le driver RT2860 est buggé dans ce noyau.</p>
<h2>Les logs</h2>
<p>Vous verrez qu&#8217;on tourne en rond entre &#8220;l&#8217;association&#8221; avec le point d&#8217;accès et le rescan des réseaux ça rate X fois, puis on abandonne pour de bon :</p>
<pre>May 19 19:33:17 ubuntu NetworkManager: <info>  Activation (wlan0) Stage 1 of 5 (Device Prepare) scheduled...
May 19 19:33:17 ubuntu NetworkManager: <info>  Activation (wlan0) Stage 1 of 5 (Device Prepare) started...
May 19 19:33:17 ubuntu NetworkManager: <info>  (wlan0): device state change: 6 -> 4 (reason 0)
May 19 19:33:17 ubuntu NetworkManager: <info>  Activation (wlan0) Stage 2 of 5 (Device Configure) scheduled...
May 19 19:33:17 ubuntu NetworkManager: <info>  Activation (wlan0) Stage 1 of 5 (Device Prepare) complete.
May 19 19:33:17 ubuntu NetworkManager: <info>  Activation (wlan0) Stage 2 of 5 (Device Configure) starting...
May 19 19:33:17 ubuntu NetworkManager: <info>  (wlan0): device state change: 4 -> 5 (reason 0)
May 19 19:33:17 ubuntu NetworkManager: <info>  Activation (wlan0/wireless): connection 'Auto folie' has security, and secrets exist.  No new secrets needed.
May 19 19:33:17 ubuntu NetworkManager: <info>  Config: added 'ssid' value 'folie'
May 19 19:33:17 ubuntu NetworkManager: <info>  Config: added 'scan_ssid' value '1'
May 19 19:33:17 ubuntu NetworkManager: <info>  Config: added 'key_mgmt' value 'WPA-PSK'
May 19 19:33:17 ubuntu NetworkManager: <info>  Config: added 'psk' value '<omitted>'
May 19 19:33:17 ubuntu NetworkManager: nm_setting_802_1x_get_pkcs11_engine_path: assertion `NM_IS_SETTING_802_1X (setting)' failed
May 19 19:33:17 ubuntu NetworkManager: nm_setting_802_1x_get_pkcs11_module_path: assertion `NM_IS_SETTING_802_1X (setting)' failed
May 19 19:33:17 ubuntu NetworkManager: <info>  Activation (wlan0) Stage 2 of 5 (Device Configure) complete.
May 19 19:33:18 ubuntu NetworkManager: <info>  Config: set interface ap_scan to 1
May 19 19:33:18 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  disconnected -> scanning
May 19 19:33:23 ubuntu wpa_supplicant[3187]: Trying to associate with 66:f2:bc:b8:cc:30 (SSID='folie' freq=2412 MHz)
May 19 19:33:23 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  scanning -> associating
May 19 19:33:23 ubuntu kernel: [  660.417251] ===>rt_ioctl_giwscan. 5(5) BSS returned, data->length = 636
May 19 19:33:23 ubuntu kernel: [  660.417895] ==>rt_ioctl_siwfreq::SIOCSIWFREQ[cmd=0x8b04] (Channel=1)
May 19 19:33:23 ubuntu wpa_supplicant[3187]: Association request to the driver failed
May 19 19:33:28 ubuntu wpa_supplicant[3187]: Authentication with 66:f2:bc:b8:cc:30 timed out.
May 19 19:33:28 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  associating -> disconnected
May 19 19:33:28 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  disconnected -> scanning
May 19 19:33:33 ubuntu wpa_supplicant[3187]: Trying to associate with 66:f2:bc:b8:cc:30 (SSID='folie' freq=2412 MHz)
May 19 19:33:33 ubuntu kernel: [  670.433534] ===>rt_ioctl_giwscan. 5(5) BSS returned, data->length = 636
May 19 19:33:33 ubuntu kernel: [  670.434373] ==>rt_ioctl_siwfreq::SIOCSIWFREQ[cmd=0x8b04] (Channel=1)
May 19 19:33:33 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  scanning -> associating
May 19 19:33:33 ubuntu wpa_supplicant[3187]: Association request to the driver failed
May 19 19:33:38 ubuntu wpa_supplicant[3187]: Authentication with 66:f2:bc:b8:cc:30 timed out.
May 19 19:33:38 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  associating -> disconnected
May 19 19:33:38 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  disconnected -> scanning
May 19 19:33:43 ubuntu kernel: [  680.449828] ===>rt_ioctl_giwscan. 5(5) BSS returned, data->length = 636
May 19 19:33:43 ubuntu kernel: [  680.450463] ==>rt_ioctl_siwfreq::SIOCSIWFREQ[cmd=0x8b04] (Channel=1)
May 19 19:33:43 ubuntu wpa_supplicant[3187]: Trying to associate with 66:f2:bc:b8:cc:30 (SSID='folie' freq=2412 MHz)
May 19 19:33:43 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  scanning -> associating
May 19 19:33:43 ubuntu wpa_supplicant[3187]: Association request to the driver failed
May 19 19:33:48 ubuntu wpa_supplicant[3187]: Authentication with 66:f2:bc:b8:cc:30 timed out.
May 19 19:33:48 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  associating -> disconnected
May 19 19:33:48 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  disconnected -> scanning
May 19 19:33:53 ubuntu wpa_supplicant[3187]: Trying to associate with 66:f2:bc:b8:cc:30 (SSID='folie' freq=2412 MHz)
May 19 19:33:53 ubuntu kernel: [  690.468163] ===>rt_ioctl_giwscan. 5(5) BSS returned, data->length = 636
May 19 19:33:53 ubuntu kernel: [  690.468883] ==>rt_ioctl_siwfreq::SIOCSIWFREQ[cmd=0x8b04] (Channel=1)
May 19 19:33:53 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  scanning -> associating
May 19 19:33:53 ubuntu wpa_supplicant[3187]: Association request to the driver failed
May 19 19:33:58 ubuntu NetworkManager: <info>  wlan0: link timed out.
May 19 19:33:58 ubuntu wpa_supplicant[3187]: Authentication with 66:f2:bc:b8:cc:30 timed out.
May 19 19:33:58 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  associating -> disconnected
May 19 19:33:58 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  disconnected -> scanning
May 19 19:34:03 ubuntu kernel: [  700.491916] ===>rt_ioctl_giwscan. 5(5) BSS returned, data->length = 636
May 19 19:34:03 ubuntu wpa_supplicant[3187]: Trying to associate with 66:f2:bc:b8:cc:30 (SSID='folie' freq=2412 MHz)
May 19 19:34:03 ubuntu kernel: [  700.492792] ==>rt_ioctl_siwfreq::SIOCSIWFREQ[cmd=0x8b04] (Channel=1)
May 19 19:34:03 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  scanning -> associating
May 19 19:34:03 ubuntu wpa_supplicant[3187]: Association request to the driver failed
May 19 19:34:08 ubuntu wpa_supplicant[3187]: Authentication with 66:f2:bc:b8:cc:30 timed out.
May 19 19:34:08 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  associating -> disconnected
May 19 19:34:08 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  disconnected -> scanning
May 19 19:34:13 ubuntu kernel: [  710.512617] ===>rt_ioctl_giwscan. 5(5) BSS returned, data->length = 636
May 19 19:34:13 ubuntu wpa_supplicant[3187]: Trying to associate with 66:f2:bc:b8:cc:30 (SSID='folie' freq=2412 MHz)
May 19 19:34:13 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  scanning -> associating
May 19 19:34:13 ubuntu kernel: [  710.513600] ==>rt_ioctl_siwfreq::SIOCSIWFREQ[cmd=0x8b04] (Channel=1)
May 19 19:34:13 ubuntu wpa_supplicant[3187]: Association request to the driver failed
May 19 19:34:18 ubuntu NetworkManager: <info>  Activation (wlan0/wireless): association took too long.
May 19 19:34:18 ubuntu NetworkManager: <info>  (wlan0): device state change: 5 -> 6 (reason 0)
May 19 19:34:18 ubuntu NetworkManager: <info>  Activation (wlan0/wireless): asking for new secrets
May 19 19:34:18 ubuntu NetworkManager: <info>  (wlan0): supplicant connection state:  associating -> disconnected
May 19 19:34:18 ubuntu wpa_supplicant[3187]: Authentication with 00:00:00:00:00:00 timed out.
May 19 19:34:33 ubuntu NetworkManager: <info>  wlan0: link timed out.</pre>
<p>Le matos est le suivant (<code>lspci -vv</code>) :</p>
<pre>01:00.0 Network controller: RaLink RT2860
	Subsystem: RaLink Device 2790
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 32 bytes
	Interrupt: pin A routed to IRQ 19
	Region 0: Memory at fbef0000 (32-bit, non-prefetchable) [size=64K]
	Capabilities: <access denied>
	Kernel driver in use: rt2860
	Kernel modules: rt2860sta</pre>
<h1>Solutions</h1>
<p>Tout est très bien décrit ici : <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/496093">https://bugs.launchpad.net/ubuntu/+source/linux/+bug/496093</a>.</p>
<h2>Noyau 2.6.33</h2>
<p>Pas encore dispo dans Lucid Lynx, mais apparement il règle le problème. A suivre avec les updates de la distribution.</p>
<h2>Ancien noyau</h2>
<p>Coup de bol, j&#8217;ai l&#8217;ancien noyau toujours dispo (2.6.31-21) depuis l&#8217;upgrade (il n&#8217;a supprimé que les vraiment anciens). Avec lui tout marche. Je peux le garder par défaut en attendant que le 2.6.33 fasse partie de Lucid Lynx, s&#8217;il en fera partie un jour (probable).<br />
Pour l&#8217;instant, je m&#8217;en sers pour pouvoir quand même downloader ce qu&#8217;il faut pour appliquer l&#8217;une des méthodes ci-dessous <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Backport du driver dans un 2.6.32 spécifique</h2>
<p>La méthode qui consiste à utiliser un backup 2.6.32 fait par un gentil monsieur est elle-même déconseillée par le gentil monsieur. C&#8217;est pourtant simple sur le papier : tu récupères le paquet, tu l&#8217;installes, tu rebootes.<br />
Je suis son conseil, finalement, et j&#8217;opte pour la solution où on recompile le driver, malgré des désavantages. Voir ci-dessous.<br />
Sinon, c&#8217;est le <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/496093/comments/80">commentaire 80 qu&#8217;il faut lire</a>.</p>
<h2>Recompilation du bon driver</h2>
<p><a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/496093/comments/107">Commentaire 107 </a>sur le post mentionné précédemment<br />
Le désavantage, c&#8217;est que si demain Ubuntu met à jour le 2.6.32-22 en -23, il faudra recommencer la manip&#8217;.<br />
Je décris cette méthode car apparement le bug réapparait régulièrement depuis Ubuntu &#8220;Intrepid Ibex&#8221;, donc certains liens sont devenus obsolètes. Ca vous évitera de vous taper les 4 pages de remarques de tout le monde.<br />
Ce qui compte, c&#8217;est qu&#8217;à-la-fin-ça-marche.</p>
<h3>Installation des outils minimums de compilation de kernel</h3>
<pre>sudo aptitude install linux-headers-`uname -r` build-essential</pre>
<h3>Récupération du driver chez le fabricant</h3>
<p><a href="http://www.ralinktech.com/support.php?s=2">Partez de là </a> (site principal => Software => Linux). Et vous sélectionnez cette ligne là : &#8220;RT2860PCI/mPCI/CB/PCIe(RT2760/RT2790/RT2860/RT2890)&#8221;.<br />
En direct, tant qu&#8217;ils ne refondent pas tout leur site, ça donne <a href="http://www.ralinktech.com/download.php?t=U0wyRnpjMlYwY3k4eU1ERXdMekF4THpJNUwyUnZkMjVzYjJGa05ERTJNVEV5T1RFd05pNWllakk5UFQweU1ERXdYekF4WHpJNVgxSlVNamcyTUY5TWFXNTFlRjlUVkVGZmRqSXVNeTR3TGpBdWRHRnlD">ce fichier</a>.</p>
<h3>Compilation et installation du machin</h3>
<p>Décompressez (tar -xvjf 2010_01_29_RT2860_Linux_STA_v2.3.0.0.tar.bz2) et allez modifier dans les sources le fichier <code>2010_01_29_RT2860_Linux_STA_v2.3.0.0/os/linux/config.mk</code>.<br />
Vous reperez et mettez &#8220;y&#8221; (yes) aux lignes suivantes :</p>
<pre>HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y</pre>
<p>Ensuite, vous passez root. Non, &#8220;sudo ma_commande&#8221; ne revient pas au même dans le cas présent, dixit l&#8217;auteur.<br />
Donc :</p>
<pre>sudo su
cd 2010_01_29_RT2860_Linux_STA_v2.3.0.0
make &#038;&#038; make_install</pre>
<p>Ca mouline 10 minutes (c&#8217;est lent un eeePC <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).<br />
Et on le charge :</p>
<pre>modprobe rt2860sta</pre>
<p>Enfin, si tout marche, vous ajouterez la ligne :</p>
<pre>rt2860sta</pre>
<p>dans le fichier <code>/etc/modules</code> pour que ça tienne après reboot.</p>
<h1>Conclusion</h1>
<p>Linux et le wifi, ça a toujours été le bordel.<br />
Maintenant, j&#8217;ai opté pour une méthode simple : avant d&#8217;upgrader Ubuntu, je télécharge l&#8217;ISO, je crée une clef USB Bootable Live Persistante avec <a href="http://www.linuxliveusb.com/">ce merveilleux outil</a>, je boote, je teste tout. Ensuite si ça passe, alors je migre. Sinon j&#8217;attends, ou j&#8217;aide à débugger si j&#8217;ai que ça à foutre.</p>
<p>Update de dernière minute : rien à faire, il chargeait tout le temps l&#8217;ancien driver rt2860sta de <code>/lib/modules/le_bon_kernel</code>. J&#8217;ai fini par écraser l&#8217;ancien avec le nouveau. Ils sont dans 2 arborescences différentes. Je ne l&#8217;ai plus sous la main, mais tentez un <code>find /lib/modules/ -name "rt2860sta.ko" -exec ls -l {} \;</code> pour voir, compte-tenu de la date, lequel est lequel. Tambouillez un coup et hop, votre driver marche enfin. Au forceps.</p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2010/05/31/ubuntu-lucid-lynx-eeepc-ralink-rt2860-et-wifi-wpa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Importer un dump Mysql sous MAMP (Mac OSX)</title>
		<link>http://www.arnaudbosquet.fr/developpement/importer-un-dump-mysql-sous-mamp-mac</link>
		<comments>http://www.arnaudbosquet.fr/developpement/importer-un-dump-mysql-sous-mamp-mac#comments</comments>
		<pubDate>Wed, 19 May 2010 20:58:18 +0000</pubDate>
		<dc:creator>Arnaud</dc:creator>
				<category><![CDATA[Chez les autres]]></category>

		<guid isPermaLink="false">http://www.arnaudbosquet.fr/?p=791</guid>
		<description><![CDATA[Imaginons que vous avez un MAMP qui tourne sous votre Mac et que vous souhaitez importer un dump SQL d&#8217;une autre base.
Voici ce qu&#8217;il faut faire :

Ouvrir un Terminal (Applications -&#62; Utilitaires -&#62; Terminal)
Lancer la commande suiv...]]></description>
			<content:encoded><![CDATA[Imaginons que vous avez un MAMP qui tourne sous votre Mac et que vous souhaitez importer un dump SQL d&#8217;une autre base.
Voici ce qu&#8217;il faut faire :

Ouvrir un Terminal (Applications -&#62; Utilitaires -&#62; Terminal)
Lancer la commande suivante :
cd /Applications/MAMP/Library/bin/

Puis :
./mysql -u USER -p DBNAME &#60; sql.dump


En veillant bien à remplacer :

USER par l&#8217;utilisateur ayant les [...]]]></content:encoded>
			<wfw:commentRss>http://www.arnaudbosquet.fr/developpement/importer-un-dump-mysql-sous-mamp-mac/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Et, sinon ? Envie de projet…</title>
		<link>http://www.arnaudbosquet.fr/tambouille-interne/et-sinon-envie-de-projet</link>
		<comments>http://www.arnaudbosquet.fr/tambouille-interne/et-sinon-envie-de-projet#comments</comments>
		<pubDate>Mon, 19 Apr 2010 21:54:57 +0000</pubDate>
		<dc:creator>Arnaud</dc:creator>
				<category><![CDATA[Chez les autres]]></category>

		<guid isPermaLink="false">http://www.arnaudbosquet.fr/?p=721</guid>
		<description><![CDATA[
Résumons,
« Allo, oui, Bonjour – C’est Martine, secrétaire de la licence MIICM – C’est pour un petit sondage […] – Vous êtes en poste ? – Vous avez mis du temps à trouver un job après votre diplôme ? »
Bah globalement non. Avant ...]]></description>
			<content:encoded><![CDATA[
Résumons,
« Allo, oui, Bonjour – C’est Martine, secrétaire de la licence MIICM – C’est pour un petit sondage […] – Vous êtes en poste ? – Vous avez mis du temps à trouver un job après votre diplôme ? »
Bah globalement non. Avant le diplôme obtenu, j’avais le choix entre deux entreprises que j’ai au [...]]]></content:encoded>
			<wfw:commentRss>http://www.arnaudbosquet.fr/tambouille-interne/et-sinon-envie-de-projet/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[...] Lecture à venir [...]</title>
		<link>http://www.arnaudbosquet.fr/culture/lecture-a-venir</link>
		<comments>http://www.arnaudbosquet.fr/culture/lecture-a-venir#comments</comments>
		<pubDate>Tue, 13 Apr 2010 22:27:06 +0000</pubDate>
		<dc:creator>Arnaud</dc:creator>
				<category><![CDATA[Chez les autres]]></category>

		<guid isPermaLink="false">http://www.arnaudbosquet.fr/?p=732</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://www.arnaudbosquet.fr/culture/lecture-a-venir/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dotProject &amp; LDAP (Active Directory plus précisemment)</title>
		<link>http://michauko.org/blog/2010/03/30/dotproject-ldap-active-directory-plus-precisemment/</link>
		<comments>http://michauko.org/blog/2010/03/30/dotproject-ldap-active-directory-plus-precisemment/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 13:36:14 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[Chez les autres]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=1029</guid>
		<description><![CDATA[C&#8217;est pas que je sois fanatique des outils de ce genre là, mais bon, parfois, le boss veut ça pour hier. Ca permet de faire euh&#8230; de la gestion de projets, c&#8217;est open-source, tout ça. Voyez ici : http://www.dotproject.net/ Bon bref, on s&#8217;en fout. Si vous lisez cet article c&#8217;est que vous comptez l&#8217;installer, je [...]]]></description>
			<content:encoded><![CDATA[<p>C&#8217;est pas que je sois fanatique des outils de ce genre là, mais bon, parfois, le boss veut ça pour hier.<br />
Ca permet de faire euh&#8230; de la gestion de projets, c&#8217;est open-source, tout ça. Voyez ici : <a href="http://www.dotproject.net/">http://www.dotproject.net/</a><br />
Bon bref, on s&#8217;en fout. Si vous lisez cet article c&#8217;est que vous comptez l&#8217;installer, je suppose.<br />
Je donne 2/3 remarques d&#8217;installation, notamment la configuration au LDAP de Microsoft : Active Directory.<span id="more-1029"></span></p>
<h1>Dézip, install etc</h1>
<p>Pour monter le site, je passe en quelques mots.</p>
<ul>
<li>
Vous dézippez le .tar.gz (pas de paquet Debian ; et puis c&#8217;est généralement en retard de versions pour ce genre d&#8217;outils). Par exemple dans /var/www
</li>
<li>
Vous avez en amont un serveur MySQL et Apache en état. Et éventuellement créé un schéma de base dotproject, un admin DB dédié et tout le toutim. Exemple :</p>
<pre>create database dotproject;
create user 'dpadmin'@'localhost' identified by 'mon_passwd_qui_tache';
grant all on dotproject.* to 'dpadmin'@'localhost';</pre>
</li>
<li>
Bien sûr, le paquet php5-ldap est installé et LDAP activé dans votre conf PHP :</p>
<pre>votre.serveur:/srv/www/dotproject# grep -r ldap /etc/php5/
/etc/php5/conf.d/ldap.ini:extension=ldap.so
/etc/php5/cli/conf.d/ldap.ini:extension=ldap.so
/etc/php5/apache2/conf.d/ldap.ini:extension=ldap.so
</pre>
</li>
<li>
De même pour php5-mysql&#8230;
</li>
<li>
Vous accédez à http://votre.serveur/dotproject/install/
</li>
<li>
L&#8217;install se déroule paisiblement. Vérifiez que les modules qui vous intéressent sont bien détectés. Ajoutez les permissions sur /files et créez un fichier /includes/config.php vide, modifiable par www-data.<br />
Bref, du classique.
</li>
<li>
Une fois installé, le mot de passe par défaut du compte admin est passwd. J&#8217;ai cherché quelques temps <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .
</li>
</ul>
<p>A la fin, supprimez le répertoire d&#8217;&#8221;install&#8221;.</p>
<h1>Conf Active Directory</h1>
<p>Dans le menu d&#8217;admin, vous configurerez la connexion à l&#8217;AD comme suit (dans Administration Système -> Configuration système) &#8211; si votre LDAP est en clair (port 389) :<br />
<div id="attachment_1031" class="wp-caption aligncenter" style="width: 468px"><a href="http://michauko.org/blog/wp-content/uploads/2010/03/20100330_151648.png"><img src="http://michauko.org/blog/wp-content/uploads/2010/03/20100330_151648.png" alt="Conf dotproject Active Directory" title="Conf dotproject Active Directory" width="458" height="423" class="size-full wp-image-1031" /></a><p class="wp-caption-text">Conf dotproject Active Directory</p></div><br />
Remarques :</p>
<ul>
<li>
<strong>Méthode d&#8217;authentif</strong>&#8230; : LDAP
</li>
<li>
Avant d&#8217;oublier : BIEN COCHER LA CASE &#8220;LDAP autorise également les connexions standards&#8221;. Sinon, si vous ratez votre conf LDAP et déconnectez votre compte admin => Boum (probablement).
</li>
<li>
<strong>Hôte LDAP </strong>: j&#8217;ai galéré longtemps en mettant le FQDN, comme préconisé un peu partout. C&#8217;est passé lorsque j&#8217;ai mis l&#8217;IP ! Arg !
</li>
<li>
<strong>Base DN LDAP </strong>: le noeud racine des utilisateurs qui pourront se signer. Par exemple : <code>ou=Users,cn=domaine,cn=fr</code>
</li>
<li>
<strong>Filtre Utilisateur LDAP</strong>. Pour un AD : <code>(sAMAccountName=%USERNAME%)</code>. Ca veut dire : on comparera la variable %USERNAME% au champ LDAP sAMAccountName, qui est le login dans un AD.
</li>
<li>
<strong>Recherche Utilisateur LDAP </strong>: le chemin complet pour atteindre l&#8217;utilisateur capable de faire la recherche dans l&#8217;AD. Exemple : <code>CN=sonlogin,CN=Users,dc=domaine,dc=fr</code>
</li>
</ul>
<p>Mais d&#8217;où toute cette syntaxe sort-elle ???? non non, pas DT&#8230; Je vous recommande &#8220;<a href="http://technet.microsoft.com/en-us/sysinternals/bb963907.aspx">AD Explorer</a>&#8220;. Ca permet de vous promener dans votre AD et de connaître le DN (Distinguished Name) de n&#8217;importe quel élément.<br />
Le cas standard est que les utilisateurs sont dans <code>Ou=Users,dc=votredomaine,dc=com</code>. Mais bon, quelques fois, on ose le changement.</p>
<h1>Traduction</h1>
<p>Vous trouverez le paquet français sur le site officiel. Il faut dézipper dans /locales, ça crée un sous-répertoire &#8220;fr&#8221;. Reste à mettre le français par défaut aux utilisateurs dans un des menus d&#8217;admin.</p>
<p>Et voilà, c&#8217;était &#8220;j&#8217;ai pris aucune note d&#8217;installation ni de photo d&#8217;écran donc je torche un papier vite fait mais ça peut rendre service&#8221;.<br />
A+</p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2010/03/30/dotproject-ldap-active-directory-plus-precisemment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les indispensables…</title>
		<link>http://www.arnaudbosquet.fr/tambouille-interne/les-indispensables</link>
		<comments>http://www.arnaudbosquet.fr/tambouille-interne/les-indispensables#comments</comments>
		<pubDate>Thu, 18 Mar 2010 12:49:10 +0000</pubDate>
		<dc:creator>Arnaud</dc:creator>
				<category><![CDATA[Chez les autres]]></category>

		<guid isPermaLink="false">http://www.arnaudbosquet.fr/?p=723</guid>
		<description><![CDATA[&#8230; pour bien travailler =]]]></description>
			<content:encoded><![CDATA[
&#8230; pour bien travailler =]
]]></content:encoded>
			<wfw:commentRss>http://www.arnaudbosquet.fr/tambouille-interne/les-indispensables/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
