<?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; serveur</title>
	<atom:link href="http://blog.rom1v.com/tag/serveur/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rom1v.com</link>
	<description>Un blog libre</description>
	<lastBuildDate>Thu, 02 Feb 2012 20:03:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Héberger un serveur Jabber simplement (prosody)</title>
		<link>http://blog.rom1v.com/2012/01/heberger-un-serveur-jabber-simplement-prosody/</link>
		<comments>http://blog.rom1v.com/2012/01/heberger-un-serveur-jabber-simplement-prosody/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 22:12:58 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[auto-hébergement]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[serveur]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=3696</guid>
		<description><![CDATA[J&#8217;ai enfin décidé d&#8217;héberger mon propre serveur Jabber, pour plusieurs raisons&#160;: la liste de mes contacts est mieux sur mon serveur que sur un autre&#160;; le serveur que j&#8217;utilisais (jabber.fr) rencontre parfois quelques difficultés&#160;; mon adresse Jabber sera ainsi la même que mon adresse mail (rom suivi de @rom1v.com). Et c&#8217;est simple&#160;! Installation et configuration [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2012/01/jabber.png"><img src="http://blog.rom1v.com/wp-content/uploads/2012/01/jabber.png" alt="" title="jabber" width="133" height="200" class="alignright size-full wp-image-3707" /></a></p>
<p>J&#8217;ai enfin décidé d&#8217;héberger mon propre serveur <a href="http://www.jabberfr.org/">Jabber</a>, pour plusieurs raisons&nbsp;:</p>
<ul>
<li>la liste de mes contacts est mieux sur mon serveur que sur un autre&nbsp;;</li>
<li>le serveur que j&#8217;utilisais (<a href="http://jabber.apinc.org/">jabber.fr</a>) rencontre parfois quelques difficultés&nbsp;;</li>
<li>mon adresse <em>Jabber</em> sera ainsi la même que <a href="http://blog.rom1v.com/2009/08/hebergez-vos-mails-sur-ubuntu-server-et-liberez-vous/">mon adresse mail</a> (<code>rom</code> suivi de <code>@rom1v.com</code>).</li>
</ul>
<p>Et c&#8217;est simple&nbsp;!</p>
<h3>Installation et configuration</h3>
<p>Tout d&#8217;abord, installer le paquet <code>prosody</code>&nbsp;:</p>
<pre>apt-get install prosody</pre>
<p>Puis ajouter à la fin du fichier <code>/etc/prosody/prosody.cfg.lua</code>&nbsp;:</p>
<pre>Host "<em>nom.de.domaine</em>"</pre>
<p>Pour moi&nbsp;:</p>
<pre>Host "rom1v.com"</pre>
<p>Créer un utilisateur en ligne de commandes et choisir un mot de passe&nbsp;:</p>
<pre>prosodyctl adduser <em>user</em>@<em>nom.de.domaine</em></pre>
<h3>Certificat</h3>
<p>Un <a href="http://fr.wikipedia.org/wiki/Certificat_%C3%A9lectronique#Certificat">certificat</a> TLS/SSL est créé par défaut, mais les champs sont renseignés avec des valeurs non pertinentes (<em>localhost</em> au lieu de <em>nom.de.domaine</em> par exemple). Il est donc préférable d&#8217;en <a href="http://prosody.im/doc/advanced_ssl_tls">générer un nouveau</a>.</p>
<p>Dans le répertoire <code>/etc/prosody/certs</code>, exécuter&nbsp;:</p>
<pre>openssl req -new -x509 -nodes -out <em>nom.de.domaine</em>.cert -keyout <em>nom.de.domaine</em>.key</pre>
<p>Renseigner les champs demandés <em>(«&nbsp;<code>.</code>&nbsp;» pour laisser un champ vide)</em>.</p>
<p>Remplacer le certificat dans le fichier de configuration&nbsp;:</p>
<pre>ssl = {
        key = "/etc/prosody/certs/<em>nom.de.domaine</em>.key";
        certificate = "/etc/prosody/certs/<em>nom.de.domaine</em>.cert";
}</pre>
<h4>Empreinte</h4>
<p>Comme c&#8217;est un certificat auto-signé, les clients <em>Jabber</em> ne lui feront pas confiance&nbsp;: ils demanderont une confirmation, en présentant son empreinte. Il faudra alors vérifier que le certificat présenté est bien le bon, c&#8217;est-à-dire que l&#8217;empreinte est la même.</p>
<p>Pour la connaître&nbsp;:</p>
<pre>openssl x509 -fingerprint -noout -in <em>nom.de.domaine</em>.cert</pre>
<p>Par exemple&nbsp;:</p>
<pre>$ openssl x509 -fingerprint -noout -in rom1v.com.cert
SHA1 Fingerprint=C3:6D:9B:65:06:55:C4:84:B4:A5:8D:4B:12:68:2F:08:71:7E:AC:DD</pre>
<h3>Ports</h3>
<p>Les <a href="http://fr.wikipedia.org/wiki/Liste_des_ports_logiciels">ports</a> TCP 5222 et 5269 <a href="http://www.accessgrid.org/agdp/guide/ports/1.03/x112.html">doivent être ouverts</a>.</p>
<h3>Démarrer</h3>
<p>Il ne reste plus qu&#8217;à démarrer le service.</p>
<pre>service prosody start</pre>
<h3>Clients</h3>
<p>Il est maintenant possible de se connecter en utilisant le nom d&#8217;utilisateur et le mot de passe créés&nbsp;:</p>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2012/01/empathy.png"><img src="http://blog.rom1v.com/wp-content/uploads/2012/01/empathy-300x179.png" alt="" title="empathy" width="300" height="179" class="aligncenter size-medium wp-image-3697" /></a></p>
<h3>Backup</h3>
<p>Les données du serveur sont stockées dans <code>/var/lib/prosody</code>. Il est donc important de ne pas oublier ce répertoire dans le processus de <a href="http://fr.wikipedia.org/wiki/Sauvegarde">sauvegarde</a>.</p>
<p><em>Merci à <a href="http://www.cyrille-borne.com/index.php?post/2011/01/13/Faire-son-serveur-jabber-personnel-en-moins-de-5-minutes">Cyrille Borne</a> et <a href="http://blog.nicolargo.com/2011/01/un-serveur-jabber-en-5-minutes-chronos-sous-debianubuntu.html">nicolargo</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2012/01/heberger-un-serveur-jabber-simplement-prosody/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Authentification automatique à un réseau WiFi avec NetworkManager</title>
		<link>http://blog.rom1v.com/2011/07/authentification-automatique-a-un-reseau-wifi-avec-networkmanager/</link>
		<comments>http://blog.rom1v.com/2011/07/authentification-automatique-a-un-reseau-wifi-avec-networkmanager/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 11:43:34 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=2766</guid>
		<description><![CDATA[Certains réseaux WiFi sont ouverts (sans clé de sécurité) mais nécessitent une authentification. C&#8217;est souvent le cas des points d&#8217;accès dans les gares, les hôtels, les campings… Cela concerne également les réseaux ouverts tels que FreeWifi. Une fois connecté à un tel réseau, lorsqu&#8217;avec votre navigateur vous tentez d&#8217;accéder à n&#8217;importe quel site, vous êtes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2011/07/wifi.png"><img src="http://blog.rom1v.com/wp-content/uploads/2011/07/wifi.png" alt="" title="wifi" width="128" height="128" class="alignright size-full wp-image-2788" /></a><br />
Certains réseaux WiFi sont ouverts (sans clé de sécurité) mais nécessitent une authentification. C&#8217;est souvent le cas des points d&#8217;accès dans les gares, les hôtels, les campings… Cela concerne également les réseaux ouverts tels que <em>FreeWifi</em>.</p>
<p>Une fois connecté à un tel réseau, lorsqu&#8217;avec votre navigateur vous tentez d&#8217;accéder à n&#8217;importe quel site, vous êtes redirigé vers une page d&#8217;authentification demandant votre identifiant et votre mot de passe (parfois il ne s&#8217;agit que d&#8217;accepter des conditions d&#8217;utilisation). Après avoir renseigné ces informations, vous êtes authentifié et pouvez accéder à Internet normalement.</p>
<p>Mais il faut avouer que s&#8217;authentifier manuellement à chaque connexion est pénible. D&#8217;autant plus que la redirection HTTP vers la page d&#8217;authentification ne fonctionne… que pour HTTP. Ainsi, alors que vous êtes connecté au réseau Wifi, votre client mail ne parviendra à récupérer les mails, votre client XMPP n&#8217;arrivera pas à se connecter au serveur… mais sans message indiquant la cause du problème.</p>
<p>Le but de ce billet est de mettre en place une authentification automatique lors de la connexion au réseau.</p>
<h3>Authentification en ligne de commande</h3>
<p>La première étape est de pouvoir réaliser cette authentification en ligne de commande, à partir de l&#8217;identifiant et du mot de passe. C&#8217;est très simple, il suffit d&#8217;imiter ce que fait le navigateur lors du clic sur le bouton <em>Valider</em>.</p>
<p>Pour cela, deux choses sont nécessaires&nbsp;: l&#8217;URL de la page de validation d&#8217;authentification et les champs de formulaire qu&#8217;elle utilise.</p>
<p>Pour les connaître, il faut regarder le code source de la page sur laquelle vous êtes redirigés, en particulier la balise <code>form</code>. Voici un exemple de ce que vous pouvez obtenir <em>(le HTML n&#8217;est pas toujours super propre sur ce genre de pages)</em>&nbsp;:</p>
<pre>&lt;form method="post" action="<strong>http://10.9.0.1:8000/</strong>"&gt;
Login &lt;input name="<strong>auth_user</strong>" type="text"&gt;
Password &lt;input name="<strong>auth_pass</strong>" type="password"&gt;
&lt;input type="checkbox" name="regagree" value="valeur" onClick="ChangeStatut(this.form)"&gt; J'accepte le règlement
&lt;input name="redirurl" type="hidden" value="http://www.google.com/search?ie=UTF-8"&gt;
&lt;input type="submit" name="<strong>accept</strong>" value="<strong>Continuer</strong>" disabled&gt;
&lt;/form&gt;</pre>
<p>Tout y est. La valeur de l&#8217;attribut <code>action</code> est l&#8217;URL de validation, et le nom des champs utilisés est dans l&#8217;attribut <code>name</code> de chaque balise <code>input</code>.</p>
<p>Dans cet exemple, seuls <code>auth_user</code> et <code>auth_pass</code> semblent utiles, mais parfois le serveur effectue des vérifications (étranges) supplémentaires. Ici, il vérifie qu&#8217;il y a bien un attribut <code>accept</code> qui vaut <code>Continuer</code> (allez savoir pourquoi).</p>
<p>À partir de ces champs, nous allons construire la chaîne des paramètres sous la forme&nbsp;:</p>
<pre>champ1=valeur1&amp;champ2=valeur2&amp;champ3=valeur3</pre>
<p>et l&#8217;envoyer au serveur en <a href="http://fr.wikipedia.org/wiki/HTTP#M.C3.A9thodes"><code>POST</code></a>, par exemple grâce à la commande <code>POST</code> <em>(en majuscules, ça surprend un peu pour une commande shell)</em>&nbsp;: </p>
<pre>POST http://10.9.0.1:8000/ &lt;&lt;&lt; 'auth_user=<em>IDENTIFIANT</em>&amp;auth_pass=<em>MOT_DE_PASSE</em>&amp;accept=Continuer'</pre>
<p>Si la page d&#8217;authentification est en HTTPS, il faudra installer le paquet <a href="apt://libcrypt-ssleay-perl">libcrypt-ssleay-perl</a>, ou alors utiliser <code>wget</code>&nbsp;:</p>
<pre>wget -qO- https://10.9.0.1:8000/ --post-data='auth_user=<em>IDENTIFIANT</em>&amp;auth_pass=<em>MOT_DE_PASSE</em>&amp;accept=Continuer'</pre>
<p>Voilà, nous avons reproduit en ligne de commande le comportement du navigateur pour l&#8217;authentification.<br />
Nous devons maintenant faire en sorte que cette commande soit exécutée dès la connexion au réseau WiFi.</p>
<h3>Exécuter un script lors de la connexion</h3>
<p><em>NetworkManager</em> (le gestionnaire de connexion par défaut d&#8217;<em>Ubuntu</em>) permet d&#8217;exécuter des scripts lors de la connexion ou la déconnexion. Pour cela, il suffit de placer le script dans <code>/etc/NetworkManager/dispatcher.d/</code> et de le rendre exécutable.</p>
<p>Le script est appelé avec deux paramètres&nbsp;:</p>
<ul>
<li><code>$1</code>&nbsp;: l&#8217;interface réseau concernée par la connexion ou la déconnexion (<code>wlan0</code> par exemple)&nbsp;;</li>
<li><code>$2</code> ayant pour valeur soit <code>up</code> (pour la connexion), soit <code>down</code> (pour la déconnection).</li>
</ul>
<p>Nous voulons exécuter la commande <code>POST</code> uniquement lors de la connexion de <code>wlan0</code>, et seulement pour le réseau concerné (par exemple celui ayant le nom <code>MonLieuDeVacances</code>).</p>
<p>Il est possible de récupérer le nom du réseau (l&#8217;ESSID) auquel nous sommes connectés grâce à <code>iwconfig</code>&nbsp;:</p>
<pre>iwconfig wlan0 | grep -o 'ESSID:".*$' | sed 's/^ESSID:"\(.*\)".*$/\1/'</pre>
<p>Il faut donc créer un script dans <code>/etc/NetworkManager/dispatcher.d/10auth</code>&nbsp;:</p>
<pre>gksudo gedit /etc/NetworkManager/dispatcher.d/10auth</pre>
<p>ayant cette structure&nbsp;:</p>
<pre>#!/bin/bash
if [ "$1 $2" = 'wlan0 up' ]
then
    essid=$(iwconfig wlan0 | grep -o 'ESSID:".*$' | sed 's/^ESSID:"\(.*\)".*$/\1/')
    case "$essid" in
        'MonLieuDeVacances')
            POST http://10.9.0.1:8000/ &lt;&lt;&lt; 'auth_user=<em>IDENTIFIANT</em>&amp;auth_pass=<em>MOT_DE_PASSE</em>&amp;accept=Continuer' ;;
        'MaGare')
            POST http://192.168.0.1 &lt;&lt;&lt; 'accept_cgu=1' ;;
    esac
fi</pre>
<p>Et le rendre exécutable&nbsp;:</p>
<pre>sudo chmod +x /etc/NetworkManager/dispatcher.d/10auth</pre>
<h3>Script pour FreeWifi</h3>
<p>Les pages d&#8217;authentification varient d&#8217;un réseau à l&#8217;autre, il faut donc adapter les paramètres de connexion selon le service utilisé.</p>
<p>Voici le script à utiliser (en adaptant votre identifiant et votre mot de passe) pour le réseau <em>FreeWifi</em> (très connu)&nbsp;:</p>
<pre>#!/bin/bash
if [ "$1 $2" = 'wlan0 up' ]
then
    essid=$(iwconfig wlan0 | grep -o 'ESSID:".*$' | sed 's/^ESSID:"\(.*\)".*$/\1/')
    case "$essid" in
        'FreeWifi')
            wget -qO- https://wifi.free.fr/Auth --post-data='login=<em>IDENTIFIANT</em>&amp;password=<em>MOT_DE_PASSE</em>' ;;
    esac
fi</pre>
<h3>Tunnel SSH</h3>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2011/07/openssh.png"><img src="http://blog.rom1v.com/wp-content/uploads/2011/07/openssh.png" alt="" title="openssh" width="150" height="148" class="alignright size-full wp-image-2792" /></a><br />
Ces réseaux ouverts, gérant éventuellement une authentification HTTP, ne sont pas chiffrés&nbsp;: n&#8217;importe qui écoutant ce qui transite dans les airs pourra récupérer tout le contenu de votre trafic.<br />
Si vous avez un ordinateur allumé chez vous (sur un réseau &laquo;&nbsp;sûr&nbsp;&raquo;) accessible en SSH, je vous conseille de faire passer toutes les connexions dans un tunnel chiffré.</p>
<p>Le principe est simple&nbsp;: dès que vous accédez à un serveur (par exemple en tapant l&#8217;URL dans un navigateur web), l&#8217;ordinateur ne va pas s&#8217;y connecter directement, il va transmettre les informations en passant par un tunnel chiffré à votre serveur SSH, qui lui va s&#8217;y connecter, et vous renvoyer la page à travers le tunnel. Techniquement, le tunnel est un <a href="http://fr.wikipedia.org/wiki/SOCKS">proxy SOCKS</a> écoutant sur un port local (par exemple <code>localhost:3128</code>).</p>
<p>Pour démarrer le tunnel&nbsp;:</p>
<pre>ssh monserveur -CND3128</pre>
<p>Pour configurer le système afin qu&#8217;il utilise le tunnel SSH, Système → Préférences → Serveur mandataire (<code>gnome-network-properties</code>), puis configurer comme sur la capture d&#8217;écran&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2011/07/proxy.png"><img src="http://blog.rom1v.com/wp-content/uploads/2011/07/proxy-300x238.png" alt="" title="proxy" width="300" height="238" class="aligncenter size-medium wp-image-2794" /></a><br />
Dans l&#8217;onglet <em>Hôtes à ignorer</em>, rajouter l&#8217;adresse de la page d&#8217;authentification.</p>
<p>Ainsi, toutes les connexions des logiciels utilisant les paramètres proxy du système passeront par le tunnel. Il est également possible de configurer ceci dans chaque logiciel individuellement (s&#8217;ils le proposent).</p>
<p>Pour <em>Firefox</em>, il est également recommandé dans <a href="about:config">about:config</a> de passer la variable <code>network.proxy.socks_remote_dns</code> à <code>true</code>, afin que les DNS soient résolus également de l&#8217;autre côté du tunnel (sur le réseau &laquo;&nbsp;sûr&nbsp;&raquo;).</p>
<p>Vous trouverez plus d&#8217;infos sur mon <a href="http://blog.rom1v.com/2008/08/presentation-de-ssh/">billet concernant SSH</a>.</p>
<h3>Conclusion</h3>
<p>La connexion à des points d&#8217;accès WiFi publics demandant à chaque fois une authentification ou une acceptation des conditions d&#8217;utilisation devient rapidement insupportable. Il est donc appréciable de l&#8217;automatiser.</p>
<p>De plus, ces réseaux ne sont pas &laquo;&nbsp;sûrs&nbsp;&raquo;, n&#8217;importe qui peut écouter le trafic. Il est donc nécessaire de le chiffrer en passant par un réseau de confiance, par exemple avec un tunnel SSH.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2011/07/authentification-automatique-a-un-reseau-wifi-avec-networkmanager/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Extraire les recherches Google des logs Apache</title>
		<link>http://blog.rom1v.com/2011/06/extraire-les-recherches-google-des-logs-apache/</link>
		<comments>http://blog.rom1v.com/2011/06/extraire-les-recherches-google-des-logs-apache/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 13:10:36 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Insolite]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[auto-hébergement]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[serveur]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=2685</guid>
		<description><![CDATA[Aujourd&#8217;hui, c&#8217;est un billet de distraction pour geeks. Lister les recherches Si vous utilisez Apache, voici une commande qui liste dans l&#8217;ordre alphabétique les recherches Google ayant permis aux internautes d&#8217;arriver sur vos sites&#160;: php -r "echo urldecode(\"`zgrep 'http://www\.google\.\w*/' /var/log/apache2/*&#124;grep -o '[?&#038;]q=[^&#038;"]*'&#124;cut -c4-`\");"&#124;sort&#124;uniq -c EDIT 25/06/2011&#160;: cette commande semble échouer lorsque la liste des recherches [...]]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui, c&#8217;est un billet de <em>distraction pour geeks</em>.</p>
<h3>Lister les recherches</h3>
<p>Si vous utilisez <em>Apache</em>, voici une commande qui liste dans l&#8217;ordre alphabétique les recherches <em>Google</em> ayant permis aux internautes d&#8217;arriver sur vos sites&nbsp;:</p>
<pre>php -r "echo urldecode(\"`zgrep 'http://www\.google\.\w*/' /var/log/apache2/*|grep -o '[?&#038;]q=[^&#038;"]*'|cut -c4-`\");"|sort|uniq -c</pre>
<p><em><strong>EDIT 25/06/2011&nbsp;:</strong> cette commande <a href="http://blog.rom1v.com/2011/06/extraire-les-recherches-google-des-logs-apache/#comment-67664">semble échouer</a> lorsque la liste des recherches est trop longue, celle donnée à la fin du billet est donc à préférer.</em><br />
(pour les autres moteurs de recherche, il faudrait s&#8217;inspirer de ce qu&#8217;ont fait les développeurs de <a href="http://piwik.org/faq/general/#faq_39">Piwik</a>)</p>
<p>Voici à quoi ressemble le résultat de la commande&nbsp;:</p>
<pre>      1 ubtunu tiny tiny rss
      5 ubuntu
      1 ubuntu 10.04 change startup screen
      1 ubuntu 10.04 configurer compte messagerie hotmail dans couriel
      3 ubuntu 10.04 cryptage
      1 ubuntu 10.04 écran grub invisible au démarrage
      2 ubuntu 10.04 ecran noir nvidia
      1 ubuntu 10.04 et video nvidia
      1 ubuntu 10.04 grub nvidia
      1 ubuntu 10.04 grub-pc couleur
      4 ubuntu 10.04 installation partition home chiffrée</pre>
<p>Le texte correspond aux recherches, le numéro devant indique le nombre de fois où elles ont été effectuées.</p>
<h3>Analyse</h3>
<h4>Billets les plus recherchés</h4>
<p>Sans conteste, les deux billets qui amènent le plus d&#8217;internautes par <em>Google</em> concernent <a href="http://blog.rom1v.com/2010/07/pluzz-fr-france-televisions-lance-son-service-de-tv-de-rattrapage-non-lisible/">pluzz</a> et <a href="http://blog.rom1v.com/2010/01/installer-une-application-apk-sur-android-a-partir-dun-pc/">apk</a>. Et parfois ça ne doit pas les aider beaucoup&nbsp;: certains recherchent par exemple <em>&laquo;&nbsp;pluzz plus belle la vie&nbsp;&raquo;</em> dans <em>Google</em> à partir d&#8217;<em>Internet Explorer</em>, je ne suis pas sûr que mon script shell pour <em>pluzz</em> réponde à leurs attentes.</p>
<h4>Recherches insolites</h4>
<p>Dans la liste, il y a forcément des recherches drôles ou étranges. En voici quelques unes que j&#8217;ai trouvées dans mes logs&nbsp;:</p>
<ul>
<li><em>&laquo;&nbsp;clitoris.apk&nbsp;&raquo;</em> : il y a vraiment une application pour tout&nbsp;!</li>
<li><em>&laquo;&nbsp;comment afficher 350 sous linux&nbsp;&raquo;</em> : c&#8217;est si différent que sur les autres systèmes d&#8217;exploitation&nbsp;?</li>
<li><em>&laquo;&nbsp;comment on invente une machine pour voler à usage individuelle&nbsp;&raquo;</em>&nbsp;: dérober ou s&#8217;envoler&nbsp;?</li>
<li><em>&laquo;&nbsp;du-ble-plein-les-poches es ce une arnaque&nbsp;&raquo;</em>&nbsp;: sans doute…</li>
<li><em>&laquo;&nbsp;est-il possible de prelever de l&#8217;argent sans que ça se voit sur le compte&nbsp;&raquo;</em>&nbsp;: je veux rester discret…</li>
<li><em>&laquo;&nbsp;l&#8217;ecran d&#8217;un ordinateur portable est de 14,1 pouce avec 1024*768 pixel quelle est la taille de l&#8217;ecran N*H en cm ?&nbsp;&raquo;</em>&nbsp;: le moteur de recherche, j&#8217;en suis sûr, va comprendre ma question, faire le calcul, et me répondre…</li>
<li><em>&laquo;&nbsp;logiciel adopy&nbsp;&raquo;</em>&nbsp;: comme ça se prononce&nbsp;!</li>
<li><em>&laquo;&nbsp;pour quel raison on doit interdire le zoo&nbsp;&raquo;</em>&nbsp;: les animaux c&#8217;est dangereux&nbsp;!
</li>
</ul>
<p>Il y a certains sites qui s&#8217;amusent à référencer ce genre de recherches, par exemple <a href="http://devenirunninjagratuitement.tumblr.com/">Comment devenir un ninja gratuitement&nbsp;?</a></p>
<p>N&#8217;hésitez pas à poster les vôtres…</p>
<h3>Challenge</h3>
<p>J&#8217;ai essayé d&#8217;écrire la commande la plus courte possible. Je n&#8217;ai pas réussi à faire moins de <strong>129 caractères</strong> sans perdre d&#8217;information ou prendre plus de risque (par exemple on pourrait remplacer <code>apache2</code> par <code>a*2</code>, mais c&#8217;est plus risqué).</p>
<p>Par contre, cette commande ne fonctionne pas correctement si l&#8217;on rajoute <code>|less</code> (on ne peut pas se déplacer avec haut et bas), je ne sais pas trop pourquoi ni comment le résoudre (si certains ont une idée).<br />
Une autre commande, sans <code>php</code> (en 141 caractères), ne pose pas ce problème&nbsp;:</p>
<pre>zgrep 'http://www\.google\.\w*/' /var/log/apache2/*|grep -o '[?&#038;]q=[^&#038;"]*'|cut -c4-|echo -e $(sed 's/$/\\n/;s/+/ /g;s/%/\\x/g')|sort|uniq -c</pre>
<p>Si vous avez des astuces pour faire mieux que 129 (ou 141), ne vous gênez pas <img src='http://blog.rom1v.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>Scripts</h3>
<p><a href="http://www.bortzmeyer.org/je-parle-a-mon-moteur-de-recherche.html">D&#8217;autres</a> ont fait <a href="http://www.bortzmeyer.org/files/SearchEngineQueries.py">des scripts plus complets</a>, qui permettent de récupérer des informations supplémentaires, par exemple la page sur laquelle l&#8217;internaute est arrivé en effectuant cette recherche…</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2011/06/extraire-les-recherches-google-des-logs-apache/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Tiny Tiny RSS : auto-hébergement des flux RSS</title>
		<link>http://blog.rom1v.com/2011/06/tiny-tiny-rss-auto-hebergement-des-flux-rss/</link>
		<comments>http://blog.rom1v.com/2011/06/tiny-tiny-rss-auto-hebergement-des-flux-rss/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 12:11:41 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[auto-hébergement]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=2592</guid>
		<description><![CDATA[Je vais expliquer dans ce billet pourquoi et comment installer Tiny Tiny RSS, un gestionnaire de flux RSS sur son serveur. Motivations Pourquoi un serveur ? Il existe de nombreux clients d&#8217;agrégateurs de flux, tels que Liferea sous Gnome ou NewsFox dans Firefox. Cependant, un tel client pose principalement deux problèmes. Le premier, c&#8217;est le [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2011/06/rss.png"><img src="http://blog.rom1v.com/wp-content/uploads/2011/06/rss-150x150.png" alt="" title="rss" width="150" height="150" class="alignright size-thumbnail wp-image-2603" /></a><br />
Je vais expliquer dans ce billet pourquoi et comment installer <a href="http://tt-rss.org/">Tiny Tiny RSS</a>, un gestionnaire de <a href="http://fr.wikipedia.org/wiki/Flux_RSS">flux RSS</a> sur son serveur.</p>
<h3>Motivations</h3>
<h4>Pourquoi un serveur ?</h4>
<p>Il existe de nombreux clients d&#8217;agrégateurs de flux, tels que <a href="http://liferea.sourceforge.net/">Liferea</a> sous <em>Gnome</em> ou <a href="http://blog.rom1v.com/2008/12/newsfox-plug-in-firefox-agregateur-de-flux-rss/">NewsFox</a> dans <em>Firefox</em>.</p>
<p>Cependant, un tel client pose principalement <strong>deux problèmes</strong>.</p>
<ul>
<li>Le premier, c&#8217;est <strong>le temps d&#8217;attente de mise à jour des flux</strong>. Lors du démarrage, les flux ne sont pas disponibles immédiatement&nbsp;: il faut patienter le temps qu&#8217;il mette à jour chacun des flux auxquels nous sommes abonnés, ce qui peux prendre plusieurs minutes.</li>
<li>Le second, c&#8217;est <strong>la synchronisation</strong>&nbsp;: nous ne pouvons pas lire nos flux à plusieurs endroits (maison, travail, mobile…) en gardant la synchronisation (les flux que nous avons lu sont marqués comme lus sur un ordinateur, mais pas sur un autre).</li>
</ul>
<p>Un gestionnaire de flux doit donc, d&#8217;après moi, forcément être <strong>hébergé sur un serveur</strong>.</p>
<h4>Pourquoi son serveur ?</h4>
<p>De nombreux services en ligne proposent la gestion de  flux RSS (<em>Google Reader</em>, <em>NetVibes</em>, etc.).</p>
<p><strong>Pourquoi donc héberger un tel service sur son propre serveur&nbsp;?</strong></p>
<ul>
<li><strong>Par principe.</strong> Comme pour le <a href="http://blog.rom1v.com/2009/01/nouveau-blog-100-libre/">blog</a> ou les <a href="http://blog.rom1v.com/2009/08/hebergez-vos-mails-sur-ubuntu-server-et-liberez-vous/">mails</a>, autant auto-héberger son propre contenu, qui n&#8217;a rien à faire ailleurs.</li>
<li><strong>Filtrage en entreprise.</strong> Les agrégateurs de flux connus sont souvent bloqués par les proxies d&#8217;entreprise. Un service perso sur son propre serveur aura beaucoup moins de risque d&#8217;être filtré.</li>
<li><strong>Données personnelles.</strong> Les flux auxquels chacun est abonné et les articles lus sont une information importante pour quiconque souhaite renseigner un profil d&#8217;utilisateur. Par exemple, pour <a href="http://www.internetactu.net/2011/06/13/le-risque-de-lindividualisation-de-linternet/">modifier les résultats d&#8217;un moteur de recherche</a> (ou bien d&#8217;autres choses).</li>
<li><strong>Censure.</strong> Les flux RSS peuvent être une source d&#8217;information essentielle (c&#8217;est ma source d&#8217;information principale). Si nous en laissons la gestion à un hébergeur, comment nous assurer qu&#8217;il ne supprimera pas des flux les informations qui le dérangent&nbsp;? Par exemple, s&#8217;il décide malencontreusement de supprimer tous les articles qui parlent de <em>Wikileaks</em>&nbsp;? Je sais que ce n&#8217;est pas imaginable dans un pays démocratique.<br />
Mais regardons quand même (au hasard) l&#8217;exemple de <em>Google</em>, qui <a href="http://www.numerama.com/magazine/18993-google-etend-l-auto-censure-de-son-moteur-de-recherche.html">continue d&#8217;étendre l&#8217;auto-censure de son moteur de recherche</a>, dans un pays exerçant des <a href="http://www.numerama.com/magazine/17507-amazon-n-heberge-plus-wikileaks-apres-des-pressions-politiques-et-commerciales.html">pressions politiques et commerciales</a> pour retirer des contenus dérangeants hors de toute décision judiciaire (parfois en <a href="http://www.numerama.com/magazine/17519-wikileaks-inaccessible-apres-la-perte-de-son-dns.html">supprimant des entrées DNS</a>, même pour <a href="http://www.numerama.com/magazine/17946-rojadirecta-juge-legal-en-espagne-saisi-par-les-usa-maj.html">un contenu légal dans le pays concerné</a>), pressions auxquelles <a href="http://www.pcinpact.com/actu/news/60765-twitter-paypal-blocage-julian-assange.htm">peu d&#8217;entreprises résistent</a>, y compris lorsqu&#8217;il s&#8217;agit d&#8217;<a href="http://www.pcinpact.com/actu/news/61265-wikileaks-twitter-injonction-cablegate-notification.htm">obtenir des informations politiques</a>… et ils ne <a href="http://www.pcinpact.com/actu/news/64023-pipa-protect-ip-act-us.htm">comptent pas s&#8217;arrêter en si bon chemin</a>, pour lutter contre ce qu&#8217;ils appellent &laquo;&nbsp;piratage&nbsp;&raquo;. Mais non, censurer certains flux pour des raisons politiques est inimaginable dans un pays démocratique.</li>
</ul>
<h3>Installation</h3>
<p>Je vais expliquer l&#8217;installation de <em>Tiny Tiny RSS</em> pour ma configuration, à savoir <em>Ubuntu Server 11.04</em>, avec <em>Apache</em> et <em>MySQL</em>.<br />
Je vais l&#8217;installer dans <code>~/flux</code> (le répertoire <code>flux</code> de mon home), avec un lien symbolique <code>/var/www/flux</code>. L&#8217;application sera accessible à partir de <code>flux.rom1v.com</code>. Adaptez ces valeurs selon vos besoins.</p>
<h4>Dépendances</h4>
<p><em>Tiny Tiny RSS</em> a besoin de <code>php5-curl</code>&nbsp;:</p>
<pre>sudo apt-get install php5-curl</pre>
<h4>Téléchargement</h4>
<p>Télécharger la dernière version en bas de <a href="http://tt-rss.org/redmine/">la page officielle</a> (actuellement la 1.5.4).</p>
<p>Extraire l&#8217;archive dans <code>~/</code>&nbsp;:</p>
<pre>tar xzf tt-rss-1.5.4.tar.gz</pre>
<p>Et renommer le répertoire&nbsp;:</p>
<pre>mv tt-rss-1.5.4 flux</pre>
<h4>Base de données</h4>
<p>Il faut ensuite initialiser la base de données, grâce aux scripts fournis. Pour cela, aller dans le répertoire des scripts&nbsp;:</p>
<pre>cd flux/schema</pre>
<p>Puis se connecter à <em>MySQL</em>&nbsp;:</p>
<pre>$ mysql -uroot -p
Enter password:</pre>
<p>Une fois connecté, créer la base de données <code>flux</code>&nbsp;:</p>
<pre>mysql> CREATE DATABASE flux;
Query OK, 1 row affected (0,00 sec)</pre>
<p>Puis créer un utilisateur <code>flux</code> avec les droits sur cette base (on pourra générer son mot de passe grâce à <a href="http://blog.rom1v.com/2009/11/generer-des-mots-de-passe-aleatoires/">pwgen</a>)&nbsp;:</p>
<pre>mysql> GRANT ALL PRIVILEGES ON flux.* TO flux@localhost IDENTIFIED BY 'unmotdepasse';
Query OK, 0 rows affected (0.04 sec)</pre>
<p>Initialiser la base de données&nbsp;:</p>
<pre>mysql> USE flux
Database changed

mysql> \. ttrss_schema_mysql.sql</pre>
<p>La base de données est prête.</p>
<h4>Configuration</h4>
<p>Retourner dans le répertoire <code>~/flux</code>&nbsp;:</p>
<pre>cd ..</pre>
<p>Copier le modèle du fichier de configuration&nbsp;:</p>
<pre>cp config.php-dist config.php</pre>
<p>Puis l&#8217;éditer, par exemple&nbsp;:</p>
<pre>nano config.php</pre>
<p>Modifier les informations de connexion à la base de données&nbsp;:</p>
<pre>        define('DB_TYPE', "mysql");
        define('DB_HOST', "localhost");
        define('DB_USER', "flux");
        define('DB_NAME', "flux");
        define('DB_PASS', "unmotdepasse");</pre>
<p>Modifier l&#8217;URL d&#8217;accès à l&#8217;application, pour moi&nbsp;:</p>
<pre>        define('SELF_URL_PATH', 'http://flux.rom1v.com');</pre>
<p>Désactiver le mode <em>utilisateur unique</em> (sans quoi l&#8217;accès à l&#8217;application sera public sans authentification)&nbsp;:</p>
<pre>        define('SINGLE_USER_MODE', false);</pre>
<p>Si <em>Tiny Tiny RSS</em> est installé à la racine du site (c&#8217;est mon cas&nbsp;: <code>flux.rom1v.com/</code>), il faut modifier le répertoire d&#8217;icônes, car <code>/icons</code> est réservé par <em>Apache</em>&nbsp;:</p>
<pre>        define('ICONS_DIR', "tt-icons");
        define('ICONS_URL', "tt-icons");</pre>
<p>Je conseille de désactiver la vérification des nouvelles versions, car lorsque le site de <em>Tiny Tiny RSS</em> ne répond plus, l&#8217;application rencontre des difficultés&nbsp;:</p>
<pre>        define('CHECK_FOR_NEW_VERSION', false);</pre>
<p>Pour les performances, activer la compression&nbsp;:</p>
<pre>        define('ENABLE_GZIP_OUTPUT', true);</pre>
<p>Enfin, une fois que la configuration est terminée, modifier la ligne&nbsp;:</p>
<pre>        define('ISCONFIGURED', true);</pre>
<p>Les modifications du fichier de configuration sont terminés.</p>
<p>Maintenant, renommer le répetoire <code>icons</code> (comme dans le fichier de configuration)&nbsp;:</p>
<pre>mv icons tt-icons</pre>
<h4>Serveur web</h4>
<p>Il faut maintenant héberger l&#8217;application sur <em>Apache</em>.</p>
<p>Tout d&#8217;abord, donner les droits à <code>www-data</code> sur les répertoires où il a besoin d&#8217;écrire&nbsp;:</p>
<pre>sudo chown -R www-data: cache tt-icons lock</pre>
<p>Puis faire un lien symbolique vers le répertoire <code>/var/www/</code>&nbsp;:</p>
<pre>sudo ln -s ~/flux /var/www/</pre>
<p>Créer (au besoin) un nouveau <em>VirtualHost</em> pour le site, dans le répertoire <code>/etc/apache2/sites-available</code> (pour moi dans un fichier nommé <code>flux.rom1v.com</code>)&nbsp;:</p>
<pre>&lt;VirtualHost *:80&gt;
	DocumentRoot	/var/www/flux
	ServerName	flux.rom1v.com

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

	ErrorLog	/var/log/apache2/flux_error.log
	CustomLog	/var/log/apache2/flux_access.log combined

&lt;/VirtualHost&gt;</pre>
<p>Activer le site&nbsp;:</p>
<pre>sudo a2ensite flux.rom1v.com</pre>
<p>Redémarrer <em>Apache</em> (un simple <code>reload</code> aurait suffit si nous n&#8217;avions pas installé <code>php5-curl</code> tout à l&#8217;heure)&nbsp;:</p>
<pre>sudo service apache2 restart</pre>
<h3>Configuration utilisateur</h3>
<h4>Compte utilisateur</h4>
<p>L&#8217;application doit maintenant fonctionner. S&#8217;y connecter, avec l&#8217;utilisateur <code>admin</code> et le mot de passe <code>password</code> (l&#8217;utilisateur par défaut), puis aller dans la configuration et changer le mot de passe.</p>
<h4>Importation et exportation</h4>
<p><em>Tiny Tiny RSS</em> permet l&#8217;importation et l&#8217;exportation d&#8217;un fichier <a href="http://fr.wikipedia.org/wiki/OPML">OPML</a>. Il est ainsi possible de migrer facilement d&#8217;un gestionnaire de flux à un autre.</p>
<h4>Intégration à Firefox</h4>
<p>Il est possible d&#8217;associer son instance de <em>Tiny Tiny RSS</em> à <em>Firefox</em>&nbsp;: toujours dans la configuration, dans l&#8217;onglet <em>Flux</em>, <em>Intégration à Firefox</em>, cliquer sur le bouton.</p>
<p>Pour tester, se rendre sur un site, et afficher la liste des flux disponibles. Pour cela, cliquer sur le petit icône à gauche de l&#8217;adresse, puis sur <em>Plus d&#8217;informations…</em>, sur l&#8217;onglet <em>Flux</em> (s&#8217;il y en a un), et enfin sur le flux désiré. Par exemple, pour <a href="http://blog.rom1v.com/feed">ce blog</a>&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2011/06/blog-rss.png"><img src="http://blog.rom1v.com/wp-content/uploads/2011/06/blog-rss-300x247.png" alt="" title="blog-rss" width="300" height="247" class="aligncenter size-medium wp-image-2593" /></a></p>
<p>En cliquant sur <em>S&#8217;abonner maintenant</em>, <em>Firefox</em> devrait proposer d&#8217;utiliser <em>Tiny Tiny RSS</em>.</p>
<h3>Programmation de la mise à jour des flux</h3>
<p>Il reste encore une étape importante&nbsp;: le serveur doit régulièrement mettre à jour le contenu de chacun des flux auxquels nous sommes abonnés.</p>
<p>Plusieurs méthodes sont décrites sur <a href="http://tt-rss.org/redmine/wiki/tt-rss/UpdatingFeeds">cette page</a>. Certaines chargent les flux séquentiellement (par <em>cron</em> notamment), ce qui peut poser problème&nbsp;: supposons que nous soyons abonnés à 300 flux, avec une mise à jour toutes les 30 minutes, ça donne une moyenne de 6 secondes par flux. Si certains sites sont long à répondre, la mise à jour risque de dépasser le temps imparti, et <em>cron</em> va lancer une nouvelle tâche avant que la précédente soit terminée (heureusement <em>Tiny Tiny RSS</em> pose un verrou, donc il ne fera rien la seconde fois, mais du coup nous perdons une mise à jour). Ceci est d&#8217;autant plus dommage que l&#8217;essentiel de la durée nécessaire est le temps de connexion à chacun des sites&nbsp;: mieux vaut donc paralléliser le chargement.</p>
<p>C&#8217;est la raison pour laquelle je préfère la dernière méthode&nbsp;: <strong>lancer un <em>démon</em> multi-processus au démarrage du serveur</strong>. Par contre, étant donné le fonctionnement du <em>démon</em> proposé, il ne semble pas possible d&#8217;en faire un script <em>init.d</em> propre. Le plus simple est donc de rajouter dans <code>/etc/rc.local</code>&nbsp;:</p>
<pre>start-stop-daemon -c www-data -Sbx /var/www/flux/update_daemon2.php</pre>
<p><em>Vous pouvez exécuter cette commande maintenant pour charger les flux la première fois.</em></p>
<p>Ce <em>démon</em> utilise plusieurs processus (par défaut 2), qui mettent à jour les flux par blocs (par défaut, de 100). Pour changer ces variables (par exemple pour avoir 5 processus qui chargent des blocs de 50), dans <code>config.php</code>&nbsp;:</p>
<pre>        define('DAEMON_FEED_LIMIT', 50);</pre>
<p>et dans <code>update_daemon2.php</code>&nbsp;:</p>
<pre>        define('MAX_JOBS', 5);</pre>
<h3>Autres interfaces</h3>
<p>Une interface mobile en HTML est intégrée. Pour y accéder, il suffit d&#8217;ajouter à l&#8217;URL <code>/mobile</code>.</p>
<p>Pour <em>Android</em>, il existe également une application&nbsp;: <a href="http://code.google.com/p/ttrss-reader-fork/">ttrss-reader-fork</a> (à tester, mais je la trouve assez buggée). Pour lui permettre l&#8217;accès, il est nécessaire de sélectionner <em>&laquo;&nbsp;Activer les API externes&nbsp;&raquo;</em> dans la page de configuration de <em>Tiny Tiny RSS</em>.</p>
<h3>Conclusion</h3>
<p>Vous n&#8217;avez plus de raison de laisser traîner vos flux RSS n&#8217;importe où <img src='http://blog.rom1v.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2011/06/tiny-tiny-rss-auto-hebergement-des-flux-rss/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>Installer Ubuntu Server sur un Shuttle XS35</title>
		<link>http://blog.rom1v.com/2011/06/installer-ubuntu-server-sur-un-shuttle-xs35/</link>
		<comments>http://blog.rom1v.com/2011/06/installer-ubuntu-server-sur-un-shuttle-xs35/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 22:21:48 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=2384</guid>
		<description><![CDATA[Je viens de migrer mon auto-hébergement vers cette nouvelle machine. Elle est très silencieuse (il n&#8217;y a pas de ventilateur) et consomme peu. Je n&#8217;envisageais pas d&#8217;écrire un billet, mais l&#8217;installation d&#8217;Ubuntu Server 11.04 ne se déroule pas sans incidents&#160;: Aucune interface réseau n&#8217;a été détectée C&#8217;est le genre de problèmes qu&#8217;on espère un jour [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2011/06/XS35.jpg"><img src="http://blog.rom1v.com/wp-content/uploads/2011/06/XS35-146x300.jpg" alt="" title="XS35" width="146" height="300" class="alignright size-medium wp-image-2385" /></a></p>
<p>Je viens de migrer mon <a href="http://blog.rom1v.com/2009/01/nouveau-blog-100-libre/">auto-hébergement</a> vers cette <a href="http://www.shuttle.eu/fr/produits/discontinued/barebones/xs35gt/apercu/">nouvelle machine</a>. Elle est très silencieuse (il n&#8217;y a pas de ventilateur) et consomme peu.</p>
<p>Je n&#8217;envisageais pas d&#8217;écrire un billet, mais l&#8217;installation d&#8217;<em>Ubuntu Server 11.04</em> ne se déroule pas sans incidents&nbsp;:</p>
<blockquote><p>Aucune interface réseau n&#8217;a été détectée</p></blockquote>
<p>C&#8217;est le genre de problèmes qu&#8217;on espère un jour ne plus connaître lorsqu&#8217;on installe une distribution… Surtout lorsque ce problème en provoque d&#8217;autres… Ceci est donc un <em>aide-mémoire</em> qui me sera utile pour une future installation.</p>
<h3>Installation</h3>
<p>Tout d&#8217;abord, il faut ignorer le message d&#8217;erreur, tant pis, l&#8217;installation sera effectuée sans réseau.</p>
<p>Ensuite la section <em>Choisir et installer des logiciels</em>, il ne faut surtout pas activer <code>Mail</code> (<code>postfix</code> et <code>dovecot</code>) dans la liste&nbsp;: cela ferait planter le processus d&#8217;installation car il ne trouve pas d&#8217;interface réseau. En effet, dans <code>/var/log/syslog</code>, on trouve une erreur du genre&nbsp;:</p>
<pre>postfix/sendmail: fatal: could not find any active network interfaces</pre>
<p>On installera donc le serveur mail plus tard.</p>
<p>En suivant ces conseils, l&#8217;installation doit se dérouler correctement.</p>
<h3>Récupération des pilotes</h3>
<p>À partir d&#8217;un autre ordinateur, récupérer la dernière version des <a href="ftp://driver.jmicron.com.tw/Ethernet/Linux/">sources du pilote</a> (j&#8217;en fait une <a href="http://dl.rom1v.com/drivers-shuttle-xs35/jme-1.0.7.1.tbz2">copie</a> chez moi, au cas où).</p>
<p>Ensuite, on est un peu embêté, car on devrait extraire les sources sur le serveur et exécuter <code>sudo make install</code>. Sauf que <code>make</code> n&#8217;est pas installé par défaut sur <em>Ubuntu Server</em> (merci <em>Ubuntu</em>&nbsp;!), et pour l&#8217;installer, il faut le réseau… qu&#8217;on aura une fois qu&#8217;on aura installé les pilotes…</p>
<p>Heureusement, on peut s&#8217;en sortir manuellement. Pour cela, sur un ordinateur qui possède <code>make</code> (avec le même noyau pour la même architecture), extraire les sources de l&#8217;archive dans un répertoire et exécuter&nbsp;:</p>
<pre>tar xvjf jme-1.0.7.1.tbz2
cd jmebp-1.0.7.1
make</pre>
<p>Cela crée un fichier <a href="http://dl.rom1v.com/drivers/jme.ko"><code>jme.ko</code></a> (je suis gentil, je vous donne le fichier déjà compilé pour le noyau <code>2.6.38-8-server</code> en <code>amd64</code>). Le copier sur une clé USB.</p>
<h3>Installation des pilotes</h3>
<p>Ensuite, brancher la clé USB sur le serveur, et déterminer son emplacement (sous la forme <code>/dev/sdX1</code>). Pour cela, (une technique parmi d&#8217;autres) juste après l&#8217;avoir branchée, exécuter&nbsp;:</p>
<pre>tail /var/log/syslog</pre>
<p>La commande doit afficher plusieurs lignes ressemblant à ceci&nbsp;:</p>
<pre>Jun  6 22:33:19 rom-server kernel: [1046971.365046] sd 12:0:0:0: [sdb] Attached SCSI removable disk</pre>
<p>Ici, l&#8217;emplacement est donc <code>/dev/sdb1</code>.</p>
<p>Monter donc la clé&nbsp;:</p>
<pre>sudo mount /dev/sdb1 /mnt</pre>
<p>Puis installer le pilote compilé au bon endroit et l&#8217;activer&nbsp;:</p>
<pre>sudo install -m 644 /mnt/jme.ko /lib/modules/$(uname -r)/kernel/drivers/net
sudo modprobe jme</pre>
<h3>Finaliser l&#8217;installation</h3>
<p>Ajouter à la fin de <code>/etc/network/interfaces</code>&nbsp;:</p>
<pre>auto eth0
iface eth0 inet dhcp</pre>
<p>Et rebooter&nbsp;:</p>
<pre>sudo reboot</pre>
<p>Normalement, la carte devrait être détectée (on peut tester avec <code>ifconfig</code>).</p>
<p>Si tout est OK, on peut maintenant <a href="http://blog.rom1v.com/2009/08/hebergez-vos-mails-sur-ubuntu-server-et-liberez-vous/">installer le serveur mail</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2011/06/installer-ubuntu-server-sur-un-shuttle-xs35/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Music Player Daemon (MPD) : la musique à distance</title>
		<link>http://blog.rom1v.com/2010/09/music-player-daemon-mpd-la-musique-a-distance/</link>
		<comments>http://blog.rom1v.com/2010/09/music-player-daemon-mpd-la-musique-a-distance/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 20:25:46 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[mpd]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1907</guid>
		<description><![CDATA[MPD est un lecteur audio libre un peu particulier&#160;: il fonctionne suivant le modèle client/serveur. Le serveur lit la musique, et les clients font office de télécommande (évoluée). Typiquement, le serveur est installé sur une machine reliée aux enceintes du salon, et les clients sont installés sur chacun des ordinateurs et des téléphones (ainsi que [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/09/mpd.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/09/mpd.png" alt="" title="mpd" width="134" height="116" class="alignright size-full wp-image-1908" /></a></p>
<p>MPD est un lecteur audio libre un peu particulier&nbsp;: il fonctionne suivant le modèle client/serveur. Le serveur lit la musique, et les clients font office de télécommande (évoluée).</p>
<p>Typiquement, le serveur est installé sur une machine reliée aux enceintes du salon, et les clients sont installés sur chacun des ordinateurs et des téléphones (ainsi que sur le serveur lui-même s&#8217;il est relié à un écran).</p>
<h3>Serveur</h3>
<h4>Installation</h4>
<p>L&#8217;installation est extrêmement simple (testé sur <em>Ubuntu 10.10</em>), il suffit d&#8217;installer <a href="apt://mpd">mpd</a>&nbsp;:</p>
<pre>sudo apt-get install mpd</pre>
<p>Ensuite, il y a quelques petites lignes à modifier dans le fichier de configuration <code>/etc/mpd.conf</code>.<br />
Tout d&#8217;abord, il faut définir le répertoire du serveur qui contient la musique&nbsp;:</p>
<pre>music_directory                "/home/rom/Musique"</pre>
<p>Il vaut mieux commenter la ligne <code>bind_to_address</code> (pour éviter pas mal de problèmes)&nbsp;:</p>
<pre>#bind_to_address               "localhost"</pre>
<p>Pour que <code>MPD</code> ne monopolise pas le son de tout le système, commenter la ligne&nbsp;:</p>
<pre>#	device		"hw:0,0"	# optional</pre>
<p>Enfin, pour pouvoir changer le volume, décommenter la ligne&nbsp;:</p>
<pre>mixer_type                     "software"</pre>
<h4>Mise à jour de la base de données</h4>
<p>La première fois, et à chaque fois que de nouveaux fichiers sont ajoutés au répertoire de musique, la base de données doit être mise à jour&nbsp;:</p>
<pre>sudo mpd --create-db</pre>
<p><em>(le serveur doit être stoppé pour mettre à jour la base de cette manière)</em></p>
<p>Des logiciels clients permettent également de mettre à jour la base d&#8217;un simple clic.</p>
<p>Vérifiez bien que les fichiers contenus dans ce répertoire sont bien lisibles par tous (en particulier par l&#8217;utilisateur <code>mpd</code>). Si ce n&#8217;est pas le cas, modifiez les droits avec&nbsp;:</p>
<pre>chmod +r -R /home/rom/Musique</pre>
<h4>Démarrage et arrêt</h4>
<p>Pour démarrer le serveur&nbsp;:</p>
<pre>sudo service mpd start</pre>
<p>Pour le stopper&nbsp;:</p>
<pre>sudo service mpd stop</pre>
<p>Il démarrera automatiquement à chaque démarrage du système.</p>
<h3>Clients</h3>
<p>Les clients permettent de gérer la lecture à distance. Il est possible d&#8217;ouvrir plusieurs clients à la fois (un sur l&#8217;ordinateur et un sur le téléphone par exemple) qui resteront synchronisés avec le serveur. La lecture ne s&#8217;arrête pas lors de la fermeture du client. Chaque client a juste besoin de l&#8217;IP du serveur et du port (par défaut 6600).</p>
<p>Il en existe <a href="http://mpd.wikia.com/wiki/Clients">de nombreux</a> pour toutes les plateformes. Malheureusement, beaucoup ne sont pas stables et souffrent de problèmes d&#8217;ergonomie. Globalement, ils sont moins agréables à utiliser qu&#8217;un vrai lecteur de musique installé localement (mais les contraintes ne sont pas les mêmes).</p>
<p>Je vais en présenter deux, un pour <em>Gnome</em> et un pour <em>Android</em>.</p>
<h4>Ario</h4>
<p>Après avoir testé de nombreux clients pour PC, mon choix s&#8217;est porté sur <a href="http://ario-player.sourceforge.net/">Ario</a>&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2010/09/ario.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/09/ario-300x240.png" alt="" title="ario" width="300" height="240" class="aligncenter size-medium wp-image-1909" /></a></p>
<p>Quelques avantages qui m&#8217;ont convaincu&nbsp;:</p>
<ul>
<li>il est très bien intégré à <em>Gnome</em> (y compris avec le système de notifications utilisé par <em>Ubuntu</em>)&nbsp;;</li>
<li>il ressemble beaucoup à <em>Rhythmbox</em> dans son utilisation&nbsp;;</li>
<li>le double-clic sur un album peut être configuré pour <strong>remplacer</strong> la liste de lecture (plutôt que d&#8217;ajouter son contenu à la fin, sans le lire immédiatement), contrairement à de nombreux clients&nbsp;;</li>
<li>l&#8217;interface ne reste pas figée systématiquement lors d&#8217;une communication avec le serveur&nbsp;;</li>
<li>la base de données du serveur peut être mise à jour en un clic…</li>
</ul>
<h4>DMix/MPDroid</h4>
<p>Du côté d&#8217;<em>Android</em>, il y a beaucoup moins de clients. J&#8217;ai choisi <a href="http://github.com/dreamteam69/dmix/downloads">DMix/MPDroid</a> (qui est un fork de <a href="http://code.google.com/p/pmix/">PMix</a>)&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2010/09/pmix.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/09/pmix-180x300.png" alt="" title="pmix" width="180" height="300" class="aligncenter size-medium wp-image-1919" /></a></p>
<p>C&#8217;est un simple fichier <code>apk</code> <a href="http://blog.rom1v.com/2010/01/installer-une-application-apk-sur-android-a-partir-dun-pc/">à installer</a>.</p>
<p>Dans la bibliothèque, lors de la navigation dans la liste des albums, une pression longue ajoute l&#8217;album sélectionné à la liste de lecture alors qu&#8217;une pression courte permet de naviguer vers les titres de l&#8217;album (pour les ajouter un par un). Le fonctionnement est similaire pour la liste des artistes. C&#8217;est bon à savoir <img src='http://blog.rom1v.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>Aller plus loin</h3>
<p>Je me suis contenté ici de décrire les fonctionnalités de base de MPD qui me sont utiles. Mais il est également possible de le configurer en serveur de streaming, pour lire la musique du serveur sur un ordinateur ou un téléphone. OpenSyd en parle à la fin d&#8217;<a href="http://blog.opensyd.fr/gerer-sa-collection-musicale-avec-mpd-et-y-acceder-en-streaming-avec-mpdroid/">un récent billet</a>.</p>
<h3>Conclusion</h3>
<p>Ce lecteur est vraiment très pratique pour une gestion centralisée de la musique chez soi, et permet de toujours lire la musique sur le système son du salon (plutôt que sur la sortie audio de l&#8217;ordinateur).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2010/09/music-player-daemon-mpd-la-musique-a-distance/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Vidéo OGG Theora sur HTTPS (dans Firefox) : configurer Apache</title>
		<link>http://blog.rom1v.com/2010/03/video-ogg-theora-sur-https-dans-firefox-configurer-apache/</link>
		<comments>http://blog.rom1v.com/2010/03/video-ogg-theora-sur-https-dans-firefox-configurer-apache/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 22:43:52 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[theora]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1307</guid>
		<description><![CDATA[Tout le monde a entendu parler de la balise &#60;video/&#62;, la nouveauté la plus médiatisée d&#8217;HTML5. Le format vidéo à utiliser sur le web fait polémique (Theora ou H264) à cause de brevets logiciels, toujours bien présents dès il s&#8217;agit de freiner l&#8217;innovation. Une situation qu&#8217;à mon avis seul Google peut résoudre. Mais ce n&#8217;est [...]]]></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><br />
Tout le monde a entendu parler de la balise <code>&lt;video/&gt;</code>, la nouveauté la plus médiatisée d&#8217;HTML5. Le format vidéo à utiliser sur le web fait polémique (<a href="http://standblog.org/blog/post/2010/01/26/Video-Theora-ou-H264">Theora ou H264</a>) à cause de brevets logiciels, toujours bien présents dès il s&#8217;agit de freiner l&#8217;innovation. Une situation qu&#8217;à mon avis <a href="http://www.fsf.org/blogs/community/google-free-on2-vp8-for-youtube">seul Google peut résoudre</a>. Mais ce n&#8217;est pas l&#8217;objet de ce billet, pour l&#8217;instant, le format, c&#8217;est <em>OGG Theora</em>. Il suffit de placer un fichier <code>ogv</code> quelque part sur un serveur, et <em>Firefox</em> sait la lire.</p>
<p>Un problème survient cependant dès qu&#8217;on veut y accéder sur HTTPS plutôt qu&#8217;HTTP&nbsp;: on ne peut pas <em>seeker</em> dans la vidéo (c&#8217;est-à-dire qu&#8217;on ne peut pas déplacer le curseur pour se positionner à n&#8217;importe quel endroit), et on ne connaît pas sa durée totale.</p>
<p>Quelle différence entre l&#8217;accès en HTTP et HTTPS?</p>
<p>En HTTP, on reçoit la taille du fichier vidéo&nbsp;:</p>
<pre>$ curl --compressed -I http://.../video.ogv
HTTP/1.1 200 OK
Server: Apache
…
Content-Length: 26959501
Content-Type: video/ogg</pre>
<p>En HTTPS, on ne la reçoit pas, car le flux est compressé en <em>gzip</em>.</p>
<pre>$ curl --compressed -k -I https://.../video.ogv
HTTP/1.1 200 OK
Server: Apache
…
Content-Encoding: gzip
Content-Type: video/ogg</pre>
<p><em>(<code>-k</code> permet d&#8217;autoriser l&#8217;utilisation d&#8217;un certificat SSL non reconnu)</em></p>
<p>C&#8217;est la source du problème. Pourquoi ce comportement différent par défaut entre HTTP et HTTPS, je n&#8217;en sais rien (si quelqu&#8217;un peut m&#8217;éclairer…).</p>
<p>Par contre, il est très facile de désactiver la compression pour certains types de fichiers, comme les images ou les vidéos (compression qui n&#8217;a de toute façon aucun intérêt ces fichiers sont déjà compressés).</p>
<p>Pour cela, il suffit de rajouter une ligne dans <code>/etc/apache2/mods-available/deflate.conf</code>&nbsp;:</p>
<pre>SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ogg|oga|ogv)$ no-gzip dont-vary</pre>
<p>et de recharger <em>Apache</em>&nbsp;:</p>
<pre>sudo service apache reload</pre>
<p>Et maintenant, ça fonctionne correctement sur HTTPS&nbsp;:</p>
<pre>$ curl --compressed -k -I https://.../video.ogv
HTTP/1.1 200 OK
Server: Apache
…
Content-Length: 26959501
Content-Type: video/ogg</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2010/03/video-ogg-theora-sur-https-dans-firefox-configurer-apache/feed/</wfw:commentRss>
		<slash:comments>4</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[auto-hébergement]]></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>
<h3>Installation et configuration</h3>
<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>Il faut tout d&#8217;abord <a href="http://blog.rom1v.com/2010/01/trier-ses-mails-directement-sur-le-serveur-procmail/">installer et configurer procmail</a>, puis installer le paquet <a href="apt://spamassassin">spamassassin</a>&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>
<p>Pour ajouter un expéditeur en liste blanche, rajouter&nbsp;:</p>
<pre>whitelist_from any@mail.com</pre>
<h3>Test</h3>
<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>
<h3>Filtrage</h3>
<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>
<h3>Conclusion</h3>
<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>
<h3>Voir aussi</h3>
<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>8</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[auto-hébergement]]></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>
<h3>Introduction</h3>
<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>
<h3>Les dossiers IMAP</h3>
<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>
<h3>Configuration de postfix</h3>
<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>
<h3>Définir les règles de tri</h3>
<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>
<h4>Les variables</h4>
<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>
<h4>Les recettes</h4>
<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>
<p><ins datetime="2010-12-01T00:00:00+01:00">Cet autre exemple permet d&#8217;envoyer une copie des mails validant les conditions à des adresses e-mails spécifiées (je m&#8217;en sers pour transférer les messages vocaux de mon répondeur téléphonique sur plusieurs adresses)&nbsp;:</ins></p>
<pre>:0c
* ^From: telephonie\.freebox@freetelecom\.com$
! autre@email.com</pre>
<h4>Résultat</h4>
<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>12</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[auto-hébergement]]></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>
<h3>Objectif</h3>
<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>
<h3>Configuration de SASL</h3>
<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>
<h3>Configuration de postfix</h3>
<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>
<h3>Configuration du client mail</h3>
<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>50</slash:comments>
		</item>
		<item>
		<title>Créer un serveur HTTP en 10 secondes sur Ubuntu grâce à Python</title>
		<link>http://blog.rom1v.com/2009/12/creer-un-serveur-http-en-10-secondes/</link>
		<comments>http://blog.rom1v.com/2009/12/creer-un-serveur-http-en-10-secondes/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 15:22:39 +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[python]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1063</guid>
		<description><![CDATA[Il suffit d&#8217;aller dans le répertoire à partager et d&#8217;exécuter&#160;: $ python -m SimpleHTTPServer Serving HTTP on 0.0.0.0 port 8000 ... Le répertoire sera chrooté et accessible sur http://localhost:8000. Par défaut, le port 8000 est utilisé, mais on peut le changer&#160;: $ python -m SimpleHTTPServer 1234 Serving HTTP on 0.0.0.0 port 1234 ... Pour les [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2009/12/python-logo.png"><img src="http://blog.rom1v.com/wp-content/uploads/2009/12/python-logo.png" alt="python-logo" title="python-logo" width="115" height="142" class="alignright size-full wp-image-1067" /></a></p>
<p>Il suffit d&#8217;aller dans le répertoire à partager et d&#8217;exécuter&nbsp;:</p>
<pre>$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...</pre>
<p>Le répertoire sera chrooté et accessible sur <code>http://localhost:8000</code>.</p>
<p>Par défaut, le port 8000 est utilisé, mais on peut le changer&nbsp;:</p>
<pre>$ python -m SimpleHTTPServer 1234
Serving HTTP on 0.0.0.0 port 1234 ...</pre>
<p>Pour les ports inférieurs à 1024, il faut être <em>root</em>&nbsp;:</p>
<pre>$ sudo python -m SimpleHTTPServer 80
Serving HTTP on 0.0.0.0 port 80 ...</pre>
<p>Si le port correspondant est ouvert sur le routeur, il sera également accessible de l&#8217;extérieur. Pratique pour partager rapidement du contenu…</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2009/12/creer-un-serveur-http-en-10-secondes/feed/</wfw:commentRss>
		<slash:comments>38</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[auto-hébergement]]></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>
<h3>Téléchargement</h3>
<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>
<h3>Préparation de la base de données</h3>
<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>
<h3>Configuration d&#8217;Apache</h3>
<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>
<h3>Configuration de RoundCube</h3>
<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>
<h3>Modifier les préférences</h3>
<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>
<h3>Conclusion</h3>
<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>23</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[auto-hébergement]]></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&nbsp;: <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>
<h3>Prérequis</h3>
<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>
<h3>Présentation</h3>
<p>Pour mettre en place un serveur mail complet, nous avons besoin de deux choses&nbsp;: 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>
<h3>Configuration DNS</h3>
<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&nbsp;:</p>
<ul>
<li>SMTP = 25</li>
<li>POP = 110</li>
<li>POP3S = 995</li>
<li>IMAP = 143</li>
<li>IMAPS = 993</li>
</ul>
<h3>Serveur</h3>
<h4>postfix</h4>
<p>Si vous n&#8217;avez pas déjà les paquets installés&nbsp;:</p>
<pre>sudo apt-get install postfix dovecot-imapd</pre>
<p>Si vous aviez déjà postfix&nbsp;:</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&nbsp;:<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> <code>all</code></li>
</ol>
<p>Vous avez alors un fichier <code>/etc/postfix/main.cf</code> qui ressemble à ceci (sauf la dernière ligne)&nbsp;:</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 = all
home_mailbox = Maildir/</pre>
<p>Ajoutez donc la dernière ligne (c&#8217;est très important pour faire fonctionner IMAP).</p>
<p><ins datetime="2010-11-08T00:00:00+01:00">Par défaut, les mails sont limités à 10Mio (ce qui paraît normal). Cependant, il arrive toujours que quelqu&#8217;un dans votre entourage vous envoie 10 photos de 3Mio chacune. Pour cela il faut ajouter dans <code>/etc/postfix/main.cf</code> la ligne suivante (pour 50Mio)&nbsp;:</ins></p>
<pre>message_size_limit = 52428800</pre>
<p>Voilà, le serveur SMTP est prêt&nbsp;:</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><ins datetime="2010-01-02T00:00:00+01:00">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>.</ins></p>
<h4>dovecot</h4>
<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&nbsp;:</p>
<pre>protocols = imap</pre>
<p>Ensuite pour choisir le répertoire de stockage des mails pour les utilisateurs (forcément <code>~/Maildir</code>)&nbsp;:</p>
<pre>mail_location = maildir:~/Maildir</pre>
<p>Enfin, il faut préparer ce répertoire en exécutant la commande&nbsp;:</p>
<pre>maildirmake.dovecot ~/Maildir</pre>
<p>Voilà, c&#8217;est fini&nbsp;:</p>
<pre>sudo /etc/init.d/dovecot restart</pre>
<h3>Client</h3>
<p>Le serveur est configuré, nous pouvons maintenant l&#8217;utiliser.</p>
<h4>mailtutils</h4>
<p>Commençons par le tester grâce au paquet <strong>mailutils</strong> qui permet d&#8217;envoyer des mails en ligne de commande&nbsp;:</p>
<pre>sudo apt-get install mailutils</pre>
<p>Directement sur le serveur&nbsp;:</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>
<h4>Un vrai client</h4>
<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>
<h5>Réception</h5>
<p>Type de serveur&nbsp;: IMAP<br />
Serveur&nbsp;: <code>imap.rom1v.com</code> <em>(à adapter avec votre nom de domaine)</em><br />
Nom d&#8217;utilisateur&nbsp;: <em>votre login sur le serveur</em><br />
Sécurité&nbsp;: Chiffrement TLS<br />
Type d&#8217;authentification&nbsp;: Mot de passe</p>
<h5>Envoi</h5>
<p>Type de serveur&nbsp;: SMTP<br />
Serveur&nbsp;: <code>smtp.rom1v.com</code> <em>(à adapter avec votre nom de domaine)</em><br />
Nom d&#8217;utilisateur&nbsp;: <em>votre login sur le serveur</em><br />
Sécurité&nbsp;: Chiffrement TLS<br />
Pas d&#8217;authentification.</p>
<h3>Sauvegardes</h3>
<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&nbsp;: il suffira donc de rajouter le répertoire <code>~/Mailbox</code> à la liste des répertoires sauvegardés.</p>
<h3>Disponibilité</h3>
<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>
<h3>Conclusion</h3>
<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>59</slash:comments>
		</item>
		<item>
		<title>Nouveau blog, 100% libre</title>
		<link>http://blog.rom1v.com/2009/01/nouveau-blog-100-libre/</link>
		<comments>http://blog.rom1v.com/2009/01/nouveau-blog-100-libre/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 13:25:05 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Annonces]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[auto-hébergement]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=255</guid>
		<description><![CDATA[Je viens de migrer mon blog hébergé sur blogger vers un blog wordpress sur un serveur perso hébergé chez moi. Ce nouveau blog est 100% libre : il ne parle que de logiciels libres ; la machine qui l&#8217;héberge est une eee-box avec ubuntu server ; le serveur est lamp (apache, mysql, php) ; le [...]]]></description>
			<content:encoded><![CDATA[<p>Je viens de migrer mon blog hébergé sur <em>blogger</em> vers un blog <strong>wordpress</strong> sur un serveur perso hébergé chez moi.</p>
<p><strong>Ce nouveau blog est 100% libre :</strong></p>
<ul>
<li>il ne parle que de <strong>logiciels libres</strong> ;</li>
<li>la machine qui l&#8217;héberge est une eee-box avec <strong>ubuntu server</strong> ;</li>
<li>le serveur est <strong>lamp</strong> (apache, mysql, php) ;</li>
<li>le moteur de blog est <strong>wordpress</strong> ;</li>
<li>j&#8217;accède au serveur par <strong>open-ssh</strong> à partir d&#8217;une machine <strong>ubuntu</strong> ;</li>
<li>vous le lisez dans <strong>firefox</strong>…</li>
</ul>
<p><strong>Les avantages :</strong></p>
<ul>
<li>accès total (ssh, …) ;</li>
<li>pas de restriction d&#8217;espace disque ;</li>
<li>pas de problèmes de droits comme sur certains hébergeurs ;</li>
<li>les hébergeurs de blogs &laquo;&nbsp;connus&nbsp;&raquo; sont bloqués par les entreprises ;</li>
<li>wordpress est plus sympa à utiliser et plus complet que blogger…</li>
</ul>
<p><strong>Les inconvénients :</strong></p>
<ul>
<li>c&#8217;est plus long à mettre en place qu&#8217;un blog sur blogger, et ça demande un peu plus de connaissances ;</li>
<li>il faut avoir un serveur (j&#8217;ai acheté mon eee-box 229€) allumé 24h/24 ;</li>
<li>il faut acheter un nom de domaine (j&#8217;ai acheté le mien 15€/an chez gandi) ;</li>
<li>il faut gérer les mises à jour et les backups soi-même…</li>
</ul>
<p>Pour les backups, si ça peut vous servir, voici mon petit script que je lance à partir de mon pc fixe :</p>
<pre>#!/bin/sh
now=$(date +'%Y%m%d-%H%M%S')
target="/tmp/wordpress_$now.sql.gz"
echo "Connecting to database..."
ssh -t rom-eeebox "mysqldump -u root -p wordpress | gzip &gt; $target"
scp rom-eeebox:"$target" /media/gnu/backup/rom-eeebox
rdiff-backup rom-eeebox::/home/rom/blog /media/gnu/backup/rom-eeebox/blog</pre>
<p>Il met le contenu de la base dans une archive, la transfert sur le pc fixe, puis fait un backup incrémental de tout le répertoire <code>/var/www/blog</code> (tout en gardant les anciennes versions, c&#8217;est l&#8217;intérêt de <code>rdiff-backup</code> sur <code>rsync</code>).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2009/01/nouveau-blog-100-libre/feed/</wfw:commentRss>
		<slash:comments>63</slash:comments>
		</item>
	</channel>
</rss>

