<?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>®om&#039;s blog &#187; réseau</title>
	<atom:link href="http://blog.rom1v.com/tag/reseau/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rom1v.com</link>
	<description>Un blog libre</description>
	<lastBuildDate>Sun, 05 Sep 2010 17:23:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Agréger différentes sources de VOD en OGG/Theora</title>
		<link>http://blog.rom1v.com/2010/04/aggreger-differentes-sources-de-vod-en-oggtheora/</link>
		<comments>http://blog.rom1v.com/2010/04/aggreger-differentes-sources-de-vod-en-oggtheora/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 18:58:08 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1341</guid>
		<description><![CDATA[Pour mes flux RSS, j&#8217;utilise l&#8217;outil tt-rss installé sur mon serveur, qui récupère régulièrement tous les flux auxquels je suis abonné. Le but de ce billet est de mettre en place un mécanisme similaire qui s&#8217;applique aux sources de vidéo à la demande (pas forcément prévues pour être agrégées), et qui les convertit dans le [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/03/oggtheora.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/03/oggtheora.png" alt="" title="oggtheora" width="150" height="100" class="alignright size-full wp-image-1317" /></a></p>
<p>Pour mes flux RSS, j&#8217;utilise l&#8217;outil <a href="http://tt-rss.org">tt-rss</a> installé sur mon serveur, qui récupère régulièrement tous les flux auxquels je suis abonné.</p>
<p>Le but de ce billet est de mettre en place un mécanisme similaire qui s&#8217;applique aux sources de vidéo à la demande (pas forcément prévues pour être agrégées), et qui les convertit dans le format ouvert OGG/Theora (dans un répertoire rendu accessible par un serveur web tel qu&#8217;<em>Apache</em>), tout en parallélisant au maximum les différentes actions afin que le temps total de récupération soit minimal.</p>
<p>En particulier, il faut éviter de télécharger la première vidéo, puis de l&#8217;encoder, d&#8217;attendre que l&#8217;encodage soit terminé pour télécharger la seconde vidéo… Et si plusieurs CPU sont disponibles sur la machine, il faut donner un encodage à chaque processeur (l&#8217;encodeur <em>theora</em> ne sachant pas paralléliser l&#8217;encodage d&#8217;une seule vidéo).</p>
<h2>Architecture</h2>
<p>Pour cela, il y a donc 2 parties bien distinctes&nbsp;:</p>
<ul>
<li>un <strong>serveur d&#8217;encodage</strong>, qui s&#8217;occupe du démarrage et de la parallélisation des encodages&nbsp;;</li>
<li>des <strong>programmes de récupération</strong> <em>brute</em> pour chaque source de flux, qui demandent au serveur d&#8217;encodage de s&#8217;occuper de la conversion des fichiers récupérés.</li>
</ul>
<h2>Serveur d&#8217;encodage</h2>
<h3>Principe</h3>
<p>Le serveur d&#8217;encodage gère plusieurs processus <em>ouvriers</em> (dans l&#8217;idéal, il faut configurer pour avoir autant de processus que de CPU sur la machine). Il attend de nouvelles tâches, et les transmets aux ouvriers disponibles, qui s&#8217;occupent de l&#8217;encodage. Si aucun ouvrier n&#8217;est disponible, il attend qu&#8217;un se libère.</p>
<h3>Implémentation</h3>
<p>Les demandes d&#8217;encodage se font grâce à un <em>named pipe</em> (aussi appelé FIFO), un fichier un peu spécial créé avec <code>mkfifo</code>. Chaque ligne représente une tâche. Concrètement, une tâche est décrite par les paramètres à passer à <code>ffmpeg2theora</code> (l&#8217;encodeur <em>theora</em>), séparés par un séparateur (j&#8217;ai choisi «&nbsp;<code>|</code>&nbsp;», qui a peu de chance d&#8217;être utilisé dans un nom de fichier). <em>Pour les puristes, je vous mets au défi d&#8217;utiliser comme séparateur <code>\0</code>, tout en conservant le mécanisme de file d&#8217;attente dans un fichier.</em></p>
<p>Un démon récupère les nouvelles lignes ajoutées au fichier, et les transmet une à une aux ouvriers. Chaque ouvrier recrée le tableau des arguments en redécoupant la ligne suivant le séparateur choisi, et le passe en paramètre de <code>ffmpeg2theora</code> (en y ajoutant toujours <code>--nice 19</code> pour n&#8217;utiliser que le CPU disponible, sans ralentir d&#8217;autres programmes en cours d&#8217;exécution).</p>
<h4>Démon</h4>
<p>Voici le programme démon (adapter le nombre de CPU)&nbsp;:<br />
<code>/usr/sbin/ffmpeg2theora-laterd</code></p>
<pre>#!/bin/bash
CPU=2
TASKS=/tmp/ffmpeg2theora-tasks
[ -p "$TASKS" ] || mkfifo "$TASKS" -m 666
tail -f "$TASKS" | xargs -I{} -P "$CPU" ffmpeg2theora-later-job {}</pre>
<p>Ce script fait donc exécuter par les ouvriers le programme <code>ffmpeg2theora-later-job</code> pour chacune des tâches, dont voici le code&nbsp;:<br />
<code>/usr/sbin/ffmpeg2theora-later-job</code></p>
<pre>#!/bin/bash
IFS='|' read -a args &lt;&lt;&lt; "$1"
echo "executing: ffmpeg2theora ${args[@]} --nice 19"
ffmpeg2theora "${args[@]}" --nice 19</pre>
<p><em>Je vous conseille de prendre la dernière version de <a href="http://v2v.cc/~j/ffmpeg2theora/">ffmpeg2theora</a>, actuellement celle des dépôts est assez ancienne.</em></p>
<p>Le démon est à lancer une fois (et une seule&nbsp;!), au démarrage du système par exemple (une solution est de l&#8217;ajouter dans <code>/etc/rc.local</code>).</p>
<h4>Client</h4>
<p>Les clients (les programmes qui veulent demander un encodage) doivent appeler <code>ffmpeg2theora-later</code>, qui s&#8217;occupe d&#8217;écrire les paramètres séparés par «&nbsp;<code>|</code>&nbsp;» dans le FIFO&nbsp;:<br />
<code>/usr/bin/ffmpeg2theora-later</code></p>
<pre>#!/bin/bash
printf '|%s' "$@" | cut -c2- > /tmp/ffmpeg2theora-tasks</pre>
<p>Son utilisation est extrêmement proche de <code>ffmpeg2theora</code> (évidemment, puisqu&#8217;il se contente de lui transmettre ses paramètres), à ceci près que les chemins doivent être absolus (puisque le démon ne sait pas à partir de quel répertoire la demande d&#8217;encodage a été effectuée).</p>
<p>Ainsi, là où on aurait utilisé, à partir de <code>/tmp</code>&nbsp;:</p>
<pre>ffmpeg2theora file.avi -o file.ogv -x 400 -y 300 -v 8 -a 3</pre>
<p>on peut appeler&nbsp;:</p>
<pre>ffmpeg2theora-later /tmp/file.avi -o /tmp/file.ogv -x 400 -y 300 -v 8 -a 3</pre>
<h2>Programmes de récupération</h2>
<h3>Principe</h3>
<p>Les programmes de récupération font ce qui est nécessaire pour récupérer les vidéo à télécharger. Plusieurs outils sont bien utiles pour cela&nbsp;:</p>
<ul>
<li><code>wget</code> si le fichier est disponible en <em>HTTP</em> (mais c&#8217;est rare)&nbsp;;</li>
<li><code>flvstreamer</code> pour récupérer les vidéos diffusées en <em>Flash</em> avec des liens en <code>rtmp://</code> (anciennement <code>rtmpdump</code>, je vous recommande <a href="http://lkcl.net/rtmp/">le message</a> adressé à <em>Adobe</em> de la part du développeur originel)&nbsp;;</li>
<li><code>mimms</code> pour récupérer les vidéos diffusées en <em>WMV</em> avec des liens en <code>mms://</code>.</li>
</ul>
<p>Pensez bien à ouvrir les ports nécessaires pour récupérer les vidéos (1935 par défaut pour les liens RTMP, 1755 pour MMS…).</p>
<h3>Implémentation</h3>
<p>Afin de rendre un peu indépendants les répertoires manipulés, j&#8217;ai décidé de créer un script <code>vodget</code> qui appelle les programmes de récupération avec 2 paramètres&nbsp;:</p>
<ol>
<li>le répertoire de téléchargement&nbsp;;</li>
<li>le répertoire destination.</li>
</ol>
<p><code>/usr/bin/vodget</code></p>
<pre>#!/bin/bash
scripts_dir=/var/lib/vodget
script="$scripts_dir/$1"
download_dir=/tmp/vodget
target_dir=/var/www/vod
$script "$download_dir" "$target_dir"</pre>
<p>Les programmes de récupération sont stockés dans <code>/var/lib/vodget</code>.</p>
<h4>Exemple</h4>
<p>Voici un exemple qui récupère les guignols de l&#8217;info (Canal+)&nbsp;:<br />
<code>/var/lib/vodget/guignols</code></p>
<pre>#!/bin/bash
category=guignols
download_dir="$1/$category"
target_dir="$2/$category"
mkdir -p "$download_dir"
mkdir -p "$target_dir"
wget -O- http://www.canalplus.fr/rest/bootstrap.php?/bigplayer/search/guignols | grep -o 'rtmp://[^&lt;]\+.mp4' | while read url
do
    filename="$(echo "$url" | sed 's/.*\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\).*/20\1-\2-\3/')"
    if [ ! -f "$target_dir/$filename.ogv" ]
    then
        flvstreamer -r "$url" -o "$download_dir/$filename.mp4"
        touch "$target_dir/$filename.ogv"
        ffmpeg2theora-later "$download_dir/$filename.mp4" -o "$target_dir/$filename.ogv" -v8 -a3
    fi
done</pre>
<p>Cet exemple est une implémentation qui a l&#8217;avantage d&#8217;être très courte, vous pouvez aussi adapter <a href="http://forum.ubuntu-fr.org/viewtopic.php?id=346586">des versions plus évoluées</a> pour qu&#8217;elles utilisent <code>ffmpeg2theora-later</code>.</p>
<p>Un simple appel à&nbsp;:</p>
<pre>vodget guignols</pre>
<p>récupèrera les nouveaux épisodes et les encodera en OGG/Theora.</p>
<p>Il ne restera plus qu&#8217;à se rendre sur la page HTTP pointant sur le répertoire des vidéos avec <a href="http://mozilla-europe.org/fr/firefox/">un navigateur</a> qui supporte le HTML5 et le codec OGG/Theora, pour pouvoir regarder les vidéos ainsi récupérées&nbsp;:</p>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/04/vod-guignols.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/04/vod-guignols-300x193.png" alt="" title="vod-guignols" width="300" height="193" class="aligncenter size-medium wp-image-1375" /></a></p>
<p><em>Bien sûr, les vidéos récupérées qui ne sont pas sous licence libre sont à usage personnel. Cela permet de regarder en VOD les épisodes dans un format ouvert, qui ne nécessite pas de programme propriétaire, ces vidéos ne doivent pas être placées sur un serveur public.</em></p>
<h3>Démarrage programmé</h3>
<p>Pour automatiser tout cela, il est possible de programmer périodiquement la récupération des nouvelles vidéos grâce à <a href="http://doc.ubuntu-fr.org/cron">cron</a>. Pour cela&nbsp;:</p>
<pre>crontab -e</pre>
<p>et ajouter la ligne <em>qui-va-bien</em>. Par exemple, pour récupérer les nouveaux épisodes des guignols tous les jours à 23 heures&nbsp;:</p>
<pre>00 23 * * * vodget guignols</pre>
<h2>Améliorations</h2>
<p>Techniquement, il faudrait gérer le démon par un script <em>init.d</em>, mais ça n&#8217;est pas si simple (si on arrête le service alors qu&#8217;une vidéo est en cours d&#8217;encodage et qu&#8217;on le redémarre, le nombre de CPU à utiliser ne sera plus respecté…).</p>
<p>Si vous êtes motivés, il est également possible de faire un beau site qui permette de regarder les vidéos en VOD, plutôt qu&#8217;une page qui liste simplement les fichiers récupérés.</p>
<h2>Conclusion</h2>
<p>Les différentes vidéos que je suis susceptible de regarder en VOD (que je ne regardais pas avant) sont maintenant disponibles sur mon serveur, lisible directement par mon navigateur.</p>
<p>On peut imaginer de nombreuses sources à agréger&nbsp;:</p>
<ul>
<li>les sites de VOD des chaînes de télévision (Canal+, France5, M6…)&nbsp;;</li>
<li>des bandes-annonces cinéma&nbsp;;</li>
<li>des chaînes enregistrées en direct avec la TV sur ADSL&nbsp;;</li>
<li>le flux de l&#8217;Assemblée Nationale ou du Sénat&nbsp;;</li>
<li>…</li>
</ul>
<p>Bien sûr, on aimerait mieux que les différentes sources fournissent des flux RSS pointant vers leurs vidéos, qu&#8217;ils diffuseraient eux-même en OGG/Theora. Mais on peut toujours attendre…</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2010/04/aggreger-differentes-sources-de-vod-en-oggtheora/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Filtrer les spams sur un serveur mail (SpamAssassin)</title>
		<link>http://blog.rom1v.com/2010/03/filtrer-les-spams-sur-un-serveur-mail-spamassassin/</link>
		<comments>http://blog.rom1v.com/2010/03/filtrer-les-spams-sur-un-serveur-mail-spamassassin/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 22:25:54 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1265</guid>
		<description><![CDATA[Pour continuer ma série d&#8217;articles sur l&#8217;auto-hébergement de ses mails, je vais présenter l&#8217;installation de SpamAssassin. Pour mon serveur mail (et plus généralement pour les outils que j&#8217;utilise), j&#8217;essaie de mettre en place uniquement ce dont j&#8217;ai besoin. Et jusqu&#8217;ici, je n&#8217;avais pas l&#8217;utilité d&#8217;un anti-spams, ne recevant aucun courrier indésirable. Mais depuis peu, j&#8217;en [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/03/NO-SPAM.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/03/NO-SPAM.png" alt="" title="NO-SPAM" width="150" height="150" class="alignright size-full wp-image-1293" /></a><br />
Pour continuer ma série d&#8217;articles sur l&#8217;auto-hébergement de ses mails, je vais présenter l&#8217;installation de <em>SpamAssassin</em>.</p>
<p>Pour mon serveur mail (et plus généralement pour les outils que j&#8217;utilise), j&#8217;essaie de mettre en place uniquement ce dont j&#8217;ai besoin. Et jusqu&#8217;ici, je n&#8217;avais pas l&#8217;utilité d&#8217;un anti-spams, ne recevant aucun courrier indésirable. Mais depuis peu, j&#8217;en reçois un de temps en temps… C&#8217;est donc l&#8217;occasion de m&#8217;y mettre.</p>
<h2>Installation et configuration</h2>
<p>Il existe plusieurs méthodes, j&#8217;ai choisi la plus simple&nbsp;: c&#8217;est <em>procmail</em> qui fournit les mails à <em>SpamAssassin</em>.</p>
<p>Tout d&#8217;abord, installer le paquet&nbsp;:</p>
<pre>sudo apt-get install spamassassin</pre>
<p>Ensuite, rajouter dans <code>~/.procmailrc</code> la règle suivante (copiée de <a href="http://spamassassin.apache.org/full/3.0.x/dist/procmailrc.example">la doc</a>)&nbsp;:</p>
<pre># Pipe the mail through spamassassin (replace 'spamassassin' with 'spamc'
# if you use the spamc/spamd combination)
#
# The condition line ensures that only messages smaller than 250 kB
# (250 * 1024 = 256000 bytes) are processed by SpamAssassin. Most spam
# isn't bigger than a few k and working with big messages can bring
# SpamAssassin to its knees.
#
# The lock file ensures that only 1 spamassassin invocation happens
# at 1 time, to keep the load down.
#
:0fw: spamassassin.lock
* &lt; 256000
| spamassassin</pre>
<p>Enfin, éditer <code>/etc/spamassassin/local.cf</code>.</p>
<p>Pour uniquement ajouter les en-têtes de spam (ce qui est suffisant pour filtrer), il faut changer la valeur de <code>report_safe</code>&nbsp;:</p>
<pre>report_safe 0</pre>
<p>Pour ajouter un tag dans le sujet d&#8217;un mail considéré comme un spam&nbsp;:</p>
<pre>rewrite_header Subject *****SPAM*****</pre>
<p>Il est également possible de configurer le score requis pour qu&#8217;un mail soit considéré comme un spam. Plus cette valeur est faible, plus le filtre est agressif.<br />
La valeur par défaut (5.0) est un peu faible, je vous conseille d&#8217;augmenter un peu si vous voulez limiter les faux-positifs&nbsp;:</p>
<pre>required_score 6.0</pre>
<p>Rajouter éventuellement les lignes suivantes&nbsp;:</p>
<pre># Langues attendues (les autres auront un score plus élevé)
ok_languages fr

# Rapports en français
lang fr</pre>
<h2>Test</h2>
<p>Pour tester, le plus simple est de mettre un filtre très sévère, par exemple avec un score négatif&nbsp;:</p>
<pre>required_score -2</pre>
<p>En m&#8217;envoyant un mail à moi-même qui contient comme sujet <em>test</em>, je constate à la réception que les en-têtes ont été modifiés&nbsp;:</p>
<pre>Subject: *****SPAM***** test
Date: Thu, 25 Mar 2010 21:19:52 +0100
Message-Id: &lt;1269548392.9798.9.camel@rom-laptop>
X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on rom-eeebox
X-Spam-Level: ***
X-Spam-Status: Yes, score=3.9 required=-2.0 tests=ALL_TRUSTED,</pre>
<p>Le mail a bien été détecté comme un spam. Ça fonctionne.</p>
<h2>Filtrage</h2>
<p>Maintenant que les spams sont détectés, il faut les traiter (les déplacer dans un dossier prévu à cet effet).</p>
<p>Il suffit pour cela de créer un dossier sur le serveur&nbsp;:</p>
<pre>maildirmake.dovecot ~/Maildir/.Spams</pre>
<p>et d&#8217;ajouter la règle suivante dans <codttte>~/.procmailrc (<a href="http://blog.rom1v.com/2010/01/trier-ses-mails-directement-sur-le-serveur-procmail/">plus d&#8217;infos</a>)&nbsp;:</p>
<pre>:0
* ^X-Spam-Status: Yes
.Spams/</pre>
<h2>Conclusion</h2>
<p>Les spams auront maintenant un peu plus de mal à se glisser dans ma boîte mail.</p>
<p>La configuration présentée ici est vraiment minimale. Selon son efficacité il faudra peut-être l&#8217;affiner.</p>
<h2>Voir aussi</h2>
<p>Mes précédents billets sur l&#8217;auto-hébergement des mails&nbsp;:<br />
<a href="http://blog.rom1v.com/2009/08/hebergez-vos-mails-sur-ubuntu-server-et-liberez-vous/">Hébergez vos mails sur Ubuntu Server (et libérez-vous)</a><br />
<a href="http://blog.rom1v.com/2009/11/installer-un-webmail-roundcube-sur-ubuntu-server/">Installer un webmail (RoundCube) sur Ubuntu Server</a><br />
<a href="http://blog.rom1v.com/2010/01/ajouter-lauthentification-smtp-sur-un-serveur-mail/">Ajouter l’authentification SMTP sur un serveur mail</a><br />
<a href="http://blog.rom1v.com/2010/01/trier-ses-mails-directement-sur-le-serveur-procmail/">Trier ses mails directement sur le serveur (procmail)</a></codttte></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2010/03/filtrer-les-spams-sur-un-serveur-mail-spamassassin/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Trier ses mails directement sur le serveur (procmail)</title>
		<link>http://blog.rom1v.com/2010/01/trier-ses-mails-directement-sur-le-serveur-procmail/</link>
		<comments>http://blog.rom1v.com/2010/01/trier-ses-mails-directement-sur-le-serveur-procmail/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 17:43:18 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1140</guid>
		<description><![CDATA[Dans la continuité des articles consacrés à l&#8217;auto-hébergement des mails, je vais présenter quelque chose que je voulais mettre en place depuis un moment&#160;: le tri du courrier directement sur le serveur. Introduction Lorsqu&#8217;on est abonné à des mailing-lists ou qu&#8217;on reçoit des notifications de forums ou de blogs, il est inconcevable de garder tous [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/01/tri-courrier.jpg"><img src="http://blog.rom1v.com/wp-content/uploads/2010/01/tri-courrier-150x150.jpg" alt="" title="tri-courrier" width="150" height="150" class="alignright size-thumbnail wp-image-1174" /></a></p>
<p>Dans la continuité des articles consacrés à l&#8217;<a href="http://blog.rom1v.com/2009/08/hebergez-vos-mails-sur-ubuntu-server-et-liberez-vous/">auto-hébergement des mails</a>, je vais présenter quelque chose que je voulais mettre en place depuis un moment&nbsp;: <strong>le tri du courrier directement sur le serveur</strong>.</p>
<h2>Introduction</h2>
<p>Lorsqu&#8217;on est abonné à des mailing-lists ou qu&#8217;on reçoit des notifications de forums ou de blogs, il est inconcevable de garder tous ses mails dans un seul et même dossier, et impensable de les déplacer manuellement (à moins de passer 30 minutes par jour à les trier). Un tri doit être mis en place automatiquement, en se basant sur les en-têtes des mails reçus.</p>
<p>J&#8217;utilisais jusqu&#8217;à maintenant les filtres de messages de mon client mail, <em>Evolution</em>, mais ça n&#8217;était pas forcément approprié&nbsp;:</p>
<ul>
<li>d&#8217;une part c&#8217;est très long avec un compte IMAP (les dossiers étant gérés côté serveur), car le client doit récupérer localement les nouveaux messages du serveur et les analyser&nbsp;; s&#8217;il faut en déplacer un, il doit demander au serveur de le copier de la boîte de réception vers le dossier destination adéquat, puis demander de le supprimer de la boîte de réception, et enfin récupérer le messages déplacé… Rien que ça&nbsp;!</li>
<li>d&#8217;autre part, lorsqu&#8217;on accède à ses mails à partir de plusieurs endroits (par exemple le client mail, le webmail et le téléphone portable), il devient évident que ce ne peut pas être le rôle des clients de trier les messages…</li>
</ul>
<p>C&#8217;est donc au serveur de placer les mails dans le bon dossier dès la réception. C&#8217;est ce que <b>procmail</b> permet de faire.</p>
<h2>Les dossiers IMAP</h2>
<p>Les dossiers IMAP sont des dossiers physiques contenus dans <code>~/Maildir</code> (le répertoire des mails) qui respectent une structure particulière&nbsp;:</p>
<ul>
<li>leur nom commence par &laquo;&nbsp;.&nbsp;&raquo; (ce sont des dossiers cachés) et les sous-dossiers &laquo;&nbsp;logiques&nbsp;&raquo; sont séparés par des &laquo;&nbsp;.&nbsp;&raquo; (par exemple, si je veux un dossier <code>a</code> contenant un sous-dossier <code>b</code>, le répertoire physique sera <code>~/Maildir/.a.b</code>)&nbsp;;</li>
<li>ils contiennent 3 sous-dossiers physiques&nbsp;: <code>cur</code>, <code>new</code> et <code>tmp</code>.</li>
</ul>
<p>Pour les créer, il suffit d&#8217;utiliser <code>maildirmake</code> ou <code>maildirmake.dovecot</code>, à partir du répertoire <code>~/Maildir</code>&nbsp;:</p>
<pre>maildirmake.dovecot .forums.ubuntu-fr
maildirmake.dovecot .forums.developpez</pre>
<p>pour obtenir l&#8217;arborescence suivante&nbsp;:</p>
<pre>|-- .forums.developpez
|   |-- cur
|   |-- new
|   `-- tmp
`-- .forums.ubuntu-fr
    |-- cur
    |-- new
    `-- tmp</pre>
<p>Il est également possible de les créer graphiquement grâce à un client mail.</p>
<h2>Configuration de postfix</h2>
<p>Il faut indiquer à <strong>postfix</strong> que <strong>procmail</strong> va s&#8217;occuper de trier les mails, en lui précisant dans <code>/etc/postfix/main.cf</code>&nbsp;:</p>
<pre>mailbox_command = /usr/bin/procmail</pre>
<p>Il faudra ensuite recharger la configuration&nbsp;:</p>
<pre>sudo /etc/init.d/postfix reload</pre>
<h2>Définir les règles de tri</h2>
<p>Tout se passe dans le fichier (à créer) <code>~/.procmailrc</code>, qui contient deux parties&nbsp;: la définition des variables et la définition des &laquo;&nbsp;recettes&nbsp;&raquo; (les règles de tri).</p>
<h3>Les variables</h3>
<p>Pour les variables, copiez simplement ceci (en décommentant les 2 premières lignes si vous voulez des logs).</p>
<pre>#VERBOSE=yes
#LOGFILE=.procmail.log
SHELL=/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
MAILDIR=Maildir/
DEFAULT=./</pre>
<h3>Les recettes</h3>
<p>Les recettes sont écrites sous la forme suivante&nbsp;:</p>
<pre>:0 [drapeaux] [ : [verrou_local] ]
&lt;zéro ou plusieurs conditions (une par ligne)&gt;
&lt;exactement une ligne d'action&gt;</pre>
<p>Les conditions commencent toutes par &laquo;&nbsp;*&nbsp;&raquo;, suivie d&#8217;une expression régulière. Pour qu&#8217;une recette exécute l&#8217;action définie, il faut que le mail en question valide <strong>toutes</strong> les conditions.</p>
<p>Pour faire simple, nous allons simplement créer des règles qui déplacent des mails dans des dossiers. Pour définir une telle action, il suffit d&#8217;écrire le nom du dossier, en terminant la ligne par <code>/</code> (très important, cette convention indique à <strong>procmail</strong> que le dossier est au format <em>maildir</em>).</p>
<p>Un exemple étant plus parlant, voici une règle qui déplace toutes mes notifications de blog dans un dossier <code>blog</code>&nbsp;:</p>
<pre>:0
* ^From: .*&lt;wordpress@blog\.rom1v\.com&gt;$
.blog/</pre>
<h3>Résultat</h3>
<p>Au final, voici un extrait de mon fichier <code>~/.procmailrc</code> (je n&#8217;ai pas mis toutes les règles, c&#8217;est juste pour donner quelques exemples)&nbsp;:</p>
<pre>#VERBOSE=yes
#LOGFILE=.procmail.log
SHELL=/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
MAILDIR=Maildir/
DEFAULT=./

:0
* ^From: .*&lt;wordpress@blog\.rom1v\.com&gt;$
.blog/

:0
* ^Reply-To: .*&lt;[0-9]+@bugs\.launchpad\.net&gt;$
.bugs.launchpad/

:0
* ^From: .*&lt;dev\.null@ubuntu-fr\.org&gt;$
.forums.ubuntu-fr/

:0
* ^List-Id: &lt;april\.april\.org&gt;$
.ml.april/</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2010/01/trier-ses-mails-directement-sur-le-serveur-procmail/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Motorola Milestone avec Android 2, mes premières impressions</title>
		<link>http://blog.rom1v.com/2010/01/motorola-milestone-avec-android-2-mes-premieres-impressions/</link>
		<comments>http://blog.rom1v.com/2010/01/motorola-milestone-avec-android-2-mes-premieres-impressions/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 18:10:11 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Humeur]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[netneutrality]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1108</guid>
		<description><![CDATA[Je viens de recevoir mon nouveau téléphone, un Motorola Milestone, avec le système d&#8217;exploitation Android 2, que j&#8217;ai pris avec un abonnement SFR Illymythics 3G+ Full Internet. Ma ligne n&#8217;étant pas encore activée, je me suis connecté en WiFi sur mon routeur. Voici mes premières impressions de libriste. Comme vous allez le voir, il y [...]]]></description>
			<content:encoded><![CDATA[<p>Je viens de recevoir mon nouveau téléphone, un Motorola Milestone, avec le système d&#8217;exploitation Android 2, que j&#8217;ai pris avec un abonnement SFR Illymythics 3G+ Full Internet. Ma ligne n&#8217;étant pas encore activée, je me suis connecté en WiFi sur mon routeur.</p>
<p>Voici mes premières impressions de libriste. Comme vous allez le voir, il y a du positif… et du négatif. Je vais commencer par l&#8217;achat et l&#8217;accès Internet, pour ensuite entrer dans le vif du sujet&nbsp;: le matériel et le logiciel.</p>
<h2>L&#8217;achat</h2>
<p>Exclusivité <em>rueducommerce</em>, ce téléphone n&#8217;était pas trouvable autre part à sa sortie&nbsp;: c&#8217;est insupportable ces exclusivités, impossible de le voir &laquo;&nbsp;en vrai&nbsp;&raquo; avant l&#8217;achat. Par contre, il était possible de choisir son opérateur (encore heureux me direz-vous, mais ça n&#8217;est pas toujours le cas).</p>
<h2>L&#8217;accès Internet</h2>
<p>Comme prévu, un internet mobile (avec un petit <em>i</em>) loin d&#8217;être neutre, comme on peut le voir dans les <a href="http://www.sfr.fr/mobile/edito/pdf/docs_juridique/181109/conditions_generales_abonnement_SFR.pdf">conditions générales d&#8217;abonnement SFR</a>&nbsp;:</p>
<blockquote><p>4.1&nbsp;: L’abonné est informé et accepte que les Offres lui soient proposées sur la base de la configuration du terminal compatible opérée par l’opérateur. Dès lors, l’abonné qui procèderait à la modification de paramétrage de son terminal compatible ne pourra plus bénéficier des Offres et tarifs en l’état.</p></blockquote>
<p>Les offres et les tarifs dépendent du matériel qu&#8217;on utilise pour aller sur internet ou téléphoner&nbsp;! Imaginez que votre accès ADSL soit plus cher si vous achetez un ordinateur Acer plutôt qu&#8217;un Asus… ou que vous changiez le système d&#8217;exploitation ou les logiciels pré-installés…</p>
<blockquote><p>4.2&nbsp;: Le peer to peer, les newsgroups, la Voix sur IP et les usages Modem sont interdits, ce que l’abonné reconnaît et accepte, SFR se réservant le droit, pour les clients Forfaits Bloqués SFR, de résilier la ligne en cas de manquement.</p></blockquote>
<p>Bon, bah là on est carrément dans le filtrage protocolaire pure et simple. Sans parler des usages &laquo;&nbsp;modem&nbsp;&raquo; qui sont interdits, comme si les fournisseurs d&#8217;accès ADSL interdisaient d&#8217;installer un routeur perso sur sa connexion…</p>
<blockquote><p>4.3 : Pour permettre à tous les clients SFR d’accéder au réseau SFR dans des conditions optimales, le débit maximum de connexion sera réduit au-delà de 1Go d’échanges de données par mois jusqu’à la prochaine date de facturation.</p></blockquote>
<p>Quand une phrase commence comme ça, en général, c&#8217;est mauvais signe… Le soi-disant &laquo;&nbsp;Internet&nbsp;&raquo; est donc limité à 1Go par mois sans réduction de débit…</p>
<p>Les cas particuliers pour les <em>iPhone</em>s sont également assez hallucinants.</p>
<p>Vivement que Free sorte ses offres mobiles…</p>
<h2>Le matériel</h2>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/01/motorola-milestone.jpg"><img src="http://blog.rom1v.com/wp-content/uploads/2010/01/motorola-milestone-300x238.jpg" alt="" title="motorola-milestone" width="300" height="238" class="aligncenter size-medium wp-image-1111" /></a></p>
<p>Rien à redire à ce niveau-là, l&#8217;écran 3,7&#8242; avec une définition de 854×480 est vraiment très confortable, la navigation sur internet est agréable. L&#8217;écran tactile fonctionne très bien, il a l&#8217;air solide et ne se raye pas. Le clavier physique est très sympa pour écrire tout en gardant l&#8217;intégralité de l&#8217;écran visible.</p>
<p>Le téléphone est peut-être un peu lourd, mais on s&#8217;y fait.</p>
<h2>Le logiciel</h2>
<h3>Mes attentes</h3>
<p>Avant de détailler ce que je pense de toute la partie logicielle, je voudrais détailler ce que j&#8217;attends du téléphone.</p>
<p>Tout d&#8217;abord, je veux accéder à mes mails, à la messagerie instantanée et aux salons de discussion IRC. Je veux également pouvoir me connecter en SSH (sur mon serveur à la maison par exemple) et rediriger des ports (pour faire passer les connexions dans un tunnel, vers un réseau internet plus neutre, celui que j&#8217;ai à la maison en l&#8217;occurrence)&nbsp;; les logiciels que j&#8217;utilise doivent donc supporter la configuration d&#8217;un proxy.</p>
<p>Ensuite, je ne veux pas utiliser tous les services <em>Google</em>, en particulier je ne veux pas de Gmail, de l&#8217;agenda, de Google Talk… Plus généralement, je ne veux pas d&#8217;applications qui nécessitent un compte <em>Google</em> (mes données personnelles n&#8217;ont rien à faire chez <em>Google</em> ou chez n&#8217;importe qui d&#8217;autre).</p>
<p>Enfin, je ne veux pas passer par &laquo;&nbsp;Android Market&nbsp;&raquo; pour installer des applications. Je veux installer et désinstaller des applications à ma guise, même celles qui sont fournies avec le téléphone. D&#8217;ailleurs, je ne suis pas d&#8217;accord avec les <a href="http://www.google.com/mobile/android/market-tos.html">conditions d&#8217;utilisation</a>, entre autres&nbsp;:</p>
<blockquote><p>Si tel était le cas, Google se réserve le droit de supprimer à distance et à sa seule discrétion les Produits concernés de votre Mobile, sans vous en informer au préalable.</p></blockquote>
<p>D&#8217;une part, je considère que c&#8217;est abusif sur le principe, d&#8217;autre part ça signifie que techniquement le Market est une sorte de trojan à partir duquel une entité extérieure peut exécuter du code à son bon vouloir. Tout simplement inacceptable. <em>Google</em> m&#8217;a beaucoup déçu sur ce point, en général j&#8217;aime bien leur politique d&#8217;ouverture, mais j&#8217;avoue avoir été désagréablement surpris par leurs conditions, qui font malheureusement penser à celles d&#8217;Apple (en moins pire, certes, mais quand même)…</p>
<p>Certains me demanderont alors &laquo;&nbsp;mais pourquoi donc as-tu choisi un Android&nbsp;?&nbsp;&raquo;. Pour moi, Android a beaucoup d&#8217;attraits&nbsp;: le système d&#8217;exploitation est sympa, on peut rajouter des applications sous licence libre sans forcément passer par le Market, on peut se connecter directement en USB à l&#8217;ordinateur, j&#8217;aime bien l&#8217;interface, etc. Avoir accès facilement à mes données personnelles offertes gracieusement à <em>Google</em> est loin d&#8217;être ma priorité… Et je rajouterais que faute de mieux, Android est le moins pire au niveau ouverture…</p>
<h3>Que de déceptions&nbsp;!</h3>
<p>Tout d&#8217;abord, lorsqu&#8217;on allume le téléphone, on se rend compte qu&#8217;il y a quelques applications installées dont on n&#8217;a pas besoin (&laquo;&nbsp;Agenda&nbsp;&raquo;, &laquo;&nbsp;Agenda d&#8217;entreprise&nbsp;&raquo;, &laquo;&nbsp;Annuaire d&#8217;entreprise&nbsp;&raquo;, &laquo;&nbsp;Gmail&nbsp;&raquo;, &laquo;&nbsp;Motonav&nbsp;&raquo;, &laquo;&nbsp;Phone Portal&nbsp;&raquo;, sans compter &laquo;&nbsp;Market&nbsp;&raquo; puisque j&#8217;ai dit que je ne comptais pas m&#8217;en servir). Après tout, ce n&#8217;est pas gênant, sur Ubuntu <em>Empathy</em> est pré-installé, moi j&#8217;utilise <em>Gajim</em>, il me suffit de désinstaller <em>Empathy</em> et d&#8217;installer <em>Gajim</em>.</p>
<p>Mais là, non&nbsp;! Il est tout simplement impossible de désinstaller les applications pré-installées, certaines ressemblant plus à des crapwares qu&#8217;à des applications utiles (ça me fait penser aux pauvres utilisateurs de Windows qui achètent un ordinateur avec Norton pré-installé et difficile à retirer)…</p>
<p>En fait, il faut attendre que le téléphone soit rooté pour pouvoir faire ce que l&#8217;on veut sur sa machine. Et là vient encore une nouvelle déception vis-à-vis de <em>Google</em> (à moins que ça ne soit la faute de <em>Motorola</em>&nbsp;?)&nbsp;: pourquoi n&#8217;est-il pas proposé par défaut la fonctionnalité de passer root sur la machine&nbsp;? Pourquoi est-ce considéré comme du &laquo;&nbsp;piratage&nbsp;&raquo; de rooter son téléphone, comme pour le jailbreak de l&#8217;<em>iPhone</em>&nbsp;? Imaginez-vous acheter un ordinateur et qu&#8217;on vous empêche d&#8217;être root dessus&nbsp;? Pourquoi serait-ce différent pour un téléphone&nbsp;?</p>
<p>Ça commence mal, mais ce n&#8217;est pas très grave, je me dis que je vais ignorer ces applications, elles prennent juste un peu de place en mémoire et surtout dans le menu principal… Après tout, je peux installer les logiciels libres que je veux en les téléchargeant sur le site en <strong>.apk</strong> et en les copiant sur la carte mémoire, non&nbsp;? Pas tout-à-fait, car par défaut, le téléphone ne sait pas installer les <b>.apk</b>… Ça aurait été plus utile que les bidules pré-installés, non&nbsp;?</p>
<p>Parce que du coup, il faut installer un logiciel qui s&#8217;appelle <em>appsInstaller</em> (non libre) <em>(EDIT: je vous conseille plutôt le gestionnaire de fichiers libre <a href="http://www.openintents.org/en/download">OI File Manager</a>)</em>. Comment? En passant par le <em>Market</em>. Ce qui implique d&#8217;accepter les conditions disant <em>&laquo;&nbsp;ce programme est un trojan, voulez-vous accepter&nbsp;?&nbsp;&raquo;</em> (je caricature à peine). Et qui implique de renseigner un compte Gmail dans le téléphone, qui sera utilisé par toutes les autres applications.</p>
<p>J&#8217;accepte donc les conditions et crée un compte bidon (jeneveuxpasdecompte at gmail.com). Une fois <em>appsInstaller</em> installé, je tente de supprimer ce compte de mon téléphone, &laquo;&nbsp;Impossible de supprimer ce compte&nbsp;&raquo;. <strong>sudo supprimer ce compte</strong>, non ça n&#8217;est pas possible&nbsp;? Décidément, on n&#8217;est pas maître de la machine tant qu&#8217;on n&#8217;est pas root&nbsp;!</p>
<p><em><strong>EDIT 10/01/2009&nbsp;:</strong> C&#8217;est en fait possible d&#8217;installer une application <code>.apk</code> sans jamais configurer un comte gmail ni passer par le market&nbsp;: <a href="http://blog.rom1v.com/2010/01/installer-une-application-apk-sur-android-a-partir-dun-pc/">Installer une application .apk sur Android à partir d’un PC</a>.</em></p>
<h3>Du positif quand même</h3>
<p>Malgré tout cela, il y a des choses qui fonctionnent bien.</p>
<p>Par exemple la connexion USB qui permet d&#8217;accéder directement au contenu la carte SD, quelque soit le système d&#8217;exploitation. Ou la musique Ogg Vorbis qui se lit très bien avec le lecteur par défaut… La gestion des notifications est également sympa (un peu à la manière d&#8217;<em>indicator-applet</em> dans Ubuntu).</p>
<p>Le GPS fonctionne bien en extérieur (par contre en intérieur, il fait n&#8217;importe quoi chez moi).</p>
<p>Voici quelques retours d&#8217;expérience sur les programmes &laquo;&nbsp;de base&nbsp;&raquo; (mails, messagerie, ssh, jabber).</p>
<p><strong>Si vous connaissez d&#8217;autres logiciels libres sympa, n&#8217;hésitez pas à partager.</strong></p>
<h4>Mail</h4>
<p>Le client mail par défaut se connecte sans problème à mon serveur perso en utilisant IMAP/TLS et SMTP/TLS. Il n&#8217;offre par contre pas un super affichage pour les dossiers IMAP (une liste de noms &laquo;&nbsp;bruts&nbsp;&raquo; comme &laquo;&nbsp;INBOX.forums.ubuntu-fr&nbsp;&raquo;, &laquo;&nbsp;INBOX.mailing-list.april&nbsp;&raquo;…). il ne gère pas le PUSH (pour recevoir son mail aussitôt) et a un peu de mal avec les pièces jointes.</p>
<p>J&#8217;ai installé <a href="http://code.google.com/p/k9mail/">k9mail</a> (Apache License 2.0), qui est un peu plus complet, et qui gère le PUSH et les pièces jointes. Par contre, il n&#8217;est qu&#8217;en anglais.</p>
<h4>Messagerie instantanée</h4>
<p>Pour utiliser la messagerie instantanée <em>Jabber</em>, j&#8217;ai trouvé le client <a href="http://jabiru.mzet.net/">Jabiru</a> qui fonctionne très bien&nbsp;:<br />
<img alt="Jabiru" src="http://jabiru.mzet.net/scr_roster.png" title="capture d'écran de Jabiru" class="aligncenter" width="320" height="480" /><br />
Par contre, il n&#8217;a pas évolué depuis avril 2009… et il n&#8217;y a pas d&#8217;icônes dans les menus (pas très grave).</p>
<p><em><strong>EDIT 12/01/2009&nbsp;:</strong> <a href="http://dev.beem-project.com/projects/beem/news">Beem</a>, quant à lui, est en plein développement et ne plante pas lamentablement comme le fait parfois Jabiru… C&#8217;est maintenant celui que j&#8217;utilise.</em></p>
<h4>Identi.ca</h4>
<p>Pour tweeter sur <em>identi.ca</em>, j&#8217;ai installé <a href="http://macno.org/mustard/">mustard</a>. Très sympa (sauf qu&#8217;il rafraîchit les flux à chaque fois qu&#8217;on le lance, même si le dernier chargement a eu lieu il y a 15 secondes).</p>
<h4>SSH</h4>
<p>L&#8217;application <a href="http://code.google.com/p/connectbot/">connectbot</a> (GNU/GPLv3), permet de se connecter en SSH à un serveur. Elle gère les paires de clés publique/privée et la redirection de ports.</p>
<p>En particulier, je l&#8217;utilise pour lancer <a href="http://www.irssi.org/">irssi</a> (un client IRC en ligne de commande) dans un <a href="http://doc.ubuntu-fr.org/screen">screen</a> sur un serveur. Cela permet de pouvoir déconnecter et reconnecter le client sans se déconnecter des salons et ni perdre le fil de discussion…</p>
<p>Malheureusement, le navigateur internet par défaut ne permet pas de configurer de proxy (pour utiliser un tunnel SSH). Si vous en connaissez un bien en attendant <em>Fennec</em>, je suis preneur. D&#8217;autant que le navigateur intégré ne fonctionne pas correctement sur <a href="http://tt-rss.org/">tt-rss</a> (quand je clique sur un flux, il considère que je clique sur toute la colonne de gauche).</p>
<h2>Conclusion</h2>
<p>Le téléphone et le système sont de jolis jouets technologiques.</p>
<p>Mais je m&#8217;attendais, de la part de <em>Google</em>, à ce que ça soit quand même plus ouvert que ça… Là on est obligé d&#8217;accepter des conditions inacceptables, d&#8217;utiliser un compte <em>Google</em> alors qu&#8217;on n&#8217;a rien demandé, on ne peut pas désinstaller les crapwares… On se sent un peu limité, on n&#8217;a pas la maîtrise totale de la machine tant qu&#8217;elle n&#8217;aura pas été rootée, je trouve que c&#8217;est vraiment dommage.</p>
<p>Attendons donc qu&#8217;elle soit rootée…</p>
<p><em>PS: Quelques trolls se sont malencontreusement glissés dans ce billet, saurez-vous les retrouver&nbsp;? <img src='http://blog.rom1v.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2010/01/motorola-milestone-avec-android-2-mes-premieres-impressions/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Ajouter l&#8217;authentification SMTP sur un serveur mail</title>
		<link>http://blog.rom1v.com/2010/01/ajouter-lauthentification-smtp-sur-un-serveur-mail/</link>
		<comments>http://blog.rom1v.com/2010/01/ajouter-lauthentification-smtp-sur-un-serveur-mail/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 20:23:05 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1093</guid>
		<description><![CDATA[Ce billet vient compléter mon premier billet concernant l&#8217;installation d&#8217;un serveur mail sur Ubuntu Server. Objectif La configuration de postfix présentée dans mon premier billet limitait (dans un but de sécurité) l&#8217;envoi d&#8217;un mail à une personne distante qu&#8217;à partir du réseau local (ou une liste de réseaux prédéfinis). Cela est parfait lorsqu&#8217;on envoie toujours [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/01/mail-smtp-auth.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/01/mail-smtp-auth-150x150.png" alt="" title="mail-smtp-auth" width="150" height="150" class="alignleft size-thumbnail wp-image-1098" /></a><br />
Ce billet vient compléter mon premier billet concernant l&#8217;<a href="http://blog.rom1v.com/2009/08/hebergez-vos-mails-sur-ubuntu-server-et-liberez-vous/">installation d&#8217;un serveur mail sur Ubuntu Server</a>.</p>
<h2>Objectif</h2>
<p>La configuration de <strong>postfix</strong> présentée dans mon premier billet limitait (dans un but de sécurité) l&#8217;envoi d&#8217;un mail à une personne distante qu&#8217;à partir du réseau local (ou une liste de réseaux prédéfinis). Cela est parfait lorsqu&#8217;on envoie toujours les mails de chez soi, avec au besoin la possibilité d&#8217;envoyer un mail de n&#8217;importe où grâce au <a href="http://blog.rom1v.com/2009/11/installer-un-webmail-roundcube-sur-ubuntu-server/">webmail</a>.</p>
<p>Mais l&#8217;utilisation du SMTP à distance devient utile lorsqu&#8217;on veut envoyer un mail à partir de chez un ami avec son client mail (plus pratique pour les pièces jointes par exemple), et cela devient carrément indispensable lorsqu&#8217;on veut écrire des mails à partir de son téléphone de n&#8217;importe où (sans IP fixe).</p>
<p>Ne plus restreindre l&#8217;utilisation du SMTP au réseau local implique évidemment de rajouter une couche d&#8217;authentification…</p>
<p>Je vais donc décrire comment mettre en place une authentification SMTP-AUTH &laquo;&nbsp;en clair&nbsp;&raquo; (bien sûr encapsulée dans une connexion chiffrée TLS, déjà configurée si vous avez suivi le premier tuto) qui correspond au login et mot de passe de l&#8217;utilisateur système. Il a été écrit pour une installation sur <strong>Ubuntu Server 9.10</strong>, il faudra donc peut-être l&#8217;adapter légèrement si vous utilisez autre chose.</p>
<h2>Configuration de SASL</h2>
<p>Il faut installer le paquet <strong>sasl2-bin</strong>&nbsp;:</p>
<pre>sudo apt-get install sasl2-bin</pre>
<p>et ajouter l&#8217;utilisateur <strong>postfix</strong> au groupe <strong>sasl</strong>&nbsp;:</p>
<pre>sudo adduser postfix sasl</pre>
<p>Ouvrez ensuite <strong>/etc/default/saslauthd</strong>, remplacez&nbsp;:</p>
<pre>START=no</pre>
<p> par&nbsp;:</p>
<pre>START=yes</pre>
<p>et remplacez la dernière ligne par&nbsp;:</p>
<pre>OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"</pre>
<p>Démarrez le service&nbsp;:</p>
<pre>sudo /etc/init.d/saslauthd start</pre>
<h2>Configuration de postfix</h2>
<p>À la fin de <strong>/etc/postfix/main.cf</strong>, rajoutez&nbsp;:</p>
<pre># SASL
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination</pre>
<p><em>Dans ce même fichier, vous pouvez également supprimer le réseau <strong>192.168.0.0/24</strong> de la variable <strong>mynetworks</strong> (si vous l&#8217;aviez rajouté).</em></p>
<p>Créez le fichier <strong>/etc/postfix/sasl/smtpd.conf</strong> contenant&nbsp;:</p>
<pre>pwcheck_method: saslauthd
mech_list: plain login</pre>
<p>Rechargez la configuration de postfix&nbsp;:</p>
<pre>sudo /etc/init.d/postfix reload</pre>
<p>Voilà, tout est prêt.</p>
<h2>Configuration du client mail</h2>
<p>Dans votre client mail, indiquez que le serveur SMTP requiert une authentification, de type CLAIR (ou PLAIN), et précisez votre compte utilisateur à utiliser.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2010/01/ajouter-lauthentification-smtp-sur-un-serveur-mail/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Installer un webmail (RoundCube) sur Ubuntu Server</title>
		<link>http://blog.rom1v.com/2009/11/installer-un-webmail-roundcube-sur-ubuntu-server/</link>
		<comments>http://blog.rom1v.com/2009/11/installer-un-webmail-roundcube-sur-ubuntu-server/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 18:38:55 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=909</guid>
		<description><![CDATA[Un de mes précédents billets présentait l&#8217;installation d&#8217;un serveur de mails sur Ubuntu Server. Une fois installé, il était possible d&#8217;accéder à son courrier grâce à un client de messagerie. Il peut-être pratique, en plus de cela, d&#8217;accéder à ses mails par un webmail de n&#8217;importe où (notamment au travail, où il ne sera pas [...]]]></description>
			<content:encoded><![CDATA[<p>Un de mes précédents billets présentait l&#8217;<a href="http://blog.rom1v.com/2009/08/hebergez-vos-mails-sur-ubuntu-server-et-liberez-vous/">installation d&#8217;un serveur de mails sur Ubuntu Server</a>. Une fois installé, il était possible d&#8217;accéder à son courrier grâce à un client de messagerie.</p>
<p>Il peut-être pratique, en plus de cela, d&#8217;accéder à ses mails par un <em>webmail</em> de n&#8217;importe où (notamment au travail, où il ne sera pas filtré comme celui de <em>gmail</em> ou de <em>yahoo</em>, puisque c&#8217;est un webmail perso).</p>
<p>Je profite de la réinstallation à neuf de mon serveur pour présenter l&#8217;installation de <a href="http://roundcube.net/">RoundCube</a>, un webmail assez moderne, à installer sur <a href="http://doc.ubuntu-fr.org/lamp">LAMP</a> (avec accès HTTPS) sur Ubuntu Server.</p>
<p>Voici ce que ça donne une fois installé&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2009/11/roundcube.png"><img src="http://blog.rom1v.com/wp-content/uploads/2009/11/roundcube-300x190.png" alt="roundcube" title="roundcube" width="300" height="190" class="aligncenter size-medium wp-image-1014" /></a></p>
<p><em>Je partirai du principe que le webmail est sur la même machine que le serveur SMTP et que le répertoire <code>~/Maildir</code> (contenant les mails), et qu&#8217;il sera le seul site hébergé en HTTPS sur le serveur.</em></p>
<h2>Téléchargement</h2>
<p>Tout d&#8217;abord, il faut télécharger l&#8217;archive sur le site de <a href="http://roundcube.net/download">RoundCube</a> (la version complète), et l&#8217;extraire dans un répertoire&nbsp;:</p>
<pre>tar xzf roundcubemail-0.3.1.tar.gz</pre>
<p>Il est plus pratique de le renommer&nbsp;:</p>
<pre>mv roundcubemail-0.3.1 mail</pre>
<p>Ensuite, il faut donner les droits au serveur d&#8217;écrire dans les répertoires <code>temp</code> et <code>logs</code>&nbsp;:</p>
<pre>sudo chmod -R 777 mail/temp mail/logs</pre>
<p>Enfin, faire un lien du répertoire d&#8217;installation de RoundCube (par exemple <code>~/mail</code>) dans <code>/var/www</code>.</p>
<pre>sudo ln -s ~/mail/ /var/www</pre>
<h2>Préparation de la base de données</h2>
<p>Il faut créer une base de données qui sera utilisée par RoundCube, avec son propre utilisateur. Pour cela, démarrer <em>mysql</em> en tant qu&#8217;administrateur (le login et le mot de passe choisi lors de la configuration de <em>mysql</em>)&nbsp;:</p>
<pre>$ mysql -uroot -p
Enter password:</pre>
<p>Ensuite, créer une base de données&nbsp;:</p>
<pre>mysql> CREATE DATABASE mail;
Query OK, 1 row affected (0,00 sec)</pre>
<p>Puis un utilisateur <em>mysql</em> (par exemple <code>mailuser</code>/<code>unmotdepasse</code>)&nbsp;:</p>
<pre>mysql> GRANT ALL PRIVILEGES ON mail.* TO mailuser@localhost IDENTIFIED BY 'unmotdepasse';
Query OK, 0 rows affected (0,00 sec)</pre>
<p>Voilà, la base de données est prête à accueillir RoundCube.</p>
<h2>Configuration d&#8217;Apache</h2>
<p>Tout d&#8217;abord, il faut activer le mod <code>ssl</code> d&#8217;apache&nbsp;:</p>
<pre>sudo a2enmod ssl</pre>
<p>Et renseigner le champ <code>date.timezone</code> de <code>php.ini</code>&nbsp;:</p>
<pre>sudo nano /etc/php5/apache2/php.ini</pre>
<p>Remplacer la ligne&nbsp;:</p>
<pre>;date.timezone =</pre>
<p>par&nbsp;:</p>
<pre>date.timezone = 'Europe/Paris'</pre>
<p>Ensuite, il faut créer un <em>VirtualHost</em> qui décrit à Apache le site qu&#8217;il doit héberger (le nom du site sur lequel il répond en http, quels répertoires doivent être accessibles, etc.).</p>
<p>Voici un modèle (qui correspond à mon <em>VirtualHost</em>), qui permet&nbsp;:</p>
<ul>
<li>d&#8217;afficher le site contenu dans <code>/var/www/mail</code> lorsqu&#8217;une requête arrive sur le port 443 (<code>https</code>), c&#8217;est-à-dire quand je tape <code>https://mail.rom1v.com</code> dans un navigateur&nbsp;;</li>
<li>d&#8217;interdire l&#8217;accès aux répertoires <code>config</code>, <code>temp</code> et <code>logs</code>&nbsp;;</li>
<li>de rediriger automatiquement <code>http://mail.rom1v.com</code> vers <code>https://mail.rom1v.com</code>.</li>
</ul>
<pre>NameVirtualHost *:443

&lt;VirtualHost *:80&gt;
	ServerName	mail.rom1v.com
	Redirect	/ https://mail.rom1v.com/
&lt;/VirtualHost&gt;

&lt;VirtualHost *:443&gt;
	DocumentRoot	/var/www/mail
	ServerName	mail.rom1v.com
	SSLEngine on
	SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
	SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

	&lt;Directory /var/www/mail/&gt;
		Options FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
	&lt;/Directory&gt;

	&lt;Directory /var/www/mail/config&gt;
		Options -FollowSymLinks
		AllowOverride None
	&lt;/Directory&gt;

	&lt;Directory /var/www/mail/temp&gt;
		Options -FollowSymLinks
		AllowOverride None
	&lt;/Directory&gt;

	&lt;Directory /var/www/mail/logs&gt;
		Options -FollowSymLinks
		AllowOverride None
		Order allow,deny
		Deny from all
	&lt;/Directory&gt;

	ErrorLog	/var/log/apache2/mail_error.log
	CustomLog	/var/log/apache2/mail_access.log combined

&lt;/VirtualHost&gt;</pre>
<p>Ce fichier, une fois adapté à votre serveur, est à écrire dans <code>/etc/apache2/sites-available/</code> (dans un fichier nommé comme votre site par exemple, <code>mail.rom1v.com</code> pour moi).</p>
<p>Il faut ensuite l&#8217;activer&nbsp;:</p>
<pre>sudo a2ensite mail.rom1v.com</pre>
<p>Et recharger Apache&nbsp;:</p>
<pre>sudo /etc/init.d/apache2 reload</pre>
<h2>Configuration de RoundCube</h2>
<p>Il ne reste plus qu&#8217;à aller sur <code>http://votreserveur/installer</code> avec un navigateur pour configurer RoundCube.</p>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2009/11/firefox-ssl.png"><img src="http://blog.rom1v.com/wp-content/uploads/2009/11/firefox-ssl-300x228.png" alt="firefox-ssl" title="firefox-ssl" width="300" height="228" class="aligncenter size-medium wp-image-1015" /></a><br />
Bien sûr, lors de la première connexion, Firefox vous alerte car il ne connaît pas votre certificat SSL (qui est auto-signé), il suffit de lui indiquer que vous faites confiance à ce site (puisque c&#8217;est le vôtre) en ajoutant une exception.</p>
<p>L&#8217;<strong>étape 1</strong> <em>(Check environment)</em> doit bien se passer (à part quelques modules optionnels que vous n&#8217;avez pas, ce n&#8217;est pas grave).</p>
<p>Pour l&#8217;<strong>étape 2</strong> <em>(Create config)</em>&nbsp;:</p>
<ul>
<li>Choisir un <code>product_name</code>&nbsp;: le titre des pages souhaité&nbsp;;</li>
<li>Activer <code>ip_check</code>&nbsp;;</li>
<li>Désactiver <code>enable_spellcheck</code> (sinon tous vos mails seront envoyés à Google)&nbsp;;</li>
<li>Renseigner les données pour l&#8217;accès à la base de données (que nous avons créée tout à l&#8217;heure)&nbsp;;</li>
<li>Dans la partie IMAP, renseigner uniquement <code>default_host</code> à la valeur <code>localhost</code>&nbsp;;</li>
<li>Laissez par défaut le reste de la partie IMAP et la partie SMTP (vu que les mails sont sur la même machine).</li>
</ul>
<p>Lors de la validation, deux fichiers sont générés. Il faut les télécharger et les placer dans le répertoire <code>config/</code> <em>(ce n&#8217;est pas très pratique d&#8217;ailleurs, lorsqu&#8217;on accède au serveur par ssh, devoir télécharger les fichiers localement pour les renvoyer au serveur est un peu tordu)</em>.</p>
<p>L&#8217;<strong>étape 3</strong> <em>(Test config)</em> permet de tester que tout est OK. Il faut cliquer sur <em>Initialize database</em>.</p>
<p>Une fois ces étapes effectuées, rendez-vous sur l&#8217;adresse du webmail, vérifiez que ça fonctionne (avec votre login système et votre mot de passe). Si tout est ok, supprimez le répertoire <code>installer/</code>&nbsp;:</p>
<pre>rm -rf /var/www/mail/installer</pre>
<h2>Modifier les préférences</h2>
<p>Une fois connecté, il est possible de changer les préférences utilisateur. Je vous laisse découvrir les options par vous-même, mais certaines sont importantes.</p>
<p>Tout d&#8217;abord, dans l&#8217;onglet <em>identités</em>, renseignez votre adresse mail (par défaut c&#8217;est <code>login@localhost</code>, ce qui posera des problèmes à ceux qui voudront vous répondre).</p>
<p>Ensuite, activez les options qui concernent la suppression d&#8217;un message sur un compte IMAP dans <em>Préférences du serveur</em> de l&#8217;onglet <em>Préférences</em>&nbsp;:</p>
<ul>
<li><em>Mettre le drapeau de suppression au lieu de supprimer</em> (sinon vous ne pourrez pas supprimer de messages)&nbsp;;</li>
<li><em>Ne pas montrer les messages supprimés</em> (sinon vous les verrez encore en barré)</li>
</ul>
<h2>Conclusion</h2>
<p>Bravo. Vous avez maintenant un serveur mail perso avec un accès webmail sur HTTPS en plus de votre accès IMAP/TLS. Vous gagnez 1 point de liberté et 1 point de confort.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2009/11/installer-un-webmail-roundcube-sur-ubuntu-server/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Hébergez vos mails sur Ubuntu Server (et libérez-vous)</title>
		<link>http://blog.rom1v.com/2009/08/hebergez-vos-mails-sur-ubuntu-server-et-liberez-vous/</link>
		<comments>http://blog.rom1v.com/2009/08/hebergez-vos-mails-sur-ubuntu-server-et-liberez-vous/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 22:52:28 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[netneutrality]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=839</guid>
		<description><![CDATA[Après avoir acheté un petit serveur pour y héberger ce dont j&#8217;avais besoin, mon objectif est d&#8217;héberger TOUT ce qui n&#8217;a rien à faire ailleurs. Et comme l&#8217;explique Benjamin Bayart dans sa désormais célèbre conférence Internet libre ou Minitel 2.0, toutes nos données personnelles entrent dans cette catégorie. Mon blog est un bon exemple d&#8217;un [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2009/08/mail.png"><img class="alignleft size-thumbnail wp-image-872" title="mail" src="http://blog.rom1v.com/wp-content/uploads/2009/08/mail-150x150.png" alt="mail" width="150" height="150" /></a></p>
<p>Après avoir acheté un petit serveur pour y héberger ce dont j&#8217;avais besoin, mon objectif est d&#8217;héberger TOUT ce qui n&#8217;a rien à faire ailleurs. Et comme l&#8217;explique Benjamin Bayart dans sa désormais célèbre conférence <a href="http://www.fdn.fr/Internet-libre-ou-Minitel-2.html">Internet libre ou Minitel 2.0</a>, toutes nos données personnelles entrent dans cette catégorie.</p>
<p><a href="http://blog.rom1v.com/2009/01/nouveau-blog-100-libre/">Mon blog</a> est un bon exemple d&#8217;un contenu qui ne doit pas être hébergé ailleurs. La liste des flux RSS que je consulte aussi (c&#8217;est pourquoi j&#8217;ai installé <a href="http://tt-rss.org/">tt-rss</a>). Mon album photos à partager avec la famille également (j&#8217;ai installé <a href="http://gallery.menalto.com/">gallery</a>). Mais il restait le plus important : <strong>les mails</strong>.</p>
<p>Et c&#8217;est bien moins compliqué à installer que je ne l&#8217;imaginais !</p>
<p>Je vais donc présenter comment installer son propre serveur de mails sur <strong>Ubuntu Server</strong> (si vous utilisez autre chose, ça ne devrait pas être bien dur à adapter). Ainsi, vous pourrez avoir une jolie adresse <code>login@mondomaine</code>.</p>
<h2>Prérequis</h2>
<p>Je supposerai que vous avez déjà un nom de domaine et que vous savez ajouter des enregistrements <code>A</code> et <code>MX</code> (généralement dans l&#8217;interface fournie par votre registrar).</p>
<h2>Présentation</h2>
<p>Pour mettre en place un serveur mail complet, nous avons besoin de deux choses : un serveur SMTP (qui gère le transport du courrier) et un serveur IMAP ou POP3 (permettant de se connecter à sa boîte aux lettres).</p>
<p>J&#8217;ai choisi respectivement <strong>postfix</strong> et <strong>dovecot</strong> (ceux par défaut dans Ubuntu Server).</p>
<p>Il est possible de faire tout un tas de choses compliquées, ici je vais aller au plus simple. Au final on obtiendra donc un compte mail par utilisateur système (avec son mot de passe système), un serveur SMTP et un accès IMAP, le tout sécurisé sur TLS. Le serveur SMTP ne pourra relayer les mails envoyés qu&#8217;à partir du réseau local.</p>
<h2>Configuration DNS</h2>
<p>Rajoutez deux records de type <code>A</code> à votre fichier de zones DNS (<code>smtp</code> et <code>imap</code> – histoire de faire comme tout le monde, mais vous mettez ce que vous voulez –), et ajoutez un record de type <code>MX</code> qui pointe vers votre enregistrement <code>smtp</code> (<code>smtp.rom1v.com.</code> – n&#8217;oubliez pas le <code>.</code> à la fin –).</p>
<p>Il faut bien sûr ouvrir les ports sur le routeur et dans le pare-feu…<br />
Pour rappel :</p>
<ul>
<li>SMTP = 25</li>
<li>POP = 110</li>
<li>POP3S = 995</li>
<li>IMAP = 143</li>
<li>IMAPS = 993</li>
</ul>
<h2>Serveur</h2>
<h3>postfix</h3>
<p>Si vous n&#8217;avez pas déjà les paquets installés :</p>
<pre>sudo apt-get install postfix dovecot-imapd</pre>
<p>Si vous aviez déjà postfix :</p>
<pre>sudo dpkg-reconfigure postfix</pre>
<p>Vous obtenez un écran de configuration <em>debconf</em> qui va vous prendre par la main pour la configuration :<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2009/08/postfix-debconf.png"><img class="aligncenter size-medium wp-image-840" title="postfix-debconf" src="http://blog.rom1v.com/wp-content/uploads/2009/08/postfix-debconf-300x211.png" alt="postfix-debconf" width="300" height="211" /></a></p>
<ol>
<li><strong>Configuration type du serveur de messagerie :</strong> Site Internet</li>
<li><strong>Nom de courrier :</strong> votre nom de domaine (<code>rom1v.com</code> pour moi)</li>
<li><strong>Destinataire des courriels de « root » et de « postmaster » :</strong> votre login sur le serveur (<code>rom</code> pour moi)</li>
<li><strong>Autres destinations pour lesquelles le courrier sera accepté :</strong> rajoutez votre nom de domaine dans la liste (<code>rom1v.com</code>)</li>
<li><strong>Forcer des mises à jour synchronisées de la file d&#8217;attente des courriels :</strong> non (laisser par défaut)</li>
<li><strong>Réseaux internes :</strong> <code>127.0.0.0/8, 192.168.0.0/24</code> si votre réseau local est <code>192.168.0.x</code></li>
<li><strong>Utiliser procmail pour la distribution locale :</strong> non (allons au plus simple)</li>
<li><strong>Taille maximale des boîtes aux lettres (en octets) :</strong> à vous de choisir, moi j&#8217;ai mis 5Gio (5368709120) <em>(les créateurs de logiciels qui proposent 50Mio ne doivent pas recevoir des mails de gens n&#8217;y connaissant rien qui envoient en triple des photos en 10 mégapixels)</em></li>
<li><strong>Caractère d&#8217;extension pour les adresse locales :</strong> <code>+</code> (laisser par défaut)</li>
<li><strong>Protocoles internet à utiliser :</strong> ipv4 (au plus simple on a dit !)</li>
</ol>
<p>Vous avez alors un fichier <code>/etc/postfix/main.cf</code> qui ressemble à ceci (sauf la dernière ligne) :</p>
<pre>myhostname = rom1v.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = rom1v.com, rom-eeebox, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8, 192.168.0.0/24
mailbox_size_limit = 5368709120
recipient_delimiter = +
inet_interfaces = all
myorigin = /etc/mailname
inet_protocols = ipv4
home_mailbox = Maildir/</pre>
<p>Ajoutez donc la dernière ligne (c&#8217;est très important pour faire fonctionner IMAP).</p>
<p>Voilà, le serveur SMTP est prêt :</p>
<pre>sudo /etc/init.d/postfix restart</pre>
<p>Il ne sera possible d&#8217;envoyer un mail qu&#8217;à partir des réseaux définis dans <strong>mynetworks</strong> (c&#8217;est pour cela qu&#8217;il n&#8217;y a pas d&#8217;authentification par défaut).</p>
<p><em><strong>EDIT 02/01/2010&nbsp;:</strong> Pour mettre en place une authentification plutôt que de limiter l&#8217;accès à une liste de réseaux, lisez <a href="http://blog.rom1v.com/2010/01/ajouter-lauthentification-smtp-sur-un-serveur-mail/">ce billet</a>.</em></p>
<h3>dovecot</h3>
<p>Il y a deux choses à changer dans le fichier <code>/etc/dovecot/dovecot.conf</code>, tout d&#8217;abord pour activer le protocole IMAP :</p>
<pre>protocols = imap</pre>
<p>Ensuite pour choisir le répertoire de stockage des mails pour les utilisateurs (forcément <code>~/Maildir</code>) :</p>
<pre>mail_location = maildir:~/Maildir</pre>
<p>Enfin, il faut préparer ce répertoire en exécutant la commande :</p>
<pre>maildirmake ~/Maildir</pre>
<p>Voilà, c&#8217;est fini :</p>
<pre>sudo /etc/init.d/dovecot restart</pre>
<h2>Client</h2>
<p>Le serveur est configuré, nous pouvons maintenant l&#8217;utiliser.</p>
<h3>mailtutils</h3>
<p>Commençons par le tester grâce au paquet <strong>mailutils</strong> qui permet d&#8217;envoyer des mails en ligne de commande :</p>
<pre>sudo apt-get install mailutils</pre>
<p>Directement sur le serveur :</p>
<pre>$ mail login@mondomaine
Cc:
Subject: Mon premier serveur
Ça y'est, j'ai configuré mon premier serveur !</pre>
<p><em>(terminer avec une nouvelle ligne suivi de Ctrl+D)</em><br />
Le mail a dû arriver dans <code>~/Maildir/new</code>.</p>
<h3>Un vrai client</h3>
<p>Comme pour n&#8217;importe quelle adresse e-mail, il suffit de configurer le client (Evolution par exemple) en renseignant les champs demandés.</p>
<h4>Réception</h4>
<p>Type de serveur : IMAP<br />
Serveur : <code>imap.rom1v.com</code> <em>(à adapter avec votre nom de domaine)</em><br />
Nom d&#8217;utilisateur : <em>votre login sur le serveur</em><br />
Sécurité : Chiffrement TLS<br />
Type d&#8217;authentification : Mot de passe</p>
<h4>Envoi</h4>
<p>Type de serveur : SMTP<br />
Serveur : <code>smtp.rom1v.com</code> <em>(à adapter avec votre nom de domaine)</em><br />
Nom d&#8217;utilisateur : <em>votre login sur le serveur</em><br />
Sécurité : Chiffrement TLS<br />
Pas d&#8217;authentification.</p>
<h2>Sauvegardes</h2>
<p>Bien entendu, maintenant que vous hébergez vos mails, vous êtes responsables de leur stockage, et donc des backups. Mais j&#8217;imagine que cela ne vous posera pas de problèmes, car vous avez bien évidemment déjà mis en place un système (au moins <code>rsync</code>) qui sauvegarde vos données sur une autre machine : il suffira donc de rajouter le répertoire <code>~/Mailbox</code> à la liste des répertoires sauvegardés.</p>
<h2>Disponibilité</h2>
<p>Si le serveur est déconnecté moins de 48 heures, ce n&#8217;est pas catastrophique, les mails ne seront probablement pas perdus, la majorité des serveurs SMTP tentent de renvoyer le courrier après un échec. Évidemment, si le serveur est éteint durant un mois, il n&#8217;y a pas de magie&nbsp;: pas de serveur, pas de mails…</p>
<h2>Conclusion</h2>
<p>Cette étape est pour moi un pas de plus vers un internet libre…</p>
<p>J&#8217;ai présenté le minimum vital, mais vous pouvez trouver des fonctionnalités à mettre en place (un webmail tel que <a href="http://blog.rom1v.com/2009/11/installer-un-webmail-roundcube-sur-ubuntu-server/">RoundCube</a>, un <a href="http://blog.rom1v.com/2010/03/filtrer-les-spams-sur-un-serveur-mail-spamassassin/">anti-spam</a>, le <a href="http://blog.rom1v.com/2010/01/trier-ses-mails-directement-sur-le-serveur-procmail/">tri des mails sur le serveur</a>, une <a href="http://blog.rom1v.com/2010/01/ajouter-lauthentification-smtp-sur-un-serveur-mail/">authentification SMTP</a>…).</p>
<p>Amusez-vous bien !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2009/08/hebergez-vos-mails-sur-ubuntu-server-et-liberez-vous/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>Synergy : contrôlez plusieurs PC avec une seule souris et un seul clavier</title>
		<link>http://blog.rom1v.com/2008/11/synergy-controlez-plusieurs-pc-avec-une-seule-souris-et-un-seul-clavier/</link>
		<comments>http://blog.rom1v.com/2008/11/synergy-controlez-plusieurs-pc-avec-une-seule-souris-et-un-seul-clavier/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 21:10:00 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[synergy]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/2008/11/synergy%c2%a0-controlez-plusieurs-pc-avec-une-seule-souris-et-un-seul-clavier/</guid>
		<description><![CDATA[Synergy est un outil permettant de contrôler plusieurs ordinateurs avec un seul clavier et une seule souris. De plus, il permet de partager le presse-papier : pratique pour copier-coller d&#8217;un ordinateur à l&#8217;autre ! Mais en plus, c&#8217;est super simple ! Il y a un serveur et n clients. C&#8217;est le serveur qui possède le clavier et [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Synergy</strong> est un outil permettant de contrôler plusieurs ordinateurs avec un seul clavier et une seule souris. De plus, il permet de partager le presse-papier : pratique pour copier-coller d&#8217;un ordinateur à l&#8217;autre ! Mais en plus, c&#8217;est super simple !</p>
<p>Il y a un <strong>serveur</strong> et <em>n</em> <strong>clients</strong>. C&#8217;est le serveur qui possède le clavier et la souris.</p>
<div style="text-align: center;"><img src="http://www.generation-linux.fr/public/nov08/puls_synergy.png" alt="synergy" /></div>
<p>Tout d&#8217;abord, sur chacun des postes, il faut installer le paquet <a href="apt://synergy">synergy</a>.</p>
<p>Ensuite, sur le serveur, il faut créer un fichier de configuration <code>~/.synergy.conf</code>, extrêmement simple :</p>
<pre>section: screens
   rom-laptop:
   rom-desktop:
end
section: links
   rom-desktop:
       left = rom-laptop
   rom-laptop:
       right = rom-desktop
end</pre>
<p>Ici, <em>rom-laptop</em> est mon portable (le serveur) et <em>rom-desktop</em> est mon fixe (le client). C&#8217;est le nom de la machine, que l&#8217;on peut connaître avec :</p>
<pre>echo $HOSTNAME</pre>
<p>La section <code>screen</code> définit la liste des machines, et la section <code>links</code> définit leur position relative.</p>
<p>Ensuite, côté serveur, on tape :</p>
<pre>synergys</pre>
<p>Et sur chaque client :</p>
<pre>synergyc ip_du_serveur</pre>
<p>Les clients peuvent être lancés avant le serveur, ils vont tenter de se reconnecter 1 seconde après, puis 3 secondes après, puis 5, puis 15, puis 30 et enfin toutes les minutes. Ils survivent à la déconnexion du serveur, et tentent de se reconnecter en suivant la même règle.</p>
<p>Pour arrêter la connexion, sur le serveur :</p>
<pre>killall synergys</pre>
<p>et sur les clients :</p>
<pre>killall synergyc</pre>
<p><span style="text-decoration: underline;"><strong>Pour aller plus loin :</strong></span></p>
<p><strong>Éviter le changement d&#8217;écran involontaire</strong><br />
Après quelques minutes d&#8217;utilisation, on se rend compte que lorsqu&#8217;on est sur le PC de gauche, et qu&#8217;on va à la droite de l&#8217;écran (pour déplacer la scrollbar de <em>Firefox</em> en plein écran par exemple), on se retrouve involontairement sur l&#8217;écran de droite, c&#8217;est très embêtant.<br />
Mais c&#8217;est très facile d&#8217;y remédier, il suffit d&#8217;ajouter l&#8217;option :</p>
<pre>section: options
   switchDoubleTap = 400
end</pre>
<p>Cela permet de ne changer d&#8217;écran qu&#8217;en cas de double-contact en moins de 400ms avec le bord de l&#8217;écran.</p>
<p><strong>Démarrer automatiquement</strong><br />
Sous <em>GNOME</em> (à adapter pour les autres environnements), il suffit de rajouter au fichier <code>~/.gnomerc</code> la commande du serveur ou du client selon le cas.<br />
Pour le serveur :</p>
<pre>echo 'synergys' &gt;&gt; ~/.gnomerc</pre>
<p>Pour le client :</p>
<pre>echo 'synergyc ip_du_serveur' &gt;&gt; ~/.gnomerc</pre>
<p><strong>Décaler les écrans</strong><br />
Deux écrans côte à côte ne sont pas forcément alignés et ils n&#8217;ont pas forcément la même hauteur.<br />
Par exemple l&#8217;écran de mon fixe est un 5:4 et il est un peu surélevé, celui de mon portable est un 16:10 et il est plus bas.<br />
Pourtant, quand je déplace la souris d&#8217;un écran à l&#8217;autre, je voudrais que la souris reste à la même hauteur. Aucun problème, on peut passer des arguments (start,end), exprimés en pourcentage de l&#8217;écran, entre 0 et 100 inclus :</p>
<pre>section: screens
    rom-laptop:
    rom-desktop:
end
section: links
    rom-desktop:
        left(35,100) = rom-laptop(0,85)
    rom-laptop:
        right(0,85) = rom-desktop(35,100)
end
section: options
    switchDoubleTap = 400
end</pre>
<p>Ici, la partie supérieure de mon portable ([0%;85%]) est en face de la partie basse de mon fixe ([35%;100%]).<br />
<em>Remarque :</em> la relation n&#8217;a pas besoin d&#8217;être symétrique, mais c&#8217;est plus logique qu&#8217;elle le soit <img src='http://blog.rom1v.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Démarrer chacun des clients à distance</strong><br />
Si l&#8217;on ne veut pas démarrer <strong>synergy</strong> au démarrage, on souhaiterais pouvoir le faire rapidement sans passer sur chacun des PC pour exécuter une commande. Avec une connexion SSH correctement configurée (par clés de préférence), on peut automatiser le lancement de tous les clients :</p>
<pre>synergys
ssh rom-desktop synergyc rom-laptop
ssh un-autre-pc synergyc rom-laptop</pre>
<p>(<code>rom-laptop</code> est défini dans <code>/etc/hosts</code>)</p>
<p><strong>Sécuriser la connexion</strong><br />
<strong>Synergy</strong> ne crypte pas les communications, donc tout passe en clair sur le réseau (enfin, du moins pour ceux qui connaissent la clé WPA de votre réseau, si vous êtes en wifi).<br />
Pour crypter, il suffit de faire passer la connexion dans un tunnel SSH. Pour cela, sur chacun des clients :</p>
<pre>ssh rom-laptop -fCNL24800:localhost:24800 synergyc localhost</pre>
<p>Ce qui est embêtant, c&#8217;est qu&#8217;il faut décrypter sur chacun des postes la clé privée, et donc c&#8217;est problématique pour démarrer <strong>synergy</strong> au démarrage du système.</p>
<p>Un grand merci à <a href="http://www.generation-linux.fr/index.php?post/2008/11/19/%5BTest-1er-Billet%5D-Synergy-ou-comment-gagner-de-la-place-sur-votre-bureau">Génération Linux</a> qui m&#8217;a fait découvrir cet outil maintenant indispensable.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2008/11/synergy-controlez-plusieurs-pc-avec-une-seule-souris-et-un-seul-clavier/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>netcat : communication primaire en TCP</title>
		<link>http://blog.rom1v.com/2008/11/netcat-communication-primaire-en-tcp/</link>
		<comments>http://blog.rom1v.com/2008/11/netcat-communication-primaire-en-tcp/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 11:06:00 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[netcat]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/2008/11/netcat%c2%a0-communication-primaire-en-tcp/</guid>
		<description><![CDATA[Comment envoyer un bout de texte d&#8217;un pc à l&#8217;autre? Ou même un fichier? Il y a plein de méthodes, mais parfois la plus rudimentaire fonctionne très bien : écrire directement en TCP ! Pour cela, sur un pc (192.168.0.1 par exemple), faites : nc -l -p 1234 -l veut dire listen (ça veut dire qu&#8217;on lance un [...]]]></description>
			<content:encoded><![CDATA[<p>Comment envoyer un bout de texte d&#8217;un pc à l&#8217;autre? Ou même un fichier?</p>
<p>Il y a plein de méthodes, mais parfois la plus rudimentaire fonctionne très bien : écrire directement en TCP !</p>
<p>Pour cela, sur un pc (<code>192.168.0.1</code> par exemple), faites :</p>
<pre>nc -l -p 1234</pre>
<p><code>-l</code> veut dire <code>listen</code> (ça veut dire qu&#8217;on lance un serveur)<br />
<code>-p 1234</code> précise le port, choisissez ce que vous voulez</p>
<p>Sur un autre pc :</p>
<pre>nc 192.168.0.1 1234</pre>
<p>Et ça y&#8217;est, vous avez un tuyau de communication bidirectionnel, pratique pour faire des copiers-collers d&#8217;un ordinateur à l&#8217;autre. Si vous ouvrez le port correspondant sur votre routeur, ça marche aussi sur internet, bien évidemment.</p>
<p>L&#8217;avantage c&#8217;est que <code>nc</code> (ou <code>netcat</code>) est installé par défaut.</p>
<p>On peut aussi transférer des fichiers :</p>
<pre>nc -l -p 1234 &gt; monfichier</pre>
<pre>cat unfichier | nc 192.168.0.1 1234</pre>
<p>(terminer par <code>Ctrl+C</code>)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2008/11/netcat-communication-primaire-en-tcp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Partager sa musique sur réseau local avec Rhythmbox</title>
		<link>http://blog.rom1v.com/2008/11/partager-sa-musique-sur-reseau-local-avec-rhythmbox/</link>
		<comments>http://blog.rom1v.com/2008/11/partager-sa-musique-sur-reseau-local-avec-rhythmbox/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 15:30:00 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[rhythmbox]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/2008/11/partager-sa-musique-sur-reseau-local-avec-rhythmbox/</guid>
		<description><![CDATA[Si vous avez plusieurs ordinateurs chez vous, il y a des dizaines de moyens de partager votre musique sur votre réseau local. En voici une très simple, grâce à Rhythmbox (le lecteur par défaut d&#8217;Ubuntu). Pour activer le partage, dans Édition → Greffons, il suffit d&#8217;activer Partage de musique DAAP (cette case est déjà activée [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous avez plusieurs ordinateurs chez vous, il y a des dizaines de moyens de partager votre musique sur votre réseau local.</p>
<p>En voici une très simple, grâce à <strong>Rhythmbox</strong> (le lecteur par défaut d&#8217;Ubuntu).</p>
<p>Pour activer le partage, dans Édition → Greffons, il suffit d&#8217;activer <em>Partage de musique DAAP</em> (cette case est déjà activée par défaut dans Ubuntu 8.10), de cliquer sur <em>Configurer</em>, et d&#8217;activer <em>Partager ma musique</em>.<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2008/11/rhythmbox-enable-share.png"><img src="http://blog.rom1v.com/wp-content/uploads/2008/11/rhythmbox-enable-share-300x194.png" alt="rhythmbox-enable-share" title="rhythmbox-enable-share" width="300" height="194" class="aligncenter size-medium wp-image-235" /></a><br />
<a href="http://blog.rom1v.com/wp-content/uploads/2008/11/rhythmbox-share-dialog.png"><img src="http://blog.rom1v.com/wp-content/uploads/2008/11/rhythmbox-share-dialog-300x159.png" alt="rhythmbox-share-dialog" title="rhythmbox-share-dialog" width="300" height="159" class="aligncenter size-medium wp-image-236" /></a></p>
<p>Vous obtiendrez une nouvelle entrée dans le menu de gauche de <strong>Rhythmbox</strong>, et vous pourrez lire directement toute la musique se trouvant sur un autre ordinateur :<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2008/11/rhythmbox-share.png"><img src="http://blog.rom1v.com/wp-content/uploads/2008/11/rhythmbox-share.png" alt="rhythmbox-share" title="rhythmbox-share" width="228" height="207" class="aligncenter size-full wp-image-237" /></a></p>
<p><em>Rhythmbox doit resté ouvert sur l&#8217;ordinateur &laquo;&nbsp;serveur&nbsp;&raquo;.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2008/11/partager-sa-musique-sur-reseau-local-avec-rhythmbox/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PulseAudio et X-forwarding : trouver le serveur de son</title>
		<link>http://blog.rom1v.com/2008/09/pulseaudio-et-x-forwarding-trouver-le-serveur-de-son/</link>
		<comments>http://blog.rom1v.com/2008/09/pulseaudio-et-x-forwarding-trouver-le-serveur-de-son/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 17:55:00 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[pulseaudio]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/2008/09/pulseaudio-et-x-forwarding%c2%a0-trouver-le-serveur-de-son/</guid>
		<description><![CDATA[J&#8217;avais d&#8217;abord présenté comment exécuter un lecteur audio à distance, en ayant son affichage localement (présentation de SSH, chapitre 5). J&#8217;ai ensuite présenté comment rediriger le son vers un autre PC (grâce à PulseAudio). Le problème, c&#8217;est qu&#8217;avec PulseAudio, l&#8217;exécution d&#8217;un lecteur audio à distance avec l&#8217;affichage en local ne fonctionne plus : le son ne [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;avais d&#8217;abord présenté comment exécuter un lecteur audio à distance, en ayant son affichage localement (<a href="http://blog.rom1v.com/2008/08/presentation-de-ssh/">présentation de SSH</a>, chapitre 5).</p>
<p>J&#8217;ai ensuite présenté comment <a href="http://blog.rom1v.com/2008/09/utilisez-une-sortie-son-dun-autre-pc-avec-ubuntu-804/">rediriger le son vers un autre PC</a> (grâce à PulseAudio).</p>
<p>Le problème, c&#8217;est qu&#8217;avec <strong>PulseAudio</strong>, l&#8217;exécution d&#8217;un lecteur audio à distance avec l&#8217;affichage en local ne fonctionne plus : le son ne sort nulle part, même si à l&#8217;écran tout a l&#8217;air de fonctionner :</p>
<pre>ssh monserveur -XC rhythmbox</pre>
<p>En effet, la variable d&#8217;environnement <code>PULSE_SERVER</code> n&#8217;étant pas affectée lors d&#8217;un <code>ssh -X</code>, le lecteur ne trouve pas de serveur audio.</p>
<p>La solution propre serait de rajouter une ligne dans <code>~/.pulse/client.conf</code> :</p>
<pre>echo "default-server={$HOSTNAME}unix:/tmp/pulse-$USER/native" &gt;&gt; ~/.pulse/client.conf</pre>
<p>Mais un bug de pulse audio, corrigé dans la version 0.9.12, fait que cette solution ne fonctionne pas. Et malheureusement, cette version de pulse audio ne devrait pas apparaître dans Ubuntu avant la version 9.04.</p>
<p>Une solution consiste donc à l&#8217;initialiser lors du lancement du lecteur audio :</p>
<pre>ssh monserveur -XC 'PULSE_SERVER="{$HOSTNAME}unix:/tmp/pulse-$USER/native" rhythmbox'</pre>
<p>Si vraiment l&#8217;on veut éviter d&#8217;affecter cette variable à chaque fois manuellement, on peut rajouter à la fin du fichier <code>/etc/ssh/sshd_config</code> la ligne suivante :</p>
<pre>PermitUserEnvironment yes</pre>
<p>puis, toujours <strong>sur le serveur</strong>, définir la variable d&#8217;environment dans le fichier <code>~/.ssh/environment</code> :</p>
<pre>echo "PULSE_SERVER={$HOSTNAME}unix:/tmp/pulse-$USER/native" &gt;&gt; ~/.ssh/environment</pre>
<p>Après avoir redémarré le serveur :</p>
<pre>sudo /etc/init.d/ssh restart</pre>
<p>il est possible de lancer sur le client :</p>
<pre>ssh monserveur -XC rhythmbox</pre>
<p>Le son ne sera plus perdu dans une faille de l&#8217;espace-temps <img src='http://blog.rom1v.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2008/09/pulseaudio-et-x-forwarding-trouver-le-serveur-de-son/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Utilisez une sortie son d&#8217;un autre PC avec Ubuntu 8.04 !</title>
		<link>http://blog.rom1v.com/2008/09/utilisez-une-sortie-son-dun-autre-pc-avec-ubuntu-804/</link>
		<comments>http://blog.rom1v.com/2008/09/utilisez-une-sortie-son-dun-autre-pc-avec-ubuntu-804/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 12:03:00 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[pulseaudio]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/2008/09/utilisez-une-sortie-son-dun-autre-pc-avec-ubuntu-804%c2%a0/</guid>
		<description><![CDATA[Dans ma présentation de SSH (au chapitre 5), j&#8217;expliquais comment exécuter un lecteur audio à distance, en ayant l&#8217;affichage en local. Pour résumer, supposons qu&#8217;un PC fixe (qui joue un peu le rôle de serveur) contienne toute notre audiothèque, et soit relié à un ampli. Il peut être pratique de vouloir contrôler cette musique à [...]]]></description>
			<content:encoded><![CDATA[<p>Dans ma <a href="http://blog.rom1v.com/2008/08/presentation-de-ssh/">présentation de SSH</a> (au chapitre 5), j&#8217;expliquais comment exécuter un lecteur audio à distance, en ayant l&#8217;affichage en local. Pour résumer, supposons qu&#8217;un PC fixe (qui joue un peu le rôle de serveur) contienne toute notre audiothèque, et soit relié à un ampli. Il peut être pratique de vouloir contrôler cette musique à distance avec le PC portable, tranquillement installé dans le canapé. La redirection de l&#8217;affichage du lecteur distant sur le PC local répond à ce problème.</p>
<p>Maintenant, prenons un autre cas de figure : je veux que les sons qui sortent actuellement sur le PC portable soient finalement redirigés vers l&#8217;ampli (par exemple le son d&#8217;une vidéo lue dans un navigateur).</p>
<p>Ceci est possible grâce au serveur de son <strong>PulseAudio</strong> intégré à Ubuntu 8.04. Et en plus, c&#8217;est très simple à mettre en œuvre.</p>
<p>Tout d&#8217;abord, installez le paquet <a href="apt://padevchooser">padevchooser</a> à la fois sur le PC serveur et sur le PC client, puis lancez <code>padevchooser</code> en console (ou allez dans le menu Applications → Son et vidéo → PulseAudio Device Chooser) : une icône apparaît alors dans le <em>systray</em>.</p>
<p>Sur le serveur, cliquez sur cette icône, puis &laquo;&nbsp;Configure Local Sound Server…&nbsp;&raquo;, et dans l&#8217;onglet &laquo;&nbsp;Multicast/RTP&nbsp;&raquo;, activez &laquo;&nbsp;<strong>Enable Multicast/RTP receiver</strong>&laquo;&nbsp;.<br />
Sur le client, faites de même, sauf que c&#8217;est &laquo;&nbsp;<strong>Enable Multicast/RTP sender</strong>&nbsp;&raquo; qu&#8217;il faut activer.<br />
Les deux machines peuvent avoir simultanément le rôle de client et de serveur.</p>
<p>Ensuite, sur le client, cliquez sur l&#8217;icône de <strong>PulseAudio</strong> dans le <em>systray</em>, puis &laquo;&nbsp;Volume Control&nbsp;&raquo;. Pour chaque flux sortant (ici VLC et Rhythmbox), vous pouvez choisir si le son doit sortir en local ou à distance :<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2008/09/pulse-audio-volume-control.png"><img src="http://blog.rom1v.com/wp-content/uploads/2008/09/pulse-audio-volume-control-300x210.png" alt="pulse-audio-volume-control" title="pulse-audio-volume-control" width="300" height="210" class="aligncenter size-medium wp-image-198" /></a></p>
<p>Le réglage est appliqué &laquo;&nbsp;à chaud&nbsp;&raquo; (le son change aussitôt de sortie audio).</p>
<p>Il est possible de configurer de manière plus précise, pour choisir sur quelle carte son de quel PC le son doit sortir, ainsi que de définir une sortie son par défaut. Je vous laisse fouiller les préférences <img src='http://blog.rom1v.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Merci à <a href="http://forum.ubuntu-fr.org/viewtopic.php?pid=2047197#p2047197">Compte0</a> qui m&#8217;a fait découvrir cette fonctionnalité.</p>
<p><em>Note : pour que cela fonctionne avec les vidéos Flash, il faut le paquet <a href="apt://libflashsupport">libflashsupport</a>, en attendant que Flash supporte nativement <strong>PulseAudio</strong>.<br />
Attention cependant, il est possible avec ce paquet que des plantages de Firefox surviennent aléatoirement sur des pages contenant du Flash ; si cela vous arrive, désinstallez simplement le paquet.<br />
Vous pouvez également tester <a href="http://labs.adobe.com/downloads/flashplayer10.html">la version RC de Flash Player 10</a>, qui supporte <strong>PulseAudio</strong> en natif, ou attendre la version 8.10 d&#8217;Ubuntu, prévue pour le 30 octobre 2008.</em></p>
<p><em>EDIT: Tout fonctionne correctement depuis la version 8.10.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2008/09/utilisez-une-sortie-son-dun-autre-pc-avec-ubuntu-804/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>rsync : ayez une vraie politique de backup !</title>
		<link>http://blog.rom1v.com/2008/08/rsync-ayez-une-vraie-politique-de-backup/</link>
		<comments>http://blog.rom1v.com/2008/08/rsync-ayez-une-vraie-politique-de-backup/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 20:07:00 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/2008/08/rsync%c2%a0-ayez-une-vraie-politique-de-backup%c2%a0/</guid>
		<description><![CDATA[Ça vous est déjà arrivé de perdre un disque dur ? « eh zut, mes photos depuis 5 ans sont perdues » « arf, mon projet à rendre la semaine prochaine » Eh bien moi non, pas encore (trop chanceux!). Et pour éviter que ça se produise, j&#8217;ai mis en place une petite politique de [...]]]></description>
			<content:encoded><![CDATA[<p>Ça vous est déjà arrivé de perdre un disque dur ?<br />
« eh zut, mes photos depuis 5 ans sont perdues »<br />
« arf, mon projet à rendre la semaine prochaine »</p>
<p>Eh bien moi non, pas encore (trop chanceux!). Et pour éviter que ça se produise, j&#8217;ai mis en place une petite politique de backup, très simple.</p>
<p>Alors évidemment, j&#8217;avais déjà fait des &laquo;&nbsp;backups&nbsp;&raquo; : quand un répertoire est important, je le copie autre part. Et quand il est modifié, je supprime l&#8217;ancien backup et je le recopie de nouveau (ou j&#8217;écrase l&#8217;ancien par le nouveau).<br />
Mais par exemple pour le répertoire de photos ou autre, quand ça prend 5Gio, c&#8217;est beaucoup trop long.</p>
<p>Voici donc comment faire un backup &laquo;&nbsp;incrémental&nbsp;&raquo; : seuls les fichiers modifiés, ajoutés ou supprimés seront modifiés côté &laquo;&nbsp;backup&nbsp;&raquo;.<br />
Et en plus, ça marche aussi à distance (on peut <em>backuper</em> un répertoire dans un autre sur la même machine, mais également sur une machine différente, par <strong>ssh</strong>).</p>
<p>Voici par exemple le script que j&#8217;utilise pour faire un backup de mon portable dans un répertoire de mon fixe :</p>
<pre>#!/bin/sh
cmd='rsync -rpltv --del'

backup_dir='rom-desktop:/media/gnu/backup/rom-laptop'
$cmd
/home/rom/work
/home/rom/java
/home/rom/docs
/home/rom/.thunderbird
/home/rom/.mozilla
/home/rom/sh
$backup_dir</pre>
<p><em>(<code>.mozilla</code> et <code>.thunderbird</code>, c&#8217;est la configuration de <strong>firefox</strong> et <strong>thunderbird</strong>, ainsi que tous les favoris, mails, comptes&#8230;)</em></p>
<p>Et du fixe vers le fixe (d&#8217;un disque dur vers un autre) :</p>
<pre>#!/bin/sh
cmd='rsync -rpltv --del'

backup_dir='/media/gnu/backup/rom-desktop'
$cmd
/media/tux/photos
$backup_dir</pre>
<p>Plus d&#8217;infos sur les paramètres de <span style="font-weight: bold;">rsync</span> :<br />
<code>-r</code> parcours le dossier indiqué et tous ses sous-dossiers (récursivement)<br />
<code>-p</code> préserve les droits<br />
<code>-l</code> copie les liens symboliques comme liens symboliques<br />
<code>-t</code> préserve les dates (important pour les photos)<br />
<code>-v</code> plus verbeux<br />
<code>--del</code> permet de supprimer les fichiers sur <em>destination</em> qui n&#8217;existent plus sur <em>source</em></p>
<p><code>$cmd</code> c&#8217;est la commande <strong>rsync</strong> avec ses paramètres<br />
<code>$backup_dir</code> c&#8217;est la destination :</p>
<ul>
<li><code>machine:/répertoire</code> si distant</li>
<li><code>/répertoire</code> si local</li>
</ul>
<p>Ensuite, vous pouvez lancer le script de temps en temps, manuellement (ce que je fais) ou programmé (la nuit ?).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2008/08/rsync-ayez-une-vraie-politique-de-backup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Présentation de SSH</title>
		<link>http://blog.rom1v.com/2008/08/presentation-de-ssh/</link>
		<comments>http://blog.rom1v.com/2008/08/presentation-de-ssh/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 17:03:00 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/2008/08/presentation-de-ssh/</guid>
		<description><![CDATA[Voici une présentation de SSH que j&#8217;ai faite à l&#8217;Ubuntu-Party de juin : Les slides La documentation détaillée Les sources tex]]></description>
			<content:encoded><![CDATA[<p>Voici une présentation de <strong>SSH</strong> que j&#8217;ai faite à l&#8217;<a href="http://www.ubuntu-party.org/"><strong>Ubuntu-Party</strong></a> de juin :</p>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2008/08/ssh-plan.png"><img class="aligncenter size-medium wp-image-125" title="ssh-plan" src="http://blog.rom1v.com/wp-content/uploads/2008/08/ssh-plan-300x225.png" alt="ssh-plan" width="300" height="225" /></a></p>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2008/08/ssh-slides.pdf">Les slides</a><br />
<a href="http://blog.rom1v.com/wp-content/uploads/2008/08/ssh.pdf">La documentation détaillée</a></p>
<p><a href='http://blog.rom1v.com/wp-content/uploads/2008/08/ssh-tex-src.7z'>Les sources tex</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2008/08/presentation-de-ssh/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
