<?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; Outils</title>
	<atom:link href="http://blog.rom1v.com/category/outils/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rom1v.com</link>
	<description>Un blog libre</description>
	<lastBuildDate>Sun, 05 Sep 2010 17:23:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>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[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>
<h2>Formats</h2>
<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>
<h2>Outil d&#8217;accès</h2>
<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>
<h2>Script</h2>
<p><em><strong>EDIT 11/07/2010&nbsp;:</strong><br />
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).</em></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>#!/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><em><strong>EDIT 11/07/2010&nbsp;:</strong> 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;:</em></p>
<pre>sudo install pluzz /usr/local/bin</pre>
<h2>Conclusion</h2>
<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>85</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>
<h2>Pourquoi chiffrer son dossier personnel&nbsp;?</h2>
<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>
<h3>Stockage des mots de passe</h3>
<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>
<h2>Mise en place du chiffrement</h2>
<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>
<h2>Principe</h2>
<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>
<h2>Connaître la passphrase de montage</h2>
<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>
<h2>Changer la passphrase de login</h2>
<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>
<h2>Réinstaller le système d&#8217;exploitation</h2>
<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>
<h2>Chiffrer son dossier personnel après installation</h2>
<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>
<h2>Récupérer ses données chiffrées</h2>
<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>
<h2>Conclusion</h2>
<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>35</slash:comments>
		</item>
		<item>
		<title>Agréger différentes sources de VOD en OGG/Theora</title>
		<link>http://blog.rom1v.com/2010/04/aggreger-differentes-sources-de-vod-en-oggtheora/</link>
		<comments>http://blog.rom1v.com/2010/04/aggreger-differentes-sources-de-vod-en-oggtheora/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 18:58:08 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[video]]></category>

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

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

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

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

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

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

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

