blog-source/output/feeds/feed.rss.tutoriel.xml

1105 lines
111 KiB
XML
Raw Normal View History

2014-11-24 22:52:53 +01:00
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Wxcafé</title><link>//wxcafe.net/</link><description></description><atom:link href="//wxcafe.net/feeds/feed.rss.tutoriel.xml" rel="self"></atom:link><lastBuildDate>Thu, 28 Aug 2014 12:16:00 +0200</lastBuildDate><item><title>Installer FreeBSD sur un serveur Online avec MfsBSD</title><link>//wxcafe.net/posts/%D/freebsd-online-mfsbsd/</link><description>&lt;p&gt;J'ai récemment eu l'occasion de louer un serveur chez Online.net (filiale de Illiad)
Voulant depuis pas mal de temps gérer un serveur sous FreeBSD (et tester &lt;a href="http://bhyve.org/"&gt;bhyve&lt;/a&gt;)
et n'ayant pour différentes raisons pas eu l'occasion de le faire sur mon
&lt;a href="http://home.wxcafe.net"&gt;serveur auto-hebergé&lt;/a&gt; ni sur &lt;a href="http://wxcafe.net"&gt;ce serveur ci&lt;/a&gt;,
j'ai commencé a chercher comment le faire sur ce serveur.&lt;/p&gt;
&lt;p&gt;Étant donné que Online ne propose pas directement d'image FreeBSD sur ses serveurs, il m'a fallu
chercher un peu plus loin. Il se trouve que &lt;a href="http://forum.online.net/index.php?/topic/3557-installation-de-freebsd-91-amd64-sur-une-dedibox-lt15k-2013/"&gt;ce post&lt;/a&gt; sur les forums
d'online explique une procédure, mais celle-ci ne fonctionnait pas pour mon serveur en particulier. &lt;/p&gt;
&lt;p&gt;J'ai donc cherché un peu sur internet, puis demandé sur irc (#freebsd-fr@freenode),
ou l'on m'a dirigé vers &lt;a href="http://mfsbsd.vx.sk/"&gt;mfsbsd&lt;/a&gt;, un projet d'installeur
alternatif, minimaliste et simplifié pour FreeBSD.&lt;/p&gt;
&lt;p&gt;Pour installer FreeBSD sur votre serveur, donc, il vous faudra accéder a une
console KVM (dans mon cas personnel, iLO). Cela doit être faisable depuis le
panel Online. Une fois cela fait, lancez une console, puis téléchargez l'image
mfsbsd. Dans la console iLO, choisissez de booter sur une image CD/DVD, puis
choisissez l'image mfsbsd. Ensuite, rebootez le serveur. Choisissez de booter
sur l'image CD/DVD (F11 puis 1). Une fois ceci fait, un FreeBSD a l'air tout
a fait classique va démarrer. Une fois ceci fait, la partie importante arrive:
mfsbsd contient un script d'installation root-on-zfs, nommé logiquement
zfsinstall, qui va se charger de tout le travail pour nous.&lt;/p&gt;
&lt;p&gt;Utilisez donc ce script ainsi : &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;# tout d&amp;#39;abord, wipons le MBR :&lt;/span&gt;
&lt;span class="n"&gt;dd&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;zero&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;da0&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="cp"&gt;# maintenant, installons le système&lt;/span&gt;
&lt;span class="n"&gt;zfsinstall&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="n"&gt;da0&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt; &lt;span class="n"&gt;ftp&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.0-RELEASE/ -s 2G -p root -c&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Avec &lt;code&gt;-g da0&lt;/code&gt; votre disque dur principal, &lt;code&gt;-s 2G&lt;/code&gt; la quantité de swap désirée,
&lt;code&gt;-p root&lt;/code&gt; le nom du zpool, et &lt;code&gt;-c&lt;/code&gt; pour activer la compression. D'autres options
sont disponibles, je vous invite a faire un &lt;code&gt;zfsinstall -h&lt;/code&gt; si mon setup ne vous
convient pas.&lt;/p&gt;
&lt;p&gt;Une fois ceci fait, faites un chroot dans /mnt (ou doit se trouver le nouveau
système) et éditez /etc/rc.conf :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;zfs_load&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;YES&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;sshd_load&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;YES&lt;/span&gt;
&lt;span class="n"&gt;hostname&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;whatever&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;ifconfig_igb0&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;DHCP&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Remplacez whatever par votre hostname, et igb0 par le nom de votre interface
physique connectée a internet. Quittez le chroot, rebootez, et voila, vous avez
maintenant un système FreeBSD tout propre installé sur zfs a découvrir et
utiliser!&lt;/p&gt;
&lt;p&gt;Voila, c'est la fin de ce tutoriel.
(Cela dit, bon courage pour tester bhyve, vu que l'IPv6 chez online est... peu
crédible, disons)&lt;/p&gt;
&lt;p&gt;Bon sinon sur d'autres sujets, j'ai mis en place des bots twitter
&lt;a href="https://twitter.com/wxcafe_ebooks"&gt;wxcafe_ebooks&lt;/a&gt;,
&lt;a href="https://twitter.com/petitefanfare"&gt;petitefanfare&lt;/a&gt;,
&lt;a href="https://twitter.com/capet_ebooks"&gt;capet_ebooks&lt;/a&gt;,
&lt;a href="https://twitter.com/zengisse"&gt;zengisse&lt;/a&gt;,
et &lt;a href="https://wxcafe.net/kim_ebooks"&gt;kim_ebooks&lt;/a&gt;. Ils sont tous basés sur &lt;a href="https://github.com/wxcafe/ebooks_example"&gt;ce
code&lt;/a&gt;, qui vient de
&lt;a href="https://twitter.com/m1sp"&gt;@m1sp&lt;/a&gt;
(&lt;a href="https://github.com/twitter_ebooks"&gt;github.com/twitter_ebooks&lt;/a&gt;). Donc voila.&lt;/p&gt;
&lt;p&gt;A plus&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wxcafe</dc:creator><pubDate>Thu, 28 Aug 2014 12:16:00 +0200</pubDate><guid>tag:wxcafe.net,2014-08-28:posts/%D/freebsd-online-mfsbsd/</guid></item><item><title>Mise en place d'un serveur DNS</title><link>//wxcafe.net/posts/%D/mise-en-place-dun-serveur-dns/</link><description>&lt;p&gt;Le DNS (Domain Name System) est le service permettant la résolution des noms de
domaines en différentes informations : adresses IPv4, adresses IPv6, certificats
DNSSEC ou IPsec, localisation géographique, ou encore texte. En général, le DNS
est utilisé pour résoudre des noms de domaines en adresses IP, et ainsi pour
simplifier la vie de tous les utilisateurs (je doute que tout le monde retienne
de se connecter a &lt;a href="http://173.194.45.66"&gt;http://173.194.45.66&lt;/a&gt;, ou a
&lt;a href="http://199.16.156.70"&gt;http://199.16.156.70&lt;/a&gt;. Voire même a
&lt;a href="http://5.39.76.46"&gt;http://5.39.76.46&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Cependant, le DNS est un système qui date de 1984, et les exigences de l'époque
en termes d'expérience utilisateur n'étaient pas forcément aussi importantes que
de nos jours. La configuration des serveurs DNS peut ainsi être assez
contre intuitive.
Cela étant dit, comprendre le fonctionnement de DNS et contrôler ses
enregistrements est important.&lt;/p&gt;
&lt;p&gt;Tout d'abord, une petite explication théorique. Le DNS fonctionne de la même
façon que le système de fichiers : en arborescence. Cependant, là ou la racine
du FS est &lt;code&gt;/&lt;/code&gt;, celle de DNS est &lt;code&gt;.&lt;/code&gt;, et là ou il convient d'écrire, par exemple,
&lt;code&gt;/usr/&lt;/code&gt; et ou la progression se fait de gauche a droite pour le FS, pour DNS le
&lt;code&gt;.&lt;/code&gt; n'est pas obligatoire et la progression se fait de droite a gauche. Par
exemple, le tld(top level domain, domaine de haut niveau) &lt;code&gt;com&lt;/code&gt;, et le domaine
&lt;code&gt;google.com&lt;/code&gt; appartient a &lt;code&gt;com&lt;/code&gt;, on écrit donc &lt;code&gt;google.com&lt;/code&gt; sans écrire le point
a la fin de façon courante.&lt;/p&gt;
&lt;p&gt;Le reverse DNS est une variante du DNS "classique" permettant de résoudre les
adresses IP en nom de domaine. Ainsi, 5.39.46.76 a pour domaine wxcafe.net.
Cependant, le reverse DNS n'a, par définition, pas de TLD sur lequel se diriger
quand on lui adresse une query. Les "adresses" que l'on query en reverse DNS
sont donc constituées de l'adresse IP, &lt;strong&gt;&lt;em&gt;dans le sens contraire a l'ordre
habituel&lt;/em&gt;&lt;/strong&gt;, et du faux domaine .in-addr.arpa
Par exemple, pour connaitre le reverse de 5.39.46.76, il faudra faire &lt;code&gt;dig PTR
76.46.39.5.in-addr.arpa&lt;/code&gt;. La réponse sera, évidemment, &lt;code&gt;wxcafe.net&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Voyons maintenant comment mettre en place son propre serveur DNS. Tout d'abord,
quelques informations. DNS fonctionne sur le port 53 en UDP, et la commande
utilisée pour faire des tests DNS est &lt;code&gt;dig&lt;/code&gt;. Le DNS fonctionne avec des
"enregistrements", records en anglais. Par exemple, un record A indique une
adresse IP, un record NS indique un Serveur de nom, etc. &lt;code&gt;dig&lt;/code&gt; se base sur ces
records : par défaut, il ira chercher le(s) record(s) A correspondant(s) au nom
de domaine que vous donnez en argument, mais en précisant un autre type de
record, vous pouvez obtenir n'importe quelle information : par exemple, &lt;code&gt;dig NS
wxcafe.net&lt;/code&gt; devrait vous renvoyer&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;&lt;/span&gt; DiG &lt;span class="m"&gt;9.8.4&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;rpz2&lt;span class="o"&gt;+&lt;/span&gt;rl005.12&lt;span class="o"&gt;-&lt;/span&gt;P1 &lt;span class="o"&gt;&amp;lt;&amp;lt;&amp;gt;&amp;gt;&lt;/span&gt; NS wxcafe.net
&lt;span class="p"&gt;;;&lt;/span&gt; global options&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;cmd
&lt;span class="p"&gt;;;&lt;/span&gt; Got answer&lt;span class="o"&gt;:&lt;/span&gt;
&lt;span class="p"&gt;;;&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&amp;gt;&lt;/span&gt;HEADER&lt;span class="o"&gt;&amp;lt;&amp;lt;-&lt;/span&gt; opcode&lt;span class="o"&gt;:&lt;/span&gt; QUERY&lt;span class="p"&gt;,&lt;/span&gt; status&lt;span class="o"&gt;:&lt;/span&gt; NOERROR&lt;span class="p"&gt;,&lt;/span&gt; id&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;13846&lt;/span&gt;
&lt;span class="p"&gt;;;&lt;/span&gt; flags&lt;span class="o"&gt;:&lt;/span&gt; qr rd ra&lt;span class="p"&gt;;&lt;/span&gt; QUERY&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; ANSWER&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; AUTHORITY&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; ADDITIONAL&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
&lt;span class="p"&gt;;;&lt;/span&gt; QUESTION SECTION&lt;span class="o"&gt;:&lt;/span&gt;
&lt;span class="p"&gt;;&lt;/span&gt;wxcafe.net. IN NS
&lt;span class="p"&gt;;;&lt;/span&gt; ANSWER SECTION&lt;span class="o"&gt;:&lt;/span&gt;
wxcafe.net. &lt;span class="m"&gt;3600&lt;/span&gt; IN NS ns.wxcafe.net.
wxcafe.net. &lt;span class="m"&gt;3600&lt;/span&gt; IN NS ns.home.wxcafe.net.
&lt;span class="p"&gt;;;&lt;/span&gt; Query time&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;60&lt;/span&gt; msec
&lt;span class="p"&gt;;;&lt;/span&gt; SERVER&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10.0.42.1&lt;/span&gt;&lt;span class="c1"&gt;#53(10.0.42.1)&lt;/span&gt;
&lt;span class="p"&gt;;;&lt;/span&gt; WHEN&lt;span class="o"&gt;:&lt;/span&gt; Tue Dec &lt;span class="m"&gt;10&lt;/span&gt; &lt;span class="m"&gt;13&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="m"&gt;31&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="m"&gt;18&lt;/span&gt; &lt;span class="m"&gt;2013&lt;/span&gt;
&lt;span class="p"&gt;;;&lt;/span&gt; MSG SIZE rcvd&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="m"&gt;67&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Comme vous pouvez le voir, les serveurs DNS principaux pour
&lt;a href="http://wxcafe.net"&gt;wxcafe.net&lt;/a&gt; sont &lt;code&gt;ns.wxcafe.net&lt;/code&gt; et &lt;code&gt;ns.home.wxcafe.net&lt;/code&gt;,
qui sont respectivement des alias pour &lt;code&gt;wxcafe.net&lt;/code&gt; et &lt;code&gt;home.wxcafe.net&lt;/code&gt;. Ainsi,
chacun fait autorité pour lui même, et le problème évident est que le résolveur
ne peut résoudre la query si il est renvoyé encore et encore vers le même
serveur. Il convient donc de définir dans le même fichier de configuration
l'adresse de ces deux serveurs. Ainsi, le résolveur, au bout de son deuxième
loop, se rendra compte qu'il est en train de faire une boucle infinie et
demandera l'adresse au serveur auquel il est connecté. La première indication de
direction se fait grâce au serveur du TLD.&lt;/p&gt;
&lt;p&gt;La configuration de bind est assez simple dans le principe, le plus complexe
étant en fait d'écrire les fichiers de zone.
La configuration de bind sous debian se fait dans le dossier /etc/bind/. Il
existe 4 fichiers de configuration principaux : &lt;code&gt;named.conf&lt;/code&gt;,
&lt;code&gt;named.conf.default-zones&lt;/code&gt;, &lt;code&gt;named.conf.local&lt;/code&gt; et &lt;code&gt;named.conf.options&lt;/code&gt;.
&lt;code&gt;named.conf&lt;/code&gt; contient les options par défaut de bind, &lt;code&gt;named.conf.default-zones&lt;/code&gt;
les déclarations des zones par défaut (auxquelles il vaut mieux ne pas toucher),
&lt;code&gt;named.conf.local&lt;/code&gt; contient les déclarations de vos zones, et
named.conf.options contient les options que vous rajoutez pour changer le
comportement de bind.&lt;/p&gt;
&lt;p&gt;Pour commencer, il convient de préciser que nous allons parler ici du cas dans
lequel se trouve wxcafe.net: deux domaines dont nous voulons faire l'autorité,
deux serveurs DNS, et un service de résolution récursive limitée a quelques IPs
(notamment mon accès chez moi). &lt;/p&gt;
&lt;p&gt;Examinons tout d'abord les fichiers de configuration de named.
&lt;code&gt;named.conf.local&lt;/code&gt; contient les définitions des zones forward et reverse.
Sur wxcafe.net, les zones &lt;code&gt;wxcafe.net&lt;/code&gt; et &lt;code&gt;76.46.39.5.in-addr.arpa&lt;/code&gt; sont gérées
en master, et les zones &lt;code&gt;home.wxcafe.net&lt;/code&gt; et &lt;code&gt;103.177.67.80.in-addr.arpa&lt;/code&gt; sont
gérées en slave. Nous n'examinerons ici que les déclarations de zones sur ce
serveur, et pas sur home., car elles sont sensiblement les mêmes. La différence
principale étant que l'un héberge en slave les masters de l'autre.
Le fichier &lt;code&gt;named.conf.local&lt;/code&gt; sur wxcafe.net contient donc &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;zone&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;wxcafe.net&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="n"&gt;master&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;/etc/bind/master/wxcafe.net&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;allow&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;transfer&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="mf"&gt;80.67.177.103&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="n"&gt;zone&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;home.wxcafe.net&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="n"&gt;slave&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;/etc/bind/slave/home.wxcafe.net&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;masters&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="mf"&gt;80.67.177.103&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="n"&gt;zone&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;46.76.39.5.in-addr.arpa&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="n"&gt;master&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;/etc/bind/master/46.76.39.5.in-addr.arpa&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;allow&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;transfer&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="mf"&gt;80.67.177.103&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="n"&gt;zone&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;103.177.67.80.in-addr.arpa&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="n"&gt;slave&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;/etc/bind/slave/103.177.67.80.in-addr.arpa&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;masters&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="mf"&gt;80.67.177.103&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cela devrait être relativement clair. Globalement, les zones master ont un
fichier dans &lt;code&gt;/etc/bind/master/&lt;/code&gt;, et les slaves un fichier dans
&lt;code&gt;/etc/bind/slave/&lt;/code&gt;, les masters autorisent le transfert vers home.wxcafe.net
tandis que les slaves déclarent home.wxcafe.net comme master, et le reste est
assez parlant.&lt;/p&gt;
&lt;p&gt;Voyons maintenant le fichier de zone concernant wxcafe.net, soit
&lt;code&gt;/etc/bind/master/wxcafe.net&lt;/code&gt; : &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;TTL&lt;/span&gt; &lt;span class="mi"&gt;3600&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="n"&gt;hour&lt;/span&gt;
&lt;span class="err"&gt;@&lt;/span&gt; &lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;SOA&lt;/span&gt; &lt;span class="n"&gt;ns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wxcafe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="n"&gt;wxcafe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wxcafe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="mi"&gt;2014011001&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;serial&lt;/span&gt;
&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;refresh&lt;/span&gt;
&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;retry&lt;/span&gt;
&lt;span class="mi"&gt;168&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;expire&lt;/span&gt;
&lt;span class="mi"&gt;300&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;negative&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="n"&gt;ttl&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="n"&gt;servers&lt;/span&gt;
&lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;NS&lt;/span&gt; &lt;span class="n"&gt;ns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wxcafe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;NS&lt;/span&gt; &lt;span class="n"&gt;ns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wxcafe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Mail&lt;/span&gt; &lt;span class="n"&gt;exchangers&lt;/span&gt;
&lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;MX&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="n"&gt;wxcafe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;SPF&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;v=spf1 ip4:5.39.76.46 a -all&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Main&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;AAAA&lt;/span&gt; &lt;span class="n"&gt;records&lt;/span&gt;
&lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="mf"&gt;5.39.76.46&lt;/span&gt;
&lt;span class="n"&gt;ns&lt;/span&gt; &lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="mf"&gt;5.39.76.46&lt;/span&gt;
&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;Aliases&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;CNAME&lt;/span&gt; &lt;span class="n"&gt;wxcafe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;[...]&lt;/span&gt;
&lt;span class="n"&gt;www&lt;/span&gt; &lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;CNAME&lt;/span&gt; &lt;span class="n"&gt;wxcafe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wxcafe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="n"&gt;definition&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;ORIGIN&lt;/span&gt; &lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wxcafe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="err"&gt;@&lt;/span&gt; &lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;NS&lt;/span&gt; &lt;span class="n"&gt;ns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wxcafe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;NS&lt;/span&gt; &lt;span class="n"&gt;ns&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wxcafe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="n"&gt;ns&lt;/span&gt; &lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="mf"&gt;80.67.177.103&lt;/span&gt;
&lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="mf"&gt;80.67.177.103&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Alors. Expliquons ligne par ligne.&lt;br /&gt;
Tout d'abord, le TTL (time to live) est un paramètre définissant le temps
pendant lequel les serveurs récursif (qui font un cache des données) doivent
cacher ce fichier de zone. &lt;br /&gt;
Le @ est un raccourci pour exprimer le nom de domaine courant. Ici, donc,
wxcafe.net. &lt;br /&gt;
Maintenant, nous arrivons a un record important : SOA (Start of Authority).
Ce record prend de nombreux arguments, dans l'ordre :&lt;br /&gt;
- Le nameserver autoritaire pour le nom de domaine en question,&lt;br /&gt;
- L'adresse email du responsable de cette zone, avec le premier point
remplacé par un @, &lt;/p&gt;
&lt;p&gt;puis entre parenthèses :&lt;br /&gt;
- Le numéro de série ("version" du fichier de zone, ici au format
YYYYMMDDNN) &lt;br /&gt;
- La période de refresh, période entre chaque mise a jour du nameserver
authoritaire secondaire, &lt;br /&gt;
- La période de retry, le temps entre chaque essai de mise a jour si le
nameserveur authoritaire primaire est indisponible, &lt;br /&gt;
- La période d'expire, le temps qu'attendra le serveur autoritaire
secondaire avant de supprimer les informations de son cache si le primaire
reste indisponible, et enfin &lt;br /&gt;
- La période de TTL négatif, le temps qu'attendra le serveur secondaire
avant de ne plus offrir les informations de cette zone si le serveur
primaire est injoignable. &lt;/p&gt;
&lt;p&gt;Bon, tout ceci est peut-être un peu confus, mais ce n'est pas le record le plus
important a lire (pour les humains en tout cas). Continuons : &lt;/p&gt;
&lt;p&gt;NS (nameserver) permet de désigner les différents nameservers faisant autorité
pour ce domaine. &lt;/p&gt;
&lt;p&gt;MX permet d'indiquer ou il convient d'envoyer les emails pour ce domaine.
SPF est un record d'authentification pour les emails.
Les records A désignent l'association entre un nom de domaine et une adresse
IPv4. Les records AAAA font de même pour les IPv6, mais malheureusement ce site
n'est pas encore en IPv6.&lt;/p&gt;
&lt;p&gt;Les CNAME (canonical name) sont en quelque sorte des alias, ils permettent de
mettre en place des domaines exactement semblables a d'autre (ce qui permet par
exemple de filtrer ensuite avec les Virtual Hosts d'Apache, pour le web)&lt;/p&gt;
&lt;p&gt;Enfin, la partie qui suit commence avec une déclaration $ORIGIN, ce qui permet
de changer la valeur du @ et des noms de domaine non complets (qui ne se
terminent pas avec un .). Ainsi, la partie suivant définit les nameservers et
l'adresse IP principale de home.wxcafe.net et de ns.home.wxcafe.net. Comme on
l'a vu, étant donné que ce nom de domaine est géré par un autre serveur DNS,
cela permet de rediriger les requêtes nous parvenant et demandant un domaine se
trouvant sous home.wxcafe.net.&lt;/p&gt;
&lt;p&gt;Les autres fichiers de zone sont sensiblement similaires, avec les quelques
différences n'étant en fin de compte que des différences de valeurs (dues au
fait que, eh bah, c'est pas les mêmes domaines...).&lt;/p&gt;
&lt;p&gt;Voila donc une courte explication de ce qu'est le DNS. Bien entendu, tout n'est
pas expliqué ici, je ne suis passé que sur ce qui est en place au niveau de
wxcafe.net, et encore, rapidement. Si vous voulez en savoir plus, vous pouvez
aller vous renseigner directement a la source : le &lt;a href="https://www.ietf.org/rfc/rfc1034.txt"&gt;RFC
1034&lt;/a&gt; et le
&lt;a href="https://www.ietf.org/rfc/rfc1035.txt"&gt;RFC 1035&lt;/a&gt;. Dans un autre style (bien plus
avancé) le blog de &lt;a href="http://bortzmeyer.org"&gt;Stéphane Bortzmeyer&lt;/a&gt; est interessant
aussi.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wxcafe</dc:creator><pubDate>Mon, 24 Feb 2014 02:49:00 +0100</pubDate><guid>tag:wxcafe.net,2014-02-24:posts/%D/mise-en-place-dun-serveur-dns/</guid></item><item><title>Sed Basics</title><link>//wxcafe.net/posts/%D/sed-basics/</link><description>&lt;p&gt;&lt;code&gt;sed&lt;/code&gt; est un outil Unix très largement utilisé et très pratique pour manipuler
le texte (ce qui se montre relativement indispensable dans un environnement
Unix, puisque ce système est assez porté sur le texte). Cependant, il assez peu
connu en détail, et la plupart du temps une seule fonction est utilisée : le
remplacement de texte.&lt;br /&gt;
Or &lt;code&gt;sed&lt;/code&gt; a bien plus de possibilités que ça, comme nous allons le voir.&lt;/p&gt;
&lt;p&gt;Tout d'abord, rappelons les bases : &lt;code&gt;sed&lt;/code&gt; est un programme Unix de base, mais
aussi un langage de manipulation de texte dérivé de &lt;code&gt;ed&lt;/code&gt;, l'éditeur original.
&lt;code&gt;ed&lt;/code&gt; est un éditeur de ligne, conçu a l'époque ou les ordinateurs n'étaient pas
personnels et étaient utilisés avec des &lt;a href="http://fr.wikipedia.org/wiki/telescripteur"&gt;téléscripteurs&lt;/a&gt;, c'est a dire des
machines dépourvues d'écrans et ne permettant donc pas l'utilisation d'éditeurs
dits "visuels", tels que vim, emacs, et globalement tous les éditeurs ayant un
curseur et affichant plusieurs lignes. &lt;code&gt;sed&lt;/code&gt; est donc une évolution de &lt;code&gt;ed&lt;/code&gt;, le
s signifiant stream, &lt;code&gt;sed&lt;/code&gt; est un éditeur de flux, prenant donc avantage du
concept Unixien de flux de données (voir &lt;a href="http://fr.wikipedia.org/wiki/Flux_standard"&gt;Flux standards&lt;/a&gt;) pour éditer plus d'une ligne a la fois.
En pratique, &lt;code&gt;sed&lt;/code&gt; est principalement utilisé sur des fichiers.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sed&lt;/code&gt; a quelques options pratique, notamment &lt;code&gt;-s&lt;/code&gt; qui permet d'empêcher
l'affichage systématique des lignes traitées, ou bien &lt;code&gt;-i&lt;/code&gt; (pour GNU sed) qui
permet de rediriger l'output dans le fichier d'input. Cela dit, l'intérêt unique
du programme est son langage de manipulation de texte.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ed&lt;/code&gt;, et donc &lt;code&gt;sed&lt;/code&gt;, utilise un langage basé sur les séparations (en général des
/). Ainsi, la commande de base dans &lt;code&gt;sed&lt;/code&gt; est &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;regex&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;qui permet de ne sélectionner que les lignes qui matchent [regex] (et donc de
n'exécuter les commandes qui suivent que sur ces lignes.) &lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
La commande &lt;code&gt;sed&lt;/code&gt; la plus utilisée est bien entendu le &lt;strong&gt;s&lt;/strong&gt;, qui s'utilise de
la façon suivante : &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;old&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;qui se propose donc de remplacer (substitute) [old text] (qui peut être une
regex) par [new text] (qui doit être un texte fixe, avec quelques
exceptions), en appliquant [options], la plus connue des options étant &lt;code&gt;g&lt;/code&gt;,
qui permet d'appliquer la commande affectée a toutes les occurrences du texte
matché sur la/les lignes concernée-s.&lt;br /&gt;
Les exceptions a la "fixité" de [new text] sont particulièrement
intéressantes. En effet, &lt;code&gt;sed&lt;/code&gt; utilise un langage de regex plutôt standard,
excepté le fait qu'il permet jusqu'à 9 "holding spaces", qui sont délimités par
\( et \), et qui sont représentées dans le texte de remplacement par \1 à
\9.&lt;/p&gt;
&lt;p&gt;Par exemple, la commande &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;sed&lt;/span&gt; &lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hello&lt;/span&gt; &lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;sur le texte "hello world world" renverrait comme résultat&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;hello&lt;/span&gt; &lt;span class="n"&gt;world&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;De la même façon, le symbole &lt;code&gt;&amp;amp;&lt;/code&gt; dans le texte de remplacement représente le
texte original. Ainsi, la commande &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;sed&lt;/span&gt; &lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;hello&lt;/span&gt; &lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="o"&gt;/&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;sur le texte "hello world" renverrait comme résultat&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;hello&lt;/span&gt; &lt;span class="n"&gt;world&lt;/span&gt; &lt;span class="n"&gt;world&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;Une autre commande utile est &lt;strong&gt;p&lt;/strong&gt;, qui sert a afficher le texte présent dans
l'espace courant :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;regex&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;sed&lt;/code&gt; stocke en effet la ligne sur laquelle il travaille dans un espace mémoire
dédié, que j'appelle l'espace courant (pattern space en anglais). La commande
&lt;code&gt;p&lt;/code&gt; affiche (print) ce qui ce trouve dans cet espace. La /[regex]/ réduit
le pattern space de façon a ce qu'il ne contienne que les lignes matchant, et le
&lt;strong&gt;p&lt;/strong&gt; affiche donc ce dernier.&lt;/p&gt;
&lt;p&gt;Un autre exemple de commande sont &lt;strong&gt;c&lt;/strong&gt;, &lt;strong&gt;i&lt;/strong&gt; et &lt;strong&gt;a&lt;/strong&gt;, qui s'utilisent ainsi :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;c&lt;/span&gt; \
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;De la même façon, pour le i : &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;i&lt;/span&gt; \
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et de même pour a. &lt;/p&gt;
&lt;p&gt;Ces trois commandes s'utilisent de la même façon pour la bonne raison qu'elles
sont très proches. &lt;strong&gt;i&lt;/strong&gt; sert a insérer du texte &lt;em&gt;avant&lt;/em&gt; le pattern space. &lt;strong&gt;a&lt;/strong&gt;
sert a insérer du texte &lt;em&gt;après&lt;/em&gt; le pattern space, et enfin &lt;strong&gt;c&lt;/strong&gt; sert a
remplacer &lt;em&gt;tout&lt;/em&gt; le pattern space. Les trois utilisent [text] comme
remplacement ou insert.
Attention, les insertions se font sur la ligne précédant ou suivant le pattern
space, et non sur la ligne en question.&lt;/p&gt;
&lt;p&gt;Enfin, dernière commande ne fonctionnant que ligne par ligne, &lt;strong&gt;d&lt;/strong&gt; :
/[regex]/d
&lt;strong&gt;d&lt;/strong&gt; (delete) supprime les contenus du pattern space.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sed&lt;/code&gt; est un outil puissant, mais complexe. Dans un prochain article, je
parlerai des commandes multilignes et des labels.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wxcafe</dc:creator><pubDate>Sun, 18 Aug 2013 22:57:00 +0200</pubDate><guid>tag:wxcafe.net,2013-08-18:posts/%D/sed-basics/</guid></item><item><title>Le chiffrement de partitions avec dm-crypt et device-mapper</title><link>//wxcafe.net/posts/%D/le-chiffrement-de-partition-avec-dm-crypt-et-device-mapper/</link><description>&lt;p&gt;Le chiffrement en tant que concept informatique est traditionnellement associé
au chiffrement de fichiers, c'est a dire au fait de passer d'un fichier &lt;em&gt;en
clair&lt;/em&gt; a un fichier chiffré dit &lt;em&gt;cyphertext&lt;/em&gt;. Cependant, il ne se limite pas a
ça, et peut aussi servir a garantir l'intégrité d'un système d'exploitation, ou
bien la confidentialité d'un support de stockage, par exemple. Nous allons ici
voir comment mettre en place un système de ce type sous GNU/Linux. Cet article
n'a pas pour but de vous apprendre a mettre en place un système basé sur une
procédure de boot sécurisée, mais plutôt d'expliquer les concepts qui entrent en
jeu dans l'utilisation du sous-système du noyau Linux &lt;a href="http://en.wikipedia.org/wiki/dm-crypt"&gt;&lt;strong&gt;dm_crypt&lt;/strong&gt;&lt;/a&gt; et de
présenter un rapide tutoriel concernant la création d'un support chiffré sur
lequel garder vos informations confidentielles (par exemple, votre &lt;a href="http://wxcafe.net/posts/11/19/12/la-cryptographie-avec-pgp-et-principalement-gnupg"&gt;clé GPG&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;dm-crypt est un sous-système de device-mapper, qui est lui-même un sous-système
du noyau Linux, et s'appuie sur &lt;a href="http://en.wikipedia.org/wiki/Linux_Unified_Key_Setup"&gt;LUKS&lt;/a&gt;, un standard de chiffrement
de disques. Comme son nom l'indique, device-mapper est un système qui a pour but
de &lt;strong&gt;mapper&lt;/strong&gt; des &lt;strong&gt;block devices&lt;/strong&gt;. Pour être plus clair, le kernel considère
comme "block device" tout fichier spécial (en gros, les fichiers disques dans
&lt;code&gt;/dev/&lt;/code&gt;, les systèmes de fichiers type LVM, les RAID logiciels, et, dans le
cas qui nous intéresse, les systèmes de fichier chiffrés). Son mode de
fonctionnement est simple : a partir d'un "fichier de périphérique" (trad.
Wikipédia), il en "crée" un nouveau, virtuel, ayant des propriétés différentes.
Par exemple, un disque partitionné via LVM apparaîtra comme un seul disque dans
/dev, et device-mapper est requis pour pouvoir en voir les partitions (qui
apparaîtront donc dans /dev/mapper)&lt;/p&gt;
&lt;p&gt;Ainsi, dans le cas qui nous intéresse ici, device-mapper prend un système de
fichier chiffré, crée un périphérique virtuel non chiffré dans /dev/mapper, et
déchiffre a la volée tous les accès disques a ce périphérique non chiffré en les
traduisant sur le système de fichier chiffré, le tout de manière tout a fait
transparente pour les applications utilisant le disque en question. Cela induit
bien entendu une baisse de performance relativement significative dans le cas
d'un chiffrement du système de fichier root, mais quasiment insignifiante dans
le cas de chiffrement de partitions de données.&lt;/p&gt;
&lt;p&gt;D'ailleurs, certain-e-s se demandent peut-être comment le système peut démarrer
si le système de fichier root est chiffré. Dans ce cas précis, la procédure de
boot &lt;strong&gt;&lt;em&gt;doit&lt;/em&gt;&lt;/strong&gt; s'appuyer sur une image initrd (l'initrd est un système de
fichier minimal qui sert uniquement a initialiser le système. Les kernels de
base de la plupart des distributions GNU/Linux en utilisent un dans tous les
cas, pour des raisons de compatibilité) et sur une partition de boot qui elle
n'est pas chiffrée. Ainsi, le bootloader de niveau 2 (grub, syslinux,...) charge
en mémoire le kernel depuis la partition de boot, puis ce dernier décompresse et
charge l'initrd en RAM, celui-ci a son tour lance un script permettant de
charger les modules nécessaires a la suite du boot (que ce soit pour un boot
sans disque root local, ou bien comme ici avec un système chiffré), puis le
système de fichier "cible" est remonté sur la racine, et l'initrd est démonté
est la RAM qu'il occupait est libérée, puis la procédure de boot normale reprend
depuis le système de fichier maintenant monté sur la racine.&lt;/p&gt;
&lt;p&gt;La méthode la plus évidente pour contourner le chiffrement du disque est alors
de remplacer le fichier compressé initrd dans /boot, qui n'est pas chiffrée, par
un autre modifié, copiant par exemple la phrase de passe permettant de
déchiffrer la partition cible. Plusieurs méthodes permettent de se prémunir
contre ce genre d'attaques : l'une des plus simple est de faire un checksum du
fichier initrd utilisé et reconnu comme sûr, et de vérifier lors du &lt;em&gt;vrai&lt;/em&gt; boot
que l'initrd présente toujours le même checksum. Cela dit, cette méthode a
l'inconvénient d'intervenir après les faits, et de nécessiter au moins un accès
a un fichier initrd reconnu comme sûr.&lt;br /&gt;
Une autre approche consisterait a placer le système de fichier /boot sur un
périphérique dédié, protégé en écriture de façon matérielle (par exemple, une
carte SD) ou, de façon encore plus efficace, sur un périphérique chiffré et
protégé en écriture de façon matérielle. Ainsi, il n'est pas possible pour un
attaquant de modifier ce système de fichier, et l'initrd est alors toujours de
confiance. Cependant, cela a pour conséquence de rendre la mise a jour de
l'initrd et du noyau &lt;em&gt;beaucoup&lt;/em&gt; plus difficile qu'elle ne le serait sans.&lt;/p&gt;
&lt;p&gt;Pour en revenir aux systèmes de fichiers chiffrés, leur gestion est faite par un
programme dédié, &lt;code&gt;cryptsetup&lt;/code&gt;. Ce dernier était en charge de cryptoloop,
l'ancien sous-système de chiffrement du kernel Linux (déprécié depuis), et est
maintenant responsable de l'utilisation &lt;em&gt;userspace&lt;/em&gt; de dm-crypt, qui pour sa
part est entièrement &lt;em&gt;kernel-space&lt;/em&gt;. Cryptsetup permet ainsi le chiffrement, la
manipulation (montage/démontage/...) et la gestion de clé des systèmes de fichier
LUKS. Cryptsetup est cependant conçu pour être utilisé en tant que root, et les
utilisateurs qui veulent monter de systèmes de fichiers chiffrés devront ainsi
obligatoirement être capables de le faire en tant que root. &lt;/p&gt;
&lt;p&gt;Voyons comment il faudrait procéder pour créer une image disque chiffrée de 1Go :&lt;br /&gt;
Tout d'abord, il nous faut créer le fichier qui contiendra l'image. Pour cela,
dans une situation réelle ou l'on cherche a chiffrer un disque, il convient
d'utiliser /dev/urandom comme source, pour éviter la détection du système de
fichier chiffré sur le disque.
Ici, par exemple, nous allons faire : &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;dd&lt;/span&gt; &lt;span class="n"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1000000&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;urandom&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Maintenant que notre image est créée, nous pouvons la chiffrer : &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;sudo&lt;/span&gt; &lt;span class="n"&gt;cryptsetup&lt;/span&gt; &lt;span class="n"&gt;luksFormat&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;cryptsetup&lt;/code&gt; va alors nous demander si nous sommes absolument surs de vouloir
formater ce disque (nous allons donc valider en tapant YES), puis une
passphrase. Il convient ici de choisir une passphrase particulièrement sûre,
puisque toute personne ayant accès a la passphrase aura aussi accès au disque et
donc a vos secrets.&lt;br /&gt;
Une fois cela fait, nous allons mapper cette image : &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;sudo&lt;/span&gt; &lt;span class="n"&gt;cryptsetup&lt;/span&gt; &lt;span class="n"&gt;luksOpen&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="n"&gt;crypto&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;cryptsetup&lt;/code&gt; nous redemande la passphrase, charge pendant quelques secondes,
puis nous redonne le prompt. Que s'est-il passé? En cherchant un peu, nous
voyons qu'il n'y a pas de nouveau disque dans /dev. C'est tout a fait normal. En
effet, cryptsetup (et par lui, device-mapper et dm-crypt) ne monte pas les
systèmes de fichiers chiffrés, il les mappe, et ça n'a rien a voir. On remarque
qu'est apparu dans /dev/mapper le fichier crypto. Ce fichier est le disque
virtuel qui correspond a notre image. Il se comporte comme toute partition, et
peut donc être monté, formaté, etc (il ne peut cependant pas être partitionné.
Il se comporte en effet comme une partition, et non comme un véritable disque.)
Bon, ceci fait, notre disque virtuel n'est pas formaté. Il nous reviens donc de
le faire, pour pouvoir l'utiliser. &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;sudo&lt;/span&gt; &lt;span class="n"&gt;mkfs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ext4&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mapper&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;crypto&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Maintenant que notre disque est formaté, il peut être monté : &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;sudo&lt;/span&gt; &lt;span class="n"&gt;mount&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mapper&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;crypto&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mnt&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et voila, nous avons un système de fichier fonctionnel et chiffré! Si vous
voulez vérifier, un &lt;code&gt;mount | grep crypto&lt;/code&gt; devrait vous donner le résultat
suivant : &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mapper&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;crypto&lt;/span&gt; &lt;span class="n"&gt;on&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;mnt&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="n"&gt;ext4&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rw&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;relatime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;ordered&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez maintenant commencer a stocker tous vos secrets sur ce fichier, ils
sont (en fonction de votre passphrase) en sécurité. &lt;/p&gt;
&lt;p&gt;Pour résumer :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Pour monter vos partitions : &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nx"&gt;sudo&lt;/span&gt; &lt;span class="nx"&gt;cryptsetup&lt;/span&gt; &lt;span class="nx"&gt;luksOpen&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;fichier&lt;/span&gt; &lt;span class="nx"&gt;chiffré&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;nom&lt;/span&gt; &lt;span class="nx"&gt;de&lt;/span&gt; &lt;span class="nx"&gt;disque&lt;/span&gt; &lt;span class="nx"&gt;virtuel&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nx"&gt;sudo&lt;/span&gt; &lt;span class="nx"&gt;mount&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;dev&lt;/span&gt;&lt;span class="p"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;mapper&lt;/span&gt;&lt;span class="o"&gt;/&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;nom&lt;/span&gt; &lt;span class="nx"&gt;de&lt;/span&gt; &lt;span class="nx"&gt;disque&lt;/span&gt; &lt;span class="nx"&gt;virtuel&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;emplacement&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pour démonter vos partitions : &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nx"&gt;sudo&lt;/span&gt; &lt;span class="nx"&gt;umount&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;emplacement&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nx"&gt;sudo&lt;/span&gt; &lt;span class="nx"&gt;cryptsetup&lt;/span&gt; &lt;span class="nx"&gt;luksClose&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;nom&lt;/span&gt; &lt;span class="nx"&gt;de&lt;/span&gt; &lt;span class="nx"&gt;disque&lt;/span&gt; &lt;span class="nx"&gt;virtuel&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour simplifier la vie de tous, j'ai créé deux petits scripts vous permettant de
créer et de monter/démonter vos images/disques chiffré-e-s en une seule
commande. Ils se trouvent sur &lt;a href="https://github.com/wxcafe/cryptoscripts"&gt;github&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Par ailleurs, si vous comptez transferer votre image disque sur un véritable
disque (ou clé usb, ou autre), il est préférable de créer une partition de
taille appropriée et de faire un &lt;code&gt;dd if=votre_image of=/dev/votre_partition&lt;/code&gt;
pour ce faire.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wxcafe</dc:creator><pubDate>Wed, 10 Jul 2013 03:18:00 +0200</pubDate><guid>tag:wxcafe.net,2013-07-10:posts/%D/le-chiffrement-de-partition-avec-dm-crypt-et-device-mapper/</guid></item><item><title>Monter son propre serveur, partie 1: le serveur et l'apache.</title><link>//wxcafe.net/posts/%D/monter-son-propre-serveur-partie-1/</link><description>&lt;p&gt;Il y a un certain temps, j'avais parlé du concept du self-hosting. Il
s'agit de posséder son propre serveur, et donc, par extension, ses
données. &lt;/p&gt;
&lt;p&gt;Bien entendu, il n'est pas nécessaire pour cela de posséder
physiquement son propre serveur (encore que ce soit possible, mais ce
n'est pas le sujet abordé ici.)&lt;br /&gt;
Nous expliquerons ici les étapes nécessaires pour arriver a avoir un
serveur utilisable, du moment ou vous arrivez sur le système fraichement
installé, au moment ou vous possédez un serveur avec tous les paquets
nécessaires a l'utilisation que l'on veut en faire ici d'installés.
Cette partie va consister a paramétrer le système (ici un debian
squeeze. Il est bien sur possible de faire la même chose avec a peu près
toutes les distributions Linux disponibles, tout comme avec les BSD et
tous les autres systèmes UNIX, mais je vais ici me limiter a debian 6.0.x
squeeze, parce que c'est une distribution simple a utiliser comme
serveur, stable, et facile a configurer (puisqu'une bonne partie de la
configuration est déjà faite et incluse dans le paquet), donc adaptée au
but de cet article, a savoir rendre l'installation simple et
compréhensible).&lt;/p&gt;
&lt;p&gt;La première chose a faire est bien entendu d'obtenir le serveur en lui
même. Cette partie de la chose ne sera pas traitée dans cet article. Il
existe en effet un nombre infini d'obtenir un serveur, que ce soit en le
louant chez OVH/1&amp;amp;1/n'importe quel autre hébergeur commercial, en
participant a un système d'hébergement collaboratif (je vous laisse
chercher), en achetant un serveur et en le faisant fonctionner de chez
vous, en utilisant un vieux PC... Bref, les possibilités sont multiples.
Dès lors que vous avez accès a un système debian serveur, peu importe sur
quel matériel il fonctionne, et a priori peu importe aussi la manière
dont vous y accédez, le résultat est le même (et la procédure aussi...).
Dans cet article, nous parlerons de la configuration de base, du moment
ou vous avez le serveur vierge dans les mains au moment ou vous
installez le serveur http.&lt;/p&gt;
&lt;p&gt;Dans cet article, lorsque est précisée le type d'IP a utiliser, il
convient de mettre ce type précisément. Quand le type n'est pas
précisée, libre a vous de choisir ipv4 ou ipv6.&lt;/p&gt;
&lt;p&gt;Bref. Commençons au point ou vous avez un accès root a votre serveur,
n'ayant soit aucun mot de passe, soit un choisi par l'hébergeur, et ou
rien n'est configuré. Connectez vous a celui-ci (ssh root@). Commencez
donc par faire un &lt;code&gt;passwd&lt;/code&gt;, pour mettre au plus vite un mot de passe
solide sur le compte root. Continuons en allant vite mettre en place le
nom de domaine. Pour cela, votre registrar doit vous fournir une
interface vous permettant d'éditer l'entrée DNS pour votre nom de
domaine. &lt;/p&gt;
&lt;p&gt;Cette entrée doit donc pour l'instant ressembler a ca :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;votre&lt;/span&gt; &lt;span class="n"&gt;nom&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;domaine&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;NS&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;MX&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;IPv4&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;votre&lt;/span&gt; &lt;span class="n"&gt;serveur&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;IN&lt;/span&gt; &lt;span class="n"&gt;AAAA&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;IPv6&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;votre&lt;/span&gt; &lt;span class="n"&gt;serveur&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cela vous permet de rediriger tout le trafic se référant a votre nom de
domaine vers votre ip (le fonctionnement exact du DNS est assez
compliqué a expliquer, donc on va dire que c'est de la magie pour
l'instant, ca sera peut être le sujet d'un autre article), et d'indiquer
que les mails @votre-nom-de-domai.ne doivent aussi être redirigés vers
votre serveur, ce qui est un bon début. Faisons un petit point sécurité
ici : pour accéder a votre serveur, il vous suffit actuellement de taper
le mot de passe root.&lt;/p&gt;
&lt;p&gt;root est un utilisateur &lt;strong&gt;assez&lt;/strong&gt; répandu, et il est assez simple de
bruteforcer le mot de passe. (&lt;em&gt;Relativement&lt;/em&gt; assez simple, en fonction
du nombre de caractères, ça prend plus ou moins de temps, et si vous
avez suffisamment de caractères, ça peut prendre un temps assez
conséquent. Cela dit, il vaut mieux être prudent...) Ainsi, nous allons
arrêter d'utiliser root et nous allons commencer a utiliser des couples
clés publiques/privées pour nous connecter au serveur.&lt;br /&gt;
Cela se fait en deux temps : tout d'abord, créer un nouvel utilisateur,
grâce auquel nous administrerons le serveur a l'avenir; puis configurer
OpenSSH pour que celui ci n'accepte que les connections par clés et plus
celles sur root.&lt;/p&gt;
&lt;p&gt;Commençons par ajouter un utilisateur. Si vous êtes sous debian, cela se
fait avec adduser, qui est interactif (vous ne devriez pas avoir de
problème avec, puisqu'il crée tout les dossiers et fichiers nécessaires,
et vous pose toutes les questions utiles pour vous aider.) sinon, vous
devrez utiliser useradd, qui est (en plus d'être très chiant a
distinguer de l'autre, bien plus chiant a utiliser. (adduser est en fait
un simple script permettant l'utilisation d'useradd plus facilement.)&lt;/p&gt;
&lt;p&gt;Avec adduser, vous pouvez soit utiliser le mode interactif en tapant
juste &lt;code&gt;adduser &amp;lt;username&amp;gt;&lt;/code&gt;, soit utiliser le mode non-interactif
en faisant un &lt;code&gt;adduser --group &amp;lt;username&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Avec useradd, vous devrez utiliser la commande suivante : &lt;code&gt;useradd -m
-N -g &amp;lt;username&amp;gt;&lt;/code&gt;. Cette commande ajoutera un utilisateur, créera
son dossier principal dans /home/, et l'ajoutera au groupe du même nom
que lui (ce qui est en général nécessaire pour des questions de vie
privée).&lt;/p&gt;
&lt;p&gt;Il convient maintenant d'ajouter cet utilisateur aux groupes qu'il sera
amené a administrer: &lt;code&gt;usermod &amp;lt;username&amp;gt; -a -G www-data postfix
users staff sudo wheel&lt;/code&gt;, puis de changer son mot de passe
&lt;code&gt;passwd&lt;/code&gt;. Enfin, ajoutons le aux utilisateurs autorisés a utiliser
sudo: &lt;code&gt;echo "%sudo ALL=(ALL) ALL" &amp;gt;&amp;gt; /etc/sudoers&lt;/code&gt;&lt;br /&gt;
Enfin, changeons d'utilisateur : &lt;code&gt;su&lt;/code&gt;. A ce point, vous avec un
utilisateur complètement fonctionnel et utilisable pour toutes les
taches d'administration. Si vous devez encore utiliser root, c'est que
quelque chose ne va pas.&lt;/p&gt;
&lt;p&gt;Vous êtes donc loggés sur le système en tant qu'utilisateur normal. Nous
allons maintenant passer a la phase 2 du plan : désactiver le login ssh
root et le login ssh par mot de passe.&lt;br /&gt;
Tout d'abord, qu'est-ce qu'un login par clé ssh? Il s'agit en fait d'un
système assez semblable a celui vous permettant de chiffrer vos mail :
vous avec une clé publique et une clé privée sur le client, et la clé
publique est aussi sur le serveur. Lorsque vous vous connectez, openssh
vérifie que vous possédez la clé privée qui correspond a la clé publique
stockée sur le serveur (pour votre utilisateur, bien entendu). Il est
également possible d'utiliser plusieurs clés publique pour chaque&lt;br /&gt;
utilisateur.&lt;/p&gt;
&lt;p&gt;Bref, maintenant que nous avons la théorie, passons a la pratique : tout
d'abord, il nous faut générer un couple de clés publique/privée sur le
client. Openssh fait ça via la commande &lt;code&gt;ssh-keygen -t rsa&lt;/code&gt; (le -t
rsa précise a ssh que nous voulons un chiffrement rsa, qui est
suffisamment solide pour cette utilisation.) Entrez les informations que
ssh-keygen vous demande. Trois fichiers devraient maintenant se trouver
dans votre dossier .ssh/ : id_rsa, id_rsa.pub, et known_hosts.&lt;br /&gt;
known_hosts liste les serveurs auxquels vous vous êtes connectés déjà
une fois (pour éviter les attaques MITM, mais bref). Non, ce qui nous
intéresse ici c'est id_rsa et id_rsa.pub . id_rsa contient votre clé
privée, sauvegardez la sur une clé USB ou notez la sur un bout de
papier, si vous la perdez, vous ne pourrez plus vous connecter au
serveur. (planquez la clé usb/le bout de papier...) id_rsa.pub, quand a
lui, contient votre clé publique. Copiez la sur le serveur, avec un
&lt;code&gt;scp ~/.ssh/id_rsa.pub &amp;lt;username&amp;gt;@&amp;lt;votre nom de domaine&amp;gt;:~/&lt;/code&gt; , ou
en la copiant a la main, si ça vous amuse. &lt;/p&gt;
&lt;p&gt;Vous avez maintenant un fichier id_rsa.pub dans votre dossier personnel
sur le serveur, il faut le mettre a un endroit ou openssh le reconnaitra.
Il est donc nécessaire de créer le dossier .ssh (&lt;code&gt;mkdir .ssh&lt;/code&gt;), puis
de déplacer ce fichier a la bonne place (&lt;code&gt;mv ~/id_rsa.pub ~/.ssh/authorized_keys&lt;/code&gt;).
Testez si ça fonctionne : ouvez un autre terminal, et&lt;br /&gt;
connectez vous a votre serveur (&lt;code&gt;ssh &amp;lt;username&amp;gt;@&amp;lt;votre nom de
domaine&amp;gt;&lt;/code&gt;), et il ne devrait pas vous demander de mot de passe.&lt;strong&gt;Si
il vous en demande un, NE PASSEZ PAS A LA SUITE. Quelque chose a foiré,
donc vérifiez que vous avez suivi correctement les instruction
ci-dessus.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Continuons. Il ne nous reste plus qu'a installer le serveur web, et a le
configurer: &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;sudo&lt;/span&gt; &lt;span class="n"&gt;apt&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; \
&lt;span class="n"&gt;apache2&lt;/span&gt; &lt;span class="n"&gt;apache2&lt;/span&gt;&lt;span class="mf"&gt;.2&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;common&lt;/span&gt; &lt;span class="n"&gt;apache2&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;doc&lt;/span&gt; &lt;span class="n"&gt;apache2&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;mpm&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;prefork&lt;/span&gt; \
&lt;span class="n"&gt;apache2&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;utils&lt;/span&gt; &lt;span class="n"&gt;libexpat1&lt;/span&gt; &lt;span class="n"&gt;ssl&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;cert&lt;/span&gt; &lt;span class="n"&gt;libapache2&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;mod&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;php5&lt;/span&gt; \
&lt;span class="n"&gt;php5&lt;/span&gt; &lt;span class="n"&gt;php5&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;common&lt;/span&gt; &lt;span class="n"&gt;php5&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;gd&lt;/span&gt; &lt;span class="n"&gt;php5&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;cgi&lt;/span&gt; &lt;span class="n"&gt;libapache2&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;mod&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;fcgid&lt;/span&gt; \
&lt;span class="n"&gt;apache2&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;suexec&lt;/span&gt; &lt;span class="n"&gt;php&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;pear&lt;/span&gt; &lt;span class="n"&gt;php&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;auth&lt;/span&gt; &lt;span class="n"&gt;php5&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;mcrypt&lt;/span&gt; &lt;span class="n"&gt;mcrypt&lt;/span&gt; \
&lt;span class="n"&gt;php5&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;imagick&lt;/span&gt; &lt;span class="n"&gt;imagemagick&lt;/span&gt; &lt;span class="n"&gt;libapache2&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;mod&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;suphp&lt;/span&gt; &lt;span class="n"&gt;libruby&lt;/span&gt; \
&lt;span class="n"&gt;libapache2&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;mod&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;(faisons large, on aura besoin de l'excédent plus tard...), puis activons les&lt;br /&gt;
mods apache en faisant &lt;code&gt;a2enmod suexec rewrite ssl actions include
dav_fs dav auth_digest&lt;/code&gt;, et faisons en sorte que ces activations
soient prises en compte par apache via un &lt;code&gt;sudo service apache2
restart&lt;/code&gt; &lt;/p&gt;
&lt;p&gt;Le serveur fonctionne, maintenant, il est necessaire de lui expliquer
comment fonctionner sur notre nom de domaine et ou trouver les fichiers
a envoyer. &lt;/p&gt;
&lt;p&gt;Pour cela, nous allons faire un simple &lt;code&gt;ln -s /etc/apache2/sites-{available,enabled}/default&lt;/code&gt;, car apache est assez
sympa pour nous filer un fichier de configuration par défaut. Il nous
faut encore l'éditer, en changeant l'adresse mail au début du document
par la votre, et en changeant &lt;code&gt;AllowOverride none&lt;/code&gt; en &lt;code&gt;AllowOverride All&lt;/code&gt;,
et enfin redémarrer apache pour qu'il prenne en compte les
modifications, par un &lt;code&gt;sudo service apache2 restart&lt;/code&gt; &lt;/p&gt;
&lt;p&gt;Et maintenant, il vous reste a apprendre le html, parce que ca y est,
votre serveur est fonctionnel! Voila voila. Dans la prochaine partie, on
verra l'installation du serveur mail (c'est suffisamment complexe pour
prendre un article seul...)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wxcafe</dc:creator><pubDate>Mon, 18 Mar 2013 09:51:00 +0100</pubDate><guid>tag:wxcafe.net,2013-03-18:posts/%D/monter-son-propre-serveur-partie-1/</guid></item><item><title>Mutt ou le client email le meilleur moins mauvais</title><link>//wxcafe.net/posts/%D/mutt-ou-le-client-email-le-meilleur-moins-mauvais/</link><description>&lt;p&gt;Les clients mails ont une particularité en commun : ils sont tous
&lt;del&gt;très&lt;/del&gt; mauvais. Cela pour nombre de raisons, mais la principale reste
que leurs interfaces/raccourcis claviers ne sont pas efficaces pour une
utilisation &lt;strong&gt;a la&lt;/strong&gt; UNIX&lt;br /&gt;
Cependant, un d'entre eux se démarque par sa moins-mauvais-itude, c'est
le relativement bien connu &lt;del&gt;Outlook Express 2003&lt;/del&gt; Mutt!&lt;br /&gt;
Mutt est un client mail en ligne de commande, qui, comme le dit sa page
daccueil, &lt;a href="http://www.mutt.org"&gt;"just sucks less"&lt;/a&gt;. Dans les faits, mutt est assez
chiant a configurer mais particulièrement pratique a utiliser après.&lt;/p&gt;
&lt;p&gt;La configuration de mutt se fait dans le fichier &lt;code&gt;.muttrc&lt;/code&gt; ou dans
&lt;code&gt;/etc/Muttrc&lt;/code&gt;, et il est courant d'utiliser offlineimap en
conjonction avec celui ci, de façon a accéder aux mails même sans accès
internet (mutt dispose d'un système d'accès IMAP/POP et SMTP, mais ne
crée pas de cache, ce qui empêche la consultation des emails sans
connexion internet.) La configuration d'offlineimap se fait dans
&lt;code&gt;~/.offlineimaprc&lt;/code&gt; ou dans rien d'autre en fait, c'est une config
par user. Offlineimap est un petit logiciel en python qui synchronise un
dossier en Maildir avec un serveur IMAP, ce qui tombe bien puisque
justement mutt accepte les dossiers au format Maildir. (De plus, cela va
tout a fait dans le sens de la libération des données en cela que vous
possédez vos mails en local.)&lt;br /&gt;
Bref, passons aux choses serieuses : le code. Déjà, installez
offlineimap et &lt;a href="http://data.wxcafe.net/scripts/mutt-sidebar.sh"&gt;ce script&lt;/a&gt; fait par moi, qui vous permet d'installer
mutt avec le patch sidebar, qui crée un listing des dossiers sur la
partie gauche.&lt;br /&gt;
Ensuite, voyons pour la partie configuration :&lt;br /&gt;
Ma configuration d'offlineimap :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;## Config file for offlineimap&lt;/span&gt;
&lt;span class="cp"&gt;## Originally located in ~/.offlineimaprc&lt;/span&gt;
&lt;span class="cp"&gt;## This should not be edited without creating a copy before&lt;/span&gt;
&lt;span class="cp"&gt;## Created by Wxcafe (Clément Hertling)&lt;/span&gt;
&lt;span class="cp"&gt;## Published under CC-BY-SA&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;general&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="cp"&gt;# List of accounts to be synced, separated by a comma.&lt;/span&gt;
&lt;span class="n"&gt;accounts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Account&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="cp"&gt;# Identifier for the local repository; e.g. the maildir to be synced via IMAP.&lt;/span&gt;
&lt;span class="n"&gt;localrepository&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;
&lt;span class="cp"&gt;# Identifier for the remote repository; i.e. the actual IMAP, usually non-local.&lt;/span&gt;
&lt;span class="n"&gt;remoterepository&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;remote&lt;/span&gt;
&lt;span class="cp"&gt;# Status cache. Default is plain, which eventually becomes huge and slow.&lt;/span&gt;
&lt;span class="n"&gt;status_backend&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sqlite&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt; &lt;span class="n"&gt;le&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;cache&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;plain&lt;/span&gt; &lt;span class="n"&gt;ou&lt;/span&gt; &lt;span class="n"&gt;sqlite&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Repository&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="cp"&gt;# Currently, offlineimap only supports maildir and IMAP for local repositories.&lt;/span&gt;
&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Maildir&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt; &lt;span class="n"&gt;le&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;stockage&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Maildir&lt;/span&gt; &lt;span class="n"&gt;ou&lt;/span&gt; &lt;span class="n"&gt;IMAP&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="cp"&gt;# Where should the mail be placed?&lt;/span&gt;
&lt;span class="n"&gt;localfolders&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;~/&lt;/span&gt;&lt;span class="n"&gt;Emails&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt; &lt;span class="n"&gt;le&lt;/span&gt; &lt;span class="n"&gt;dossier&lt;/span&gt; &lt;span class="n"&gt;dans&lt;/span&gt; &lt;span class="n"&gt;lequel&lt;/span&gt; &lt;span class="n"&gt;vous&lt;/span&gt;
&lt;span class="err"&gt;#&lt;/span&gt; &lt;span class="n"&gt;voulez&lt;/span&gt; &lt;span class="n"&gt;que&lt;/span&gt; &lt;span class="n"&gt;vos&lt;/span&gt; &lt;span class="n"&gt;emails&lt;/span&gt; &lt;span class="n"&gt;apparaissent&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Repository&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;remote&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="cp"&gt;# Remote repos can be IMAP or Gmail, the latter being a preconfigured IMAP.&lt;/span&gt;
&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;IMAP&lt;/span&gt;
&lt;span class="n"&gt;remotehost&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="c1"&gt;//placeholderhost// # le serveur de votre messagerie&lt;/span&gt;
&lt;span class="n"&gt;remoteuser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="c1"&gt;//placeholderusername// # votre nom d&amp;#39;utilisateur&lt;/span&gt;
&lt;span class="n"&gt;remotepass&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="c1"&gt;//placeholderpassword// # votre mot de passe&lt;/span&gt;
&lt;span class="n"&gt;cert_fingerprint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="c1"&gt;//placeholdercert// # le certificat du serveur (IMAPS only)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ça devrait être assez simple a lire, j'ai tout bien commenté :3&lt;br /&gt;
Puis ma config mutt :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;## Mutt MUA configuration file&lt;/span&gt;
&lt;span class="cp"&gt;## This file should not be edited without creating a copy&lt;/span&gt;
&lt;span class="cp"&gt;## File Created and edited by Wxcafe (Clément Hertling)&lt;/span&gt;
&lt;span class="cp"&gt;## Published under CC-BY-SA&lt;/span&gt;
&lt;span class="cp"&gt;# General config for reading (fetched via offlineimap)&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;mbox_type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Maildir&lt;/span&gt;
&lt;span class="cp"&gt;# type de boite mail (voir dans offlineimap, mailbox par defaut)&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;folder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;~/&lt;/span&gt;&lt;span class="n"&gt;Email&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="cp"&gt;# dossier root mailbox/imap&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;spoolfile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;INBOX&lt;/span&gt;
&lt;span class="cp"&gt;# dossier d&amp;#39;inbox&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;mbox&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="n"&gt;All&lt;/span&gt; &lt;span class="n"&gt;Mail&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;
&lt;span class="cp"&gt;# dossier ou archiver les emails&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;copy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;yes&lt;/span&gt;
&lt;span class="cp"&gt;# yes pour copier les messages dans les differents dossier, no pour...&lt;/span&gt;
&lt;span class="cp"&gt;# enfin voila quoi.&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;header_cache&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hcache&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="cp"&gt;# dossier ou sont stockés les headers (pour le cache)&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;record&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;Sent&lt;/span&gt;
&lt;span class="cp"&gt;# dossier dans lequel sont stockés les messages envoyés&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;postponed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;Drafts&lt;/span&gt;
&lt;span class="cp"&gt;# dossier dans lequel sont stockés les brouillons&lt;/span&gt;
&lt;span class="n"&gt;mailboxes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;INBOX&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;Drafts&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;Sent&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;Trash&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;All&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt; &lt;span class="n"&gt;Mail&lt;/span&gt;
&lt;span class="cp"&gt;# liste des dossiers qui vont apparaitre dans la colonne de gauche&lt;/span&gt;
&lt;span class="cp"&gt;# General config for sending (using Mutt&amp;#39;s native support)&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;smtp_pass&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="err"&gt;&amp;#39;&lt;/span&gt;&lt;span class="n"&gt;password_placeholder&lt;/span&gt;&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;
&lt;span class="cp"&gt;# votre mot de passe&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;smtp_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;smtp://username@whatev.org:465/&amp;quot;&lt;/span&gt;
&lt;span class="cp"&gt;# l&amp;#39;url ou envoyer les emails&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;send_charset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;
&lt;span class="cp"&gt;# UTF8, NE PAS CHANGER&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;signature&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;.sign&amp;quot;&lt;/span&gt;
&lt;span class="cp"&gt;# vous pouvez mettre votre signature dans .sign&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;sig_on_top&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;yes&lt;/span&gt;
&lt;span class="cp"&gt;# il est d&amp;#39;usge de mettre no ici. Cependant, je trouve ca plus lisible &lt;/span&gt;
&lt;span class="cp"&gt;# comme ca.&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;ssl_verify_host&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;no&lt;/span&gt;
&lt;span class="cp"&gt;# mettez yes ici si votre serveur a un certificat configuré correctement&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;hostname&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;wxcafe.net&amp;quot;&lt;/span&gt;
&lt;span class="cp"&gt;# mettez l&amp;#39;adresse de votre serveur ici&lt;/span&gt;
&lt;span class="cp"&gt;# Misc settings&lt;/span&gt;
&lt;span class="n"&gt;auto_view&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt;
&lt;span class="cp"&gt;# la façon de voir les emails par défaut.&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;date_format&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;%y-%m-%d %T&amp;quot;&lt;/span&gt;
&lt;span class="cp"&gt;# format de date d&amp;#39;envoi/de reception.&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;index_format&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;%2C | %Z [%D] %-30.30F (%-4.4c) %s&amp;quot;&lt;/span&gt;
&lt;span class="cp"&gt;# format de l&amp;#39;index (la présentation de l&amp;#39;interface)&lt;/span&gt;
&lt;span class="cp"&gt;# voir http:&lt;/span&gt;&lt;span class="c1"&gt;//www.mutt.org/doc/manual/manual-6.html#index_format&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;sort_alias&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;alias&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;reverse_alias&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;yes&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;alias_file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;$HOME/.mutt/aliases&amp;quot;&lt;/span&gt;
&lt;span class="cp"&gt;# liste des alias noms/email. a créer et remplir vous même.&lt;/span&gt;
&lt;span class="cp"&gt;# format : &amp;quot;alias short_name long_email_adress&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;source&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;alias_file&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;beep&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;no&lt;/span&gt;
&lt;span class="cp"&gt;# ne pas biper. CE SON ME TUE T.T&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;tilde&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;yes&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;sleep_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="cp"&gt;# ?&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;sidebar_visible&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;yes&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;sidebar_width&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;
&lt;span class="cp"&gt;# parametres de la barre coté gauche&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;realname&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Clément Hertling (Wxcafé)&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;wxcafe@wxcafe.net&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;use_from&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;yes&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;certificate_file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;$HOME/.mutt/cacert&amp;quot;&lt;/span&gt;
&lt;span class="cp"&gt;# parametres d&amp;#39;envoi. mettez vos propres infos a la place des miennes...&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;edit_headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;yes&lt;/span&gt;
&lt;span class="cp"&gt;# vous permet de vois les headers des mails. j&amp;#39;aime, donc je laisse.&lt;/span&gt;
&lt;span class="cp"&gt;# Macros&lt;/span&gt;
&lt;span class="cp"&gt;# le titre dit tout. index veut dire que la macro est active dans les menus,&lt;/span&gt;
&lt;span class="cp"&gt;# pager qu&amp;#39;elle l&amp;#39;est dans la visionneuse, les deux qu&amp;#39;elle l&amp;#39;est dans les &lt;/span&gt;
&lt;span class="cp"&gt;# deux&lt;/span&gt;
&lt;span class="cp"&gt;# \C represente la touche Control&lt;/span&gt;
&lt;span class="n"&gt;bind&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;pager&lt;/span&gt; &lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="n"&gt;Cp&lt;/span&gt; &lt;span class="n"&gt;sidebar&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;prev&lt;/span&gt;
&lt;span class="cp"&gt;# Control+p -&amp;gt; remonter d&amp;#39;un dossier dans la sidebar&lt;/span&gt;
&lt;span class="n"&gt;bind&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;pager&lt;/span&gt; &lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="n"&gt;Cn&lt;/span&gt; &lt;span class="n"&gt;sidebar&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;
&lt;span class="cp"&gt;# Control+n -&amp;gt; descendre d&amp;#39;un dossier dans la sidebar&lt;/span&gt;
&lt;span class="n"&gt;bind&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;pager&lt;/span&gt; &lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="n"&gt;Co&lt;/span&gt; &lt;span class="n"&gt;sidebar&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;
&lt;span class="cp"&gt;# Control+o -&amp;gt; ouvrir le dossier selectionné dans la sidebar&lt;/span&gt;
&lt;span class="n"&gt;macro&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;pager&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;=Trash&amp;quot;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Trash&amp;quot;&lt;/span&gt;
&lt;span class="cp"&gt;# d supprime le message en cours&lt;/span&gt;
&lt;span class="n"&gt;bind&lt;/span&gt; &lt;span class="n"&gt;pager&lt;/span&gt; &lt;span class="n"&gt;previous&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;
&lt;span class="cp"&gt;# permet de monter d&amp;#39;une ligne avec la touche up, au lieu de changer de message.&lt;/span&gt;
&lt;span class="n"&gt;bind&lt;/span&gt; &lt;span class="n"&gt;pager&lt;/span&gt; &lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;
&lt;span class="cp"&gt;# permet de descendre d&amp;#39;une ligne avec la touche down, au lieu de changer de &lt;/span&gt;
&lt;span class="cp"&gt;# message&lt;/span&gt;
&lt;span class="n"&gt;bind&lt;/span&gt; &lt;span class="n"&gt;pager&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;
&lt;span class="n"&gt;bind&lt;/span&gt; &lt;span class="n"&gt;pager&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="n"&gt;previous&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;line&lt;/span&gt;
&lt;span class="cp"&gt;# raccourcis vim&lt;/span&gt;
&lt;span class="cp"&gt;# PGP signing commands&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_decode_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_verify_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;gpg --no-verbose --batch --output - --verify %s %f&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_decrypt_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;gpg --passphrase-fd 0 --no-verbose --batch --output - %f&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_sign_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_clearsign_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_encrypt_only_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0x******** -- -r %r -- %f&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_encrypt_sign_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;pgpewrap gpg --passphrase-fd 0 --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x******** -- -r %r -- %f&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_import_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;gpg --no-verbose --import -v %f&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_export_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;gpg --no-verbose --export --armor %r&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_verify_key_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;gpg --no-verbose --batch --fingerprint --check-sigs %r&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_list_pubring_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;gpg --no-verbose --batch --with-colons --list-keys %r&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_list_secring_command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;gpg --no-verbose --batch --with-colons --list-secret-keys %r&amp;quot;&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_autosign&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;yes&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_sign_as&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;********&lt;/span&gt;
&lt;span class="cp"&gt;# remplacez 0x******** par votre identifiant PGP!!!!!&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_replyencrypt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;no&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;7200&lt;/span&gt;
&lt;span class="n"&gt;set&lt;/span&gt; &lt;span class="n"&gt;pgp_good_sign&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;^gpg: Good signature from&amp;quot;&lt;/span&gt;
&lt;span class="cp"&gt;# si vous ne comptez pas utiliser PGP, commentez toute cette section, depuis&lt;/span&gt;
&lt;span class="cp"&gt;# PGP signing options&lt;/span&gt;
&lt;span class="cp"&gt;# Palette for use with the Linux console. Black background.&lt;/span&gt;
&lt;span class="cp"&gt;# Schéma de couleur Rouge et Noir. Commentez si vous voulez le &lt;/span&gt;
&lt;span class="cp"&gt;# défaut noir et blanc.&lt;/span&gt;
&lt;span class="cp"&gt;# d&amp;#39;autres schémas sont trouvables sur google et autre.&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;hdrdefault&lt;/span&gt; &lt;span class="n"&gt;red&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;quoted&lt;/span&gt; &lt;span class="n"&gt;brightblack&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;signature&lt;/span&gt; &lt;span class="n"&gt;brightblack&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;attachment&lt;/span&gt; &lt;span class="n"&gt;red&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="n"&gt;brightwhite&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="n"&gt;brightred&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;indicator&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt; &lt;span class="n"&gt;red&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="n"&gt;white&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;tree&lt;/span&gt; &lt;span class="n"&gt;white&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;normal&lt;/span&gt; &lt;span class="n"&gt;white&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;markers&lt;/span&gt; &lt;span class="n"&gt;red&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;search&lt;/span&gt; &lt;span class="n"&gt;white&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;tilde&lt;/span&gt; &lt;span class="n"&gt;brightmagenta&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt; &lt;span class="n"&gt;red&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt; &lt;span class="n"&gt;red&lt;/span&gt; &lt;span class="n"&gt;black&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;~N|~O&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Voila, pour plus d'informations vous pouvez aller voir le manuel de mutt
@ &lt;a href="http://www.mutt.org/doc/manual/"&gt;http://www.mutt.org/doc/manual/&lt;/a&gt;&lt;br /&gt;
J'espère que cette configuration "toute faite" vous aidera a commencer
a utiliser mutt. Il est tout de fois important de se souvenir
qu'utiliser une configuration toute faire n'aide pas a comprendre un
programme ou un système, et que cette façon de faire devrait être
réservée a l'introduction ou a des situations ou il est absolument
nécessaire d'avoir rapidement une configuration fonctionnelle (c'est a
dire, dans le cas d'un client email, euh... jamais?). Je vous invite
donc a relire les annotations dont sont parsemés les fichiers de
configuration en question, et surtout a lire le manuel, a chercher sur
&lt;del&gt;Bing&lt;/del&gt; &lt;del&gt;Google&lt;/del&gt; &lt;del&gt;Yahoo&lt;/del&gt; Seeks, et globalement
a tenter de comprendre les configurations en question et a les améliorer!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wxcafe</dc:creator><pubDate>Wed, 02 Jan 2013 02:12:00 +0100</pubDate><guid>tag:wxcafe.net,2013-01-02:posts/%D/mutt-ou-le-client-email-le-meilleur-moins-mauvais/</guid></item><item><title>La cryptographie avec PGP et principalement GnuPG</title><link>//wxcafe.net/posts/%D/la-cryptographie-avec-pgp-et-principalement-gnupg/</link><description>&lt;p&gt;PGP (pour &lt;a href="http://fr.wikipedia.org/wiki/Pretty_Good_Privacy"&gt;pretty good privacy&lt;/a&gt;) est un système de
chiffrement asymétrique (pour plus d'information sur le chiffrement
asymétrique, voir &lt;a href="http://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique"&gt;ici&lt;/a&gt;) utilisant en général les algorithmes RSA
et/ou DSA, et pouvant servir a chiffrer tout fichier, mais aussi a
signer des emails. Le système de signature consiste a s'identifier en
tant que la personne que l'on est, en certifiant de son identité, et
repose sur un système dit de &lt;em&gt;Web of Trust&lt;/em&gt;. &lt;/p&gt;
&lt;p&gt;Ce concept de Web of Trust est simple: si je valide le code vous
identifiant (votre clé), en certifiant que vous êtes qui vous êtes et
que je vous connais, et que d'autres personnes m'ont déjà
personnellement validé, les autres utilisateurs seront enclins a croire
que vous êtes en effet la personne que vous prétendez être. Bien
entendu, les utilisateurs validant trop de clés rapportées comme fausses
voient la valeur de leurs signatures baissée, et toutes les clés signées
par ces utilisateurs voient leur crédibilité baisser.&lt;br /&gt;
Inversement, les "bons utilisateurs" voient la valeur de leurs
signatures augmentée, ce qui augmente la crédibilité des clés qu'ils ont
signées.&lt;/p&gt;
&lt;p&gt;Ceci dit, un email peut être a la fois signé et chiffré, de façon a être
sûr, non seulement que lexpéditeur de l'email est bien celui qu'il dit
être, mais aussi que l'email n'a pas été modifié entre l'envoi et
la réception (en effet, avec un chiffrement de type RSA/DSA, une
modification du corps de l'email rend ce dernier illisible, la clé
publique ne  correspondant plus a la phrase de passe du message), ce qui
offre bien évidemment des avantages non négligeables dans un
environnement ou la protection des échanges est importante (soit a peu
près partout sur internet, si vous tenez a votre vie privée. Pensez a
&lt;a href="http://www.hauteresolution.net/pourquoi-je-vais-quitter-gmail/"&gt;quitter Gmail&lt;/a&gt; aussi, par exemple).&lt;/p&gt;
&lt;p&gt;Il est cependant a noter que les clés publiques sont généralement
situées sur un serveur de clés publiques, tel pgp.mit.edu ou encore
subkeys.pgp.net (certaines personnes préfèrent garder leur clés hors des
serveurs de clés publiques, craignant une compromission de ces serveurs.
Dans le cas d'utilisateurs normaux (c'est a dire n'échangeant pas de
secrets classés secret-défense par email), la protection offerte par les
serveurs de clé publiques est suffisante)&lt;/p&gt;
&lt;p&gt;L'une des implémentations les plus connues et utilisées de PGP est sans
conteste GPG (&lt;a href="http://fr.wikipedia.org/wiki/GNU_Privacy_Guard"&gt;GNU Privacy Guard&lt;/a&gt;) , qui comme son nom l'indique fait
partie du projet GNU, et qui (&lt;code&gt;&amp;lt;troll&amp;gt;&lt;/code&gt; de façon surprenante pour un
programme GNU&lt;code&gt;&amp;lt;/troll&amp;gt;&lt;/code&gt;) est extrêmement efficace et claire.&lt;/p&gt;
&lt;p&gt;Après ces explications techniques, voici venue le
moment intéressant/utile, a savoir l'application. Le chiffrement et la
signature de mails doivent cependant attendre un petit peu, étant donné
qu'il vous faut d'abord créer votre clé et la placer sur un serveur de
clés publiques, de façon à ce que votre destinataire puisse vous
identifier lorsqu'il recevra le mail, mais aussi a configurer votre
client mail pour utiliser gpg (je baserai les explications de cet
article sur Thunderbird, mais des explications efficaces sont trouvables
facilement sur les interwebs).&lt;/p&gt;
&lt;p&gt;Tout d'abord, générons une clé GPG :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt; &lt;span class="n"&gt;gpg&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;gen&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;GPG va vous demander les méthodes de chiffrement que vous voulez
utiliser, le plus sur est de laisser la valeur par défaut. La question
suivante est de savoir quelle taille votre clé doit faire, il est
préférable de choisir la taille la plus importante possible (4096). GPG
veut ensuite savoir quand votre clé doit expirer. La méthode simple est
bien évidemment de ne jamais la faire expirer, il est cependant plus
intéressant dans une logique de sécurité de régler cette durée a six
mois/un an. &lt;/p&gt;
&lt;p&gt;Des informations personnelles vous sont ensuite demandées,
concernant votre nom (mettez le vrai, tel qu'il apparaît sur votre carte
d'identité, si vous souhaitez utiliser votre véritable identité), votre
adresse mail (mettez la plus utilisée, vous pourrez en rajouter plus
tard), et un mot de passe pour la clé (utilisez un mot de passe
sécurisé!! Il est conseillé d'utiliser au moins 8 caractères, dont majuscules,
minuscules, caractères spéciaux et nombres (vous pouvez utiliser la
commande &lt;code&gt;makepasswd&lt;/code&gt;, qui génère automatiquement un mot de
passe) &lt;/p&gt;
&lt;p&gt;GPG va maintenant prendre un peu de temps pour générer le couple clé
publique/clé privée, vous devriez profiter de ce temps pour effectuer
des opérations autres sur votre ordinateur : taper des textes, lancer
des films, écouter de la musique... De façon à augmenter les chances
d'obtenir un nombre bien aléatoire (le générateur d'aléatoire se base
sur la RAM pour obtenir des bits au hasard) &lt;/p&gt;
&lt;p&gt;Une fois cela fini, vous obtenez un couple clé publique/clé privée, que
vous ne pouvez pas visualiser entièrement pour l'instant. Il est
cependant possible (et recommandé) de les exporter pour les sauvegarder
via une commande:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;gpg&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;armor&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;export&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;pubkey&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gpg&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;pour la clé publique, et&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;gpg&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;armor&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;export&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;secret&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;seckey&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gpg&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;pour la clé privée. Il est possible et même souhaitable de copier ces
clés sur une clé USB, une carte SD, ou un autre support de stockage
résistant, de façon a avoir une solution de sauvegarde, au cas ou vous
perdiez ces clés sur ce PC. &lt;/p&gt;
&lt;p&gt;Cela fait, listons les informations sur votre clé publique :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;gpg&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;fingerprint&lt;/span&gt;
&lt;span class="n"&gt;pub&lt;/span&gt; &lt;span class="mi"&gt;4096&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;27&lt;/span&gt;&lt;span class="n"&gt;D81AC8&lt;/span&gt; &lt;span class="mi"&gt;2012&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;17&lt;/span&gt;
&lt;span class="n"&gt;Key&lt;/span&gt; &lt;span class="n"&gt;fingerprint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6345&lt;/span&gt; &lt;span class="n"&gt;A91A&lt;/span&gt; &lt;span class="n"&gt;FF89&lt;/span&gt; &lt;span class="mf"&gt;97E0&lt;/span&gt; &lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="n"&gt;D0&lt;/span&gt; &lt;span class="mi"&gt;96&lt;/span&gt;&lt;span class="n"&gt;A9&lt;/span&gt; &lt;span class="mf"&gt;9E2&lt;/span&gt;&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="mi"&gt;1917&lt;/span&gt; &lt;span class="mi"&gt;27&lt;/span&gt;&lt;span class="n"&gt;D8&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;AC8&lt;/span&gt;
&lt;span class="n"&gt;uid&lt;/span&gt; &lt;span class="n"&gt;Cl&lt;/span&gt;&lt;span class="err"&gt;é&lt;/span&gt;&lt;span class="n"&gt;ment&lt;/span&gt; &lt;span class="n"&gt;Hertling&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Wxcafe&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;uid&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;jpeg&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt; &lt;span class="mi"&gt;14692&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;sub&lt;/span&gt; &lt;span class="mi"&gt;4096&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="n"&gt;ED7F77F&lt;/span&gt; &lt;span class="mi"&gt;2012&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;17&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La partie &lt;code&gt;pub&lt;/code&gt; indique que c'est une clé publique, &lt;code&gt;4096R&lt;/code&gt; indique que c'est
une clé RSA sur 4096 bits. La partie &lt;code&gt;27D81AC8&lt;/code&gt; est
l'identifiant de la clé publique, &lt;code&gt;Key fingerprint = 6345 A91A FF89 97E0 13D0
96A9 9E2A 1917 27D8 1AC8&lt;/code&gt; est appelé fingerprint de la clé. Les champs
&lt;code&gt;uid&lt;/code&gt; sont des manières d'identifier la clé et la personne associée a
celle-ci, et enfin le champ &lt;code&gt;sub&lt;/code&gt; est indicateur d'une subkey, système
uniquement pris en charge par GPG et non inclus dans les premières
versions de PGP, donc non-implémentées dans nombre de clients pgp.&lt;br /&gt;
Passons maintenant a la mise en place de cette clé publique sur un
serveur de clés : nous utiliserons ici le serveur pgp.mit.edu.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;gpg&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;keyserver&lt;/span&gt; &lt;span class="n"&gt;pgp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;edu&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;la&lt;/span&gt; &lt;span class="n"&gt;cl&lt;/span&gt;&lt;span class="err"&gt;é&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;uploader&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Maintenant que votre clé publique a été uploadée, vous pouvez l'utiliser
pour signer et chiffrer vos emails!&lt;br /&gt;
Installons donc l'extension Enigmail pour Thunderbird, permettant de
chiffrer/signer vos emails de façon transparente. Il conviendra de
paramétrer cette extension, via le menu OpenPGP dans Thunderbird, puis
Setup Wizard (l'option entre Help et About OpenPGP). Normalement,
Enigmail détecte votre installation de gpg automatiquement, si cependant
ce n'était pas le cas, vous pouvez utiliser la clé exportée tout a
l'heure (pubkey.gpg) en l'important (import key from file). &lt;/p&gt;
&lt;p&gt;Selon les options que vous avez utilisées, vos emails seront
automatiquement signés et/ou chiffrés a l'envoi. Gardez cependant a
l'esprit que si tout le monde peut lire les mails signés, il n'en est
pas de même pour les mails chiffrés, pour lesquels il est nécessaire de
posséder la clé publique du correspondant en question, et de posséder
soi même une clé privée, donc d'utiliser OpenPGP aussi.&lt;br /&gt;
Concernant les signatures de clés, elles fonctionnent de manière très
simple :&lt;br /&gt;
Vous devez télécharger la clé de votre correspondant, via un&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt; &lt;span class="n"&gt;gpg&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;keyserver&lt;/span&gt; &lt;span class="n"&gt;pgp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;edu&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;search&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;la&lt;/span&gt; &lt;span class="n"&gt;cl&lt;/span&gt;&lt;span class="err"&gt;é&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;votre&lt;/span&gt; &lt;span class="n"&gt;correspondant&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;(a noter que cette commande fonctionne aussi en cherchant une adresse
email ou un nom. Cependant, en cherchant via l'identifiant de la clé,
vous êtes sur de trouver votre correspondant. Globalement, l'email est
lui aussi assez sûr en terme de recherche de clés, tandis que le nom
donne rarement un résultat). L'étape suivante est de vérifier que votre
correspondant est bien la personne qui est spécifiée sur sa clé. Pour
cela, il convient d'avoir déjà vu physiquement cette personne et si
possible d'avoir vu une pièce d'identité lui appartenant, et d'avoir une
confirmation de cette personne que la clé que vous voyez lui appartient
bien.&lt;br /&gt;
Ceci fait, vous pouvez signer la clé via un&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt; &lt;span class="n"&gt;gpg&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;sign&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;la&lt;/span&gt; &lt;span class="n"&gt;cl&lt;/span&gt;&lt;span class="err"&gt;é&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;signer&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;puis la renvoyer au serveur via&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt; &lt;span class="n"&gt;gpg&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;keyserver&lt;/span&gt; &lt;span class="n"&gt;pgp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mit&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;edu&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;la&lt;/span&gt; &lt;span class="n"&gt;cl&lt;/span&gt;&lt;span class="err"&gt;é&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;signer&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Voila, la clé de votre correspondant est signée!&lt;/p&gt;
&lt;p&gt;Ce tutoriel sur PGP/GPG est terminé, et votre sécurité est améliorée
grâce a cette superbe invention qu'est la cryptographie!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wxcafe</dc:creator><pubDate>Mon, 19 Nov 2012 00:36:00 +0100</pubDate><guid>tag:wxcafe.net,2012-11-19:posts/%D/la-cryptographie-avec-pgp-et-principalement-gnupg/</guid></item></channel></rss>