:0
* ^List-Id: &lt;april\.april\.org&gt;$
.ml.april/</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2010/01/trier-ses-mails-directement-sur-le-serveur-procmail/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Ajouter l&#8217;authentification SMTP sur un serveur mail</title>
		<link>http://blog.rom1v.com/2010/01/ajouter-lauthentification-smtp-sur-un-serveur-mail/</link>
		<comments>http://blog.rom1v.com/2010/01/ajouter-lauthentification-smtp-sur-un-serveur-mail/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 20:23:05 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>

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

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1078</guid>
		<description><![CDATA[Il y a longtemps, sur la première PlayStation, j&#8217;avais acheté un Action Replay qui permettait de modifier la mémoire à chaud pour &#171;&#160;tricher&#160;&#187; ou changer le comportement d&#8217;un jeu. Il est possible de faire la même chose sous GNU/Linux grâce à scanmem, qu&#8217;il faut installer&#160;: sudo apt-get install scanmem Nous allons le tester sur Gnometris [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a longtemps, sur la première <em>PlayStation</em>, j&#8217;avais acheté un <a href="http://fr.wikipedia.org/wiki/Action_Replay">Action Replay</a> qui permettait de modifier la mémoire <em>à chaud</em> pour &laquo;&nbsp;tricher&nbsp;&raquo; ou changer le comportement d&#8217;un jeu.</p>
<p>Il est possible de faire la même chose sous GNU/Linux grâce à <a href="apt://scanmem">scanmem</a>, qu&#8217;il faut installer&nbsp;:</p>
<pre>sudo apt-get install scanmem</pre>
<p>Nous allons le tester sur <strong>Gnometris</strong> (le Tetris-like intégré à <em>Gnome</em>) pour exploser le record.</p>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2009/12/gnometris.png"><img src="http://blog.rom1v.com/wp-content/uploads/2009/12/gnometris-264x300.png" alt="" title="gnometris" width="264" height="300" class="alignright size-medium wp-image-1079" /></a></p>
<p>Lançons le jeu, et récupérons son <em>pid</em>&nbsp;:</p>
<pre>$ gnometris &#038;
[1] 30814</pre>
<p>Démarrons <strong>scanmem</strong> avec comme paramètre le <em>pid</em> de <strong>Gnometris</strong>&nbsp;:</p>
<pre>sudo scanmem 30814</pre>
<p><em>(oui, il faut être root pour lire et écrire la mémoire des autres programmes lancés, c&#8217;est plutôt rassurant)</em></p>
<p>On obtient un joli prompt&nbsp;:</p>
<pre>0> </pre>
<p>Il va falloir tout d&#8217;abord trouver où se trouve en mémoire la variable à modifier (celle qui contient le score courant). Pour cela, c&#8217;est très simple, vu que le score est affiché à l&#8217;écran, il suffit d&#8217;indiquer à <strong>scanmem</strong> sa valeur. Pour l&#8217;instant, mon score est de 0, je rentre donc 0&nbsp;:</p>
<pre>0> 0
info: 01/126 searching   0x621000 -   0x623000...........ok
info: 02/126 searching  0x1f9d000 -  0x2f4e000...........ok
…
info: 125/126 searching 0xe83f9000 - 0xe83fa000.ok
info: 126/126 searching 0xdab4b000 - 0xdab67000.ok
info: we currently have 12352024 matches.
12352024> </pre>
<p>Il y a donc 12352024 variables dans la mémoire utilisée par Gnometris qui sont à 0 (pas étonnant).</p>
<p>Je joue un peu, histoire de faire évoluer le score… <em>tac tac tac tac…</em> Voilà, j&#8217;ai 100 points (j&#8217;ai fait 2 lignes), je tape donc 100&nbsp;:</p>
<pre>12352024> 100
info: we currently have 36 matches.
36> </pre>
<p>Il y a 36 variables qui étaient à 0 tout à l&#8217;heure et qui sont à 100 maintenant. Je rejoue, je fais 1 ligne, j&#8217;ai 140 points, je tape donc 140&nbsp;:</p>
<pre>36> 140
info: we currently have 1 matches.
info: match identified, use "set" to modify value.
info: enter "help" for other commands.</pre>
<p>Voilà, j&#8217;ai trouvé la variable qui contient le score, maintenant je peux la modifier&nbsp;:</p>
<pre>1> set 12345678
info: setting *0x22e38f0 to 0xbc614e...</pre>
<p>Rien ne se passe dans le jeu, c&#8217;est normal&nbsp;: pour <strong>Gnometris</strong>, le score n&#8217;a pas pu changer, le label de l&#8217;interface graphique contenant le score n&#8217;a donc pas été rafraîchi. Il suffit de gagner quelques points pour s&#8217;apercevoir que la modification a bien été prise en compte&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2009/12/gnometris-cheat.png"><img src="http://blog.rom1v.com/wp-content/uploads/2009/12/gnometris-cheat-264x300.png" alt="" title="gnometris-cheat" width="264" height="300" class="aligncenter size-medium wp-image-1080" /></a></p>
<p>Ça fonctionne bien évidemment sur tous les programmes, mais c&#8217;est plus intéressant pour les jeux <img src='http://blog.rom1v.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2009/12/tricher-dans-les-jeux-en-modifiant-la-memoire-a-chaud/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Créer un serveur HTTP en 10 secondes sur Ubuntu grâce à Python</title>
		<link>http://blog.rom1v.com/2009/12/creer-un-serveur-http-en-10-secondes/</link>
		<comments>http://blog.rom1v.com/2009/12/creer-un-serveur-http-en-10-secondes/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 15:22:39 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1063</guid>
		<description><![CDATA[Il suffit d&#8217;aller dans le répertoire à partager et d&#8217;exécuter&#160;: $ python -m SimpleHTTPServer Serving HTTP on 0.0.0.0 port 8000 ... Le répertoire sera chrooté et accessible sur http://localhost:8000. Par défaut, le port 8000 est utilisé, mais on peut le changer&#160;: $ python -m SimpleHTTPServer 1234 Serving HTTP on 0.0.0.0 port 1234 ... Pour les [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rom1v.com/wp-content/uploads/2009/12/python-logo.png"><img src="http://blog.rom1v.com/wp-content/uploads/2009/12/python-logo.png" alt="python-logo" title="python-logo" width="115" height="142" class="alignright size-full wp-image-1067" /></a></p>
<p>Il suffit d&#8217;aller dans le répertoire à partager et d&#8217;exécuter&nbsp;:</p>
<pre>$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...</pre>
<p>Le répertoire sera chrooté et accessible sur <code>http://localhost:8000</code>.</p>
<p>Par défaut, le port 8000 est utilisé, mais on peut le changer&nbsp;:</p>
<pre>$ python -m SimpleHTTPServer 1234
Serving HTTP on 0.0.0.0 port 1234 ...</pre>
<p>Pour les ports inférieurs à 1024, il faut être <em>root</em>&nbsp;:</p>
<pre>$ sudo python -m SimpleHTTPServer 80
Serving HTTP on 0.0.0.0 port 80 ...</pre>
<p> Si le port correspondant est ouvert sur le routeur, il sera également accessible de l&#8217;extérieur. Pratique pour partager rapidement du contenu…</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2009/12/creer-un-serveur-http-en-10-secondes/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Générer des mots de passe aléatoires</title>
		<link>http://blog.rom1v.com/2009/11/generer-des-mots-de-passe-aleatoires/</link>
		<comments>http://blog.rom1v.com/2009/11/generer-des-mots-de-passe-aleatoires/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 19:05:29 +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[sécurité]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=1036</guid>
		<description><![CDATA[Il arrive de vouloir changer de mot de passe, et comme d&#8217;habitude, d&#8217;en vouloir un aléatoire. Le programme pwgen est bien pratique. Il génère au choix&#160;: des mots de passe qui sont facilement mémorisables par des humains, tout en restant aussi sécurisés que possible&#160;: pratique pour un mot de passe sans importance dont on veut [...]]]></description>
			<content:encoded><![CDATA[<p>Il arrive de vouloir changer de mot de passe, et comme d&#8217;habitude, d&#8217;en vouloir un aléatoire.</p>
<p>Le programme <a href="apt://pwgen">pwgen</a> est bien pratique. Il génère au choix&nbsp;:</p>
<ul>
<li>des mots de passe qui sont facilement mémorisables par des humains, tout en restant aussi sécurisés que possible&nbsp;: pratique pour un mot de passe sans importance dont on veut se souvenir facilement&nbsp;;</li>
<li>des mots de passe totalement aléatoires (plus sécurisés)&nbsp;: pour le mot de passe principal d&#8217;un utilisateur&nbsp;;</li>
<li>des mots de passe totalement aléatoires avec des caractères spéciaux (le top)&nbsp;: pour des mots de passe jamais écrits à la main (bases de données), ou pour le mot de passe principal d&#8217;un geek ^^).</li>
</ul>
<p>Sur ces 3 exemples, on voit tout de suite les niveaux de difficulté de mémorisation&nbsp;:</p>
<pre>$ pwgen
EithooK4 faey6aeM Dai5aat5 ue0Aen8e lee1Aiyi Niemap6b ahW7ooth Pohc9iez
tien7Pho ahz5aaJ4 nohd0EiR uiS7xoot Cah9joo1 Fiede8to chus3Mee Ohji2dok
ieJah6de Nool6ael lahd6Pau dooc9Ach nai4Ther Iegahzu7 Roop2tha iiViG4pa
Chaeb1qu Ie0ohxis hohz9Aiw UeYae4Ae uthae6Ga veeCho9o Vo0shait aiShue1h
ieX8geen Auyeix9t OBeb0pae Cah0Ooqu aeG7nooV Ohpu5aic UaTh7eem Fakex4hu
vei7oNgu doc0Fi5J xahFel6r AeK5ing0 xaX6ahBu Coo7Quoh Aghu7lah xec9IeLu
ae1phiaR aem5Auy6 ebohP0ta FieGh3ee ki8QuaoN fahvev6R Aezil9Th aeVeex3f
aeh6eeTe ohR6Ahfi IoV4WaCh EeSah9Oo eeg2Wae8 Eeh5phee eiraGeu0 Owe5thah
Oa0eaqui iaV8joiw yoF1ueF9 Nee3Athi ooW3Noet uphai8Ai Eedoi2ch ao2Eich4
Chie3voo vexae9UR ri4en4Ai ig9ohDaZ iej1iRae Iechee6i uiS3geim zi0ee1Qu
Co5ahcoh Ahyai2ga eiw7ahCa Phier3ie Thoocai3 fieY0xeo aeNei2ei xieb2Cha
Le1oep5e oavohn8E ahbeeM5i Aedeif7i Ohth4Fai Uo4gaevu BeFohch3 iePu9aem
choh6zaY facoo0Na Ug5noh7z fet8ahS8 lanohl0H eiW5dahY Miex1Cey iPeew0Ai
Ooxae1Co Fa4ioz9w ooyaip1A tei6Pae7 eefaeX6J tahWoh6l quee0eeZ gooD0uDu
iev9aeS8 Deb7Iez1 tii8LaVi BuJoon3g eePeghe7 Cee8kahn Ru3rosho baiph2Iu
bahg1eiG vi8aeTho eequ7Voe Xi4oocha raij8aeJ Oe7heGhu Jae4iz1U Ineem3ie
koh1oiPh Bo9xi9Qu Ash5Aisu IeVuiph4 ul8fePoo Aaphe1ru eiWeim1v NuN7xira
uwe0Iexa ahBu9aiv Suu0aexi haiz2Eem eiC3phuh eingo1Cu Aibek8Ta Theiha2I
feP8poir id1ib5Ah Aib2Eish Ahk8cheu Woo7cha3 hahX4pai shiu2uYi Oobiev6E
euf7le8I Vaa2ao4w dah1Ieja pi4OaPuu Aeroh9th thue7Gu5 Aivu3Nah loo9le9E</pre>
<pre>$ pwgen -s
ji3f2Nvp chK36N5w yn7toyvP 3997nLrJ nzFqz14R 9dnkBHYL 9zF2zVQr T1psPkYX
nMNvbMU1 wz1xYluN z9D62kI0 ycZGb5a7 rKMj0W7P NNih1iC2 2TFeDTO1 ul0gKW9G
tplaj4Fg 9SAjOAdn b2KpUY4c M3G5lwAr 9mWUV61M iV41jedC vSFaeM91 PRy5zUuT
0oJIC3Va Qqzkc1gv je4Q2Meg dk0rVKiG oeBAo89G a7vgS7NZ evyG65d4 416FPnAO
94u4ShlL 4WvBDdsG b7ojJyo9 ZiQQO0wf B10gsyBQ jGPT5gw7 R8Vx6Fsb BjO6KzpN
Bj3mHgWs 4YGekJBa 6zVsqVxF sD4hphne ksucD8gt COU5FRCI BBkU9PQt oT7d90Ns
NSmKs5Jl USBtPA1Z oRTb1vl6 79Mn84dv QwGG1utJ HPZTHd1B zww6ZPif 9uIj6bme
GdE4BjN9 oB4VcrWQ 2TlAJuE6 52JMMxcx IsYoIj3g GWyL24vZ sv5dwT48 QrQTz5Xb
KnKtVDY9 5mW6B30b 6RPgdzOp Raes1DgQ Njv3rOyR u4pwGpGl s9hnUdVA WKR4IjQE
g72s3Okb J2IbdUWy 5LNfmINq 0QMAnPGx zTSbMK7h ic0qQhf6 OCB8mQ1p pxGhQ8Ps
wN0GjxDs seW9ricu 3DmdZUbJ lQF9rFWZ dvIC4RM4 CuUWo6k5 rdA4QByG wpHI2BSU
bvvSF2dz y6205hA5 7zGpRspW hn1E4HCh 1lJlhL2P g0niR3c9 dPByI3PG AtRm1bSV
I1Hs5Cg3 8CRJvebA jxh8jpAU x9828wlW 6KBcByOt orl3QmoL 6pYIHB7c MALID6LD
36KiInPB 5f2DLzhj iRB9AHah GUCn2Tzq aJ0ZiDy0 nizXx6SI dCEO0fvw Q5fMf08t
HmZVQd25 EIiKnbb4 AQun8igX 88TRMsB6 R1g0hL7D QPTRCH1V hs14l8C1 xVKhN5MD
sU5N2N4n tS7iB8jK 5Vcq8XrN GvT2bF5X hZS2jZpB vMI2ZxhC GXaYX5JV h5enQ53C
aKSh3ZGm QCxe8dT0 XI38fqmZ u0vA31e7 3wdaV3OF e98PZcs4 Bu7SceCn Pgkq0q2K
j71AznCc pNtp5VoC N2m1RNBn Opa4CrMl P3IFuG6s iuNhtTm3 k3jehDmQ TyG5kBdo
03eqXAB1 Dez29MWr ZZRRI0oh 1KC7CD3H 8Q6VMn5d b9DO8B1o 3M36hgOf N3JWSJIn
xXmfe86X FjCSO4bI w5BvyCZS rDB4aOPK H8hvo7M1 svWnLX2x Mglqr0yA udo253ND</pre>
<pre>$ pwgen -sy
TFKS^;4v y$@5i6CH !4?]G]Tf $E\&lt;90z? ^'z5c+BH 9E&gt;aS@(} qP,:Z2.K ]*7db:W:
\x7Nv9/X Q&#038;ry9yw6 9ur]=_V0 5-ea/3Tk MQ}jS4H3 1|r\TX%? PnI9!+T* ;I#36=)%
}_(@D7~E hRt0f?3p 7$XQG]j= '7/n7`X: |Byz#93A 4kR4'vw1 %j!f{5WL 7p{xmH?e
,jCt0nXH LSI[T1Z% ViF+O&gt;5v 5(Ooaa%+ p@%Bs9dl DUv@HjB7 oH4q*h*0 +4?B,?a#
x9C4(/]" 9H(||&gt;"8 k"gKzz5} B@W8s#dW \J9]j7l] 3O@;~{vM RNQ'g2M6 &gt;ZQ}E1[]
%3t"i^aK Wp!1(Jw% }0RQ!y\E ~)(0L4.' p@|9uLZO q%%0n#L: ._9AgN}K s[vK?Fi8
vtPgD?~7 Q(&gt;NZ"6j -ADl[88, '+FQj\g6 &lt;,zS(N[2 v9_HEyc: %i5%B!d5 _BA36*Y$
]vS8N!YG 9v'-Dmd3 QQ1;@Zq/ X-3ov/!T Fi%+QI~2 #GY5~&gt;V$ O}T!N8z# 8Gm/-'Al
gM\(bt3\ Ur[D7:I+ dZx@:&lt;5r &gt;^*IKAG2 StTJ3.2! a~FBKB6@ )r-&gt;m5Ia ui;7Uy*/
9x]jD;&gt;p X6#TV*at 8koi'YTc N9jYz&#038;qC nC}9xy#; oyGvr*d4 Oh1}s.mI T$q5htKG
m\o}-6Ex 952Np-ly |vO9T\${ 6u3V)~H" R0fq6T3# [QJTM^a3 7y\M[|2j "s\4U}Hv
:Br^T4_G wKi8,,\_ q;+3K"&#038;{ W1kp`q7&#038; 0Ps?Gq#) cRQ5jnl| ;i6rMWbf [D&lt;4~|Gb
`W_c)/7p A:H,4g2; U?Q{sB4, HMED&gt;2`) .-,9Mlhk *9I\nYH/ bDb`(&#038;,7 x8sLE.G[
F&gt;(.'o0s J\N-0h=&lt; Vrk0W2,n (M3vAm,S rs&#038;ZKgD5 @:a$8N*5 9qm|BZiq {o&#038;3qK`A
-R2/qwg? 3D&gt;{\Y&#038;| s2Bc!]bD tAfJ_1GS \7F[mWJK E#(7zIW@ )RT7lrG) !rzI4Gwn
.0AE=J"| z8Z]b%|N "$4,7X,p +j}!'Ui6 o%W$L/3{ n#+Rf`P9 x3q"Bd($ ""Xmh6S?
@:3T=z~A E+IFC`2C 5;YG]&#038;/] ,1@!&lt;*Qt &lt;2Y8A4a@ ;5fOO0{B 7Prjv$Ms 2'g!6!3T
9r")N*J; z=K'75=! p|0K]&#038;e&lt; {l5kvqL{ (mG4?0xt p5&gt;F&gt;)D5 j69;T^Jv ;.6sLj5?
qH;1&lt;6Cq 7M+olge; \^n,S7B, @}^7Z]u@ 62__*C6b BNDnB)1@ xr^qwE7C a2'V*S&lt;0
5&#038;dk?QN9 W0x(}QPE ~-6i-ufZ ik|v#s9L 6xdgc2Y= 7kcS#}if PG1}MI6V u(29L/?}</pre>
<p>Les plus paranos pourront également changer des caractères des mots de passes générés, ou les mélanger entre eux (afin d&#8217;éviter qu&#8217;un bug de <code>pwgen</code> ne provoque une baisse de sécurité).</p>
<p>Il est également possible de passer en paramètre la longueur des mots de passe que l&#8217;on veut générer.</p>
<p>Pour le reste&nbsp;: <code>man pwgen</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2009/11/generer-des-mots-de-passe-aleatoires/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Installer un webmail (RoundCube) sur Ubuntu Server</title>
		<link>http://blog.rom1v.com/2009/11/installer-un-webmail-roundcube-sur-ubuntu-server/</link>
		<comments>http://blog.rom1v.com/2009/11/installer-un-webmail-roundcube-sur-ubuntu-server/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 18:38:55 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[serveur]]></category>
		<category><![CDATA[ubuntu]]></category>

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

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

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://blog.rom1v.com/?p=651</guid>
		<description><![CDATA[Je ne vais pas présenter LaTeX&#160;: si vous ne connaissez pas, je vous renvoie sur la page LaTeX de Wikipedia. Je vais plutôt présenter succintement l&#8217;installation de LaTeX et d&#8217;un éditeur pour Ubuntu, puis je vais lister les quelques points basiques qui peuvent poser problème et qui empoisonnent la vie quand on n&#8217;a pas de [...]]]></description>
			<content:encoded><![CDATA[<p>Je ne vais pas présenter <strong>LaTeX</strong>&nbsp;: si vous ne connaissez pas, je vous renvoie sur <a href="http://fr.wikipedia.org/wiki/LaTeX">la page LaTeX de Wikipedia</a>.<br />
<a href="http://upload.wikimedia.org/wikipedia/commons/9/92/LaTeX_logo.svg"><img alt="LaTeX" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/92/LaTeX_logo.svg/180px-LaTeX_logo.svg.png" title="LaTeX" class="aligncenter" width="180" height="75" /></a></p>
<p>Je vais plutôt présenter succintement l&#8217;installation de LaTeX et d&#8217;un éditeur pour Ubuntu, puis je vais lister les quelques points basiques qui peuvent poser problème et qui empoisonnent la vie quand on n&#8217;a pas de solutions&nbsp;:</p>
<ul>
<li>les polices pixellisées&nbsp;;</li>
<li>les problèmes d&#8217;encodage&nbsp;;</li>
<li>les problèmes de caractères spéciaux dans les méta-données&nbsp;;</li>
<li>d&#8217;autres problèmes avec des caractères accentués&nbsp;;</li>
<li>la modification des marges du document…</li>
</ul>
<h2>Installation de base</h2>
<p>Il faut tout d&#8217;abord installer le minimum&nbsp;: <a href="apt://texlive">texlive</a>.<br />
Pour pouvoir gérer correctement le français, <a href="apt://texlive-lang-french">texlive-lang-french</a> est nécessaire.<br />
Il est conseillé d&#8217;installer également <a href="apt://texlive-latex-extra">texlive-latex-extra</a>, qui contient pas mal de greffons bien utiles.<br />
Enfin, pour avoir des polices vectorielles (et non bitmap, qui sont pixellisées lors d&#8217;un zoom), il faut le paquet <a href="apt://lmodern">lmodern</a>.</p>
<pre>sudo apt-get install texlive texlive-lang-french texlive-latex-extra lmodern</pre>
<h2>Greffon pour gedit</h2>
<p>Depuis <em>Jaunty</em>, le greffon LaTeX pour <strong>gedit</strong> est packagé dans les dépôts par défaut&nbsp;: <a href="apt://gedit-latex-plugin">gedit-latex-plugin</a>.<br />
Une fois installé, <strong>gedit</strong> s&#8217;enrichit d&#8217;une barre d&#8217;outil (lorsqu&#8217;un document <code>.tex</code> est ouvert) et d&#8217;un panneau inférieur <em>(Ctrl+F9 pour l&#8217;activer et le désactiver)</em>&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2009/07/gedit-latex.png"><img src="http://blog.rom1v.com/wp-content/uploads/2009/07/gedit-latex-300x236.png" alt="gedit-latex" title="gedit-latex" width="300" height="236" class="aligncenter size-medium wp-image-687" /></a></p>
<p>Pour compiler le document, rien de plus simple, tout est dans le menu <em>Outils</em>&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2009/07/gedit-latex-menu.png"><img src="http://blog.rom1v.com/wp-content/uploads/2009/07/gedit-latex-menu-300x214.png" alt="gedit-latex-menu" title="gedit-latex-menu" width="300" height="214" class="aligncenter size-medium wp-image-663" /></a></p>
<h2>Configuration de l&#8217;en-tête</h2>
<h3>Encodage des caractères</h3>
<p>Par défaut, si aucune raison particulière ne préconise le contraire, tout texte devrait être encodé en <a href="http://fr.wikipedia.org/wiki/UTF-8">UTF-8</a>&nbsp;: ça tombe bien, c&#8217;est l&#8217;encodage par défaut d&#8217;Ubuntu.</p>
<p><em>Si un jour vous rencontrez un problème d&#8217;encodage dans n&#8217;importe quel domaine, et que sur un forum quelqu&#8217;un vous indique que pour le résoudre, il faut changer l&#8217;encodage en latin1 (iso-8859-1), ne suivez pas son conseil, ça n&#8217;est pas une bonne solution (à part pour des problèmes de compatibilité avec un existant très vétuste).</em></p>
<p>Il faut indiquer au compilateur LaTeX que le document source est encodé en <strong>UTF-8</strong>. Pour cela, il suffit de rajouter dans l&#8217;en-tête la ligne suivante&nbsp;:</p>
<pre>\usepackage[utf8]{inputenc}</pre>
<h3>Accents, bidouille et coupure de mots</h3>
<p>Maintenant que l&#8217;encodage est correctement reconnu, il reste un petit problème avec les caractères accentués. Lorsqu&#8217;on écrit le caractère «&nbsp;é&nbsp;» par exemple, le compilateur sait le reconnaître (codage UTF-8), mais l&#8217;encodage de la police par défaut ne permet pas de le dessiner directement&nbsp;: elle ne contient pas ce caractère. Pour contourner le problème, le compilateur écrit un «&nbsp;e&nbsp;» avec un «&nbsp;&#8217;&nbsp;» au-dessus (<code>\'e</code>).</p>
<p>À première vue, ça n&#8217;est pas gênant, le rendu est nickel. Sauf que cela pose deux problèmes&nbsp;:</p>
<ul>
<li>la recherche d&#8217;un mot qui contient un caractère accentué dans n&#8217;importe quel visionneuse PDF ne fonctionne pas (normal, le caractère accentué n&#8217;est pas réellement écrit dans le fichier)&nbsp;;</li>
<li>l&#8217;algorithme de coupure de mots s&#8217;emmêle les pinceaux sur les mots qui contiennent des caractères accentués.</li>
</ul>
<p>Pour éviter le problème, il faut rajouter dans l&#8217;en-tête&nbsp;:</p>
<pre>\usepackage[T1]{fontenc}</pre>
<h3>Méta-données</h3>
<p>Le package <strong>hyperref</strong> est quasiment incontournable pour générer des PDF, il permet de personnaliser pas mal de choses, et surtout de faire des liens cliquables (à l&#8217;intérieur du document ou vers une url externe)… Pour l&#8217;utiliser, il suffit de rajouter le package dans l&#8217;en-tête, auquel on peut spécifier des options&nbsp;:</p>
<pre>\usepackage[bookmarks=false,colorlinks,linkcolor=blue]{hyperref}</pre>
<p><em>Ici, par exemple, j&#8217;ai précisé que je ne voulais pas générer l&#8217;index du document (qui s&#8217;affiche par défaut dans certaines visionneuses de PDF, notamment le logiciel «&nbsp;privateur&nbsp;» Adobe Reader), que je voulais colorer les liens plutôt que de les encadrer (ce que je trouve particulièrement moche) et que je les voulais en bleu.</em></p>
<p>Ce package permet également de renseigner les propriétés du documents (les méta-données), ce qui est bien utile pour le référencement.</p>
<p>On trouve souvent la méthode qui consiste à ajouter les propriétés du document directement en option d&#8217;<strong>hyperref</strong>&nbsp;:</p>
<pre>\usepackage[pdfauthor={Romain Vimont},pdftitle={Démo LaTeX}]{hyperref}</pre>
<p>Mais elle ne supporte pas tous les caractères, par exemple&nbsp;:</p>
<pre>\usepackage[pdfauthor={Romain Vimont (®om)},pdftitle={Démo LaTeX}]{hyperref}</pre>
<p>Une bonne pratique est donc de les écrire séparément (et là ça fonctionne)&nbsp;:</p>
<pre>\hypersetup{
  pdftitle={Démo LaTeX},
  pdfsubject={Modèle de document LaTeX},
  pdfkeywords={LaTeX, modèle},
  pdfauthor={Romain Vimont (®om)}
}</pre>
<p>La liste complète des propriétés est disponible <a href="http://en.wikibooks.org/wiki/LaTeX/Hyperlinks#Customization">ici</a>.</p>
<p><a href="http://blog.rom1v.com/wp-content/uploads/2009/07/latex-properties.png"><img src="http://blog.rom1v.com/wp-content/uploads/2009/07/latex-properties-300x238.png" alt="latex-properties" title="latex-properties" width="300" height="238" class="aligncenter size-medium wp-image-710" /></a></p>
<h3>Marges</h3>
<p>Les marges par défaut des documents générés sont énormes. Les étudiants en sont très contents quand ils doivent écrire un rapport de stage de 40 pages dont ils viennent difficilement à bout, mais dans beaucoup d&#8217;autres cas, c&#8217;est une perte de place. Même s&#8217;<a href="http://fr.wikibooks.org/wiki/Programmation_LaTeX/Mise_en_page#Modification_des_marges">il y a une raison à cela</a>, on peut vouloir les diminuer.</p>
<p>Le package <strong>geometry</strong> rend cette opération très simple&nbsp;:</p>
<pre>\usepackage[top=1.5cm,bottom=1.5cm,left=1.5cm,right=1.5cm]{geometry}</pre>
<h3>Quelques réglages PDF</h3>
<p>Il est possible de définir la version de PDF à utiliser <em>(j&#8217;en ai eu besoin par exemple pour intégrer correctement des images png transparentes, qui ne fonctionnait pas avec PDF inférieur à 1.6)</em> et le niveau de compression, permettant de gagner quelques kilo-octets sur le fichier final.</p>
<pre>\pdfminorversion 7
\pdfobjcompresslevel 3</pre>
<h3>Conclusion</h3>
<p>Voici donc un modèle de document prêt à être compilé&nbsp;:</p>
<pre>\pdfminorversion 7
\pdfobjcompresslevel 3

\documentclass[a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage[bookmarks=false,colorlinks,linkcolor=blue]{hyperref}
\usepackage[top=1.5cm,bottom=1.5cm,left=1.5cm,right=1.5cm]{geometry}

\hypersetup{
  pdftitle={Démo LaTeX},
  pdfsubject={Modèle de document LaTeX},
  pdfkeywords={LaTeX, modèle},
  pdfauthor={Romain Vimont (®om)}
}

\begin{document}

\section{Première section}

\subsection{Une sous-section}

Du texte\dots

\subsection{Une autre sous-section}

\section{Une autre section}

\end{document}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2009/07/bien-debuter-en-latex-sous-ubuntu/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Aperçus des fichiers OpenOffice.org dans nautilus</title>
		<link>http://blog.rom1v.com/2009/06/apercus-des-fichiers-openoffice-org-dans-nautilus/</link>
		<comments>http://blog.rom1v.com/2009/06/apercus-des-fichiers-openoffice-org-dans-nautilus/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 20:27:50 +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[gnome]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[open-office]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=629</guid>
		<description><![CDATA[Par défaut, Ubuntu ne gère pas les aperçus des fichiers ODF (format utilisé par OpenOffice.org), contrairement aux fichiers images, aux fichiers PDF, etc. On se retrouve alors avec une simple icône&#160;: C&#8217;est quand même plus pratique d&#8217;obtenir un aperçu du document comme ceci&#160;: EDIT: en fait c&#8217;est beaucoup plus simple que prévu. Il suffit d&#8217;installer [...]]]></description>
			<content:encoded><![CDATA[<p>Par défaut, Ubuntu ne gère pas les aperçus des fichiers ODF (format utilisé par <strong>OpenOffice.org</strong>), contrairement aux fichiers images, aux fichiers PDF, etc. On se retrouve alors avec une simple icône&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2009/06/oooicon.png"><img src="http://blog.rom1v.com/wp-content/uploads/2009/06/oooicon.png" alt="oooicon" title="oooicon" width="62" height="72" class="aligncenter size-full wp-image-630" /></a></p>
<p>C&#8217;est quand même plus pratique d&#8217;obtenir un aperçu du document comme ceci&nbsp;:<br />
<a href="http://blog.rom1v.com/wp-content/uploads/2009/06/ooothumb.png"><img src="http://blog.rom1v.com/wp-content/uploads/2009/06/ooothumb.png" alt="ooothumb" title="ooothumb" width="80" height="127" class="aligncenter size-full wp-image-631" /></a></p>
<p><em>EDIT: en fait c&#8217;est beaucoup plus simple que prévu.</em></p>
<p>Il suffit d&#8217;installer les paquets <a href="apt://libgsf-bin,imagemagick">libgsf-bin et imagemagick</a>&nbsp;:</p>
<pre>sudo apt-get install libgsf-bin imagemagick</pre>
<p>et de redémarrer la session.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2009/06/apercus-des-fichiers-openoffice-org-dans-nautilus/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Canon PIXMA iP1600 sous Ubuntu Jaunty</title>
		<link>http://blog.rom1v.com/2009/06/canon-pixma-ip1600-sous-ubuntu-jaunty/</link>
		<comments>http://blog.rom1v.com/2009/06/canon-pixma-ip1600-sous-ubuntu-jaunty/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 20:56:46 +0000</pubDate>
		<dc:creator>®om</dc:creator>
				<category><![CDATA[Outils]]></category>
		<category><![CDATA[planet-libre]]></category>
		<category><![CDATA[puf]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[imprimante]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.rom1v.com/?p=610</guid>
		<description><![CDATA[Ce billet est un petit aide-mémoire pour moi-même. EDIT 30/05/2010&#160;: Attention, ceci ne fonctionne pas sous Ubuntu Lucid Lynx (10.04). Je vous conseille de suivre ce post car la procédure change à chaque version… L&#8217;imprimante Canon PIXMA iP1600 fonctionne avec les pilotes de l&#8217;iP2200, disponible sur mon serveur ici (normalement il faut télécharger les paquets [...]]]></description>
			<content:encoded><![CDATA[<p><em>Ce billet est un petit aide-mémoire pour moi-même.</em></p>
<p><em><strong>EDIT 30/05/2010&nbsp;:</strong> Attention, ceci ne fonctionne pas sous Ubuntu Lucid Lynx (10.04). Je vous conseille de suivre <a href="http://forum.ubuntu-fr.org/viewtopic.php?id=61554">ce post</a> car la procédure change à chaque version…</em></p>
<p>L&#8217;imprimante <strong>Canon PIXMA iP1600</strong> fonctionne avec les pilotes de l&#8217;<strong>iP2200</strong>, disponible sur mon serveur <a href="http://dl.rom1v.com/ip1600/">ici</a> <em>(normalement il faut télécharger les paquets en <code>.rmp</code> sur le site de Canon, puis les convertir en <code>.deb</code>, mais je me suis déjà occupé de cette étape)</em>.</p>
<p>Pour télécharger les <code>.deb</code> directement&nbsp;:</p>
<pre>wget http://dl.rom1v.com/ip1600/cnijfilter-{common,ip2200}_2.60-2_i386.deb</pre>
<p>Ensuite il faut les installer. Pour un système 32 bits&nbsp;:</p>
<pre>sudo dpkg -i cnijfilter-*.deb</pre>
<p>Il faut ensuite rajouter des liens car les pilotes n&#8217;utilisent pas les bonnes versions des dépendances&nbsp;:</p>
<pre>sudo ln -s /usr/lib/libtiff.so.{4,3}
sudo ln -s /usr/lib/libpng{12.so.0,.so.3}</pre>
<p>Pour un système 64 bits, c&#8217;est plutôt&nbsp;:</p>
<pre>sudo dpkg -i --force-architecture cnijfilter-*.deb</pre>
<p>et&nbsp;:</p>
<pre>sudo ln -s /usr/lib32/libtiff.so.{4,3}
sudo ln -s /usr/lib32/libpng{12.so.0,.so.3}</pre>
<p>Ensuite, il suffit de brancher, allumer et ajouter l&#8217;imprimante dans Système → Administration → Impression en cliquant sur le bouton <em>Nouveau</em>.<br />
<em>«&nbsp;<strong>Canon iP1600</strong>&nbsp;»</em> doit apparaître dans la liste des périphériques, la sélectionner et cliquer sur <em>Suivant</em>.</p>
<p>Choisir <em>«&nbsp;Fournir un fichier PPD&nbsp;»</em> et sélectionner le fichier&nbsp;:</p>
<pre>/usr/share/cups/model/canonip2200.ppd</pre>
<p>Il ne reste plus qu&#8217;à répondre à quelques questions basiques (choisir un nom pour l&#8217;imprimante…), et voilà. Normalement, ça fonctionne&nbsp;!</p>
<p>Si des problèmes de dépendances persistent (l&#8217;imprimante n&#8217;imprime pas), cette commande peut être utile&nbsp;:</p>
<pre>ldd /usr/local/bin/cifip2200</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.rom1v.com/2009/06/canon-pixma-ip1600-sous-ubuntu-jaunty/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
