<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>Club LinuX Nord-Pas de Calais</title>
	<link>https://clx.asso.fr/spip/</link>
	<description>Association loi 1901 de promotion des logiciels libres en r&#233;gion Nord-Pas de Calais depuis 1999.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net (Sarka-SPIP)</generator>

	<image>
		<title>Club LinuX Nord-Pas de Calais</title>
		<url>http://clx.asso.fr/spip/local/cache-vignettes/L144xH21/siteon0-86bed.png?1759523095</url>
		<link>https://clx.asso.fr/spip/</link>
		<height>21</height>
		<width>144</width>
	</image>



 
	<item xml:lang="fr">
		<title>Tutoriel : comment cr&#233;er une bibliobox &#224; partir d'une piratebox sur un raspberry pi 3</title>
		<link>http://clx.asso.fr/spip/?Tutoriel-comment-creer-une-bibliobox-a-partir-d-une-piratebox-sur-un-raspberry</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Tutoriel-comment-creer-une-bibliobox-a-partir-d-une-piratebox-sur-un-raspberry</guid>
		<dc:date>2017-05-04T17:57:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Fr&#233;d&#233;ric Gautier</dc:creator>


		<dc:subject>Raspberry Pi</dc:subject>

		<description>&lt;p&gt;Comment cr&#233;er une bibliobox &#224; partir d'une piratebox sur un raspberry pi 3&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Raspberry-Pi-+" rel="tag"&gt;Raspberry Pi&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L84xH150/screenshot_20170219-191338-8004e.png?1759526327' alt='' class='spip_logo spip_logo_right' width='84' height='150' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;strong&gt;Mat&#233;riel : &lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; raspberrypi 3 (rpi3) car la carte wifi est int&#233;gr&#233;e (et tr&#232;s bien g&#233;r&#233;e par l'image de la piratebox pour raspberrypi 2 et 3)&lt;/li&gt;&lt;li&gt; alimentation pour raspberry 3 = 5V et 2,5 A mini.&lt;/li&gt;&lt;li&gt; bo&#238;tier pour raspberry Pi (bo&#238;tier officiel rouge et blanc ou autre)&lt;/li&gt;&lt;li&gt; carte microSD rapide Classe 10 minimum qui recevra le syst&#232;me d'exploitation et les applications&lt;/li&gt;&lt;li&gt; cl&#233; USB format&#233;e en fat 32 et qui servira &#224; stocker les livres num&#233;riques.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Le rpi3 a tendance &#224; chauffer donc pr&#233;voir &#233;ventuellement un ensemble radiateur + ventilateur.&lt;br class='autobr' /&gt;
Pour avoir un confort d'utilisation maximal, il est utile de pr&#233;voir un interrupteur sur le c&#226;ble d'alimentation pour &#233;teindre le rpi3. Il faut alors opter pour une alimentation avec ports USB afin d'y connecter le c&#226;ble avec interrupteur cf &lt;a href=&#034;https://www.kubii.fr/1807-bouton-power-on-off-3272496006645.html&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;https://www.kubii.fr/1807-bouton-po...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tous ce mat&#233;riel est disponible chez des commer&#231;ants en ligne, par exemple :&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://www.kubii.fr&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.kubii.fr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Une fois le rpi3 mont&#233; dans son bo&#238;tier, il faut r&#233;cup&#233;rer l'image d'un syst&#232;me pour piratebox et le transf&#233;rer sur la carte microSD.&lt;/p&gt;
&lt;p&gt;Tout est expliqu&#233; dans cette page :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://piratebox.cc/raspberry_pi:diy =&gt; l'image pour le rpi3 (et pour le raspberry PI 2) est &#224; r&#233;cup&#233;rer via bitorrent&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;https://piratebox.cc/raspberry_pi:d...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pour la suite, c'est-&#224;-dire la transformation de la piratebox en bibliobox, il est utilise de lire le contenu des pages suivantes :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://piratebox.cc/raspberry_pi:mods&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;https://piratebox.cc/raspberry_pi:mods&lt;/a&gt; =&gt; pour savoir o&#249; changer le ssid du r&#233;seau wifi de la piratebox&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://piratebox.cc/raspberry_pi:diy:manual&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;https://piratebox.cc/raspberry_pi:d...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le syst&#232;me Linux d'une piratebox est une archLinux (&lt;a href=&#034;http://https://wiki.archlinux.fr/Accueil&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://https://wiki.archlinux.fr/Accueil&lt;/a&gt;).&lt;br class='autobr' /&gt;
Afin de rendre l'affichage des fichiers et des dossiers stock&#233;s sur la cl&#233; USB de la bibliobox, il faut installer un outil plus ergonomique que celui qui est int&#233;gr&#233; par d&#233;faut (un simple affichage en liste). Le script php h5ai (&lt;a href=&#034;https://larsjung.de/h5ai/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;https://larsjung.de/h5ai/&lt;/a&gt;) permet d'apporter des options tr&#232;s int&#233;ressantes : moteur de recherche, filtre pour cacher certains fichiers tels que &lt;strong&gt;README.txt&lt;/strong&gt;, d&#233;sactivation de la lecture automatique des vid&#233;os, interface en fran&#231;ais, etc.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La m&#233;thode :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lors du premier d&#233;marrage, une fois que modifi&#233; la configuration par d&#233;faut de la piratebox cf le fichier /etc/motd (mot de passe, date et activation de l'utilisation de la cl&#233; USB), il faut activer php.&lt;/p&gt;
&lt;p&gt;Il faut se connecter en ssh sur la piratebox. On peut en profiter changer certains param&#232;tres dans les fichiers du r&#233;pertoire &lt;strong&gt;/opt/piratebox/conf/&lt;/strong&gt;, &lt;strong&gt;piratebox.conf&lt;/strong&gt;, &lt;strong&gt;json.conf&lt;/strong&gt; par exemple ou &lt;strong&gt;chat-init.txt&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Personnellement, je conseille de commenter les modifications. C'est tr&#232;s utile pour d&#233;boguer par la suite.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;Extrait de piratebox.conf ---------------- #Start droopy? - Enable upload?
# modif par Fred yes-&gt;no
DROOPY_ENABLED=&#034;no&#034;
#Image-SRC
IMAGENAME=&#034;piratebox-logo-small.png&#034;
IMAGE=&#034;$PIRATEBOX_FOLDER/src/$IMAGENAME&#034;
DROOPY_TXT=&#034;&#034;
DROOPY_PORT=&#034;8080&#034;
# Set correct permissions for an uploaded file
# The following line needs to be commented for FAT32 / vfat partitions
# modif par Fred -&gt;#
#DROOPY_CHMOD=&#034;755&#034; ----------------Extrait de piratebox.conf&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour relancer la config de la piratebox (&#224; effectuer apr&#232;s chaque modification des fichiers de configuration) :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo systemctl restart piratebox&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour activer php, il faut modifier 2 fichiers : &lt;strong&gt;lighttpd.conf&lt;/strong&gt; et pour utiliser h5ai, &lt;strong&gt;fastcgi-php.conf&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo nano /opt/piratebox/conf/lighttpd/lighttpd.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Dans &lt;strong&gt;/opt/piratebox/conf/lighttpd/lighttpd.conf&lt;/strong&gt; (&#224; la fin du fichier), il faut d&#233;commenter la ligne d'include qui active le php.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# modif par Fred # &#8594;
include &#034;/opt/piratebox/conf/lighttpd/fastcgi-php.conf&#034;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour relancer la config de la piratebox (&#224; effectuer apr&#232;s chaque modification des fichiers de configuration)&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo systemctl restart piratebox&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;cf &lt;a href=&#034;https://piratebox.cc/raspberry_pi:mods:sfpg&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;https://piratebox.cc/raspberry_pi:m...&lt;/a&gt; pour avoir des id&#233;es sur le fonctionnement de la piratebox. mais il ne faut pas tout prendre au pied de la lettre.&lt;/p&gt;
&lt;p&gt;Puis, dans &lt;strong&gt;fastcgi-php.conf&lt;/strong&gt;, il faut indiquer les dossiers dans lesquels php doit &#234;tre actif. Par d&#233;faut, c'est le dossier &lt;strong&gt;/content/&lt;/strong&gt; (dans &lt;strong&gt;/opt/piratebox/www&lt;/strong&gt;) dans lequel les scripts php peuvent s'ex&#233;cuter.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo nano /opt/piratebox/conf/lighttpd/fastcgi-php.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Et il faut remplacer &lt;strong&gt;&#034;/content/&#034;&lt;/strong&gt; par &lt;strong&gt;&#034;/&#034;&lt;/strong&gt; afin d'obtenir :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#-------------------- FAST CGI stuff
# modif par Fred content-&gt;Shared-&gt;/
$HTTP[&#034;url&#034;] =~ &#034;^/&#034; { fastcgi.server = ( &#034;.php&#034; =&gt; (( &#034;bin-path&#034; =&gt; &#034;/usr/bin/php-cgi&#034;, &#034;socket&#034; =&gt; &#034;/tmp/php.socket&#034;, &#034;max-procs&#034; =&gt; 1 )) )
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et oui, on voit que j'ai tent&#233; de remplacer /content/ par /Shared/ gr&#226;ce au commentaire.&lt;/p&gt;
&lt;p&gt;On relance le service piratebox (mais en fait, je crois que ce n'est pas n&#233;cessaire pour la modification de &lt;strong&gt;fastcgi-php.con&lt;/strong&gt;f).&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo systemctl restart piratebox&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Sur un PC, il faut r&#233;cup&#233;rer ensuite h5ai sur le site de Larsjung.de &lt;a href=&#034;https://release.larsjung.de/h5ai/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;https://release.larsjung.de/h5ai/&lt;/a&gt;. La derni&#232;re version, &lt;strong&gt;h5ai-0.29.0.zip&lt;/strong&gt; fonctionne tr&#232;s bien. On copie le fichier sur la piratebox dans le r&#233;pertoire de l'utilisateur &lt;strong&gt;alarm&lt;/strong&gt; via scp ou sftp.&lt;/p&gt;
&lt;p&gt;On d&#233;zippe h5ai-0.29.0.zip dans le r&#233;pertoire d'alarm.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo unzip h5ai-0.29.0.zip&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On obtient un dossier&lt;strong&gt; _h5ai/&lt;/strong&gt;. On copie ensuite ce r&#233;pertoire dans &lt;strong&gt;/opt/piratebox/www/&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo cp -r _h5ai/ /opt/piratebox/www/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Il faut ensuite configurer h5ai afin de personnaliser le &#034;montreur&#034; de fichiers ;-)&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo nano /opt/piratebox/www/_h5ai/private/conf/options.json&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Voici les parties, surlign&#233;es en jaune, &#224; modifier dans le fichier &lt;strong&gt;/opt/piratebox/www/_h5ai/private/conf/options.json&lt;/strong&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&#160;/* modif par Fred hideParentFolder false -&gt; true-&gt; false modetoggle false-&gt; true */ &#034;view&#034;: { &#034;binaryPrefix&#034;: false, &#034;disableSidebar&#034;: false, &#034;fallbackMode&#034;: false, &#034;fastBrowsing&#034;: true, &#034;fonts&#034;: [&#034;Ubuntu&#034;, &#034;Roboto&#034;, &#034;Helvetica&#034;, &#034;Arial&#034;, &#034;sans-serif&#034;], &#034;fontsMono&#034;: [&#034;Ubuntu Mono&#034;, &#034;Monaco&#034;, &#034;Lucida Sans Typewriter&#034;, &#034;monospace&#034;], &#034;hidden&#034;: [&#034;^\\.&#034;, &#034;^_h5ai&#034;], &#034;hideFolders&#034;: false, &#034;hideIf403&#034;: true, &#034;hideParentFolder&#034;: false, &#034;maxIconSize&#034;: 40, &#034;modes&#034;: [&#034;details&#034;, &#034;grid&#034;, &#034;icons&#034;], &#034;modeToggle&#034;: true, &#034;setParentFolderLabels&#034;: true, &#034;sizes&#034;: [20, 40, 60, 80, 100, 140, 180, 220, 260, 300], &#034;theme&#034;: &#034;comity&#034;, &#034;unmanaged&#034;: [&#034;index.html&#034;, &#034;index.htm&#034;, &#034;index.php&#034;], &#034;unmanagedInNewWindow&#034;: false }, /* modif par Fred enabled true-&gt;false */ &#034;autorefresh&#034;: { &#034;enabled&#034;: false &#034;interval&#034;: 5000 }, /* modif par Fred enabled true-&gt;false */ &#034;custom&#034;: { &#034;enabled&#034;: false }, /* modif par Fred en-&gt;fr */ &#034;l10n&#034;: { &#034;enabled&#034;: true, &#034;lang&#034;: &#034;fr&#034;, &#034;useBrowserLang&#034;: true }, /* modif par Fred enabled true -&gt; false autoplay true -&gt; false */ &#034;preview-aud&#034;: { &#034;enabled&#034;: false, &#034;autoplay&#034;: false, &#034;types&#034;: [&#034;aud&#034;] }, /* modif par Fred enabled true -&gt; false */ &#034;preview-img&#034;: { &#034;enabled&#034;: false, &#034;size&#034;: false, &#034;types&#034;: [&#034;img&#034;, &#034;img-bmp&#034;, &#034;img-gif&#034;, &#034;img-ico&#034;, &#034;img-jpg&#034;, &#034;img-png&#034;, &#034;img-raw&#034;, &#034;img-svg&#034;] }, /* modif par Fred enabled true -&gt; false */ &#034;preview-txt&#034;: { &#034;enabled&#034;: false, &#034;styles&#034;: { &#034;txt&#034;: 1, &#034;txt-authors&#034;: 1, &#034;txt-c&#034;: 3, &#034;txt-cpp&#034;: 3, &#034;txt-css&#034;: 3, &#034;txt-diff&#034;: 1, &#034;txt-go&#034;: 3, &#034;txt-h&#034;: 3, &#034;txt-hpp&#034;: 3, &#034;txt-install&#034;: 1, &#034;txt-js&#034;: 3, &#034;txt-json&#034;: 3, &#034;txt-less&#034;: 3, &#034;txt-license&#034;: 1, &#034;txt-log&#034;: 1, &#034;txt-makefile&#034;: 1, &#034;txt-md&#034;: 2, &#034;txt-py&#034;: 3, &#034;txt-rb&#034;: 3, &#034;txt-readme&#034;: 1, &#034;txt-rtf&#034;: 1, &#034;txt-rust&#034;: 3, &#034;txt-script&#034;: 3, &#034;txt-xml&#034;: 1 } }, /* modif par Fred enabled true-&gt;false autoplay true&#8594;false*/ &#034;preview-vid&#034;: { &#034;enabled&#034;: false, &#034;autoplay&#034;: false, &#034;types&#034;: [&#034;vid-avi&#034;, &#034;vid-flv&#034;, &#034;vid-mkv&#034;, &#034;vid-mov&#034;, &#034;vid-mp4&#034;, &#034;vid-mpg&#034;, &#034;vid-webm&#034;] }, /* modif par Fred enabled false-&gt;true */ &#034;search&#034;: { &#034;enabled&#034;: true, &#034;advanced&#034;: true, &#034;debounceTime&#034;: 300, &#034;ignorecase&#034;: true }, /* modif par Fred enabled true -&gt; false */ &#034;thumbnails&#034;: { &#034;enabled&#034;: false, &#034;img&#034;: [&#034;img-bmp&#034;, &#034;img-gif&#034;, &#034;img-ico&#034;, &#034;img-jpg&#034;, &#034;img-png&#034;], &#034;mov&#034;: [&#034;vid-avi&#034;, &#034;vid-flv&#034;, &#034;vid-mkv&#034;, &#034;vid-mov&#034;, &#034;vid-mp4&#034;, &#034;vid-mpg&#034;, &#034;vid-webm&#034;], &#034;doc&#034;: [&#034;x-pdf&#034;, &#034;x-ps&#034;], &#034;delay&#034;: 1, &#034;size&#034;: 240, &#034;exif&#034;: false, &#034;chunksize&#034;: 20 }, /* modif par Fred enable true -&gt; false */ &#034;tree&#034;: { &#034;enabled&#034;: false, &#034;show&#034;: true, &#034;maxSubfolders&#034;: 50, &#034;naturalSort&#034;: true, &#034;ignorecase&#034;: true },&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Bon amusement ;-) Car il est possible de modifier pas mal de choses dans h5ai autrement que dans le fichier json : couleur, ic&#244;nes, etc.&lt;/p&gt;
&lt;p&gt;Il suffit ensuite de rep&#233;rer le r&#233;seau wifi de la bibliobox (ou piratebox) avec un PC &#233;quip&#233; d'une carte wifi ou d'un smartphone puis de s'y connecter avec un navigateur Web. Il suffit de taper &lt;strong&gt;&lt;a href=&#034;http://piratebox.lan&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://piratebox.lan&lt;/a&gt;&lt;/strong&gt; (ou un autre nom de domaine si vous l'avez modifi&#233;, mais toujours avec http:// devant) pour acc&#233;der &#224; la page d'accueil de la bibliobox.&lt;/p&gt;
&lt;p&gt;Remarque : il est possible de se connecter sur le rpi3 via un c&#226;ble Ethernet. L'adresse IP de la bibliobox est alors &lt;strong&gt;&lt;a href=&#034;http://192.168.77.1&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://192.168.77.1&lt;/a&gt;&lt;/strong&gt; depuis un navigateur Web (ou un client SSH).&lt;/p&gt;
&lt;div class='spip_document_615 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='http://clx.asso.fr/spip/IMG/png/screenshot_20170219-191338.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L500xH889/screenshot_20170219-191338-7ee2c.png?1759825062' width='500' height='889' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le gestionnaire de fichiers h5ai, avec un moteur de recherche int&#233;gr&#233;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Webographie :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://bibliobox.net/blog/post/2014/11/20/installer-h5ai-v0261-sur-une-librarybox&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;https://bibliobox.net/blog/post/201...&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://forum.bibliobox.net/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;https://forum.bibliobox.net/&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://www.pearltrees.com/t/piratebox/librarybox/id10942405&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.pearltrees.com/t/pirateb...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>D&#233;ployer un firewall sous Xen pour ma soeur.....</title>
		<link>http://clx.asso.fr/spip/?Deployer-un-firewall-sous-Xen-pour-ma-soeur</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Deployer-un-firewall-sous-Xen-pour-ma-soeur</guid>
		<dc:date>2014-08-16T12:44:20Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>clx_asso_fr (@clx_asso), Yvan Vanhullebus (vanhu)</dc:creator>


		<dc:subject>Firewall</dc:subject>

		<description>
&lt;p&gt;D&#233;ployer un firewall sous Xen pour ma soeur..... &#9659;http://vanhu.free.fr/blog/index.php?post/2013/10/09/Deployer-un-systeme-Xen-pour-ma-soeur &lt;br class='autobr' /&gt; Il y a quelques temps, j'ai commenc&#233; &#224; faire mumuse avec la virtualisation (sous Xen), y compris pour un cas de figure un poil complexe sur lequel je n'avais trouv&#233; aucune doc sur le net (si vous voulez juste d&#233;ployer quelques VMs classiques dans un hyperviseur Xen, vous n'&#234;tes pas au bon endroit, il existe plein de tutoriels pour ce cas de figure (&#8230;)&lt;/p&gt;


-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Firewall-+" rel="tag"&gt;Firewall&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L150xH138/arton2344-5eea6.png?1759525450' alt='' class='spip_logo spip_logo_right' width='150' height='138' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;div lang=&#034;fr&#034; dir=&#034;ltr&#034;&gt;
&lt;p&gt;D&#233;ployer un firewall sous Xen pour ma soeur.....&lt;br /&gt;&lt;span class='lien_lien' &gt;&lt;span class='lien_lien_total'&gt;&lt;a href='http://seenthis.net/sites/526851'&gt;&#9659;&lt;/a&gt;&lt;/span&gt;&lt;a href=&#034;http://vanhu.free.fr/blog/index.php?post/2013/10/09/Deployer-un-systeme-Xen-pour-ma-soeur&#034; class='spip_out' title=&#034;D&#233;ployer un firewall sous Xen pour ma soeur.....&#034; hreflang=&#034;fr&#034;&gt;&lt;span class='lien_court'&gt;&lt;span class='lien_protocol'&gt;http://&lt;/span&gt;&lt;span class='lien_racine lien_raccourci'&gt;&lt;span class='lien_host'&gt;vanhu.free.fr&lt;/span&gt;/&lt;/span&gt;&lt;span class='lien_off'&gt;blog/&lt;/span&gt;&lt;span class='lien_off'&gt;index.php ?post/&lt;/span&gt;&lt;span class='lien_off'&gt;2013/&lt;/span&gt;&lt;span class='lien_off'&gt;10/&lt;/span&gt;&lt;span class='lien_off'&gt;09/&lt;/span&gt;&lt;span class='lien_fin'&gt;&lt;span class='lien_fin_coupee'&gt;Deployer-un-systeme-Xen-pour&lt;/span&gt;&lt;span class='lien_fin_cachee'&gt;-ma-soeur&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote lang=&#034;fr&#034; dir=&#034;ltr&#034;&gt;
&lt;p&gt; Il y a quelques temps, j'ai commenc&#233; &#224; faire mumuse avec la virtualisation (sous Xen), y compris pour un cas de figure un poil complexe sur lequel je n'avais trouv&#233; aucune doc sur le net (si vous voulez juste d&#233;ployer quelques VMs classiques dans un hyperviseur Xen, vous n'&#234;tes pas au bon endroit, il existe plein de tutoriels pour ce cas de figure basique).&lt;/p&gt;
&lt;p&gt;Ca tombe bien, vu que je n'avais pas fait de nouveau billet aujourd'hui cette semaine ces derniers temps depuis au moins un an, et comme j'ai quelques potes qui envisagent de faire une conf similaire, c'est un pr&#233;texte que je ne pouvais pas louper.&lt;/p&gt;
&lt;p&gt;En plus, ca me servira aussi probablement le jour ou mon disque dur va me l&#226;cher et que je vais devoir tout refaire.......&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;
		&lt;div class="hyperlien"&gt;Voir en ligne : &lt;a href="http://seenthis.net/messages/283166" class="spip_out"&gt;http://seenthis.net/messages/283166&lt;/a&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Automount et smbfs : 10 ans apr&#232;s</title>
		<link>http://clx.asso.fr/spip/?Automount-et-smbfs-10-ans-apres</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Automount-et-smbfs-10-ans-apres</guid>
		<dc:date>2013-06-03T23:36:49Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Fr&#233;d&#233;ric Gautier</dc:creator>


		<dc:subject>Samba</dc:subject>

		<description>&lt;p&gt;Monter des dossiers r&#233;seaux via smbfs ou cifs via autofs/automount nouvelle version&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Samba-+" rel="tag"&gt;Samba&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Il y a 10 ans, je commettais un article montrant comment exploiter autofs avec smbfs afin de monter des dossiers r&#233;seaux (h&#233;berg&#233;s par un serveur sous SME) sur un PC sous Linux : &lt;a href='http://clx.asso.fr/spip/?Automount-et-smbfs' class=&#034;spip_in&#034;&gt;Automount et smbfs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En 2013, les principes de base restent les m&#234;mes, m&#234;me si les options changent un peu.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Exemple avec une kubuntu 12.04&lt;/h2&gt;
&lt;p&gt;Il faut installer autofs et smbfs (voire cifs) afin d'utiliser cifs, le successeur de smbfs.&lt;/p&gt;
&lt;p&gt;Dans /etc/auto.master&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
# ajout par Fred&lt;br class='manualbr' /&gt;/net/smb /etc/auto.smb2 &#8212;ghost, &#8212;timeout=60&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&#8212; ghost (ghost pr&#233;c&#233;d&#233; de 2 -) permet de montrer la connexion comme &#233;tant active m&#234;me si le dossier r&#233;seau est deconnect&#233;
&lt;br /&gt;&#8212; timeout=60 (timeout pr&#233;c&#233;d&#233; de 2 -) d&#233;sactive la connexion vers le dossier r&#233;seau au bout de 60 secondes&lt;/p&gt;
&lt;p&gt;Dans /etc/auto.smb2&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;commun -fstype=cifs,username=utilisateur1,password=passutilisateur1,uid=1002,gid=1001,file_mode=0777,dir_mode=0777,iocharset=utf8,nounix,nobrl,nodev,nosuid,workgroup=groupetravail ://serveur/commun&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Les options :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; fstype permet de sp&#233;cifier le type de filesystem distant &#224; utiliser. Au lieu de smbfs, on utilise ici cifs qui prends en compte les &#233;volutions plus r&#233;centes de SMB.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; username, password servent &#224; sp&#233;cifier le nom et le mot de passe de l'utilisateur.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; uid et gid servent &#224; pr&#233;ciser l'uid (identifiant de l'utilisateur) et le gid (identifiant du groupe de l'utilisateur) sur le poste client. Il existe diff&#233;rentes mani&#232;res pour connaitre ces identifiants. La plus simple consiste &#224; se connecter &#224; la session de l'utilisateur sur le poste client et de taper id. Exemple&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;[fred@sidewinder ]$ id&lt;br class='manualbr' /&gt;uid=500(fred) gid=500(fred) groupes=43(usb),81(audio),500(fred)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; file_mode sert &#224; d&#233;finir les droits sur les fichiers dans le dossier distant (situ&#233; sur le serveur)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; dir_mode sert &#224; d&#233;finir les droits sur les dossiers dans le dossier distant (situ&#233; sur le serveur)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; iocharset aide &#224; pr&#233;ciser le charset pour le nom des fichiers et des dossiers (utf8, iso8859-1...)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; nounix sert &#224; &#233;viter les verrous unix (POSIX) qui peuvent bloquer la lecture des fichiers
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; nobrl (no byte range lock) permet d'&#233;viter des probl&#232;mes de corruption de donn&#233;es. En effet, certaines applications dont les anciennes versions d'Openoffice &#034;verrouillent&#034; les fichiers. Ainsi, plusieurs utilisateurs ne peuvent pas modifier simultan&#233;ment le m&#234;me fichier. Or quelquefois, le serveur Samba/cifs interpr&#232;te mal ce verrou ce qui conduit &#224; une corruption du fichier.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; nodev sert &#224; &#233;viter que les fichiers distants soient vus comme des p&#233;riph&#233;riques blocs sp&#233;ciaux ou des p&#233;riph&#233;riques caract&#232;res
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; nosuid permet d'&#233;viter qu'un utilisateur modifie les droits suid et sgid sur les fichiers et les dossiers. &lt;a href=&#034;http://fr.wikipedia.org/wiki/Setuid&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://fr.wikipedia.org/wiki/Setuid&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; workgroup permet de d&#233;finir le groupe de travail SMB&lt;/p&gt;
&lt;p&gt;Les dossiers sont accessibles via la commande&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;ls /net/smb/commun&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Il ne reste plus qu'&#224; cr&#233;er un lien symbolique vers le Bureau :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;ln -s /net/smb/commun /home/fred/Bureau/Commun_sur_Serveur&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Attention aux r&#233;solution de noms des ordinateurs du r&#233;seau. V&#233;rifiez le contenu de /etc/hosts ou le contenu du resolv.conf afin que le serveur comme les postes clients se voient. Vous pouvez par exemple ajouter l'adresse ip et le nom du serveur dans le fichier &lt;strong&gt;/etc/hosts&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Par exemple, pour les adresse en ipv4 :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
127.0.0.1 localhost&lt;br class='manualbr' /&gt;192.168.0.10 serveur1.domaine.fr serveur1&lt;br class='manualbr' /&gt;192.168.0.11 serveur2.domaine.fr serveur2&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Avec les distributions r&#233;centes (Ubuntu 12.04), les mots de passe SMB ne sont plus visibles &#034;en clair&#034; dans les fichiers de logs /var/log/syslog(s), gr&#226;ce au param&#232;tre &lt;strong&gt;syslog = 0&lt;/strong&gt; du fichier &lt;strong&gt;/etc/samba/smb.conf&lt;/strong&gt; du serveur.&lt;/p&gt;
&lt;p&gt;N&#233;anmoins, il est possible d'utiliser la m&#233;thode credentials pour cacher les logins et les mots de passe.&lt;br class='autobr' /&gt;
cf &lt;a href=&#034;http://www.lamolabs.org/blog/6000/one-liner-mounting-a-smbcifs-share-as-an-automount-on-centosfedorarhel/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.lamolabs.org/blog/6000/o...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;et &lt;a href=&#034;http://forum.ubuntu-fr.org/viewtopic.php?id=229300&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://forum.ubuntu-fr.org/viewtopi...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quelques liens :&lt;/strong&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.samba.org/samba/docs/man/manpages-3/mount.cifs.8.html&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.samba.org/samba/docs/man...&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;https://help.ubuntu.com/community/Autofs&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;https://help.ubuntu.com/community/Autofs&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Vimproved, bizarrerie ou non ?</title>
		<link>http://clx.asso.fr/spip/?Vimproved-bizarrerie-ou-non</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Vimproved-bizarrerie-ou-non</guid>
		<dc:date>2013-02-20T18:29:35Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Duquesne (DaffyDuke)</dc:creator>


		<dc:subject>CLX</dc:subject>
		<dc:subject>Faille</dc:subject>
		<dc:subject>Linux</dc:subject>
		<dc:subject>Serveurs</dc:subject>

		<description>
&lt;p&gt;Contexte &lt;br class='autobr' /&gt;
Un fichier. &lt;br class='autobr' /&gt;
Deux user distincts, dans le m&#234;me groupe Unix. &lt;br class='autobr' /&gt;
Des permissions propre &#224; un seul utilisateur. &lt;br class='autobr' /&gt;
Le fichier est dans un r&#233;pertoire modifiable par le groupe. &lt;br class='autobr' /&gt; user@host :/tmp # ls -l file rwxr-xr-x 1 user staff 209 Feb 15 10:40 file &lt;br class='autobr' /&gt;
hacker@host :/tmp # chown hacker file chown : changing ownership of `file' : Operation not permitted &lt;br class='autobr' /&gt;
hacker@host :/tmp # echo coin &gt;&gt; file ksh : file : cannot create [Permission denied] &lt;br class='autobr' /&gt;
hacker@host :/tmp # sed -i -e &#034;s/coin/pan/g&#034; (&#8230;)&lt;/p&gt;


-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-CLX-+" rel="tag"&gt;CLX&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Faille-+" rel="tag"&gt;Faille&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Linux-+" rel="tag"&gt;Linux&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Serveurs-+" rel="tag"&gt;Serveurs&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Contexte&lt;/h2&gt;
&lt;p&gt;Un fichier.&lt;/p&gt;
&lt;p&gt;Deux user distincts, dans le m&#234;me groupe Unix.&lt;/p&gt;
&lt;p&gt;Des permissions propre &#224; un seul utilisateur.&lt;/p&gt;
&lt;p&gt;Le fichier est dans un r&#233;pertoire modifiable par le groupe.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;user@host:/tmp # ls -l file -rwxr-xr-x 1 user staff 209 Feb 15 10:40 file hacker@host:/tmp # chown hacker file chown: changing ownership of `file': Operation not permitted hacker@host:/tmp # echo coin &gt;&gt; file -ksh: file: cannot create [Permission denied] hacker@host:/tmp # sed -i -e &#034;s/coin/pan/g&#034; file hacker@host:/tmp # ls -l file -rwxr-xr-x 1 hacker staff 209 Feb 15 10:41 file&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Sed&lt;/h2&gt;
&lt;p&gt;Sed fait les choses proprement. L'utilisateur qui n'a a priori pas le droit de modifier le fichier si on s'en tient aux permissions Unix le modifie, et en plus se l'approprie. Certes l'inode change.&lt;/p&gt;
&lt;p&gt;En r&#233;alit&#233;, c'est un fonctionnement normal de sed via l'option -i . Lisons le man :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; -c, --copy use copy instead of rename when shuffling files in -i mode (avoids change of input file ownership) &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Vim&lt;/h2&gt;
&lt;p&gt;Vim en fait autant. Le ph&#233;nom&#232;ne est dit naturel, et appara&#238;t dans le man, tout simplement .... Et tant pis si cela d&#233;passe la compr&#233;hension des permissions unix :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;:w[rite]! [++opt] Like &#034;:write&#034;, but forcefully write when 'readonly' is set or there is another reason why writing was refused. Note: This may change the permission and ownership of the file and break (symbolic) links. Add the 'W' flag to 'cpoptions' to avoid this. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Source : &lt;a href=&#034;http://vimdoc.sourceforge.net/htmldoc/editing.html&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://vimdoc.sourceforge.net/htmld...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mais en r&#233;alit&#233;, l'inode n'est pas modifi&#233; avec vim, contrairement &#224; sed. D'autres se sont pos&#233;s la question, voir ce sujet sur &lt;a href=&#034;http://unix.stackexchange.com/questions/58880/how-does-vim-steal-root-owned-files&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://unix.stackexchange.com/quest...&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;You, glen, are the owner of the directory (see the . file in your listing). A directory is just a list of files and you have the permission to alter this list (e.g. add files, remove files, change ownerships to make it yours again, etc.). You may not be able to alter the contents of the file directly, but you can read and unlink (remove) the file as a whole and add new files subsequently.1 Only witnessing the before and after, this may look like the file has been altered. Vim uses swap files and moves files around under water, so that explains why it seems to write to the same file as you do in your shell, but it's not the same thing.2 So, what Vim does, comes down to this: cat temp &gt; .temp.swp # copy file by contents into a new glen-owned file echo nope &gt;&gt; .temp.swp # or other command to alter the new file rm temp &amp;&amp; mv .temp.swp temp # move temporary swap file back 1This is an important difference in file permission handling between Windows and Unices. In Windows, one is usually not able to remove files you don't have write permission for. 2 update: as noted in the comments, Vim does not actually do it this way for changing the ownership, as the inode number on the temp file does not change (comaring ls -li before and after). Using strace we can see exactly what vim does. The interesting part is here: open(&#034;temp&#034;, O_WRONLY|O_CREAT|O_TRUNC, 0664) = -1 EACCES (Permission denied) unlink(&#034;temp&#034;) = 0 open(&#034;temp&#034;, O_WRONLY|O_CREAT|O_TRUNC, 0664) = 4 write(4, &#034;more text bla\n&#034;, 14) = 14 close(4) = 0 chmod(&#034;temp&#034;, 0664) = 0 This shows that it only unlinks, but does not close the file descriptor to temp. It rather just overwrites its whole contents (more text bla\n in my case). I guess this explains why the inode number does not change.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Autrement dit, vim ne ferme juste pas le filedescriptor que l'OS lui autorise &#224; ouvrir.&lt;/p&gt;
&lt;p&gt;Trop gros pour &#234;tre vrai ?&lt;/p&gt;
&lt;p&gt;Essayez .....&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Note le user &#034;hacker&#034; dans l'exemple n'est que carricatural, les r&#233;sultats sont tout &#224; fait normaux.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Sed , quick &amp; dirty tips</title>
		<link>http://clx.asso.fr/spip/?Sed-quick-dirty-tips</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Sed-quick-dirty-tips</guid>
		<dc:date>2012-04-08T11:29:16Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Antoine Van-Elstraete, Ga&#233;tan RYCKEBOER, Jean-Yves Lenhof, Julien Soula aka j2s2, Olivier Duquesne (DaffyDuke)</dc:creator>


		<dc:subject>CLX</dc:subject>
		<dc:subject>Programmation</dc:subject>

		<description>
&lt;p&gt;Copier-coller d'astuces parues sur la liste de diffusion clx@clx.asso.fr . &lt;br class='autobr' /&gt; Remplacer .jpg par rien &lt;br class='autobr' /&gt;
Julien Soula wrote sed 's/\.jpg$//' &lt;br class='autobr' /&gt;
Antoine Van-Elstraete wrote sed 's#.jpg$##g' &lt;br class='autobr' /&gt;
Ga&#233;tan Ryckeboer wrote sed &#034;s/\.jpg//g&#034; &lt;br class='autobr' /&gt;
Jean-Yves LENHOF wrote sed -e 's/\.jpg$//' &lt;br class='autobr' /&gt;
Pourquoi y a-t-il autant de fa&#231;on d'utiliser sed ! C'est incroyable, non ? &lt;br class='autobr' /&gt;
un peu de syntaxe et un peu de simplification : le &#034;.&#034; sans le &#034;\&#034; signifie qu'on &#034;match&#034; n'importe quel caract&#232;re donc un &#034;.jpg&#034; pourrait (&#8230;)&lt;/p&gt;


-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-CLX-+" rel="tag"&gt;CLX&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Programmation-+" rel="tag"&gt;Programmation&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L128xH128/arton286-4c2f8.png?1759526083' alt='' class='spip_logo spip_logo_right' width='128' height='128' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Copier-coller d'astuces parues sur la liste de diffusion &lt;a href='http://clx.asso.fr/spip/?Les-listes-de-diffusion' class=&#034;spip_in&#034;&gt;clx@clx.asso.fr&lt;/a&gt; .&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Remplacer .jpg par rien&lt;/h2&gt;
&lt;p&gt;Julien Soula wrote&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sed 's/\.jpg$//'&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Antoine Van-Elstraete wrote&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sed 's#.jpg$##g'&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ga&#233;tan Ryckeboer wrote&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sed &#034;s/\\.jpg//g&#034;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Jean-Yves LENHOF wrote&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sed -e 's/\.jpg$//'&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pourquoi y a-t-il autant de fa&#231;on d'utiliser sed !&lt;br class='autobr' /&gt;
C'est incroyable, non ?&lt;/p&gt;
&lt;p&gt;un peu de syntaxe et un peu de simplification :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; le &#034;.&#034; sans le &#034;\&#034; signifie qu'on &#034;match&#034; n'importe quel caract&#232;re donc un &#034;.jpg&#034; pourrait supprimer quelque chose comme &#034;-jpg&#034;. On dit que le &#034;\&#034; &#233;chappe le caract&#232;re qui le suit.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; le &#034;g&#034; &#224; la fin signifie qu'on applique la r&#232;gle autant de fois qu'on peut sur la m&#234;me ligne (c'est pourquoi l'exemple de Julien ne marche que s'il n'y a qu'un fichier par ligne)&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; le &#034;$&#034; signifie que la r&#232;gle ne s'applique qu'en fin de ligne (cf. + juste au-dessus)&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; le &#034;\&#034; de Ga&#233;tan vient du fait qu'il a utilis&#233; des &#034;&#034; (guillemets) et Jean-Yves des '' (apostrophes). Or les &#034;\&#034; sont interpr&#233;t&#233;s dans les &#034;&#034; et &#034;\&#034; devient &#034;\&#034;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; on peut prendre n'importe quel s&#233;parateur. Par habitude, on prend &#034;/&#034; mais on peut tres bien utiliser &#034;#&#034; cf l'exemple d'Antoine.&lt;/p&gt;
&lt;p&gt;Arm&#233; de ces r&#233;flexions, choisis ton camp ! :-)&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Remplacer par bloc&lt;/h2&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Enlever un bloc final :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;echo &#034;Version: 1.2.2rc2me4&#034;|sed -e &#034;s/^Version: \(.*\)/Version: cequejeveux/g&#034; Version: cequejeveux&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cas facile, probablement plus encore en &lt;strong&gt;awk&lt;/strong&gt; .&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Enlever un bloc initial :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;echo &#034;cmn-1-0-2sv5&#034;| sed -e &#034;s/\(.*\)\([0-9]-[0-9]-[0-9]sv[0-9]*\)/\2/&#034; 1-0-2sv5&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On utilise ici les champs \1 , le premier bloc de parenth&#232;ses et \2 , le second . A noter, on peut isoler les bloc de chiffres n fois comme vu ci-dessus, ce n'est pas le but ici.&lt;/p&gt;
&lt;p&gt;Ces deux cas utilisent les expressions r&#233;guli&#232;res.&lt;br class='autobr' /&gt;
Un bon site pour d&#233;buter ? &lt;a href=&#034;http://www.siteduzero.com/tutoriel-3-14608-les-expressions-regulieres-partie-1-2.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Le site du z&#233;ro&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Un bon article sur sed : &lt;a href=&#034;https://fr.wikipedia.org/wiki/Stream_Editor&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Wikipedia&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; ou encore &lt;a href=&#034;http://www.grymoire.com/Unix/Sed.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Grymoire&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>RPM : Faites-le vous m&#234;me !</title>
		<link>http://clx.asso.fr/spip/?RPM-Faites-le-vous-meme-272</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?RPM-Faites-le-vous-meme-272</guid>
		<dc:date>2005-01-26T19:00:16Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent Beuselinck</dc:creator>


		<dc:subject>Programmation</dc:subject>
		<dc:subject>RPM</dc:subject>

		<description>&lt;p&gt;Toute une s&#233;rie d'articles sur la cr&#233;ation de paquetages rpm pour la distribution Mandrake.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Programmation-+" rel="tag"&gt;Programmation&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-RPM-+" rel="tag"&gt;RPM&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L48xH48/arton272-e2737.png?1759526083' alt='' class='spip_logo spip_logo_right' width='48' height='48' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Cette s&#233;rie d'articles a &#233;t&#233; &#233;crite par Beuz, Kozaki et Imr, membres du MandrakeClub dans le but de s'autoformer &#224; la cr&#233;ation de rpm. Parall&#232;lement, ils ont traduit les &lt;a href=&#034;http://kb.mandrakeclub.com/index.php/RpmHowToFr&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;MdkRpmHowto&lt;/a&gt; et &lt;a href=&#034;http://kb.mandrakeclub.com/index.php/RpmlintFr&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;RpmLintHowto&lt;/a&gt; publi&#233;s sur la &lt;a href=&#034;http://kb.mandrakeclub.com/index.php/PagePrincipaleFr&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;base de connaissance du MandrakeClub&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>5- RPM : Faites-le vous m&#234;me !</title>
		<link>http://clx.asso.fr/spip/?5-RPM-Faites-le-vous-meme</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?5-RPM-Faites-le-vous-meme</guid>
		<dc:date>2005-01-25T12:34:11Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent Beuselinck</dc:creator>


		<dc:subject>Utilitaires</dc:subject>
		<dc:subject>Mandriva / Mageia</dc:subject>
		<dc:subject>Programmation</dc:subject>

		<description>&lt;p&gt;Pr&#233;sentaiton de quelques outils alternatifs ou compl&#233;mentaires et &#233;num&#233;ration de sites faisant r&#233;f&#233;rence en la mati&#218;re de fabrication de RPM.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-RPM-Faites-le-vous-meme-" rel="directory"&gt;RPM : Faites-le vous m&#234;me !&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Utilitaires-+" rel="tag"&gt;Utilitaires&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Mandriva-Mageia-+" rel="tag"&gt;Mandriva / Mageia&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Programmation-+" rel="tag"&gt;Programmation&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L64xH64/arton266-9129b.png?1759527529' alt='' class='spip_logo spip_logo_right' width='64' height='64' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;outils accessoires et liens&lt;/h2&gt;
&lt;p&gt;Plusieurs outils sont g&#233;n&#233;ralement cit&#233;s en mati&#232;re de cr&#233;ation de RPM. &lt;/p&gt;
&lt;p&gt;Il y a RpmLint dont l'objectif est de v&#233;rifier si votre fichier SPEC respecte les r&#232;gles de l'art. Il vous fournira un rapport tr&#232;s d&#233;taill&#233;. De l'essentiel au d&#233;tail, le nombre de remarques sera cons&#233;quent.&lt;/p&gt;
&lt;p&gt;Alien est souvent cit&#233; car il permet de passer d'un format &#224; un autre assez facilement (de deb &#224; rpm, de tar.gz &#224; deb, inversement, etc).&lt;/p&gt;
&lt;p&gt;D'autres outils viennent apporter une interface conviviale &#224; rpm ou simplifient la ligne de commande (kpackage, rpmbuilder...) sans r&#233;volutionner le syst&#232;me.&lt;/p&gt;
&lt;p&gt;Pour aller plus loin, voici les liens qui nous ont aid&#233; :&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://genetikayos.com/code/repos/rpm-tutorial/trunk/rpm-tutorial.html&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://genetikayos.com/code/repos/r...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://cvs.mandriva.com/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://cvs.mandriva.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://club.mandriva.com/xwiki/bin/KB/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://club.mandriva.com/xwiki/bin/KB/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://club.mandriva.com/xwiki/bin/KB/MandrivaRpmHowToAdvanced&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://club.mandriva.com/xwiki/bin/...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://rikers.org/rpmbook/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://rikers.org/rpmbook/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://c.laloy.free.fr/howtos/linux/admin/urpm.html#srpms_compil&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://c.laloy.free.fr/howtos/linux...&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Voil&#224;, la cr&#233;ation d'un RPM devrait maintenant &#234;tre bien moins myst&#233;rieuse...&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Retour &#224; la 4&#218;me partie : &lt;a href='http://clx.asso.fr/spip/?4-Quelques-exemples' class=&#034;spip_in&#034;&gt;Des exemples&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>4- Quelques exemples</title>
		<link>http://clx.asso.fr/spip/?4-Quelques-exemples</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?4-Quelques-exemples</guid>
		<dc:date>2005-01-25T12:33:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent Beuselinck</dc:creator>


		<dc:subject>Utilitaires</dc:subject>
		<dc:subject>Mandriva / Mageia</dc:subject>
		<dc:subject>Programmation</dc:subject>

		<description>&lt;p&gt;Des exemples de &#034;specfile&#034; pour la cr&#233;ation de RPM.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-RPM-Faites-le-vous-meme-" rel="directory"&gt;RPM : Faites-le vous m&#234;me !&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Utilitaires-+" rel="tag"&gt;Utilitaires&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Mandriva-Mageia-+" rel="tag"&gt;Mandriva / Mageia&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Programmation-+" rel="tag"&gt;Programmation&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L64xH64/arton265-eeea5.png?1759529201' alt='' class='spip_logo spip_logo_right' width='64' height='64' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;exemples v&#233;cus&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Le RPM du fain&#233;ant&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Auteur d'un &lt;a href=&#034;http://www.vbeuselinck.freesurf.fr/logiciels/page0003.htm#bztarot&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;jeu de tarot&lt;/a&gt; initialement pour Windows con&#231;u sous &lt;a href=&#034;http://www.borland.fr/delphi/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Delphi&lt;/a&gt; de Borland, j'ai proc&#233;d&#233; &#224; son transfert vers Linux &#224; l'aide de &lt;a href=&#034;http://www.borland.fr/kylix/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Kylix&lt;/a&gt; (EDI Delphi sous Linux con&#231;u par Borland. Kylix n'est pas libre. Il existe n&#233;anmoins une version &lt;a href=&#034;http://www.borland.fr/kylix/open/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&#034;open edition&#034;&lt;/a&gt; gratuite ).&lt;/p&gt;
&lt;p&gt;Dans un premier temps je l'ai diffus&#233; sous la forme d'un tar.gz contenant les binaires et d'un autre contenant les sources. Je me suis alors lanc&#233; dans sa eRP&#233;Misation et j'ai &#233;clus&#233; les howtos et autres sites persos sur le th&#232;me. Remarquons tout de suite &lt;a href=&#034;http://club.mandriva.com/xwiki/bin/KB/MandrivaRpmHowTo&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;celui de Mandriva&lt;/a&gt; (d&#233;sormais disponible en Fran&#231;ais).&lt;/p&gt;
&lt;p&gt;Pas grand chose &#224; la port&#233;e d'un anglophobe au vocabulaire limit&#233; &#224; quelques dizaines de mots. &lt;br class='autobr' /&gt;
J'avais n&#233;anmoins compris quelques trucs : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; la structure obligatoire des r&#233;pertoires &#224; mettre en place ; &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; l'existence d'un script d'&lt;i&gt;eRP&#233;Misation&lt;/i&gt; ; &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; la possibilit&#233; de &#034;tricher&#034; sur des scripts existants en allant sur le &lt;a href=&#034;http://cvs.mandriva.com&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;CVS de Mandriva&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1) Les dossiers&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Dans votre dossier personnel, vous avez cr&#233;&#233; les dossiers suivants :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; RPM&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; RPM/SOURCES o&#249; il faut mettre les fichiers sources compress&#233;s&lt;/li&gt;&lt;li&gt; RPM/SPECS o&#249; il faut cr&#233;er son fichier de sp&#233;cifications&lt;/li&gt;&lt;li&gt; RPM/RPMS qui contient un dossier par plateforme
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; RPM/RPMS/i586 o&#249; sera cr&#233;&#233; votre RPM pour Pentium&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; RPM/SRPMS o&#249; sera cr&#233;&#233; le &#034;SRC.RPM&#034; qui permet de refaire le RPM selon la m&#233;thode d&#233;crite plus bas&lt;/li&gt;&lt;li&gt; RPM/tmp o&#249; sera stock&#233;e votre application compil&#233;e pendant la production du RPM&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2) le fichier SPEC&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;C'est un fichier texte qui d&#233;finit comment va &#234;tre cr&#233;&#233; votre RPM. Celui qui suit est une version &#8220;Fain&#233;ant&#8221; ! Il ne compile rien mais se contente de recopier les fichiers &#224; la mani&#232;re d'un &lt;i&gt;tar.gz&lt;/i&gt; &#224; l'emplacement identique. J'ai fait cela car je n'arrivais pas &#224; ma&#238;triser le compilateur en ligne Kylix (entretemps, je me suis soign&#233;) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='40' class='spip_cadre spip_cadre_block' dir='ltr'&gt;_ %define name bztarot _ %define version 1.01 _ %define release 9 _ Name: %{name} _ Summary: Jeu de tarot a 4 sous environnement graphique _ Version: %{version} _ Release: %{release} _ License: GPL _ Group: Games/Cards _ URL: http://www.beuselinck.com _ Provides: %{name} = %{version}-%{release} _ Source: bztarot-1.01.tar.bz2 _ %description _ Ce jeu de tarot vous permet de jouer seul contre l'ordinateur dans des parties a 4. Respecte la reglementation de la Federation Francaise de Tarot. _ %install _ %post _ %{update_menus} _ %postun _ %{clean_menus} _ %files _ /usr/bin/bztarot-1.01 _ /usr/bin/bztarot _ /usr/lib/libborqt* _ /usr/share/icons/bztarot.png _ &#034;/usr/share/applnk-mdk/More applications/Games/Cards/bztarot.desktop&#034; _ %changelog _ * Mon Oct 12 2004 Vincent Beuselinck &lt;vincent@beuselinck.com&gt; 1.01 _ - ajout d'un &#233;cran d'accueil _ - correction d'un bug (sigserv 11) _ - rajout d'une entr&#233;e de menu oubli&#233;e _ - compatibilit&#233; noyau 2.6 _ - aide integr&#233;e _ - modifications pour empaquetage RPM&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;ATTENTION :&lt;/strong&gt; Ce fichier SPEC n'est pas techniquement un bon mod&#232;le : il ne r&#233;alise pas la compilation mais se contente de recopier les binaires (Horreur !). L'entr&#233;e de menu qu'il cr&#233;e a des r&#233;sultats curieux selon les versions de MandrakeLinux&lt;/p&gt;
&lt;p&gt;Dans un premier temps, j'avais accentu&#233; mes descriptions. Avec les commandes &lt;strong&gt;urpmi&lt;/strong&gt; et &lt;i&gt;(rpm&lt;/strong&gt;, j'obtenais le r&#233;sultat escompt&#233; mais dans rpmdrake les rubriques avec accent ou c&#233;dille disparaissaient. J'ai d&#233;pos&#233; un rapport de bogue et la r&#233;ponse a &#233;t&#233; en substance qu'il fallait faire &#231;a en UTF8 (???) pour que &#231;a marche.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3) &#034;Tricher&#034; sur des fichiers specs existants&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Une solution simple pour examiner un fichier SPEC existant est de t&#233;l&#233;charger le SRC.RPM d'un logiciel et d'en extraire le fichier *.spec.&lt;/p&gt;
&lt;p&gt;Personnellement, j'utilise &lt;a href=&#034;http://www.ibiblio.org/mc/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;i&gt;mc&lt;/i&gt;&lt;/a&gt; , une application &#034;console&#034; qui lit dans les paquetages RPM comme s'il s'agissait de tar.gz. Il est alors facile d'en extraire ou consulter un fichier texte quelconque.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4)Second essai&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Apr&#232;s nos travaux communs d'apprentissage, mon fichier SPEC a &#233;volu&#233; ainsi :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='105' class='spip_cadre spip_cadre_block' dir='ltr'&gt;_ %define name bztarot _ # Pour pas &#233;crire 10 fois le titre dans le spec, on d&#233;finit une variable &#034;name&#034; _ # qui contient le nom du logiciel, ici c'est bztarot. _ # idem avec les variables d&#233;clar&#233;es ci-dessous : _ %define version 1.02 _ %define release 11mdk _ %define section Amusement/Cards _ %define title BzTarot _ Name: %{name} _ Summary: Jeu de tarot a 4 sous environnement graphique _ Version: %{version} _ Release: %{release} _ License: GPL _ Group: Games/Cards _ URL: http://www.beuselinck.com _ Provides: %{name} = %{version}-%{release} _ Source0: %name-%version.tar.bz2 _ Source1: %name-icons.tar.bz2 _ Packager: V.Beuselinck &lt;vincent@beuselinck.com&gt; _ BuildRoot: %_tmppath/%name-buildroot _ %description _ Ce jeu de tarot vous permet de jouer seul contre l'ordinateur dans des parties a 4. Respecte la reglementation de la Federation Francaise de Tarot. _ # L&#224;, j'ai d&#251; enlever les accents car pour rpm et urpmi &#231;a va mais pour rpmdrake, &#231;a n'affichait plus rien. _ %prep _ %setup -q _ %setup -q -T -D -a1 # unpack icons _ #%patch1 -p0 _ # Dans cette section, on dit &#224; RPM de d&#233;compresser les sources. Pour la premi&#232;re ligne, le -a0 de la source0 est implicite. Mais pour les autres sources, il faut num&#233;roter... _ %build _ dcc tarot.dpr _ # Dans cette section, on effectue la compilation en lan&#231;ant le compilateur en ligne Kylix, &#224; savoir dcc, sur le projet tarot.dpr _ %install _ rm -rf %buildroot _ %__install -D -m 755 tarot %buildroot/%_bindir/&lt;HTML&gt;%{name}&lt;/HTML&gt; _ # un petit nettoyage de &#034;buildroot&#034; puis on y installe le fichier compil&#233; dans le virtuel /usr/bin _ # Menu _ mkdir -p %buildroot/%_menudir _ cat &gt; %buildroot/%_menudir/%name &lt;&lt; EOF _ ?package(%name): \ _ command=&#034;%_bindir/%name&#034; \ _ needs=&#034;X11&#034; \ _ icon=&#034;%name.png&#034; \ _ section=&#034;%section&#034; \ _ title=&#034;%title&#034; \ _ longtitle=&#034;%Summary&#034; _ EOF _ #Ci-dessus, on cr&#233;e les entr&#233;es de menu pour les menus mandrake. _ # icones et librairies _ %__install -D -m 644 %{name}48.png %buildroot/%_liconsdir/%name.png _ %__install -D -m 644 %{name}32.png %buildroot/%_iconsdir/%name.png _ %__install -D -m 644 %{name}16.png %buildroot/%_miconsdir/%name.png _ %__install -D -m 755 /usr/lib/libborqt* %buildroot/usr/lib/ _ # on installe &#233;galement dans le syst&#232;me de fichiers virtuel les icones et librairies _ %post _ %{update_menus} _ #&#231;a, &#231;a marche pas, mais j'ai d&#233;j&#224; rep&#233;r&#233; des syntaxes diff&#233;rentes, j'irai &#224; la p&#234;che pour trouver la bonne syntaxe. Le but est de demander au gestionnaire de fen&#234;tres d'actualiser son menu puisqu'on vient d'y mettre une nouvelle entr&#233;e. Sinon, il faut attendre le prochain boot pour que &#231;a apparaisse. _ %postun _ %{clean_menus} _ %files _ %defattr(0755,root,root,0755) _ %_bindir/* _ /usr/lib/libborqt* _ %defattr(0644,root,root,0755) _ #%doc COPYING LICENSE README INSTALL Changelog AUTHORS _ %_menudir/* _ %_miconsdir/* _ %_iconsdir/* _ %_liconsdir/* _ # Et l&#224;, on dit &#224; RPM : tout ce que j'ai mis dans le syst&#232;me de fichier virtuel, tu _l'installeras au m&#234;me endroit mais dans le vrai syst&#232;me de fichier, quand quelqu'un te demandera d'installer le RPM _ %changelog _ * Mon Nov 13 2004 Vincent Beuselinck &lt;vincent@beuselinck.com&gt; 1.02-11mdk _ - correctif d'une erreur en quittant le jeu _ [..]&lt;/textarea&gt;
&lt;p&gt;YAHooouuuuuuuuuuuuuu ! Voil&#224; mon RPM est fait.&lt;/p&gt;
&lt;p&gt;Prochaines &#233;tapes : s&#233;parer les librairies, franciser dans les r&#232;gles de l'art le RPM, faire que la mise &#224; jour des menus soit imm&#233;diate, mettre le compilateur Borland dcc comme &#171; BuildRequires &#187;, c'est-&#224;-dire n&#233;cessaire pour compiler les sources...&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Derni&#232;re partie : &lt;a href='http://clx.asso.fr/spip/?5-RPM-Faites-le-vous-meme' class=&#034;spip_in&#034;&gt;Accessoires et conclusion&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Retour &#224; la 3&#232;me partie : &lt;a href='http://clx.asso.fr/spip/?3-La-demarche' class=&#034;spip_in&#034;&gt;La d&#233;marche&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>3- La d&#233;marche</title>
		<link>http://clx.asso.fr/spip/?3-La-demarche</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?3-La-demarche</guid>
		<dc:date>2005-01-16T20:31:32Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent Beuselinck</dc:creator>


		<dc:subject>Utilitaires</dc:subject>
		<dc:subject>Mandriva / Mageia</dc:subject>
		<dc:subject>Programmation</dc:subject>

		<description>&lt;p&gt;La d&#233;marche pour cr&#233;er ses RPM : installer les outils, les configurer, cr&#233;er le fichier SPEC et compiler le RPM&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-RPM-Faites-le-vous-meme-" rel="directory"&gt;RPM : Faites-le vous m&#234;me !&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Utilitaires-+" rel="tag"&gt;Utilitaires&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Mandriva-Mageia-+" rel="tag"&gt;Mandriva / Mageia&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Programmation-+" rel="tag"&gt;Programmation&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L64xH64/arton264-98cc2.png?1759546984' alt='' class='spip_logo spip_logo_right' width='64' height='64' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;En pratique&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1) Pr&#233;requis&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tout d'abord, vous devez installer quelques paquetages : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;rpm&lt;/i&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;rpm-build&lt;/i&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;spec-helper&lt;/i&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;libtool&lt;/i&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;rpmlint&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Le paquetage rpm est probablement d&#233;j&#224; install&#233; ;)&lt;br class='autobr' /&gt;
Pour les autres paquetages, ouvrez une console en se &#034;&lt;i&gt;loguant&lt;/i&gt;&#034; en root, tapez cette commande :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;urpmi rpm-build spec-helper libtool rpmlint&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Il faut bien s&#251;r accepter l'installation des d&#233;pendances que l'utilitaire &lt;i&gt;urpmi&lt;/i&gt; vous&lt;br class='autobr' /&gt;
r&#233;clame.&lt;/p&gt;
&lt;p&gt;D&#233;cidez maintenant quel utilisateur (ici monpseudo) va compiler le paquet : &#231;a ne doit jamais&lt;br class='autobr' /&gt;
&#234;tre root !&lt;/p&gt;
&lt;p&gt;Passez donc sous ce login en tapant :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;su monpseudo&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ensuite une deuxi&#232;me commande va installer les r&#233;pertoires utiles.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mkdir -p ~/rpm/{BUILD,RPMS/i586,RPMS/noarch,SOURCES,SRPMS,SPECS,tmp}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ATTENTION :&lt;/strong&gt; Remplacez &lt;strong&gt;i586&lt;/strong&gt; par votre architecture.&lt;br class='autobr' /&gt;
Ces r&#233;pertoires sont install&#233;s dans votre r&#233;pertoire personnel (/home/monpseudo selon l'exemple choisi).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2) La configuration g&#233;n&#233;rale&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En &#034;standard&#034; sur Mandrake 10, vous trouverez les fichiers suivants :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='14' class='spip_cadre spip_cadre_block' dir='ltr'&gt;~/.rpmrc : buildarchtranslate: i386: i586 buildarchtranslate: i486: i586 buildarchtranslate: i586: i586 buildarchtranslate: i686: i586 ~/.rpmmacros : %_topdir $HOME/rpm %_tmppath $HOME/rpm/tmp %_signature gpg %_gpg_name Mandrakelinux %_gpg_path ~/.gnupg %distribution Mandrakelinux %vendor Mandrakesoft&lt;/textarea&gt;
&lt;p&gt;Ces deux fichiers se trouvent dans le r&#233;pertoire &lt;i&gt;$HOME&lt;/i&gt; de l'utilisateur. Comme vous le&lt;br class='autobr' /&gt;
voyez, le premier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.rpmrc&lt;/code&gt; donne une s&#233;rie&lt;br class='autobr' /&gt;
d'&#233;quivalences. les d&#233;veloppeurs de &lt;a href=&#034;http://www.mandriva.com&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Mandriva&lt;/a&gt; ont pris comme plate-forme de&lt;br class='autobr' /&gt;
r&#233;f&#233;rence le i586.&lt;/p&gt;
&lt;p&gt;Le second fichier contient des variables g&#233;n&#233;rales, &#224; savoir :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;topdir&lt;/code&gt;&lt;/strong&gt; contient le chemin vers le dossier rpm donc&lt;br class='autobr' /&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/monpseudo/rpm&lt;/code&gt;.&lt;br class='manualbr' /&gt;C'est &#224; partir de cet endroit que RPM s'attend &#224; trouver les sous-dossiers&lt;br class='autobr' /&gt;
n&#233;cessaires &#224; la fabrication d'un rpm (voir les pr&#233;requis).
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tmppath&lt;/code&gt;&lt;/strong&gt; d&#233;signe le dossier dans lequel RPM copiera ses fichiers&lt;br class='autobr' /&gt; temporaires pendant la fabrication de l'archive.&lt;br class='manualbr' /&gt;# Les variables ci-dessous ne sont utiles que pour le r&#233;f&#233;rencement Mandrake.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;signature&lt;/code&gt;&lt;/strong&gt;, c'est le logiciel GPG qui servira &#224; authentifier&lt;br class='autobr' /&gt; votre paquet.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;gpg name&lt;/code&gt;&lt;/strong&gt;, la cl&#233; de MandrakeSoft servira &#224; signer le paquet qui sera propos&#233; sur leur serveur&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;La mise en oeuvre se fera par Mandrakesoft si les d&#233;veloppeurs responsables (&#8230;)&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;gpg path&lt;/code&gt;&lt;/strong&gt;, vos fichiers de configuration gpg se trouvent l&#224;&lt;br class='autobr' /&gt; (ici, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;~/.gnupg&lt;/code&gt; signifie dans le dossier $HOME (le &lt;i&gt; &lt;/i&gt;), sous-dossier cach&#233;&lt;br class='autobr' /&gt; gnupg.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;distribution&lt;/code&gt;&lt;/strong&gt; la distribution pour laquelle votre paquet est&lt;br class='autobr' /&gt; con&#231;u.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vendor&lt;/code&gt;&lt;/strong&gt; c'est vous si vous ne travaillez pas pour&lt;br class='autobr' /&gt; Mandrakesoft.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3) Les fichiers SPECs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le fichier SPEC est un fichier texte (donc votre &#233;diteur de texte pr&#233;f&#233;r&#233; fera l'affaire) qui indique &#224; l'application RPM comment construire votre rpm. Il se d&#233;coupe en &#034;sections&#034;. Voici des extraits comment&#233;s du squelette propos&#233; par&lt;br class='autobr' /&gt;
Mandrakeclub que nous avons comment&#233;s :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='155' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# D'abord on d&#233;finit quelques variables (name, version et release) # c'est plus simple lorsque l'on change de nom ou version de n'avoir qu'un seul endroit &#224; changer %define name skel %define version 0.1 %define release 8mdk # Pour les Applications X, les menus Mandriva comportent une classification # (donc l'endroit de l'arborescence o&#249; poser le raccourci). %define section menu mandrake/sous-menu mandrake # la liste est sur http://qa.mandriva.com/twiki/bin/view/Main/MenuSystem_Fr %define title Skel # Le nom du logiciel avec la premi&#232;re lettre en capitale pour qu'il apparaisse comme &#231;a dans les menus Mandrake # SUMMARY courte description en 60 caract&#232;res # Pas d'accents. Inutile de r&#233;p&#233;ter le nom du logiciel %define Summary ma description Summary: %Summary Name: %name Version: %version Release: %release License: GPL Group: Groupe/Sousgroupe # Group d&#233;finit l'arborescence de pr&#233;sentation dans RPMDRAKE &#034;choix Mandrake&#034;. # La liste est sur http://qa.mandriva.com/twiki/bin/view/Main/MandrivaGroups_Fr URL: http://la.homepage.de.mon.appli.com # il est bien de rajouter &#233;galement en commentaire le lien direct vers l'URL # de t&#233;l&#233;chargement Source0: %name-%version.tar.bz2 # La source 0 est g&#233;n&#233;ralement un tar.bz2 contenant un dossier du nom de # l'appli et la version (ici : on aura donc un dossier skel-0.1 ). Dedans, # se trouvent les fichiers sources pr&#234;ts &#224; &#234;tre compil&#233;s. # La source 1 contient souvent 3 ic&#244;nes nomm&#233;s skel-16.png skel-32.png # skel-48.png (rappel skel = nom de mon appli) o&#249; le chiffre donne la taille # de l'ic&#244;ne (tar -cjf %name-icons.tar.bz2 *png permet de cr&#233;er cette source) Source1: %name-icons.tar.bz2 # Vous pouvez aussi avoir des source2,3,4... Buildroot: %_tmppath/%name-buildroot # La notion de buildroot est tr&#232;s importante : c'est l&#224; que RPM cr&#233;era un # pseudo syst&#232;me de fichier racine &#224; l'int&#233;rieur duquel il pourra mettre un # pseudo /usr/bin, un pseudo /etc bref faire sembler de travailler sur / sans # risquer de mettre en danger le vrai / Buildrequires: foo-devel bar-devel Requires: foo # Utilisez ldd pour conna&#238;tre les d&#233;pendances n&#233;cessaires au # logiciel (Requires) ou &#224; sa compilation (buildrequires). # NE METTEZ PAS des d&#233;pendances implicites. Exemple: # Buildrequires: gtk+-devel XFree86-devel &lt;- Mauvais ! # Puisque gtk+-devel a d&#233;j&#224; besoin de XFree86-devel, vous n'avez pas besoin # d'ajouter cette seconde d&#233;pendance pour votre logiciel. # Si RPM trouve les librairies (lisez la derni&#232;re partie de la sortie console) # lui-m&#234;me, vous n'avez rien &#224; ajouter non plus. %description # Ici, vous allez mettre une description plus longue # La section &#034;prep&#034; (pour &#034;preparation&#034;) commence ici : %prep %setup -q %setup -q -T -D -a1 # unpack icons #%patch1 -p0 # setup est une macro de d&#233;compression et installation des sources # c'est l&#224; que vous patcherez &#233;ventuellement vos sources au besoin %build %configure %make %install %__rm -rf %buildroot %makeinstall # Menu # Voil&#224; la macro qui cr&#233;e les entr&#233;e dans les menus Mandrake # CAT cr&#233;e dans un fichier tout ce qu'il y a entre EOF et EOF # install le pose o&#249; &#231;a va bien %__install -d %buildroot/%_menudir %__cat &lt;&lt; EOF &gt; %buildroot/%_menudir/%name package(%name): \ command=&#034;%_bindir/%name&#034; \ needs=&#034;X11&#034; \ icon=&#034;%name.png&#034; \ section=&#034;%section&#034; \ title=&#034;%title&#034; \ longtitle=&#034;%Summary&#034; EOF # icon # ici ce sont les ic&#244;nes qui sont install&#233;s l&#224; o&#249; menudrake saura aller les # chercher en fonction de la taille &#233;cran. %__install -D -m 644 %{name}-48.png %buildroot/%_liconsdir/%name.png %__install -D -m 644 %{name}-32.png %buildroot/%_iconsdir/%name.png %__install -D -m 644 %{name}-16.png %buildroot/%_miconsdir/%name.png %pre %post %{update_menus} # On demande &#224; votre environnement graphique de mettre &#224; jour son menu pour _ # notre nouveau logiciel y apparaisse tout de suite (sans attendre un reboot) %postun %{clean_menus} # m&#234;me chose en cas de d&#233;sinstallation %clean %__rm -rf %buildroot # la section ci-dessous consiste &#224; installer les fichiers &#224; partir de buildroot # vers le v&#233;ritable syst&#232;me de fichier donc &#224; leur place d&#233;finitive %files -f %name.lang %defattr(0755,root,root,0755) # Les fichiers d&#233;sign&#233;s ci-dessous seront ex&#233;cutables # tous ceux qui sont dans &#034;bindir&#034;) donc on leur met le chmod +X (ex&#233;cutable) %_bindir/* %defattr(0644,root,root,0755) # &#224; partir d'ici ce sont les non-ex&#233;cutables donc pas de chmod +X %doc COPYING LICENSE README INSTALL Changelog AUTHORS %_menudir/* %_miconsdir/* %_iconsdir/* %_liconsdir/* %_datadir/%name/* %_mandir/man1/%name.1* # Ci-dessous, on d&#233;crit ce qui change d'une version &#224; l'autre, cela apparaitra # dans rpmdrake %changelog Sat Nov 1 2003 Han Boetes &lt;han@linux-mandrake.com&gt; 0.1-8mdk - more macros and other little improvements.&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;4) La compilation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Selon les cas, la compilation se fera de plusieurs fa&#231;ons. &lt;br class='autobr' /&gt;
Si vous d&#233;marrez d'un fichier src.rpm (ou &#034;srpm&#034;),il vous faudra taper simplement :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm --rebuild lenomdemonfichier.src.rpm&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Et si tout va bien, vous obtendrez au final une archive lenomdemonfichier.i586.rpm (ou une autre architecture, &#231;a d&#233;pend de votre besoin exprim&#233; dans vos fichiers de configuration)&lt;/p&gt;
&lt;p&gt;Si vous partez d'un tar.bz2, il vous faut taper :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; rpm -ba lenomdemonfichier.spec&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;
&lt;br /&gt;&#8212; C'est tout ? &lt;br /&gt;&#8212; Oui, c'est tout ! &lt;br /&gt;&#8212; T'es s&#251;r ? &lt;br /&gt;&#8212; Bon si vous insistez, voil&#224; d'autres possibilit&#233;s... &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -ba&lt;/code&gt;&lt;/strong&gt; fait toute la compilation (a signifiant &#034;all&#034;, en&lt;br class='autobr' /&gt; fran&#231;ais &#034;tout&#034;) mais elle peut &#234;tre d&#233;compos&#233;e en &#233;tapes :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -bp&lt;/code&gt;&lt;/strong&gt; ne fait par exemple que la pr&#233;paration avant&lt;br class='autobr' /&gt; compilation
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -bc&lt;/code&gt;&lt;/strong&gt; va jusque la compilation mais n'installe rien dans&lt;br class='autobr' /&gt; buildroot
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -bi&lt;/code&gt;&lt;/strong&gt; va jusqu'&#224; l'installation dans buildroot mais ne&lt;br class='autobr' /&gt; cr&#233;e pas les rpm
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -bb&lt;/code&gt;&lt;/strong&gt; construit juste le i586.rpm mais pas le src.rpm (les&lt;br class='autobr' /&gt; &#233;tapes pr&#233;c&#233;dentes sont donc faites)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -bs&lt;/code&gt;&lt;/strong&gt; construit le src.rpm mais pas le i586.rpm
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rpm -bl&lt;/code&gt;&lt;/strong&gt; v&#233;rifie la pr&#233;sence des fichiers dont il aura besoin&lt;br class='autobr' /&gt; pour l'installation (il faut donc &#034;construire&#034; avant).&lt;/p&gt;
&lt;p&gt;Dans tous les cas, on indique en param&#232;tre le fichier spec et l'endroit o&#249; il&lt;br class='autobr' /&gt;
se trouve. Parfois celui-ci est directement dans le dossier &#034;tar&#233;&#034; des sources&lt;br class='autobr' /&gt;
(le sources.tar.bz2), on peut alors soit extraire ce fichier SPEC pour pouvoir&lt;br class='autobr' /&gt;
lancer notre compilation par &lt;i&gt;rpm -ba&lt;/i&gt; soit remplacer le B de &lt;i&gt;rpm -ba&lt;/i&gt; par un&lt;br class='autobr' /&gt;
T (&lt;i&gt;rpm -ta&lt;/i&gt;) qui demande &#224; rpm d'aller chercher le SPEC dans le fichier tar&lt;br class='autobr' /&gt;
des sources.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;La mise en oeuvre se fera par Mandrakesoft si les d&#233;veloppeurs responsables des archives d&#233;cident d'int&#232;grer votre paquet &#224; la distribution. Cf &lt;a href=&#034;http://qa.mandriva.com/twiki/bin/view/Main/RpmHowTo#Send_your_work&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://qa.mandriva.com/twiki/bin/vi...&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;4&#218;me partie : &lt;a href='http://clx.asso.fr/spip/?4-Quelques-exemples' class=&#034;spip_in&#034;&gt;Quelques exemples&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Retour &#224; la 2&#218;me partie : &lt;a href='http://clx.asso.fr/spip/?2-Les-principes-de-la-creation-d-un-RPM' class=&#034;spip_in&#034;&gt;Les principes de cr&#233;ation d'un RPM&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>2- Les principes de la cr&#233;ation d'un RPM</title>
		<link>http://clx.asso.fr/spip/?2-Les-principes-de-la-creation-d-un-RPM</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?2-Les-principes-de-la-creation-d-un-RPM</guid>
		<dc:date>2005-01-16T20:29:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent Beuselinck</dc:creator>


		<dc:subject>Utilitaires</dc:subject>
		<dc:subject>Mandriva / Mageia</dc:subject>
		<dc:subject>Programmation</dc:subject>

		<description>&lt;p&gt;Cette parte montre les grandes lignes de la construction d'un RPM : qu'est-ce que le buildroot, a quoi sert le fichier SPEC, qu'est-ce qu'un fichier SRPM...&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-RPM-Faites-le-vous-meme-" rel="directory"&gt;RPM : Faites-le vous m&#234;me !&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Utilitaires-+" rel="tag"&gt;Utilitaires&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Mandriva-Mageia-+" rel="tag"&gt;Mandriva / Mageia&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Programmation-+" rel="tag"&gt;Programmation&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L64xH64/arton263-f6462.png?1759552845' alt='' class='spip_logo spip_logo_right' width='64' height='64' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Les principes&lt;/h2&gt;
&lt;p&gt;Pour comprendre comment construire un RPM, il est plus&lt;br class='autobr' /&gt;
simple de conna&#238;tre d'abord les grandes lignes de la cr&#233;ation d'un RPM...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RPM travaille proprement&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lorsque vous installez un logiciel &#224; partir&lt;br class='autobr' /&gt;
de son code source, vous devez d'abord d&#233;compresser l'archive correspondante qui porte le plus souvent l'extension &lt;i&gt;.tar.gz&lt;/i&gt; ou &lt;i&gt;.tar.bz2&lt;/i&gt;. En effet, le code source est souvent&lt;br class='autobr' /&gt;
fourni sous la forme d'une archive compress&#233;. &lt;br class='autobr' /&gt;
Il faut donc d&#233;compresser l'archive &lt;br class='autobr' /&gt;
dans un dossier pr&#233;alablement choisi (ou bien copier l'archive dans un dossier particulier et l'y&lt;br class='autobr' /&gt;
d&#233;compresser, ce qui revient au m&#234;me).&lt;br class='autobr' /&gt;
Puis, il faut pr&#233;parer la compilation du programme en adaptant un fichier de configuration (&lt;i&gt;Makefile&lt;/i&gt;) en fonction de votre architecture, des biblioth&#232;ques de fonctions pr&#233;sentes sur votre syst&#232;me, &lt;i&gt;etc.&lt;/i&gt; Pour cela, vous utilisez la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./configure&lt;/code&gt;. Vous lancez ensuite la compilation, via un programme sp&#233;cifique &#8212;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;make&lt;/code&gt; &#8212; et enfin&lt;br class='autobr' /&gt;
l'installation dans les dossiers de destination&lt;br class='autobr' /&gt;
finale&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;pour les pages man ; pour beaucoup de logiciels ; pour les fichiers (&#8230;)&#034; id=&#034;nh2-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; est effectu&#233; via la commande &lt;i&gt;make install&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Or, vous avez s&#251;rement remarqu&#233; que ces op&#233;rations ne sont pas n&#233;cessaires avec un RPM. En effet, Il n'y a pas de&lt;br class='autobr' /&gt;
manipulation pr&#233;alable &#224; l'installation d'un RPM,&lt;br class='autobr' /&gt;
ni de commandes &#224; lancer pour terminer&lt;br class='autobr' /&gt;
celle-ci. Le fichier SPEC &#233;labor&#233; lors de la construction du RPM s'occupe de r&#233;aliser toutes ces op&#233;rations. Tout comme &lt;i&gt;urpmi&lt;/i&gt; installe automatiquement un RPM en t&#233;l&#233;chargeant et installant les d&#233;pendances n&#233;cessaires, etc. &lt;br class='autobr' /&gt;
Le principe de construction d'un RPM consiste donc &#224; configurer un fichier de mani&#232;re &#224; ce que toutes ces op&#233;rations soient effectu&#233;es. C'est en cela que RPM fonctionne proprement.&lt;/p&gt;
&lt;p&gt;Mais ce n'est pas le seul principe de &#034;propret&#233;&#034;&lt;br class='autobr' /&gt;
du RPM. Lors de la cr&#233;ation d'un RPM, l&#224; encore, le&lt;br class='autobr' /&gt;
principe de propret&#233; pr&#233;vaut. RPM va travailler dans un dossier que vous lui aurez&lt;br class='autobr' /&gt;
d&#233;sign&#233; et il faudra y cr&#233;er plusieurs&lt;br class='autobr' /&gt;
sous-dossiers dans lesquels il rangera les&lt;br class='autobr' /&gt;
fichiers par cat&#233;gorie : les sources, les specs,&lt;br class='autobr' /&gt;
les binaires (par architecture), les fichiers temporaires...&lt;/p&gt;
&lt;p&gt;Et parmi ces repertoires, le dossier &#034;&lt;i&gt;buildroot&lt;/i&gt;&#034; est&lt;br class='autobr' /&gt;
l&#224; pour servir de pseudo-racine du syst&#232;me. En&lt;br class='autobr' /&gt;
effet, s'il est n&#233;cessaire d'agir dans d'autres&lt;br class='autobr' /&gt;
dossiers lors de l'installation&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Voir plus haut ; et note 1.&#034; id=&#034;nh2-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; (avant d'obtenir le RPM final, il faut faire quelques exp&#233;rimentations), il est&lt;br class='autobr' /&gt;
inacceptable que RPM puisse agir sur le syst&#232;me d'exploitation&lt;br class='autobr' /&gt;
Linux et ainsi le rendre instable &#224; cause d'une&lt;br class='autobr' /&gt;
exp&#233;rience au r&#233;sultat surprenant (suppressions ou&lt;br class='autobr' /&gt;
modifications de fichiers par exemple). C'est la&lt;br class='autobr' /&gt;
raison pour laquelle RPM utilise le buildroot :&lt;br class='autobr' /&gt;
une fausse arborescence racine dans laquelle il&lt;br class='autobr' /&gt;
reproduira les dossiers n&#233;cessaires propres &#224; Linux : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/bin&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc&lt;/code&gt;, ...&lt;/p&gt;
&lt;p&gt;Ainsi, si la fabrication du RPM n'a pas le&lt;br class='autobr' /&gt;
r&#233;sultat escompt&#233;, RPM ayant travaill&#233; dans un&lt;br class='autobr' /&gt;
dossier s&#233;par&#233;, votre syst&#232;me Linux ne sera pas&lt;br class='autobr' /&gt;
encombr&#233; par des fichiers inutiles ou dangereux.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RPM est une polka.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;C'est-&#224;-dire que l'on peut clairement distinguer&lt;br class='autobr' /&gt;
deux temps dans sa fa&#231;on de construire une archive.&lt;/p&gt;
&lt;p&gt;Tout d'abord, RPM d&#233;compresse les fichiers sources&lt;br class='autobr' /&gt;
&#224; partir du dossier RPM/SOURCES. Attention, il&lt;br class='autobr' /&gt;
faut pr&#233;voir que ces sources soient compress&#233;s&lt;br class='autobr' /&gt;
dans un sous-dossier du nom (nom et version) de&lt;br class='autobr' /&gt;
votre logiciel pour que la d&#233;compression se fasse&lt;br class='autobr' /&gt;
dans RPM/SOURCES/logiciel_version. Par exemple, l'archive TAR de BzTarot contient un r&#233;pertoire bztarot-1.02 qui contient les sources. C'est&lt;br class='autobr' /&gt;
g&#233;n&#233;ralement le cas avec les sources que vous irez&lt;br class='autobr' /&gt;
chercher sur le Net.&lt;/p&gt;
&lt;p&gt;Ensuite, il va compiler le logiciel, utilisant&lt;br class='autobr' /&gt;
pour cela votre dossier temporaire. Si la&lt;br class='autobr' /&gt;
compilation se passe bien, le tout sera install&#233;&lt;br class='autobr' /&gt;
dans RPM/BUILD. Et pour finir cette premi&#232;re&lt;br class='autobr' /&gt;
p&#233;riode, il va installer les fichiers dans le&lt;br class='autobr' /&gt;
buildroot pour simuler l'installation. Les tests,&lt;br class='autobr' /&gt;
v&#233;rifications et pr&#233;parations sont termin&#233;es, le&lt;br class='autobr' /&gt;
second temps est celui de la fabrication des RPM&lt;br class='autobr' /&gt;
eux-m&#234;me.&lt;/p&gt;
&lt;p&gt;Il va cr&#233;er le SRPM, un RPM particulier qui&lt;br class='autobr' /&gt;
contiendra les sources, le spec, la description,&lt;br class='autobr' /&gt;
bref tout ce qu'il faut pour quelqu'un qui&lt;br class='autobr' /&gt;
voudrait recr&#233;er le RPM. Ce paquet n'est&lt;br class='autobr' /&gt;
absolument pas exploitable, dans le sens o&#249; son&lt;br class='autobr' /&gt;
installation ne permettra pas d'utiliser le&lt;br class='autobr' /&gt;
logiciel. Enfin, il va cr&#233;er le RPM qui contiendra&lt;br class='autobr' /&gt;
tous les fichiers n&#233;cessaires au fonctionnement et&lt;br class='autobr' /&gt;
&#224; l'installation du logiciel, mais pas les&lt;br class='autobr' /&gt;
&#233;l&#233;ments qui permettraient de refaire un RPM (pas&lt;br class='autobr' /&gt;
de spec, ni source).&lt;/p&gt;
&lt;p&gt;Certains estiment qu'il y a entre ses deux&lt;br class='autobr' /&gt;
p&#233;riodes, une p&#233;riode interm&#233;diaire de d&#233;bogage,&lt;br class='autobr' /&gt;
correctifs, modifications, jurons et multiples&lt;br class='autobr' /&gt;
essais. C'est peut-&#234;tre exact mais en scrutant aux&lt;br class='autobr' /&gt;
rayons X les RPM et SRPM, cela ne se voit pas...&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb2-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/share/man&lt;/code&gt; pour les&lt;br class='autobr' /&gt;
pages man ; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/bin&lt;/code&gt; pour beaucoup de&lt;br class='autobr' /&gt;
logiciels ; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc&lt;/code&gt; pour les fichiers&lt;br class='autobr' /&gt;
communs de configuration ; etc.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Voir plus haut ;&lt;br class='autobr' /&gt;
et note 1.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;3&#218;me partie : &lt;a href='http://clx.asso.fr/spip/?3-La-demarche' class=&#034;spip_in&#034;&gt;La d&#233;marche&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Retour sur la 1&#218;re partie : &lt;a href='http://clx.asso.fr/spip/?1-Pourquoi-creer-ses-propres-paquetages' class=&#034;spip_in&#034;&gt;Pourquoi cr&#233;er ses propres paquetages&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>1- Pourquoi cr&#233;er ses propres paquetages</title>
		<link>http://clx.asso.fr/spip/?1-Pourquoi-creer-ses-propres-paquetages</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?1-Pourquoi-creer-ses-propres-paquetages</guid>
		<dc:date>2005-01-07T04:11:53Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent Beuselinck</dc:creator>


		<dc:subject>Utilitaires</dc:subject>
		<dc:subject>Mandriva / Mageia</dc:subject>
		<dc:subject>Programmation</dc:subject>

		<description>&lt;p&gt;Pourquoi cr&#233;er des RPM pour sa distribution pr&#233;f&#233;r&#233;e, ici une Mandrake ? Cet article regroupe quelques raisons d'aborder la construction de paquetages personnalis&#233;s.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-RPM-Faites-le-vous-meme-" rel="directory"&gt;RPM : Faites-le vous m&#234;me !&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Utilitaires-+" rel="tag"&gt;Utilitaires&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Mandriva-Mageia-+" rel="tag"&gt;Mandriva / Mageia&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Programmation-+" rel="tag"&gt;Programmation&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L64xH64/arton262-152a7.png?1759530124' alt='' class='spip_logo spip_logo_right' width='64' height='64' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Avant de commencer &#224; attaquer le vif du sujet, voici en quelques points, les raisons qui peuvent vous pousser &#224; construire un paquetage pour votre distribution pr&#233;f&#233;r&#233;e.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Des raisons de cr&#233;er ses RPM&lt;/h2&gt;
&lt;p&gt;Il y a plusieurs raisons pour lesquelles vous&lt;br class='autobr' /&gt;
pouvez avoir envie de faire vos RPM. Si vous&lt;br class='autobr' /&gt;
consultez cette page Web, c'est peut-&#234;tre que vous&lt;br class='autobr' /&gt;
avez d&#233;j&#224; une raison de construire votre RPM. Et&lt;br class='autobr' /&gt;
bien, vous allez en d&#233;couvrir plusieurs autres.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1) Un logiciel dont vous &#234;tes le h&#233;ros (je veux dire &lt;i&gt;l'auteur&lt;/i&gt;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eh oui, vous n'avez pas oubli&#233; qu'au si&#232;cle&lt;br class='autobr' /&gt;
dernier, vous &#233;tiez fier de pr&#233;senter votre&lt;br class='autobr' /&gt;
application sous la forme d'un logiciel&lt;br class='autobr' /&gt;
auto-installable sous Windows construit &#224; l'aide d'&lt;a href=&#034;http://www.jrsoftware.org/isinfo.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Inno Setup&lt;/a&gt; ou&lt;br class='autobr' /&gt;
d'&lt;a href=&#034;http://www.installshield.com/products/x/express/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;InstallShield Express&lt;/a&gt;. Alors maintenant que vous&lt;br class='autobr' /&gt;
&#234;tes pass&#233; au libre, pr&#233;senter votre logiciel sous&lt;br class='autobr' /&gt;
la forme d'un RPM, cela va de soi !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2) Un logiciel qui n'est pas disponible pour votre plate-forme&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Vous poss&#233;dez un Mac ? Un AMD 64 ? un Athlon ?&lt;br class='autobr' /&gt;
Bref, une architecturee non-Intel et vous aimeriez&lt;br class='autobr' /&gt;
bien que ce logiciel trouv&#233; sur le Net fonctionne sur votre ordinateur. Vous avez &#224; votre disposition le paquet RPM pour architecture Intel (processeur Pentium et autre, i386, i686...) et&lt;br class='autobr' /&gt;
le paquet RPM contenant les sources du programme. La solution est de&lt;br class='autobr' /&gt;
d&#233;marrer du &#171; SRPM &#187; (ou &lt;i&gt;src.rpm&lt;/i&gt;) et de compiler&lt;br class='autobr' /&gt;
le logiciel pour votre plate-forme. Vous cr&#233;erez&lt;br class='autobr' /&gt;
ainsi un &lt;i&gt;ppc.rpm&lt;/i&gt; ou un &lt;i&gt;amd64.rpm&lt;/i&gt; !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3) Un logiciel qui n'existe qu'en archive compress&#233;e&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ha la la, cette fois c'est pire encore ! Vous&lt;br class='autobr' /&gt;
n'avez trouv&#233; que les sources en &lt;i&gt;tar.gz&lt;/i&gt; ou en &lt;i&gt;tar.bz2&lt;/i&gt; contenant les sources&lt;br class='autobr' /&gt; ? Allez-vous le compiler pour votre plateforme ?&lt;br class='autobr' /&gt;
H&#233; bien faites-en un RPM afin d'en faire profiter&lt;br class='autobr' /&gt;
votre entourage dans un premier temps puis, bien plus de monde encore.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4) Un RPM qui existe mais contenant un programme qui ne fonctionne pas sur votre PC&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eh oui ! &#199;a arrive aussi ! Erreur dans le RPM ou&lt;br class='autobr' /&gt;
bien configuration exorbitante exig&#233;e par&lt;br class='autobr' /&gt;
l'auteur du paquet...&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;Je vous livre ici une anecdote : J'ai install&#233; le&lt;br class='autobr' /&gt;
RPM de &lt;a href=&#034;http://www.tobias-nopper.de/BillardGL/download-en.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;BillardGL&lt;/a&gt; (jeu de billard comme son nom&lt;br class='autobr' /&gt;
l'indique) sur mon ordinateur familial car il&lt;br class='autobr' /&gt;
refusait de s'installer sur mon portable. Urpmi&lt;br class='autobr' /&gt;
indiquait comme d&#233;pendance un noyau supportant les&lt;br class='autobr' /&gt;
pilotes vid&#233;o non libres nVidia acc&#233;l&#233;r&#233; avec son&lt;br class='autobr' /&gt;
module GLX. J'ai donc install&#233; un noyau&lt;br class='autobr' /&gt;
suppl&#233;mentaire adapt&#233; pour installer BillardGL.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Par erreur, j'ai lanc&#233; l'ex&#233;cutable et quelle surprise !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le lendemain, j'ai rallum&#233; la machine en d&#233;marrant sur le&lt;br class='autobr' /&gt;
noyau original (non-nVidia) de ma distribution. Via SSH, j'ai voulu configurer en fran&#231;ais ce jeu &#224; partir de&lt;br class='autobr' /&gt;
mon PC portable (oui je suis un grand flemmard et&lt;br class='autobr' /&gt;
monter un &#233;tage pour modifier un fichier de&lt;br class='autobr' /&gt;
configuration &#233;tait trop dur).&lt;/p&gt;
&lt;p&gt;Par erreur, j'ai lanc&#233; l'ex&#233;cutable et quelle&lt;br class='autobr' /&gt;
surprise de voir qu'il est apparu sur l'&#233;cran de&lt;br class='autobr' /&gt;
mon portable ! C'&#233;tait &#171; impossible &#187;, pour deux raisons :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Le PC familial ne tournait pas avec&lt;br class='autobr' /&gt;
le noyau sp&#233;cialement compil&#233; pour le support des cartes nVidia, et &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; le portable dispose d'une&lt;br class='autobr' /&gt;
carte graphique Intel845 de base, ne disposant pas d'acc&#233;l&#233;ration&lt;br class='autobr' /&gt;
graphique.&lt;/p&gt;
&lt;p&gt;Apr&#232;s quelques&lt;br class='autobr' /&gt;
recherches, j'ai compris que l'auteur du paquet&lt;br class='autobr' /&gt;
RPM a impos&#233; l'exigence d'une carte nVidia et de&lt;br class='autobr' /&gt;
son pilote &#034;Full Patate&#034; l&#224; o&#249; ce jeu&lt;br class='autobr' /&gt;
fonctionnerait sur bien d'autres machines&lt;br class='autobr' /&gt;
graphiquement moins performantes ! Apr&#232;s l'avoir&lt;br class='autobr' /&gt;
install&#233; de force sur mon portable, j'ai recommenc&#233; la&lt;br class='autobr' /&gt;
m&#234;me exp&#233;rience avec un autre jeu de billard :&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://foobillard.sunsite.dk&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Foobillard&lt;/a&gt;. M&#234;me constat : il fonctionne&lt;br class='autobr' /&gt;
honorablement sur mon portable qui ne remplit&lt;br class='autobr' /&gt;
pourtant pas les exigences graphiques impos&#233;es par&lt;br class='autobr' /&gt;
le RPM. Donc, il est possible de construire un paquet RPM &lt;br class='autobr' /&gt;
qui n'exige pas le support des acc&#233;l&#233;rations de la carte&lt;br class='autobr' /&gt;
graphique.&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;De quoi avoir envie de mener ses propres&lt;br class='autobr' /&gt;
exp&#233;riences RPM non ?&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;2&#218;me partie : &lt;a href='http://clx.asso.fr/spip/?2-Les-principes-de-la-creation-d-un-RPM' class=&#034;spip_in&#034;&gt;Les principes de la cr&#233;ation d'un RPM&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Installer la MandrakeLinux sans CD-Rom</title>
		<link>http://clx.asso.fr/spip/?Installer-la-MandrakeLinux-sans-CD-Rom</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Installer-la-MandrakeLinux-sans-CD-Rom</guid>
		<dc:date>2005-01-05T14:55:19Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Vincent Beuselinck</dc:creator>


		<dc:subject>Linux</dc:subject>
		<dc:subject>Mandriva / Mageia</dc:subject>

		<description>&lt;p&gt;Comment installer une distribution Mandrake Linux via Internet sans t&#233;l&#233;charger les images isos des CD-Rom ou du DVD.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Linux-+" rel="tag"&gt;Linux&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Mandriva-Mageia-+" rel="tag"&gt;Mandriva / Mageia&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L57xH40/arton267-1f314.png?1759526053' alt='' class='spip_logo spip_logo_right' width='57' height='40' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;G&#233;n&#233;ralement, pour installer une distribution &lt;a href=&#034;http://www.mandrakelinux.com/fr&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;MandrakeLinux&lt;/a&gt; &#034;gratuite&#034;, il faut t&#233;l&#233;charger soit les CDs (il faut 3 CD-Rom pour la Mandrake 10.1 Download Edition&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Un quatri&#218;me CD-Rom, non officiel, nomm&#233; KDE 3.3 est disponible ici.&#034; id=&#034;nh3-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;) ou un DVD (pour le cas de la Mandrake 10.1).&lt;/p&gt;
&lt;p&gt;Le choix des applications fournies est tellement vari&#233; que l'utilisateur lambda n'en installe pas la moiti&#233;.&lt;/p&gt;
&lt;p&gt;MandrakeSoft propose cependant une installation alternative par r&#233;seau facile &#224; mettre en oeuvre et permettant de ne t&#233;l&#233;charger que les paquetages s&#233;lectionn&#233;s.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Si vous disposez d'une connexion Internet &#224; haut d&#233;bit de type ADSL ou Cable, vous avez l'habitude de r&#233;cup&#233;rer les images isos des CD-Rom (voire l'image du DVD) de votre distribution pr&#233;f&#233;r&#233;e. Une fois grav&#233;es, elles vous permettent d'installer rapidement un environnement de travail. Il existe une mani&#232;re tout aussi rapide d'installer une distribution Mandrake : proc&#233;der via Internet en vous aidant de disquettes apropri&#233;es.&lt;/p&gt;
&lt;p&gt;Toutefois, toutes les connexions Internet ne sont pas prises en compte par ces disquettes. Dans cet article, la configuration utilis&#233;e est constitu&#233;e d'un ordinateur &#233;quip&#233; d'une carte r&#233;seau reli&#233;e &#224; un routeur par un c&#226;ble RJ45 (un routeur externe ou la Freebox configur&#233;e en mode modem, le mode par d&#233;faut). Mais cette solution devrait &#234;tre transposable &#224; tout modem ADSL Ethernet. Je n'ai pas explor&#233; la d&#233;tection d'un modem ADSL USB &#224; l'aide de ces disquettes. La connexion Firewire ne fonctionne pas. Les gestionnaires Firewire ne sont pas pr&#233;sents sur la disquette contenant les &lt;i&gt;drivers&lt;/i&gt;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les pr&#233;-requis&lt;/h2&gt;
&lt;p&gt;Tout d'abord, il faut se procurer deux disquettes d'installation. Vous les trouverez sous la forme de deux fichiers images stock&#233;s sur le CD 1 des distributions MandrakeLinux (dans le dossier &lt;strong&gt;/install/images&lt;/strong&gt;) et &#233;galement sur les sites FTP miroirs du site FTP de MandrakeLinux. Par exemple, sur le serveur FTP de Free.fr, vous trouverez ces deux images &lt;a href=&#034;ftp://ftp.proxad.fr/pub/Distributions_Linux/Mandrakelinux/official/10.1/i586/install/images/&#034; class=&#034;spip_out&#034;&gt;ici&lt;/a&gt; :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;ftp://ftp.proxad.fr/pub/Distributions_Linux/Mandrakelinux/official/10.1/i586/install/images/network.img&#034; class=&#034;spip_out&#034;&gt;network.img&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;ftp://ftp.proxad.fr/pub/Distributions_Linux/Mandrakelinux/official/10.1/i586/install/images/network_drivers.img&#034; class=&#034;spip_out&#034;&gt;network_drivers.img&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le premier fichier correspond &#224; l'image de la disquette contenant l'assistant d'installation. Elle peut &#233;galement servir pour effectuer des op&#233;rations de maintenance, comme r&#233;parer un syst&#232;me de fichiers d&#233;fectueux ou retrouver le MBR (&lt;i&gt;Master Boot Record&lt;/i&gt;) d'un disque dur.&lt;/p&gt;
&lt;p&gt;Le second fichier correspond &#224; l'image de la disquette comportant les gestionnaires de tr&#232;s nombreuses cartes r&#233;seau.&lt;/p&gt;
&lt;p&gt;Cr&#233;ez ensuite les disquettes &#224; partir de ces fichiers &#034;img&#034;. Sous Linux, c'est facile.&lt;/p&gt;
&lt;p&gt;Pour la premi&#232;re disquette, saisissez dans une console :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;&lt;pre&gt;dd if=network.img of=/dev/fd0&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;Pour la seconde disquette, tapez :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;&lt;pre&gt;dd if=network_drivers.img of=/dev/fd0&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;Sous Windows ou DOS, utilisez l'un des deux utilitaires suivants : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;br class='autobr' /&gt;
&lt;a href=&#034;ftp://ftp.proxad.fr/pub/Distributions_Linux/Mandrakelinux/official/10.1/i586/dosutils/rawrite.exe&#034; class=&#034;spip_out&#034;&gt;rawrite&lt;/a&gt; &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;ftp://ftp.proxad.fr/pub/Distributions_Linux/Mandrakelinux/official/10.1/i586/dosutils/rawwrite.exe&#034; class=&#034;spip_out&#034;&gt;rawwrite&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pendant l'installation, il vous faudra fournir les caract&#233;ristiques de la connexion et du site miroir FTP, &#224; savoir :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; le type de serveur ;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; NFS,&lt;/li&gt;&lt;li&gt; FTP,&lt;/li&gt;&lt;li&gt; HTTP,&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;le type de connexion ;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; DHCP,&lt;/li&gt;&lt;li&gt; Statique,&lt;/li&gt;&lt;li&gt; ADSL,&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; les param&#232;tres de connexion ;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; login et mot de passe de la connexion ADSL, fournis par votre fournisseurs d'acc&#232;s Internet ou FAI (si vous avez choisi ADSL),&lt;/li&gt;&lt;li&gt; adresse IP de la machine, les adresses IP des serveurs DNS, l'adresse IP de la passerelle (si vous avez choisi Statique),&lt;/li&gt;&lt;li&gt; l'adresse IP des serveurs DNS &#233;ventuels (si vous avez choisi DHCP),&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; les caract&#233;ristiques du serveur ;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; nom du serveur FTP sur lequel les rpms de la distribution sont stock&#233;s,&lt;/li&gt;&lt;li&gt; chemin pour atteindre le r&#233;pertoire de stockage des rpms.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;La configuration pr&#233;alable&lt;/h2&gt;
&lt;p&gt;Ins&#233;rez la disquette dont l'image est Network.img. V&#233;rifiez que votre PC est correctement reli&#233; au r&#233;seau (c&#226;bles, modems, hub ou switch) et que votre connexion Internet fonctionne.&lt;br class='manualbr' /&gt;Puis d&#233;marrez votre ordinateur.&lt;/p&gt;
&lt;p&gt;Appuyez sur la touche &lt;strong&gt;Entr&#233;e&lt;/strong&gt; pour lancer l'assistant d'installation. Vous pouvez &#233;galement appuyer sur la touche &lt;strong&gt;F1&lt;/strong&gt; afin de basculer en mode &#034;rescue&#034; (mode maintenance).&lt;/p&gt;
&lt;p&gt;La premi&#232;re question pos&#233;e par l'assistant d'installation concerne le type de serveur. Choisissez &lt;i&gt;FTP&lt;/i&gt;. La carte r&#233;seau de votre PC est ensuite d&#233;tect&#233;e. Dans une fen&#234;tre, la marque et le mod&#232;le de votre carte r&#233;seau&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Si ce n'est pas le cas, une liste vous est propos&#233;e et ce sera &#224; vous de (&#8230;)&#034; id=&#034;nh3-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; s'affiche. Validez. L'assistant vous demande alors d'ins&#233;rer la disquette contenant les drivers des cartes r&#233;seau, dans le lecteur. Appuyez sur la touche &lt;strong&gt;Entr&#233;e&lt;/strong&gt; afin de passer &#224; l'&#233;tape suivante.&lt;/p&gt;
&lt;p&gt;Une deuxi&#232;me question appara&#238;t. L'assistant vous demande le type de connexion r&#233;seau. Choisissez &lt;i&gt;Statique&lt;/i&gt; mais si votre routeur fait office de serveur DHCP&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Il attribue automatiquement une adresse IP &#224; votre PC.&#034; id=&#034;nh3-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt; ou si vous vous connectez &#224; Internet en DHCP (comme par exemple la Freebox), optez pour &lt;i&gt;DHCP&lt;/i&gt;. Si votre PC est connect&#233; &#224; un modem ADSL Ethernet, s&#233;lectionnez &lt;i&gt;ADSL&lt;/i&gt;. Validez.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;La Configuration de la connexion&lt;/h2&gt;
&lt;p&gt;La fen&#234;tre suivante d&#233;pend du type de connexion choisi pr&#233;cedemment. _ Pour une connexion &lt;i&gt;ADSL&lt;/i&gt;, vous devrez saisir le login et le mot de passe de connexion attribu&#233;s par votre fournisseur d'acc&#232;s Internet.&lt;/p&gt;
&lt;p&gt;Pour l'option &lt;i&gt;Statique&lt;/i&gt;, l'assistant demande les informations suivantes :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; adresse IP de votre ordinateur ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; adresses IP du serveur DNS principal de votre fournisseur d'acc&#232;s ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; adresse IP de la passerelle ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; masque de sous-r&#233;seau.&lt;/p&gt;
&lt;p&gt;Par exemple, l'adresse IP de mon PC est 192.168.0.2. D&#232;s que je saisis cette adresse, les champs suivants sont pr&#233;remplis par l'assistant d'installation. Dans le champ DNS, il sera inscrit &#034;192.168.0.&#034;. Il faut donc remplacer cette adresse par celle du serveur DNS de votre FAI (ici free.fr) : &lt;strong&gt;212.27.32.176&lt;/strong&gt;. L'adresse IP de la passerelle est g&#233;n&#233;ralement 192.168.0.1 ou 192.168.0.254 (pour la Freebox tapez &lt;strong&gt;192.168.0.254&lt;/strong&gt;).&lt;/p&gt;
&lt;p&gt;Enfin, si vous avez choisi &lt;i&gt;DHCP&lt;/i&gt; comme type de connexion, les valeurs sont pr&#233;remplies et souvent exactes (v&#233;rifier n&#233;anmoins l'adresse du serveur DNS).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Ajout d'un serveur proxy&lt;/h2&gt;
&lt;p&gt;Certaines configurations r&#233;seau n&#233;cessitent de d&#233;finir l'adresse d'un serveur proxy&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb3-4&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Un serveur proxy permet &#224; plusieurs ordinateurs d'un r&#233;seau local de (&#8230;)&#034; id=&#034;nh3-4&#034;&gt;4&lt;/a&gt;]&lt;/span&gt;. Une fen&#234;tre de configuration est donc propos&#233;e mais dans la plupart des cas, vous n'aurez pas besoin de saisir la moindre adresse. Validez pour passer &#224; l'&#233;tape suivante.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Configuration de la connexion au serveur FTP&lt;/h2&gt;
&lt;p&gt;Le menu qui s'affiche ensuite vous propose plusieurs possibilit&#233;s :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Manually ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Community i586 ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Community PPC ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Cooker i586 ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Cooker PPC.&lt;/p&gt;
&lt;p&gt;Le terme &lt;strong&gt;Community&lt;/strong&gt; correspond ici &#224; la distribution Mandrake 10.1 Community (MandrakeLinux qui pr&#233;figure ce que sera la version finale, c'est l'&#233;quivalent de la derni&#232;re Release Candidate) tandis que &lt;strong&gt;Cooker&lt;/strong&gt; est la version de d&#233;veloppement de la prochaine distribution (cf le lien &lt;a href=&#034;http://www.mandrakeclub.com/article.php?sid=1916&amp;mode=nocomments&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.mandrakeclub.com/article...&lt;/a&gt; pour en savoir plus sur les diff&#233;rentes version de MandrakeLinux).&lt;/p&gt;
&lt;p&gt;Choisissez &lt;strong&gt;Manually&lt;/strong&gt; afin de pr&#233;ciser les caract&#233;ristiques du site miroir FTP choisi. En effet, la distribution &lt;strong&gt;Official&lt;/strong&gt; a &#233;t&#233; oubli&#233;e !&lt;br class='manualbr' /&gt;Validez.&lt;br class='manualbr' /&gt;Dans la fen&#234;tre qui appara&#238;t, deux champs sont &#224; remplir :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;Server FTP&lt;/i&gt; dans lequel vous saisissez &lt;strong&gt;ftp.free.fr&lt;/strong&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;i&gt;Path&lt;/i&gt; o&#249; vous tapez &lt;strong&gt;/Distributions_Linux/Mandrakelinux/official/10.1/i586&lt;/strong&gt; ;&lt;/p&gt;
&lt;p&gt;Attention, le clavier est en anglais (= QWERTY) et non pas AZERTY ! &lt;br class='autobr' /&gt;
Pour vous aider &#224; vous y retrouver, voici une table de correspondance :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='id4f40_c0'&gt;Caract&#232;re &lt;/th&gt;&lt;th id='id4f40_c1'&gt; Touche(s) &lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id4f40_c0'&gt;/&lt;/td&gt;
&lt;td headers='id4f40_c1'&gt;/ du pav&#233; num&#233;rique&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id4f40_c0'&gt;A&lt;/td&gt;
&lt;td headers='id4f40_c1'&gt;Q&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id4f40_c0'&gt;-&lt;/td&gt;
&lt;td headers='id4f40_c1'&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id4f40_c0'&gt;Z&lt;/td&gt;
&lt;td headers='id4f40_c1'&gt;W&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id4f40_c0'&gt;_&lt;/td&gt;
&lt;td headers='id4f40_c1'&gt;Maj + )&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id4f40_c0'&gt;M&lt;/td&gt;
&lt;td headers='id4f40_c1'&gt;,&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Une petite astuce peut simplifier cette &#233;tape : au lieu de choisir &lt;strong&gt;Manually&lt;/strong&gt; optez pour &lt;strong&gt;Community&lt;/strong&gt;. La liste des serveurs mirroirs vous est alors propos&#233;e. S&#233;lectionnez-en un puis dans la fen&#234;tre suivante, cherchez le mot &lt;i&gt;Community&lt;/i&gt; et remplacez-le par &lt;i&gt;Official&lt;/i&gt;. Cela ne marche pas toujours mais souvent !&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;L'installation&lt;/h2&gt;
&lt;p&gt;Vous retrouverez ensuite les &#233;crans habituels d'une installation graphique avec DrakX : langue, clavier, acceptation de la licence, choix des paquetages... &lt;br class='manualbr' /&gt;Vous trouverez sur &lt;a href=&#034;http://www.mandrakelinux.com/fr/fdoc.php3&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;cette page&lt;/a&gt; les manuels de la MandrakeLinux en t&#233;l&#233;chargement. L'installation de la distribution y est clairement expliqu&#233;e, pas &#224; pas et en images (cf &lt;a href=&#034;http://doc.mandrakelinux.com/MandrakeLinux/100/fr/Discovery.html/drakx-intro.html&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://doc.mandrakelinux.com/Mandra...&lt;/a&gt;).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Fiabilit&#233;, rapidit&#233; et probl&#232;mes rencontr&#233;s&lt;/h2&gt;
&lt;p&gt;Outre les probl&#232;mes de clavier ou choix d'options cit&#233;s plus haut, des ennuis d'installation li&#233;s &#224; Internet peuvent &#234;tre rencontr&#233;s. La situation la plus &#233;nigmatique est celle-ci :&lt;/p&gt;
&lt;p&gt;Une fen&#234;tre indique que le kernel-2.6.8-12mdkBOOT n'est pas pr&#233;sent sur le site miroir FTP et que vous devriez mettre la disquette d'installation &#224; jour.&lt;/p&gt;
&lt;p&gt;En r&#233;alit&#233;, le site FTP a rejet&#233; la requ&#234;te (la r&#233;cup&#233;ration du paquetage correspondant au kernel-2.6.8-12mdkBOOT). En effet, il est surcharg&#233; car il a accept&#233; le nombre maximal de connexions. Il vous refusera l'acc&#232;s jusqu'&#224; ce qu'une autre personne se d&#233;connecte.&lt;br class='manualbr' /&gt;Essayez de r&#233;cup&#233;rer la distribution sur un autre site ou recommencez l'installation plus tard.&lt;/p&gt;
&lt;p&gt;Une autre erreur souvent rencontr&#233;e est li&#233;e au chargement d'un paquet (ou paquetage). Notez simplement le nom du paquet et installez-le plus tard.&lt;/p&gt;
&lt;p&gt;Malgr&#233; cela, la fiabilit&#233; est au rendez-vous et si l'on consid&#232;re le temps mis pour t&#233;l&#233;charger les 2 Go d'images iso, le gain est au rendez-vous.&lt;/p&gt;
&lt;p&gt;Enfin, puisque vous avez d&#233;j&#224; configur&#233; les acc&#232;s au r&#233;seau et &#224; Internet, vous n'aurez pas &#224; les reparam&#232;trer &#224; la fin de l'installation lors de la mise &#224; jour des paquets.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb3-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 3-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Un quatri&#218;me CD-Rom, non officiel, nomm&#233; KDE 3.3 est disponible &lt;a href=&#034;ftp://ftp.uni-kl.de/pub/linux/mandrake.iso/Mandrakelinux-10.1-Official-Download-CD4.i586.iso&#034; class=&#034;spip_out&#034;&gt;ici&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb3-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 3-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Si ce n'est pas le cas, une liste vous est propos&#233;e et ce sera &#224; vous de choisir.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb3-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 3-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;Il attribue automatiquement une adresse IP &#224; votre PC.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb3-4&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh3-4&#034; class=&#034;spip_note&#034; title=&#034;Notes 3-4&#034; rev=&#034;appendix&#034;&gt;4&lt;/a&gt;] &lt;/span&gt;Un serveur proxy permet &#224; plusieurs ordinateurs d'un r&#233;seau local de partager un acc&#232;s au Web en stockant les requ&#234;tes des utilisateurs et en les prot&#233;geant du reste d'Internet &lt;a href=&#034;http://fr.wikipedia.org/wiki/Proxy&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://fr.wikipedia.org/wiki/Proxy&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>DMA - Direct Memory Access</title>
		<link>http://clx.asso.fr/spip/?DMA-Direct-Memory-Access</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?DMA-Direct-Memory-Access</guid>
		<dc:date>2004-10-30T00:45:42Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Yvonnick Esnault</dc:creator>


		<dc:subject>Stockage</dc:subject>

		<description>&lt;p&gt;Le programme hdparm est tr&#218;s utile pour am&#233;liorer les acc&#218;s aux donn&#233;es stock&#233;es sur un disque dur IDE. Petites explications sur l'activation du mode dma davec une distribution Debian.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Stockage-+" rel="tag"&gt;Stockage&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L100xH103/arton256-8d557.png?1759526083' alt='' class='spip_logo spip_logo_right' width='100' height='103' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Le disque dur IDE de votre PC n'est pas assez rapide &#224; votre go&#251;t. Les jeux se trainent... Quelques r&#233;glages &#224; apporter au disque via l'utilitaire hdparm et votre PC gagnera en rapidit&#233;. Petites explications sur l'activation du mode dma.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Vous n'avez pas activ&#233; le dma (Direct Master Access)pour votre disque ? Alors &#231;a traine (on s'en rend plus compte sur les disques d'ordinateurs portables qui sont moins rapides que les disques de PC de bureau).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Attention :&lt;/strong&gt; une mauvaise utilisation des param&#232;tres de hdparm peuvent endommager votre disque dur. Vous voil&#224; donc pr&#233;venus.&lt;/p&gt;
&lt;p&gt;Pour v&#233;rifier que le dma de votre disque dur est activ&#233;, ouvrez un terminal et basculez sur le compte root. Saisissez la commande suivante :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# hdparm /dev/hda&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si une erreur s'affiche, par exemple &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;command not found&lt;/code&gt; ou si vous voyez &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;using_dma = 0 (no)&lt;/code&gt;, Le programme hdparm n'est pas install&#233; ou le disque dur de l'ordinateur n'accepte pas les acc&#232;s dma.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Sous Debian&lt;/h2&gt;
&lt;p&gt;Pour corriger cela, lancez les commandes :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# apt-get install hdparm (sous debian) # hdparm -d 1 /dev/hda&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;- 1 pour activer le dma&lt;br class='manualbr' /&gt;- 0 pour d&#233;sactiver le dma&lt;/p&gt;
&lt;p&gt;=&gt; Mais en fait, &#231;a a fait planter ma machine (pendant une compile de x.org). Donc vaut mieux b&#233;n&#233;ficier de l'acc&#233;l&#233;ration du disque dur d&#232;s le d&#233;marrage du PC.&lt;br class='autobr' /&gt;
Dans le fichier '/etc/hdparm.conf&lt;/i&gt;, vous devez avoir quelque chose comme :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;/dev/hda { dma = on }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour cet article, le disque dur est le disque ma&#238;tre connect&#233; sur la premi&#232;re nappe IDE de votre ordinateur. Si votre PC poss&#232;de plusieurs disques, copier le bloc et changez le &lt;i&gt;a&lt;/i&gt; par &lt;i&gt;b&lt;/i&gt; (disque esclave de la premi&#232;re nappe IDE) ou &lt;i&gt;c&lt;/i&gt; (disque ma&#238;tre de la seconde nappe IDE)...&lt;/p&gt;
&lt;p&gt;Puis tester si les modifications ont &#233;t&#233; prises en compte, tapez la commande :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# hdparm /dev/hda&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Chez moi, &#231;a donne :&lt;/p&gt;
&lt;p&gt;# hdparm /dev/hda&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;/dev/hda: multcount = 0 (off) IO_support = 0 (default 16-bit) unmaskirq = 0 (off) using_dma = 1 (on) keepsettings = 0 (off) readonly = 0 (off) readahead = 256 (on) geometry = 65535/16/63, sectors = 60011642880, start = 0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Avec Mandrake&lt;/h2&gt;
&lt;p&gt;Avec une Mandrake 10.0, pour activer d&#232;s le d&#233;marrage l'activation du dma, &#233;ditez le fichier &lt;i&gt;/etc/sysconfig/harddisks&lt;/i&gt; &#224; l'aide d'un &#233;diteur de texte. Puis, supprimez ou ajoutez le caract&#232;re &lt;i&gt;#&lt;/i&gt; en face des param&#232;tres que vous souhaitez respectivement activer ou d&#233;sactiver.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;[fred@station3 fred]$ less /etc/sysconfig/harddisks&lt;/i&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# These options are used to tune the hard drives - # read the hdparm man page for more information # Set this to 1 to enable DMA. This might cause some # data corruption on certain chipset / hard drive # combinations. This is used with the &#034;-d&#034; option USE_DMA=1 # Multiple sector I/O. a feature of most modern IDE hard drives, # permitting the transfer of multiple sectors per I/O interrupt, # rather than the usual one sector per interrupt. When this feature # is enabled, it typically reduces operating system overhead for disk # I/O by 30-50%. On many systems, it also provides increased data # throughput of anywhere from 5% to 50%. Some drives, however (most # notably the WD Caviar series), seem to run slower with multiple mode # enabled. Under rare circumstances, such failures can result in # massive filesystem corruption. USE WITH CAUTION AND BACKUP. # This is the sector count for multiple sector I/O - the &#034;-m&#034; option # #MULTIPLE_IO=16 # (E)IDE 32-bit I/O support (to interface card) # EIDE_32BIT=3 # Enable drive read-lookahead # LOOKAHEAD=1 # Add extra parameters here if wanted # On reasonably new hardware, you may want to try -X66, -X67 or -X68 # Other flags you might want to experiment with are -u1, -a and -m # See the hdparm manpage (man hdparm) for details and more options. # EXTRA_PARAMS=&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Apr&#232;s avoir enregistr&#233; le fichier et red&#233;marr&#233; le PC, testez l'activation du dma avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;hdparm /dev/hda&lt;/code&gt; et la rapidit&#233; de votre disque dur &#224; l'aide de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;hdparm -t /dev/hda&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[fred@station3 fred]$ su - -c &#034;hdparm -t /dev/hda&#034; Password: /dev/hda: Timing buffered disk reads: 114 MB in 3.04 seconds = 37.54 MB/sec&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Avec SuSE&lt;/h2&gt;
&lt;p&gt;Lancez l'outil d'administration yast. Puis, optez pour la cat&#233;gorie &lt;i&gt;Mat&#233;riel&lt;/i&gt; et double cliquez sur &lt;i&gt;Mode DMA IDE&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;S&#233;lectionnez ensuite le disque dur ou le lecteur de CD/DVD &#224; acc&#233;l&#233;rer et dans la liste d&#233;roulante &lt;i&gt;Mode DMA&lt;/i&gt; choisissez &lt;i&gt;DMA actif (mode par d&#233;faut)&lt;/i&gt; ou &lt;i&gt;UltraDMA/66&lt;/i&gt;. Validez par un clic sur le bouton &lt;i&gt;Terminer&lt;/i&gt;. Red&#233;marrez ensuite la machine avant de tester l'activation du dma et la vitesse des p&#233;riph&#233;riques.&lt;/p&gt;
&lt;div class='spip_document_317 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L500xH313/xprotectordansspip-3203c.png?1759614812' width='500' height='313' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Notez que dans &lt;i&gt;/etc/sysconfig/ide&lt;/i&gt;, vous retrouverez les informations associ&#233;es &#224; la configuration des disques durs ou des lecteurs.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;fred@mandy : &gt; less /etc/sysconfig/ide&lt;/i&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;## Path: Hardware/IDE ## Description: IDE device settings ## Type: string ## Default: &#034;&#034; ## ServiceRestart: boot.idedma # # Force DMA mode for selected device. Use pairs &lt;device&gt;:&lt;dma_mode&gt; separated # by space - dma_mode can be &#034;on&#034; (enable default DMA mode), &#034;off&#034; (disable DMA # mode) or any mode supported by hdparm (e.g. &#034;mdma2&#034;, &#034;udma5&#034;, ...) # Example: &#034;/dev/hdc:off /dev/hdd:udma2&#034; # DEVICES_FORCE_IDE_DMA=&#034;/dev/hda:on /dev/hdc:on /dev/hdd:on&#034;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt;Pour en savoir plus sur hdparm, en particulier sous Debian, consultez la page&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://www.andesi.org/index.php?node=42&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.andesi.org/index.php?node=42&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Introduction &#224; screen</title>
		<link>http://clx.asso.fr/spip/?Introduction-a-screen</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Introduction-a-screen</guid>
		<dc:date>2004-03-30T20:36:30Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Yvonnick Esnault</dc:creator>



		<description>&lt;p&gt;Cet article n'est qu'une introduction au programme screen et pr&#233;cise les commandes pour une utilisation de base.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Screen permet d'ouvrir plusieurs terminaux dans une m&#234;me console, de les r&#233;cup&#233;rer plus tard en les &#034;d&#233;tachant&#034; et se les &#034;attachant&#034;. Il offre &#233;galement d'autres services tr&#218;s utiles.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Premier lancement&lt;/h2&gt;
&lt;p&gt;Ouvrez une console, puis lancez screen :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$ screen&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Le premier lancement affiche un message de bienvenue. Appuyez sur la touche Espace pour passer ce message. Une invite (ou &lt;i&gt;prompt&lt;/i&gt;) identique &#224; celle de la console appara&#238;t ensuite.&lt;/p&gt;
&lt;p&gt;Pour rep&#233;rer ce premier terminal, on peut laisser une trace :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$ echo premier terminal&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;D&#232;s lors, on peut ouvrir un second terminal avec la combinaison de touche &lt;strong&gt;Control + A&lt;/strong&gt; suivi par la touche C. Pour s'en souvenir, rappellez-vous ceci : Control + A comme action et C pour cr&#233;ation. Cette combinaison se note &lt;strong&gt;C-a c&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Et hop, un second terminal appara&#238;t. On laisse une trace pour le rep&#233;rer par la suite :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$ echo second terminal&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On peut rajouter d'autres terminaux &#224; l'aide de &lt;strong&gt;C-a c&lt;/strong&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Navigation dans les terminaux&lt;/h2&gt;
&lt;p&gt;Voici les raccourcis claviers qui vous aideront pour utiliser screen :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a n&lt;/strong&gt; : passage au terminal suivant ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a p&lt;/strong&gt; : passage au terminal pr&#233;c&#233;dent ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a N&lt;/strong&gt; : rep&#233;rage du terminal courant, avec le titre du terminal entre parenth&#232;se ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a n&lt;/strong&gt; (n est ici un chiffre) : passage au terminal n ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a &#034;&lt;/strong&gt; : affichage de la liste des terminaux. On navigue dans la liste &#224; l'aide des touches haut et bas, on s&#233;lectionne un terminal avec la touche Entr&#233;e ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a w&lt;/strong&gt; : visualise la liste des terminaux de mani&#232;re non interactive ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a A&lt;/strong&gt; : renomme le terminal courant. Un appui sur Entr&#233;e sert &#224; valider ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a k&lt;/strong&gt; ou &lt;strong&gt;C-a K&lt;/strong&gt; : ferme un terminal. Une confirmation est demand&#233;e. Tout programme en cours dans ce terminal sera arr&#234;t&#233;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;D&#233;tacher et r&#233;attacher les terminaux&lt;/h2&gt;
&lt;p&gt;Il est possible de d&#233;tacher de screen le terminal courant avec la commande :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a d&lt;/strong&gt; : on se d&#233;tache de screen. Les terminaux ne sont pas perdus pour autant car il est possible de revenir sur screen avec la commande :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$screen -r&lt;/code&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb4-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;screen -rd pour &#234;tre s&#251;r, ie. pour d&#233;tacher le screen &#233;ventuel et le (&#8230;)&#034; id=&#034;nh4-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; : on se rattache...&lt;br class='autobr' /&gt;
.&lt;br class='autobr' /&gt;
&#192; vous de voir l'utilisation que vous pouvez avoir avec cette fonctionnalit&#233;...&lt;/p&gt;
&lt;p&gt;Pour v&#233;rifier que l'on a pas perdu les terminaux : &lt;strong&gt;C-a &#034;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Imaginons maintenant que vous voulez montrer un encha&#238;nement de manipulations &#224; quelqu'un qui ne se trouve pas &#224; c&#244;t&#233; de vous. Tapez screen (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$ screen&lt;/code&gt;) sur le serveur, et demandez &#224; votre correspondant de lancer la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$ screen -x&lt;/code&gt; sous le m&#234;me compte utilisateur. Il voit tout ce que vous &#233;crivez maintenant sur le terminal et vice-versa...&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;D&#233;tection des silences et des activit&#233;s&lt;/h2&gt;
&lt;p&gt;&#192; ce stade du howto, vous ne pouvez pas voir ce qui se passe sur les autres terminaux autre que celui que vous avez en face de vous. Pour activer la d&#233;tection d'activit&#233; sur un terminal, utilisez :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a M&lt;/strong&gt; : activation/d&#233;sactivation du monitoring.&lt;/p&gt;
&lt;p&gt;De la m&#234;me mani&#232;re, on peut d&#233;tecter le silence sur un terminal :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a _&lt;/strong&gt; : activation/d&#233;sactivation du monitoring silence.&lt;/p&gt;
&lt;p&gt;Pour v&#233;rifier l'&#233;tat du monitoring (activit&#233; ou silence)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a m&lt;/strong&gt; : Voir l'&#233;tat du monitoring (activ&#233; ou pas activ&#233;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple :&lt;/strong&gt;&lt;br class='autobr' /&gt;
Et bien, si l'on imagine que tu as trois terminaux dans ton xterm, sur le premier tu lances un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;apt-get dist-upgrade&lt;/code&gt; qui semble durer des heures, alors tu tapes &lt;i&gt;C-a _&lt;/i&gt;. Ainsi, un message s'affichera quand au bout de 30 secondes le terminal 1 n'aura pas d&#233;tect&#233; d'activit&#233; (donc &#224; la fin de ton dist-upgrade).&lt;/p&gt;
&lt;p&gt;Maintenant sur le deuxi&#232;me terminal, tu lances mutt. Mutt indique par un message quand un mail arrive dans une bo&#238;te (le terminal d&#233;tecte donc une activit&#233;). Tu tapes donc &lt;i&gt;C-a M&lt;/i&gt; qui te permettra d'&#234;tre pr&#233;venu lorsqu'une activit&#233; sera rep&#233;r&#233;e dans ce deuxi&#232;me terminal.&lt;/p&gt;
&lt;p&gt;Ensuite, tu peux travailler tranquillement sur ton troisi&#232;me terminal...&lt;/p&gt;
&lt;p&gt;Mais au bout d'une heure, tu ne sais plus si tu as v&#233;rifi&#233; la pr&#233;sence d'une quelconque activit&#233; sur le terminal 1, tu retournes sur le terminal en question, et tu fais &lt;i&gt;C-a m&lt;/i&gt; pour voir si tu d&#233;tectes bien le silence. De m&#234;me pour le second terminal pour voir si tu d&#233;tectes bien une activit&#233;...&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Autres fonctionnalit&#233;s&lt;/h2&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a }&lt;/i&gt; : ferme toutes les fen&#234;tres et quitter screen. Une confirmation est demand&#233;e.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a z&lt;/strong&gt; ou &lt;strong&gt;C-a Z&lt;/strong&gt; : Suspendre screen (on ne perd pas les terminaux ; les programmes sont arr&#234;t&#233;s).
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a x&lt;/strong&gt; : verrouille screen ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a S&lt;/strong&gt; : partage la fen&#234;tre en deux. Pour circuler entre les fen&#234;tres &lt;strong&gt;C-a tab&lt;/strong&gt; et pour fermer le split &lt;strong&gt;C-a X&lt;/strong&gt;.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;C-a ?&lt;/strong&gt; : Liste des commandes ; aide en ligne.&lt;/p&gt;
&lt;p&gt;Et pour le reste, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$ man screen&lt;/code&gt; ;)&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb4-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh4-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 4-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;screen -rd pour &#234;tre s&#251;r, ie. pour d&#233;tacher le screen &#233;ventuel et le r&#233;attacher NDLR&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Lutter efficacement contre les contenus SMTP dangeureux (1)</title>
		<link>http://clx.asso.fr/spip/?Lutter-efficacement-contre-les-contenus-SMTP-dangeureux-1</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Lutter-efficacement-contre-les-contenus-SMTP-dangeureux-1</guid>
		<dc:date>2004-02-25T13:35:22Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>S&#233;bastien Nam&#232;che</dc:creator>


		<dc:subject>Sendmail</dc:subject>
		<dc:subject>SPAM</dc:subject>
		<dc:subject>Messagerie &#233;lectronique</dc:subject>

		<description>&lt;p&gt;Cet article est le premier que j'&#233;cris sur une s&#233;rie consacr&#233;e &#224; la s&#233;curisation et la fiabilisation des messageries sur Internet.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Sendmail-+" rel="tag"&gt;Sendmail&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-SPAM-+" rel="tag"&gt;SPAM&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Messagerie-electronique-+" rel="tag"&gt;Messagerie &#233;lectronique&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L107xH150/arton238-f13cf.png?1759540179' alt='' class='spip_logo spip_logo_right' width='107' height='150' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;La vitesse de propagation des nouveaux virus (&lt;i&gt;Dumaru&lt;/i&gt;, &lt;i&gt;&lt;a href=&#034;https://fr.wikipedia.org/wiki/MyDoom&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;MyDoom&lt;/a&gt;&lt;/i&gt;, etc.) et l'augmentation de la quantit&#233; de pourriel&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Spam&#034; id=&#034;nh5-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; envoy&#233;e et re&#231;ue sur Internet rendent le filtrage de contenu SMTP de plus en plus critique. Cependant, les techniques qui &#233;taient utilis&#233;es jusqu'&#224; maintenant montrent leurs limites. Cet article &#233;tudie et explique comment contourner l'une d'elles, celle que j'ai nomm&#233;e &#171; la patate chaude &#187;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Le probl&#232;me&lt;/h2&gt;
&lt;p&gt;Le probl&#232;me des &#233;mails qui v&#233;hiculent des virus, du pourriel ou du contenu suspect est comparable &#224; celui dit de &#171; la patate chaude &#187;. Une fois arriv&#233; dans la file d'un serveur de messagerie et identifi&#233; comme ind&#233;sirable, vous ne savez plus trop qu'en faire. Vous aimeriez bien vous en d&#233;barrasser mais ne savez pas qui pr&#233;venir dans ce cas :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; L'exp&#233;diteur ? En g&#233;n&#233;ral, soit son adresse est falsifi&#233;e, soit elle n'existe pas. Dans le premier cas la pauvre victime dont l'adresse a &#233;t&#233; usurp&#233;e se trouve inond&#233;e de messages. Dans le second cas, la situation empire car votre MTA&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Mail Transfer Agent. Le d&#233;mon charg&#233; de faire transiter le courriel sur (&#8230;)&#034; id=&#034;nh5-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; doit prendre en charge un &lt;i&gt;double bounce&lt;/i&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Un double bounce est un message d'erreur qui ne peut &#234;tre envoy&#233; &#224; son (&#8230;)&#034; id=&#034;nh5-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Les destinataires ? Pour les m&#234;mes raisons, cela est souvent inutile. Les virus r&#233;cents se propagent seuls et non plus au sein de documents qu'un correspondant aurait pu vous envoyer et que vous attendiez.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; L'administrateur ? Piti&#233;, non, le pauvre va crouler sous les dizaines (centaines ?) de notifications journali&#232;res !&lt;/p&gt;
&lt;p&gt;Cet &#233;tat peut conduire &#224; des files de messages &#233;normes et &#233;crouler certains serveurs sous la charge (cela s'est vu lors de l'&#233;pid&#233;mie &lt;i&gt;&lt;a href=&#034;https://fr.wikipedia.org/wiki/Dumaru&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;Dumaru&lt;/a&gt;&lt;/i&gt;).&lt;/p&gt;
&lt;p&gt;Alors quoi ? Renvoyer le message au grand r&#233;ceptacle universel des donn&#233;es inutiles et autre &lt;i&gt;junk&lt;/i&gt; (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/dev/null&lt;/code&gt;) sans pr&#233;venir personne ? S&#251;rement, si vous choisissez cette voie, l'&#233;thique li&#233;e au transfert des messages sur Internet vous emp&#234;chera de dormir la nuit. Un message ne devrait pas &#234;tre supprim&#233; sans que personne ne soit au courant.&lt;/p&gt;
&lt;p&gt;Donc, point de salut ?&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;La solution&lt;/h2&gt;
&lt;p&gt;Quel &#233;tait le probl&#232;me d&#233;j&#224; ? Ah oui &#171; Que faire des messages malveillants une fois qu'ils ont &#233;t&#233; identifi&#233;s comme tel par mon serveur de messagerie ? &#187;. Et si la question n'&#233;tait pas la bonne ? Essayons celle-ci : &#171; Comment faire pour refuser de prendre en charge la responsabilit&#233; de ces messages ? &#187;. C'est-&#224;-dire, laissons donc dans l'embarras les MTA qui n'ont pas su filtrer ces messages (ou qui n'ont pas voulu le faire sciemment). Oui, laissons-les g&#233;rer les notifications, les files de messages satur&#233;es par les &lt;i&gt;Dumaru&lt;/i&gt;, les &lt;i&gt;MyDoom&lt;/i&gt; et leurs prochains petits fr&#232;res. Nos ressources sont pr&#233;cieuses, &#233;conomisons-les.&lt;/p&gt;
&lt;p&gt;Mais comment faire ? Afin de rejeter le message (et donc la responsabilit&#233; de le transmettre), le contenu de celui-ci devra &#234;tre contr&#244;l&#233; &lt;strong&gt;pendant&lt;/strong&gt; la connexion avec le MTA qui nous le fait parvenir. Cependant la mani&#232;re dont fonctionnent les logiciels qui sont utilis&#233;s pour v&#233;rifier le contenu des &#233;mail (par exemple &lt;a href=&#034;http://www.amavis.org/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Amavis&lt;/a&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-4&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Oui, bon, en fait l'un des rejetons d'Amavis appel&#233; amavisd-new permet cela (&#8230;)&#034; id=&#034;nh5-4&#034;&gt;4&lt;/a&gt;]&lt;/span&gt; ou &lt;a href=&#034;http://www.mailscanner.info/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;MailScanner&lt;/a&gt;) ne permet pas cela. Ni, d'ailleurs, les MTA. En effet, il faudrait pouvoir intervenir avant m&#234;me que le message ne soit accept&#233; par ce dernier.&lt;/p&gt;
&lt;p&gt;Je ne dis pas qu'&lt;i&gt;Amavis&lt;/i&gt; et &lt;i&gt;MailScanner&lt;/i&gt; sont de mauvais outils (il fut un temps o&#249; je les ai encens&#233;s, les ayant d&#233;ploy&#233;s chacun d'eux plusieurs fois), je dis qu'ils ne sont plus adapt&#233;s. Je ne dis pas que &lt;i&gt;Postfix&lt;/i&gt; est moins bien que &lt;i&gt;Sendmail&lt;/i&gt; mais ce dernier va nous permettre de r&#233;soudre de mani&#232;re &#233;l&#233;gante notre probl&#232;me gr&#226;ce &#224; une nouvelle API appel&#233;e &lt;i&gt;Milter&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Milter (pour &#171; &lt;i&gt;Mail Filter&lt;/i&gt; &#187;) est une API sp&#233;cifique &#224; Sendmail qui permet de lui connecter des logiciels externes. Ceux-ci vont permettre d'agir sur le comportement de Sendmail lors des diff&#233;rentes &#233;tapes de la conversation &lt;a href=&#034;http://www.rfc-editor.org/rfc/rfc2822.txt&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;SMTP&lt;/a&gt; (HELO, MAIL FROM, RCPT TO, DATA). Les r&#233;ponses &#224; ces commandes SMTP pouront &#234;tre dict&#233;es par ces logiciels.&lt;/p&gt;
&lt;p&gt;Cette API supporte &#233;galement la modification des messages par ces programmes externes.&lt;/p&gt;
&lt;p&gt;Ainsi l'id&#233;e est de prendre le temps de rep&#233;rer le contenu malveillant pendant la communication SMTP et, le cas &#233;ch&#233;ant, signifier au MTA d'origine que nous refusons de prendre en charge son message. Dans la logique du protocole SMTP cela signifie que c'est &#224; lui qu'incombe la t&#226;che embarrassante de choisir le devenir du message incrimin&#233;.&lt;/p&gt;
&lt;p&gt;Il y a un autre argument qui va dans le sens de cette technique (je le pr&#233;cise car il m'a d&#233;j&#224; &#233;t&#233; reproch&#233; que, finalement, avec cette configuration je rel&#232;gue le travail de mon MTA aux autres). En effet, la mani&#232;re dont est g&#233;r&#233; Internet en g&#233;n&#233;ral montre qu'il est plus souvent efficace que les probl&#232;mes soient pris en charge au plus t&#244;t et, si possible, par le serveur le plus proche de l'utilisateur. Ce qui sera bien le cas ici.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Vite, un exemple pour illustrer cette th&#233;orie&lt;/h2&gt;
&lt;p&gt;Vraiment, vraiment, je suis navr&#233; pour tous les fans de &lt;i&gt;Postix&lt;/i&gt;, &lt;i&gt;Exim&lt;/i&gt;, etc. mais, &#224; ce jour et &#224; ma connaissance, seul &lt;i&gt;Sendmail&lt;/i&gt; dispose d'un tel m&#233;canisme&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-5&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Postifx permet de refuser des messages lors de la connexion SMTP mais sur (&#8230;)&#034; id=&#034;nh5-5&#034;&gt;5&lt;/a&gt;]&lt;/span&gt; (enfin, bon, ceux qui me connaissent ne seront pas dupes).&lt;/p&gt;
&lt;p&gt;Voici donc un exemple d'utilisation d'un &lt;i&gt;milter&lt;/i&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-6&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Par extension, on nomme &#171; milter &#187; les programmes &#233;crit pour s'interfacer (&#8230;)&#034; id=&#034;nh5-6&#034;&gt;6&lt;/a&gt;]&lt;/span&gt; fourni par le projet &lt;a href=&#034;http://www.clamav.net/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ClamAV&lt;/a&gt;. Cet exemple est bas&#233; sur la distribution &lt;i&gt;Debian&lt;/i&gt; mais il devrait &#234;tre imm&#233;diat &#224; &#171; porter &#187; sous &lt;i&gt;RedHat&lt;/i&gt;, pardon &lt;i&gt;Fedora&lt;/i&gt;, ou autre.&lt;/p&gt;
&lt;p&gt;1) Ajoutez les lignes suivantes au fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/apt/sources.list&lt;/code&gt; qui contient la liste des d&#233;p&#244;ts de logiciels &lt;i&gt;Debian&lt;/i&gt; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# ClamAV deb http://clamav.catt.com/ debian stable main&lt;/textarea&gt;
&lt;p&gt;2) Ex&#233;cutez les commandes :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# dselect update # apt-get install clamav clamav-daemon clamav-freshclam clamav-milter&lt;/textarea&gt;
&lt;p&gt;pour mettre &#224; jour la liste des logiciels connus et installer ceux qui nous sont n&#233;cessaires.&lt;/p&gt;
&lt;p&gt;3) Ajoutez les lignes suivantes dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/mail/sendmail.mc&lt;/code&gt;. Elles permettent de d&#233;clarer un filtre &lt;i&gt;milter&lt;/i&gt; &#224; Sendmail.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre spip_cadre_block' dir='ltr'&gt;INPUT_MAIL_FILTER(&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;clamav',&lt;/code&gt;S=local:/var/run/clamav-milter/clamav-milter.ctl, F=, T=S:4m;R:4m')dnl define(&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;confINPUT_MAIL_FILTERS',&lt;/code&gt;clamav')&lt;/textarea&gt;
&lt;p&gt;4) L'un des d&#233;fauts du paquetage &lt;i&gt;clamav-milter&lt;/i&gt; est qu'il ne fournit pas de script de d&#233;marrage. Copiez donc le contenu du cadre qui suit dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/init.d/clamav-milter&lt;/code&gt;.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='45' class='spip_cadre spip_cadre_block' dir='ltr'&gt;#! /bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/clamav-milter NAME=clamav-milter DESC=&#034;ClamAV Milter&#034; OPTIONS=&#034;-q -f /var/run/$NAME/$NAME.ctl&#034; test -x $DAEMON || exit 0 set -e case &#034;$1&#034; in start) echo -n &#034;Starting $DESC: $NAME&#034; start-stop-daemon --start --quiet --pidfile /var/run/$NAME/$NAME.pid \ --chuid clamav --make-pidfile --exec $DAEMON -- $OPTIONS \ 2&gt; /dev/null echo &#034;.&#034; ;; stop) echo -n &#034;Stopping $DESC: $NAME&#034; killall $NAME rm -f /var/run/$NAME/$NAME.pid echo &#034;.&#034; ;; restart|force-reload) echo -n &#034;Restarting $DESC: $NAME&#034; $0 stop sleep 1 $0 start echo &#034;.&#034; ;; *) N=/etc/init.d/$NAME echo &#034;Usage: $N {start|stop|restart|force-reload}&#034; &gt;&amp;2 exit 1 ;; esac exit 0&lt;/textarea&gt;
&lt;p&gt;Puis ex&#233;cutez les lignes de commande suivantes pour activer le service lors du d&#233;marrage du syst&#232;me (la seconde r&#233;alisera pour vous les liens dans les r&#233;pertoires &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/rc?.d&lt;/code&gt;) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# chmod 755 /etc/init.d/clamav-milter # update-rc.d clamav-milter defaults 19 21&lt;/textarea&gt;
&lt;p&gt;(&#171; 19 &#187; car le &lt;i&gt;milter&lt;/i&gt; doit &#234;tre d&#233;marr&#233; avant et arr&#234;ter apr&#232;s Sendmail.)&lt;/p&gt;
&lt;p&gt;5) Ajoutez la ligne suivante dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/clamav/clamav.conf&lt;/code&gt; afin d'activer la v&#233;rification des fichiers au format &#233;mail :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;ScanMail&lt;/textarea&gt;
&lt;p&gt;6) Un second d&#233;faut du paquetage &lt;i&gt;clamav-milter&lt;/i&gt; nous impose de cr&#233;er nous-m&#234;me le r&#233;pertoire qui contiendra le tube nomm&#233; servant aux communications entre &lt;i&gt;Sendmail&lt;/i&gt; et le &lt;i&gt;milter&lt;/i&gt;. Pour cela, ex&#233;cutez ces commandes :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# mkdir /var/run/clamav-milter # chown clamav.clamav /var/run/clamav-milter # chmod 750 /var/run/clamav-milter # adduser smmsp clamav&lt;/textarea&gt;
&lt;p&gt;7) Enfin, les commandes suivantes permettent de r&#233;g&#233;n&#233;rer le fichier de configuration de &lt;i&gt;Sendmail&lt;/i&gt; (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sendmail.cf&lt;/code&gt;) &#224; partir du fichier de macros &lt;i&gt;m4&lt;/i&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sendmail.mc&lt;/code&gt; et de d&#233;marrer Sendmail et le &lt;i&gt;milter&lt;/i&gt; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# cd /etc/mail # make # /etc/init.d/sendmail stop # /etc/init.d/clamav-milter start # /etc/init.d/sendmail start&lt;/textarea&gt;
&lt;p&gt;(Il faut &#233;galement que le d&#233;mon clamd soit d&#233;marr&#233; mais le paquetage clamav-daemon s'en est occup&#233;.)&lt;/p&gt;
&lt;p&gt;8) Testez que tout fonctionne correctement. Par exemple :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='29' class='spip_cadre spip_cadre_block' dir='ltr'&gt;seb@puck:~$ telnet gaia.anet.fr smtp Trying 80.118.2.10... Connected to gaia.anet.fr. Escape character is '^]'. 220 gaia.anet.fr ESMTP Sendmail 8.12.3/8.12.3/Debian-6.6; Sat, 21 Feb 2004 18:36:25 +0100; (No UCE/UBE) logging access from: Mix-Rennes209-1-162.w193-250.abo.wanadoo.fr(OK)-Mix-Rennes209-1-162.w193-250.abo.wanadoo.fr [193.250.30.162] HELO puck.anet.fr 250 gaia.anet.fr Hello Mix-Rennes209-1-162.w193-250.abo.wanadoo.fr [193.250.30.162], pleased to meet you MAIL FROM:&lt;seb@anet.fr&gt; 250 2.1.0 &lt;seb@anet.fr&gt;... Sender ok RCPT TO:&lt;seb@gaia.anet.fr&gt; 250 2.1.5 &lt;seb@gaia.anet.fr&gt;... Recipient ok DATA 354 Enter mail, end with &#034;.&#034; on a line by itself Subject: Test From: badguy@verybadnet.org To: poorguy@gaia.anet.fr X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* . 550 5.7.1 Virus detected by ClamAV - http://clamav.elektrapro.com QUIT 221 2.0.0 gaia.anet.fr closing connection Connection closed by foreign host.&lt;/textarea&gt;
&lt;p&gt;Le code de retour 550 retourn&#233; par notre MTA &#224; la fin de la transmission du contenu du message&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb5-7&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;La cha&#238;ne des 68 caract&#232;res est issue du projet EICAR - Anti-Virus test file (&#8230;)&#034; id=&#034;nh5-7&#034;&gt;7&lt;/a&gt;]&lt;/span&gt; est un code d'erreur permanent qui indique que le message n'a pas &#233;t&#233; pris en charge par notre serveur. Ainsi il n'a aucune chance de venir encombrer la file des messages de celui-ci.&lt;/p&gt;
&lt;p&gt;Un dernier point, n'h&#233;sitez pas &#224; augmenter le nombre de tests journaliers r&#233;alis&#233;s par le d&#233;mon &lt;i&gt;freshclam&lt;/i&gt; qui v&#233;rifie l'existence des nouvelles d&#233;finitions de virus. Cela peut faire la diff&#233;rence lors d'&#233;pid&#233;mies fulgurantes comme celles auxquelles nous avons pu assister fin janvier. En effet, &#224; ce moment, &lt;i&gt;ClamAV&lt;/i&gt; s'est montr&#233; plus efficace &#224; les arr&#234;ter tout simplement parce que sa configuration par d&#233;faut lui a permis d'obtenir la d&#233;finition des virus avant bien d'autres anti-virus.&lt;/p&gt;
&lt;p&gt;Il faut pour cela augmenter un param&#232;tre dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/clamav/clamav-freshclam-handledaemon.conf&lt;/code&gt; (n'utilisez pas non plus une valeur trop &#233;lev&#233;e afin de ne pas surcharger les serveurs du projet &lt;i&gt;ClamAV&lt;/i&gt;. Par exemple, avec la valeur suivante, une v&#233;rification sera r&#233;alis&#233;e toutes les trois heures environ (huit fois par jour) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;FRESHCLAM_CHECK_FREQUENCY=8&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;Le prochain article&lt;/h2&gt;
&lt;p&gt;La prochaine fois, je vous expliquerais comment &#233;tendre ce principe au filtrage des Spams ou des contenus jug&#233;s belliqueux.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Ressources&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#034;http://milter.free.fr/intro/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Une introduction &#224; Milter&lt;/a&gt; (en anglais)&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://freshmeat.net/search/?q=milter&amp;section=projects&amp;x=15&amp;y=10&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Une liste de projets contenant le mot &#171; &lt;i&gt;milter&lt;/i&gt; &#187; sur Freshmeat&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb5-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Spam&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Mail Transfer Agent. Le d&#233;mon charg&#233; de faire transiter le courriel sur Internet, NDLR.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;Un &lt;i&gt;double bounce&lt;/i&gt; est un message d'erreur qui ne peut &#234;tre envoy&#233; &#224; son destinataire et qui revient lui-m&#234;me en erreur au &lt;i&gt;postmaster&lt;/i&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5-4&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-4&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-4&#034; rev=&#034;appendix&#034;&gt;4&lt;/a&gt;] &lt;/span&gt;Oui, bon, en fait l'un des rejetons d'&lt;i&gt;Amavis&lt;/i&gt; appel&#233; &lt;a href=&#034;http://www.ijs.si/software/amavisd/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;i&gt;amavisd-new&lt;/i&gt;&lt;/a&gt; permet cela mais nous n'en parlerons pas ici car cela viendrait en porte-&#224;-faux sur notre brillante d&#233;monstration.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5-5&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-5&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-5&#034; rev=&#034;appendix&#034;&gt;5&lt;/a&gt;] &lt;/span&gt;&lt;i&gt;Postifx&lt;/i&gt; permet de refuser des messages lors de la connexion SMTP mais sur des crit&#232;res tr&#232;s simples (expressions r&#233;guli&#232;res, en particulier) et certainement pas &#224; partir de d&#233;cisions que pourraient prendre des logiciels externes.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5-6&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-6&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-6&#034; rev=&#034;appendix&#034;&gt;6&lt;/a&gt;] &lt;/span&gt;Par extension, on nomme &#171; &lt;i&gt;milter&lt;/i&gt; &#187; les programmes &#233;crit pour s'interfacer avec Sendmail &lt;i&gt;via&lt;/i&gt; l'API Milter.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb5-7&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh5-7&#034; class=&#034;spip_note&#034; title=&#034;Notes 5-7&#034; rev=&#034;appendix&#034;&gt;7&lt;/a&gt;] &lt;/span&gt;La cha&#238;ne des 68 caract&#232;res est issue du projet &lt;a href=&#034;http://www.eicar.org/anti_virus_test_file.htm&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;i&gt;EICAR - Anti-Virus test file&lt;/i&gt;&lt;/a&gt; dont le but est de fournir une signature inoffensive reconnue par tous les anti-virus afin de r&#233;aliser des tests.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Vous l'aurez devin&#233;, cette technique est utilis&#233;e sur Gaia. Cela prot&#218;ge les listes de diffusion et apporte plus de fiabilit&#233; au service.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Mettre en &#339;uvre LVM</title>
		<link>http://clx.asso.fr/spip/?Mettre-en-oeuvre-LVM</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Mettre-en-oeuvre-LVM</guid>
		<dc:date>2004-02-19T17:36:20Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>S&#233;bastien Nam&#232;che</dc:creator>


		<dc:subject>Linux</dc:subject>
		<dc:subject>Sauvegardes</dc:subject>

		<description>&lt;p&gt;Le gestionnaire de volume logique (LVM pour &lt;i&gt;Logical Volume Manager&lt;/i&gt;) est une fonction pr&#233;sente depuis la version 2.4 du noyau Linux. Elle offre une gestion plus souple de l'espace des disques durs en interposant une couche suppl&#233;mentaire entre le mat&#233;riel et les syst&#218;mes de fichiers. Une fonctionnalit&#233; moins connue permet de r&#233;aliser des &#034;instantan&#233;s&#034; (&lt;i&gt;snapshots&lt;/i&gt;) d'un volume logique en temps r&#233;el.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Linux-+" rel="tag"&gt;Linux&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Sauvegardes-+" rel="tag"&gt;Sauvegardes&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L147xH143/arton237-f742b.png?1759524054' alt='' class='spip_logo spip_logo_right' width='147' height='143' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Avec le gestionnaire de volume logique (LVM pour &lt;i&gt;Logical Volume Manager&lt;/i&gt;), les administrateurs de serveurs disposent d'un outil simple &#224; mettre en oeuvre pour ajouter, supprimer, modifier des partitions d'un ou de plusieurs disques durs &#224; la vol&#233;e ou &#224; chaud.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Le gestionnaire de volume logique (LVM pour &lt;i&gt;Logical Volume Manager&lt;/i&gt;) est une fonction pr&#233;sente depuis la version 2.4 du noyau Linux. Elle offre une gestion plus souple de l'espace des disques durs en interposant une couche suppl&#233;mentaire entre le mat&#233;riel et les syst&#232;mes de fichiers. Une fonctionnalit&#233; moins connue permet de r&#233;aliser des &#034;instantan&#233;s&#034; (&lt;i&gt;snapshots&lt;/i&gt;) d'un volume logique en temps r&#233;el.&lt;br class='manualbr' /&gt;Ces &lt;i&gt;snapshots&lt;/i&gt; permettent d'attacher une image, fig&#233;e en lecture seule, du syst&#232;me de fichiers contenu sur le volume logique d'origine &#224; un r&#233;pertoire. Ils n'occupent pas de place sur le disque sinon celle n&#233;cessaire pour enregistrer les modifications qui ont lieu sur le syst&#232;me de fichiers original (qui, lui, n'a cess&#233; d'&#234;tre mont&#233; en &#233;criture).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Principe de LVM&lt;/h2&gt;
&lt;p&gt;LVM permet de combiner plusieurs disques ou partitions (appel&#233;s volumes physiques ou PV pour &lt;i&gt;Physical Volumes&lt;/i&gt;) au sein d'un groupe de volumes (ou VG pour &lt;i&gt;Volume Group&lt;/i&gt;). Des volumes logiques (ou LV pour &lt;i&gt;Logical Volumes&lt;/i&gt;) sont ensuite cr&#233;&#233;s dans ce groupe de volumes. Ces volumes logiques sont assimilables &#224; des partitions virtuelles sur lesquelles des syst&#232;mes de fichiers peuvent &#234;tre cr&#233;&#233;s.&lt;/p&gt;
&lt;p&gt;Cela ajoute de la complexit&#233;, certes, mais &#233;galement beaucoup de flexibilit&#233;. En effet, il est possible d'ajouter ou de supprimer &#171; &#224; chaud &#187; des volumes physiques d'un groupe de volumes . La taille d'un volume logique peut &#233;galement &#234;tre modifi&#233;e en direct et, si le syst&#232;me de fichiers cr&#233;&#233; sur le volume logique supporte le redimensionnement en ligne&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb6-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Ext2 le permet via la commande ext2online, reiserfs via resize_reiserfs et (&#8230;)&#034; id=&#034;nh6-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;, on peut augmenter la taille d'une partition sans interruption de service.&lt;/p&gt;
&lt;p&gt;Il est m&#234;me possible de d&#233;placer les donn&#233;es d'un volume physique vers un autre (c'est-&#224;-dire d'un disque r&#233;el vers un autre si ces volumes physiques sont sur des disques distincts) alors que les donn&#233;es sont en cours d'utilisation !&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Mettre en oeuvre LVM&lt;/h2&gt;
&lt;p&gt;LVM est compos&#233; de deux parties : la premi&#232;re est un pilote de p&#233;riph&#233;rique pr&#233;sent dans le noyau Linux, la seconde est un paquetage fournissant les commandes qui permettront de manipuler les volumes physiques, les groupes de volumes et les volumes logiques.&lt;/p&gt;
&lt;p&gt;Le noyau standard livr&#233; avec les distributions les plus populaires est en g&#233;n&#233;ral compil&#233; avec la fonctionnalit&#233; LVM&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb6-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Cependant, si vous utilisez une distribution Debian, vous devrez installer (&#8230;)&#034; id=&#034;nh6-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb6-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;&#171; saveur &#187; est la traduction la plus courante pour &#171; flavor &#187; dans le (&#8230;)&#034; id=&#034;nh6-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Si vous compilez votre noyau vous-m&#234;me, assurez-vous d'activer &lt;strong&gt;&#171; Multiple devices driver support (RAID and LVM) &#187;&lt;/strong&gt; puis &lt;strong&gt;&#171; Logical volume manager (LVM) support &#187; &lt;/strong&gt;dans le sous-menu &lt;strong&gt;&#171; Multi-device support (RAID and LVM) &#187;&lt;/strong&gt; du programme de configuration du noyau (xconfig ou menuconfig).&lt;/p&gt;
&lt;p&gt;Si vous rencontrez des probl&#232;mes lors d'une tentative de montage d'un &lt;i&gt;snapshot&lt;/i&gt; sur un syst&#232;me de fichiers journalis&#233; (ext3, reiserfs ou XFS, par exemple), vous aurez peut-&#234;tre besoin d'appliquer le patch &#171; VFS lock &#187; disponible dans le r&#233;pertoire PATCHES des sources de LVM (&#224; t&#233;l&#233;charger sur &lt;a href=&#034;http://www.sistina.com/products_lvm.htm&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;le site de LVM&lt;/a&gt;). Vous devrez &#233;galement jeter un oeil sur la commande xfs_freeze si vous utilisez XFS.&lt;/p&gt;
&lt;p&gt;Les utilitaires en ligne de commande pour g&#233;rer LVM sont disponibles pour Debian dans les paquetages lvm-common et lvm10 et, pour Redhat, dans le paquetage lvm. Toutes les commandes relatives &#224; LVM (except&#233; e2fsadm) commencent par &#171; pv &#187;, &#171; vg &#187; ou &#171; lv &#187; selon qu'elles manipulent respectivement les volumes physiques, les groupes de volumes ou les volumes logiques.&lt;/p&gt;
&lt;p&gt;Durant la proc&#233;dure d'installation certaines distributions vous permettrons de cr&#233;er des groupes de volumes et de les utiliser pour installer votre syst&#232;me. Si vous n'avez pas cr&#233;&#233; de groupes de volumes &#224; ce moment-l&#224; ou si votre distribution ne le permettait pas, voici la marche &#224; suivre pour cr&#233;er volumes physiques, groupes de volumes et volumes logiques :&lt;/p&gt;
&lt;p&gt;1) Cr&#233;ez une ou plusieurs partitions qui recevront autant de volumes physiques que n&#233;cessaire. Pour cela utilisez l'un des deux programmes suivants : &lt;strong&gt;fdisk&lt;/strong&gt; ou &lt;strong&gt;cfdisk&lt;/strong&gt;. Puis, affectez le type 0x8e (&#171; Linux LVM &#187;) aux partitions concern&#233;es. Pour la suite, nous consid&#233;rerons que vous avez une partition d&#233;di&#233;e &#224; LVM sur chacun des disques hdb et hdc (partitions hdb1 et hdc1). Il est &#233;galement possible de d&#233;dier des disques entier &#224; LVM, consultez la page de manuel pvcreate(8) pour plus d'information.&lt;/p&gt;
&lt;p&gt;2) Initialisez chacune des partitions d&#233;di&#233;es &#224; LVM, elles deviennent ainsi des volumes physiques :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# pvcreate /dev/hdb1 /dev/hdc1&lt;/textarea&gt;
&lt;p&gt;3) Cr&#233;ez un groupe de volumes (nomm&#233; &#171; vg01 &#187; dans cet exemple) contenant les volumes physiques :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# vgcreate vg01 /dev/hdb1 /dev/hdc1&lt;/textarea&gt;
&lt;p&gt;4) Cr&#233;ez un volume logique dans le groupe de volumes vg01, ici le nom du volume logique est lv01 et sa taille est de 2 Go (comme LVM nous permet d'&#233;tendre &#224; volont&#233; la taille des volumes logiques, n'utilisez pas tout l'espace disponible dans le groupe de volumes) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# lvcreate --size 2g --name lv01 vg01&lt;/textarea&gt;
&lt;p&gt;Une fois le volume logique cr&#233;&#233;, LVM y associe un fichier sp&#233;cial de type bloc &#224; cet emplacement : &#171; /dev/volume_physique/volume_logique &#187;. Il est utilisable comme une partition sur un disque.&lt;/p&gt;
&lt;p&gt;5) Formatez le volume logique et attachez-le &#224; un r&#233;pertoire (ici &#171; &lt;br class='autobr' /&gt;
/mes_precieuses_donnees &#187;) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# mkfs -t ext2 /dev/vg01/lv01 # mkdir /mes_precieuses_donnees # mount -t ext2 /dev/vg01/lv01 /mes_precieuses_donnees&lt;/textarea&gt;
&lt;p&gt;N'oubliez pas d'ajouter cette ligne dans le fichier /etc/fstab afin que ce syst&#232;me de fichiers soit remont&#233; au prochain d&#233;marrage du syst&#232;me :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;/dev/vg01/lv01 /mes_precieuses_donnees ext2 default 0 2&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;R&#233;aliser un &lt;i&gt;snapshot&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;Un &lt;i&gt;snapshot&lt;/i&gt; est un volume logique particulier qui est caract&#233;ris&#233; par un nom (comme tout volume logique), une taille et un volume logique d'origine. La taille repr&#233;sente dans ce cas l'espace qui sera utilis&#233; pour enregistrer les donn&#233;es modifi&#233;es sur le volume logique d'origine qui, lui, reste &#171; vivant &#187;.&lt;/p&gt;
&lt;p&gt;Comme il s'agit de cr&#233;er un volume logique, c'est la commande lvcreate qui est utilis&#233;e. Par exemple, pour cr&#233;er un &lt;i&gt;snapshot&lt;/i&gt; nomm&#233; &#171; sauvegarde &#187; &#224; partir du volume logique lv01, on utilisera la commande :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# lvcreate --snapshot --size 50m --name sauvegarde /dev/vg01/lv01&lt;/textarea&gt;
&lt;p&gt;Nous pouvons donc d&#233;sormais attacher le volume logique repr&#233;sentant le &lt;i&gt;snapshot&lt;/i&gt; &#224; un r&#233;pertoire :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# mkdir /sauvegarde_donnees # mount -t ext2 -o ro /dev/vg01/sauvegarde /sauvegarde_donnees&lt;/textarea&gt;
&lt;p&gt;L'option &#171; ro &#187; est fournie &#224; la commande mount afin d'&#233;viter un message d'avertissement car, par d&#233;finition, un &lt;i&gt;snapshot&lt;/i&gt; ne permet que la lecture seule. Si vous utilisez XFS il sera n&#233;cessaire d'utiliser &#233;galement l'option &#171; nouuid &#187;.&lt;/p&gt;
&lt;p&gt;Pour supprimer un &lt;i&gt;snapshot&lt;/i&gt;, il faut commencer par le d&#233;tacher du r&#233;pertoire sur lequel il est mont&#233; puis utiliser la commande lvremove (puisqu'il s'agit d'un volume logique).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Exemple d'utilisation pour la sauvegarde d'un syst&#232;me de fichiers&lt;/h2&gt;
&lt;p&gt;L'exemple suivant est le squelette d'un script shell permettant d'effectuer la sauvegarde d'un syst&#232;me de fichiers avec un minimum de temps d'arr&#234;t des services. L'interruption de service ne dure, en effet, que le temps n&#233;cessaire &#224; la commande lvcreate pour cr&#233;er le &lt;i&gt;snapshot&lt;/i&gt; (c'est-&#224;-dire quelques secondes).&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='37' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# Variables sauv_rep=/mnt sauv_nom=sauv_&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;date +%Y%m%d&lt;/code&gt; orig_vg=vg01 orig_lv=lv01 # Arr&#234;t des services qui utilisent le syst&#232;me de fichiers &#224; sauvegarder for s in service1 service2 serviceN; do /etc/init.d/$s stop; done # Cr&#233;ation du snapshot lvcreate --snapshot --size 100m --name $sauv_nom /dev/$orig_vg/$orig_lv $sortie=$? # D&#233;marrage des services pr&#233;c&#233;demment arr&#234;t&#233;s for s in serviceN service2 service1; do /etc/init.d/$s start; done # Montage du snapshot [ $sortie = 0 ] || sortie_erreur $sortie 'Erreur lors de lvcreate.' [ -d $sauv_rep/$sauv_nom ] || mkdir $sauv_rep/$sauv_nom mount -t ext2 -o ro /dev/$orig_vg/$sauv_nom $sauv_rep/$sauv_nom [ $? = 0 ] || sortie_erreur $? 'Erreur lors de mount.' # Sauvegarde, nous avons tout le temps... nice tar czCf $sauv_rep /dev/st0 $sauv_nom # D&#233;montage et suppression du snapshot umount $sauv_rep/$sauv_nom lvremove -f /dev/$orig_vg/$sauv_nom rmdir $sauv_rep/$sauv_nom&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;R&#233;f&#233;rences&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#034;http://www.sistina.com/products_lvm.htm&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Le site de LVM&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://www.tldp.org/HOWTO/LVM-HOWTO/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Le LVM HOW-TO&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;La page de manuel lvm(8).&lt;/p&gt;
&lt;p&gt;Un article sur le site d'IBM - &lt;a href=&#034;http://www-106.ibm.com/developerworks/linux/library/l-lvm/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Partie 1&lt;/a&gt; - &lt;a href=&#034;http://www-106.ibm.com/developerworks/linux/library/l-lvm2.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Partie 2&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb6-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh6-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 6-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Ext2 le permet &lt;i&gt;via&lt;/i&gt; la commande ext2online, reiserfs &lt;i&gt;via&lt;/i&gt; resize_reiserfs et XFS &lt;i&gt;via&lt;/i&gt; xfs_growfs.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb6-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh6-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 6-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Cependant, si vous utilisez une distribution Debian, vous devrez installer un paquetage du noyau 2.4 ou utiliser la saveur d'installation bf24 car la version du noyau install&#233;e par d&#233;faut est une 2.2.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb6-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh6-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 6-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;&#171; saveur &#187; est la traduction la plus courante pour &#171; flavor &#187; dans le contexte des diff&#233;rents noyaux/paquetages d'installation Debian. Si quelqu'un propose un terme plus appropri&#233;, je suis preneur.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Peut-on utiliser plusieurs logiciels de courriel ?</title>
		<link>http://clx.asso.fr/spip/?Peut-on-utiliser-plusieurs-logiciels-de-courriel</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Peut-on-utiliser-plusieurs-logiciels-de-courriel</guid>
		<dc:date>2004-02-19T16:57:31Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Georges KHAZNADAR</dc:creator>


		<dc:subject>Chiffrement</dc:subject>
		<dc:subject>SPAM</dc:subject>
		<dc:subject>Messagerie &#233;lectronique</dc:subject>

		<description>&lt;p&gt;Les logiciels de courriels sont parfois subtilement incompatibles, et l&#224;, Kmail et Mutt, &#231;a peut faire un truc explosif.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Chiffrement-+" rel="tag"&gt;Chiffrement&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-SPAM-+" rel="tag"&gt;SPAM&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Messagerie-electronique-+" rel="tag"&gt;Messagerie &#233;lectronique&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L100xH50/arton234-202ad.png?1759526083' alt='' class='spip_logo spip_logo_right' width='100' height='50' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Voici un gag presque amusant, qui m'est arriv&#233; le 24 janvier 2004. Notre serveur &lt;tt&gt;clx.anet.fr&lt;/tt&gt; a tenu le coup, mais il a distribu&#233; plusieurs milliers de courriels pour un clic de trop. ?a partait pourtant d'une bonne intention...&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;J'avais traduit en polonais une recette de g&#226;teau au chocolat (excellente recette, je vous la conseille. Si vous insistez je la publierai en fran&#231;ais), et je m'appr&#234;tais &#224; l'exp&#233;dier &#224; des cousines &#233;loign&#233;es.&lt;/p&gt;
&lt;p&gt;J'avais d&#233;j&#224; re&#231;u de Pierre M. (il se reconna&#238;tra), un courriel magnifique, compos&#233; &#224; l'aide de Kmail, qui comportait une part en fran&#231;ais, et une part en polonais, avec deux encodages diff&#233;rents et pourtant impeccablement rendus, avec tous les signes diacritiques. Essayez voir d'afficher sur la m&#234;me page un c c&#233;dille et un l barr&#233;, vous verrez que ce n'est possible qu'avec des logiciels qui savent utiliser plus d'un encodage de caract&#232;res &#224; la fois, ou alors avec un logiciel utilisant utf-8.&lt;/p&gt;
&lt;p&gt;Du coup je m'enhardis &#224; lancer Kmail (&#224; la fa&#231;on des dinosaures, vous savez bien : en tapant sur les touches 'k', 'm', 'a', 'i', 'l' dans une console). L&#224;, il se passe plein de choses magiques. Ma machine reste occup&#233;e deux bonnes minutes (apparemment Kmail a bricol&#233; pour cr&#233;er des index pour tous mes courriels pass&#233;s), et me pr&#233;sente quelques messages d'avertissement.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Tiens, pourquoi ai-je ignor&#233; le message qui annoncait qu'il y avait un peu beaucoup de messages dans la bo&#238;te d'envoi et que je ferais mieux d'aller voir ce qui s'y passe ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Bon, on commence tout doux : je m'envoie un message. Tout se passe bien, mais le petit rectangle &#224; c&#244;t&#233;, celui qui affiche mon trafic r&#233;seau (wmnet pour le nommer), se remplit de rouge et de blanc, pendant que l'acc&#232;s au disque s'affolle.&lt;/p&gt;
&lt;p&gt;J'ai compris apr&#232;s moins d'une minute... Mais c'est rapide, l'ADSL. J'ai tu&#233; tout ce qui tournait, &#231;a a calm&#233; le Kmail. Il a quand m&#234;me r&#233;exp&#233;di&#233; quelques 10% de ma bo&#238;te d'envoi (&lt;tt&gt;Mail/outbox&lt;/tt&gt;), que je n'avais pas divis&#233;e depuis un an environ.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Peut-on faire confiance &#224; plus d'un logiciel de courriel ? &lt;/h2&gt;
&lt;p&gt;L&#224;, je me rends compte qu'une petite diff&#233;rence d'interpr&#233;tation entre Kmail et Mutt peut d&#233;g&#233;n&#233;rer en gros soucis : ces deux logiciels utilisent le format mbox, et il ne faut pas que l'un utilise comme bo&#238;te des envois la bo&#238;te des archives de l'autre.&lt;/p&gt;
&lt;p&gt;Plusieurs raisons me font garder Mutt.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; mes petits doigts patauds ont l'habitude de Mutt.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; je peux utiliser une connexion s&#233;curis&#233;e ssh depuis n'importe quel ordinateur, et consulter mon courriel chez moi, car Mutt utilise tr&#232;s bien la console et il est tr&#232;s &#233;conome en bande passante.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Mutt est tr&#232;s tr&#232;s simple pour l'utilisation de la signature &#233;lectronique.&lt;/p&gt;
&lt;p&gt;Mais j'aimerais aussi utiliser Kmail :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; c'est quand m&#234;me commode, des polices de caract&#232;res non cr&#233;nel&#233;es,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Pierre M. m'a montr&#233; que je pourrais utiliser Kmail dans un contexte multilingue, et c'est vrai que c'est frustrant de devoir supprimer tous les accents d&#232;s qu'ils n'existent pas dans le clavier ou dans l'encodage en cours.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Kmail semble supporter pas trop mal la signature et le cryptage GPG.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; enfin KMail utilise les m&#234;mes fichiers &lt;i&gt;mbox&lt;/i&gt; que Mutt.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Alors :&lt;/b&gt; pourquoi pas Mutt pour l'usage &#224; travers un r&#233;seau lent, et Kmail pour l'usage direct devant mon ordinateur ?&lt;/p&gt;
&lt;p&gt;Je dois dire que le coup de ce matin m'a un peu refroidi. Quelques courriels plus tard, et j'ai eu la solution : il faut faire attention &#224; la configuration des bo&#238;tes de courriel &#171; syst&#232;me &#187;. Le standard semble &#234;tre &lt;tt&gt; /Mail/outbox&lt;/tt&gt; pour le courriel &#224; exp&#233;dier et &lt;tt&gt; /Mail/sent-mail&lt;/tt&gt;&lt;br class='autobr' /&gt;
pour le courriel d&#233;j&#224; parti. &#199;a se r&#232;gle dans le fichier de configuration &lt;tt&gt;.muttrc&lt;/tt&gt; pour Mutt (param&#232;tre &lt;i&gt;record&lt;/i&gt;, et c'est fix&#233; en dur (pas de configuration possible ?) pour Kmail.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt; Courriel : les duos qui marchent &lt;/h2&gt;
&lt;p&gt;En nous y mettant &#224; plusieurs, nous pourrions b&#226;tir un tableau des logiciels de courriel qu'on peut rendre mutuellement compatibles, et pour ceux de ces logiciels qui sont libres, nous pourrons probablement inciter quelqu'un ou par nous-m&#234;me faire en sorte que les compatibilit&#233; s'am&#233;liorent.&lt;/p&gt;
&lt;p&gt;Je vais donc commencer &#224; b&#226;tir un tableau, que je ferai &#233;voluer en fonction des suggestions et des nouveaut&#233;s :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt; Compatible ? &lt;/td&gt;
&lt;td&gt;Mutt&lt;/td&gt;
&lt;td&gt;Kmail&lt;/td&gt;
&lt;td&gt;Sylpheed&lt;/td&gt;
&lt;td&gt;Mozilla&lt;/td&gt;
&lt;td&gt;Gnus&lt;/td&gt;
&lt;td&gt;Pine&lt;/td&gt;
&lt;td&gt;IMP&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Mutt&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Oui&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb6-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;&#224; condition de placer la ligne record=+sent-mail dans le fichier de (&#8230;)&#034; id=&#034;nh6-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;&lt;/td&gt;
&lt;td&gt; ?&lt;/td&gt;
&lt;td&gt; ?&lt;/td&gt;
&lt;td&gt; ?&lt;/td&gt;
&lt;td&gt;oui&lt;/td&gt;
&lt;td&gt;oui&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Kmail&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt; ?&lt;/td&gt;
&lt;td&gt; ?&lt;/td&gt;
&lt;td&gt; ?&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Sylpheed&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt; ?&lt;/td&gt;
&lt;td&gt; ?&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Mozilla&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt; ?&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Gnus&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Pine&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;
&lt;td&gt;oui&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;IMP&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;x&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb6-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh6-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 6-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;&#224; condition de placer la ligne &lt;tt&gt;record=+sent-mail&lt;/tt&gt; dans le fichier de configuration &lt;tt&gt; /.muttrc&lt;/tt&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Editeurs de texte orient&#233; LaTeX</title>
		<link>http://clx.asso.fr/spip/?Editeurs-de-texte-oriente-LaTeX</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Editeurs-de-texte-oriente-LaTeX</guid>
		<dc:date>2004-01-22T18:17:14Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Denis Bitouz&#233;, Georges KHAZNADAR</dc:creator>


		<dc:subject>LaTeX</dc:subject>

		<description>&lt;p&gt;Comment taper du LaTeX sans s'ab&#238;mer le bout des doigts.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-LaTeX-+" rel="tag"&gt;LaTeX&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L150xH60/arton191-1370e.png?1759524933' alt='' class='spip_logo spip_logo_right' width='150' height='60' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;&lt;font color=&#034;red&#034;&gt;&lt;i&gt;Mise &#224; jour du 21 janvier 2004 : attention ! L'article qui suit concerne la version 6.01 de TeXnicCenter. La version actuelle (6.20) r&#218;gle peut-&#234;tre les probl&#218;mes signal&#233;s rendant ainsi, le cas &#233;ch&#233;ant, obsol&#218;tes les informations qui suivent...&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Voici quelques pr&#233;cisions qui font suite au &lt;a href=&#034;http://clx.anet.fr/spip/breve.php3?id_breve=148&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;stage d'initiation &#224; LaTeX&lt;/a&gt; dont des compte-rendus pourront bient&#206;t &#234;tre consult&#233;s sur ce site. Ces pr&#233;cisions concernent en particulier l'installation et l'utilisation de TeXnicCenter, un &#233;diteur de texte orient&#233; LaTeX sous Windows.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Lors de&lt;br class='autobr' /&gt;
la pr&#233;sentation du mercredi 19 mars 2003, j'ai utilis&#233; un &#233;diteur de texte&lt;br class='autobr' /&gt;
orient&#233; LaTeX. Cet &#233;diteur se pr&#233;nomme &#171; Kile &#187;... Il n'est disponible que sous&lt;br class='autobr' /&gt;
GNU/Linux et on peut en savoir plus &#224; son sujet &#224; l'adresse :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://kile.sourceforge.net/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://kile.sourceforge.net/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;J'avais aussi parl&#233; d'un &#233;diteur LaTeX sous Windows, sous licence GPL. Il s'agit&lt;br class='autobr' /&gt;
de TeXnicCenter. Contrairement &#224; ce que je pensais, celui-ci n'est pas&lt;br class='autobr' /&gt;
disponible sur le CD-Rom TeXLive. Voici donc quelques&lt;br class='autobr' /&gt;
pr&#233;cisions pour ceux qui souhaiteraient l'utiliser (ceux qui par&lt;br class='autobr' /&gt;
exemple n'ont pas d'acc&#232;s Internet peuvent installer WinShell &#8212; qui, lui, n'est pas libre :( &#8212;) :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Il faut rapatrier logiciel TeXnicCenter par Internet&lt;ul&gt;
&lt;li&gt;soit lors de l'installation du TeXLive, en autorisant le chargement
par Internet (cochez l'option &lt;strong&gt;Enable Internet Download&lt;/strong&gt;) ;
&lt;li&gt;soit, si TeXLive est d&#233;j&#224; install&#233;, en choisissant dans le menu
TeXLive, &lt;strong&gt;Maintenance&lt;/strong&gt;, &lt;strong&gt;Add TeX Package&lt;/strong&gt; puis en autorisant le
chargement par Internet (cochez l'option &lt;strong&gt;Enable Internet Download&lt;/strong&gt;) ;
&lt;li&gt;soit en se rendant directement sur le site de d&#233;veloppement de ce&lt;br class='autobr' /&gt;
logiciel :
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.toolscenter.org&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.toolscenter.org&lt;/a&gt;&lt;br class='autobr' /&gt;
Vous trouverez d'ailleurs sur ce site une section Download dans laquelle vous pourrez r&#233;cup&#233;rer la derni&#232;re version de TeXnicCenter.&lt;/p&gt;
&lt;/ul&gt;
&lt;li&gt;Lors de l'installation, apr&#232;s la fen&#234;tre de bienvenue (&#171; Welcome&lt;br class='autobr' /&gt;
to the configuration Wizard... &#187;) appara&#238;t une fen&#234;tre o&#249; il faut&lt;br class='autobr' /&gt;
indiquer o&#249; sont situ&#233;s les &#171; ex&#233;cutables &#187; LaTeX (tex.exe, latex.exe,&lt;br class='autobr' /&gt;
etc.). Le mieux est de cliquer sur le bouton o&#249; se trouvent des points&lt;br class='autobr' /&gt;
de suspension pour se d&#233;placer dans l'arborescence. Si l'installation du&lt;br class='autobr' /&gt;
TeXLive s'est faite en acceptant les lieux d'installation propos&#233;s par&lt;br class='autobr' /&gt;
d&#233;faut, le r&#233;pertoire (win32) &#224; s&#233;lectionner devrait &#234;tre l&#224; :
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;C:\Program Files\TeXLive\bin\win32&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Dans la fen&#234;tre suivante, il faut indiquer le chemin complet du&lt;br class='autobr' /&gt;
visualisateur de fichiers PDF (&#171; Enter the full path of the PDF-viewer&lt;br class='autobr' /&gt;
to use &#187;). Je propose d'utiliser GhostView qui est tr&#232;s bien (on&lt;br class='autobr' /&gt;
peut pr&#233;f&#233;rer Acrobat Reader) mais non libre (cf sa licence). Ghostview est disponible sur le CDROM du TeXlive mais peut aussi &#234;tre r&#233;cup&#233;r&#233; sur Internet &#224; l'adresse : &lt;a href=&#034;http://www.cs.wisc.edu/~ghost/gsview/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.cs.wisc.edu/~ghost/gsview/&lt;/a&gt; (N'oubliez pas de r&#233;cup&#233;rer &#233;galement GhostScript). Normalement, l'ex&#233;cutable GhostView se situe ici :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;C:\GHOSTGUM\GSVIEW\GSVIEW32.EXE&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Laissez les deux autres cases vides.&lt;/p&gt;
&lt;li&gt;Une fois l'installation termin&#233;e, il semble qu'il faille changer un&lt;br class='autobr' /&gt;
param&#232;tre pour &#233;viter des erreurs syst&#233;matiques de compilation. Pour&lt;br class='autobr' /&gt;
cela, lancez TeXnicCenter (par exemple par le menu &lt;strong&gt;D&#233;marrer&lt;/strong&gt; &#8212;&gt;&lt;br class='autobr' /&gt;
&lt;strong&gt;Programmes&lt;/strong&gt; &#8212;&gt; &lt;strong&gt;TeXnicCenter&lt;/strong&gt;). Dans le menu &lt;strong&gt;Build&lt;/strong&gt; de la fen&#234;tre&lt;br class='autobr' /&gt;
principale, choisissez &lt;strong&gt;Build Output Profiles&lt;/strong&gt;. Dans la fen&#234;tre qui&lt;br class='autobr' /&gt;
appara&#238;t,
&lt;ol&gt;
&lt;li&gt;s&#233;lectionnez &lt;strong&gt;LaTeX =&gt; Dvi&lt;/strong&gt; ; dans la partie droite est&lt;br class='autobr' /&gt;
alors accessible une case (la 2&#232;me) o&#249; est inscrit : &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;--src -interaction=nonstopmode &#034;%pm&#034;&lt;/textarea&gt;
&lt;p&gt;Remplacez le &lt;strong&gt;p&lt;/strong&gt; (minuscule) de &#034;%pm&#034; par un &lt;strong&gt;P&lt;/strong&gt; (majuscule) ;&lt;/p&gt;
&lt;li&gt;de m&#234;me, s&#233;lectionnez &lt;strong&gt;LaTeX =&gt; PDF&lt;/strong&gt; ; dans la partie droite est&lt;br class='autobr' /&gt;
alors accessible une case (la 2&#232;me) o&#249; est inscrit : &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;-interaction=nonstopmode &#034;%pm&#034;&lt;/textarea&gt;
&lt;p&gt;Remplacez le &lt;strong&gt;p&lt;/strong&gt; (minuscule) de &#034;%pm&#034; par un &lt;strong&gt;P&lt;/strong&gt; (majuscule) ;&lt;/p&gt;
&lt;li&gt;de m&#234;me, s&#233;lectionnez &lt;strong&gt;LaTeX =&gt; PS&lt;/strong&gt; ; dans la partie droite est&lt;br class='autobr' /&gt;
alors accessible une case (la 2&#232;me) o&#249; est inscrit : &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;--src -interaction=nonstopmode &#034;%pm&#034;&lt;/textarea&gt;
&lt;p&gt;Remplacez le &lt;strong&gt;p&lt;/strong&gt; (minuscule) de &#034;%pm&#034; par un &lt;strong&gt;P&lt;/strong&gt; (majuscule).&lt;/p&gt;
&lt;li&gt;Cliquez sur &lt;strong&gt;OK&lt;/strong&gt;.
&lt;/ol&gt;
&lt;li&gt;C'est tout !
&lt;/ol&gt;
&lt;p&gt;Une fois ces modifications effectu&#233;es, il suffit d'ouvrir un nouveau fichier&lt;br class='autobr' /&gt;
(menu &lt;strong&gt;File&lt;/strong&gt; &#8212;&gt; &lt;strong&gt;New&lt;/strong&gt;), de taper les commandes LaTeX indiqu&#233;es lors de&lt;br class='autobr' /&gt;
l'initiation (que j'ai ins&#233;r&#233;es &#224; la fin de ce message, un copier-coller&lt;br class='autobr' /&gt;
et hop !), de &#171; faire travailler LaTeX &#187; par exemple en allant dans le&lt;br class='autobr' /&gt;
menu &lt;strong&gt;Build&lt;/strong&gt; &#8212;&gt; &lt;strong&gt;Current File&lt;/strong&gt; &#8212;&gt; &lt;strong&gt;Build Output&lt;/strong&gt; ou, plus simplement en &lt;br class='autobr' /&gt;
maintenant enfonc&#233;e la touche &lt;strong&gt;CTRL&lt;/strong&gt; et en tapant la touche &lt;strong&gt;F7&lt;/strong&gt;. La&lt;br class='autobr' /&gt;
compilation s'&#233;tant normalement bien termin&#233;e, il suffit pour voir le&lt;br class='autobr' /&gt;
r&#233;sultat d'appuyer sur la touche &lt;strong&gt;F5&lt;/strong&gt; (&#224; ne pas presser apr&#232;s chaque compilation, la&lt;br class='autobr' /&gt;
fen&#234;tre de visualisation restant ouverte et prenant en charge au fur et&lt;br class='autobr' /&gt;
&#224; mesure les modifications cr&#233;&#233;es par les compilations suivantes).&lt;/p&gt;
&lt;p&gt;Il sera peut-&#234;tre n&#233;cessaire de jouer sur le zoom qui est &lt;i&gt;a priori&lt;/i&gt; r&#233;gl&#233;&lt;br class='autobr' /&gt;
un peu trop pr&#232;s (cliquez sur la loupe &#171; - &#187;).&lt;/p&gt;
&lt;p&gt;Amusez-vous bien !&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;textarea readonly='readonly' cols='40' rows='12' class='spip_cadre spip_cadre_block' dir='ltr'&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[12pt]{article} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage[a4paper]{geometry} \usepackage[frenchb]{babel} \begin{document} Bonjour monde! \end{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;/textarea&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>G&#233;rer une zone &#034;alias&#034;</title>
		<link>http://clx.asso.fr/spip/?Gerer-une-zone-alias</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Gerer-une-zone-alias</guid>
		<dc:date>2003-10-15T12:21:55Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ga&#233;tan RYCKEBOER</dc:creator>


		<dc:subject>DNS</dc:subject>

		<description>&lt;p&gt;Le resolver de Bind, que l'on trouve sur tous les unices, permet de passer une requ&#234;te DNS simplifi&#233;e &#224; un certain nombre de domaines ; ainsi, une requ&#234;te sur &#034;clx&#034; peut donner &#034;clx.anet.fr&#034; selon la configuration du fichier /etc/resolv.conf. Le nombre de domaines est limit&#233; &#224; 6, en g&#233;n&#233;ral, voici un moyen permettant de contourner cette limitation ; &#224; condition que vous g&#233;riez vous m&#234;me un DNS.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-DNS-+" rel="tag"&gt;DNS&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L150xH111/dns-anim-d3a97.png?1759526084' alt='' class='spip_logo spip_logo_right' width='150' height='111' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Le &lt;i&gt;resolver&lt;/i&gt; de &lt;strong&gt;Bind&lt;/strong&gt;, que l'on trouve sur tous les unices, fait la correspondance entre un nom de serveur pleinement qualifi&#233; (nom de la machine serveur + nom de domaine - machine.domaine.com) et l'adresse IP associ&#233;e (par exemple 211.211.211.211).&lt;/p&gt;
&lt;p&gt;Un m&#233;canisme particulier permet d'&#233;viter de saisir le nom complet du serveur &#224; atteindre, mais uniquement le nom du serveur. Le &lt;i&gt;resolver&lt;/i&gt; compl&#218;te tout seul le nom de domaine gr&#226;ce &#224; une liste de domaines pr&#233;d&#233;finis dans son fichier de configuration &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/resolv.conf&lt;/code&gt;.&lt;br class='autobr' /&gt;
Ainsi, une requ&#234;te sur portant &#171; clx &#187; (par exemple &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ping clx&lt;/code&gt;) donnera le r&#233;sultat &#171; clx.anet.fr &#187; lorsque le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/resolv.conf&lt;/code&gt; contient la directive &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;search anet.fr&lt;/code&gt;. Ce &#171; raccourci &#187; est bien pratique pour d&#233;signer rapidement une machine.&lt;/p&gt;
&lt;p&gt;Or, dans un environnement contenant plusieurs zones, des requ&#234;tes sont effectu&#233;es sur les diff&#233;rents domaines qui les composent. Mais le nombre de domaines affect&#233;s &#224; la directive &lt;i&gt;search&lt;/i&gt; est limit&#233; en g&#233;n&#233;ral &#224; 6. Vous ne pouvez pas utiliser de tous les &#171; raccourcis &#187; dont vous pourriez avoir besoin, vous obligeant ainsi &#224; taper les noms complets.&lt;/p&gt;
&lt;p&gt;Cet article d&#233;crit le fonctionnement de la r&#233;solution de nom, et permet - si vous avez un DNS local - de contourner cette limitation du champ &lt;i&gt;search&lt;/i&gt; du fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;resolv.conf&lt;/code&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Fonctionnement de la r&#233;solution DNS&lt;/h2&gt;
&lt;p&gt;Tout d'abord, un mot sur le fonctionnement de &lt;i&gt;Bind&lt;/i&gt;.&lt;br class='autobr' /&gt;
Si pensez tout savoir de la r&#233;solution de nom, passez directement au &lt;a href=&#034;#zonealias&#034; class=&#034;spip_ancre&#034;&gt;c&#339;ur du probl&#232;me&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Bind sert &#224; &lt;i&gt;r&#233;soudre des noms&lt;/i&gt;, c'est &#224; dire de transformer une adresse de la forme &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;clx.anet.fr&lt;/code&gt; en adresse IP (80.118.2.10). &lt;br class='autobr' /&gt;
De m&#234;me, il permet de retrouver le nom &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;clx.anet.fr&lt;/code&gt; &#224; partir de son adresse IP. On appelle ce nom, un &lt;i&gt;Fully Qualified Domain Name&lt;/i&gt;, FQDN en abr&#233;g&#233;, c'est-&#224;-dire un &#171; Nom de Domaine Complet &#187; (ou nom de domaine pleinement qualifi&#233;).&lt;/p&gt;
&lt;p&gt;Pratiquement, cela permet - entre autres - de d&#233;placer un serveur sans en changer son nom FQDN&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb7-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;sans trop s'&#233;tendre sur le sujet, disons simplement que les adresses IP &#171; (&#8230;)&#034; id=&#034;nh7-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;, et surtout, &#233;vite aux utilisateurs de retenir une adresse IP sur 4 octets, ce qu'ils ne pourraient de toute fa&#231;on, vraisemblablement pas faire pour tous les sites Web qu'ils consultent.&lt;/p&gt;
&lt;p&gt;Les noms de domaines sont g&#233;r&#233;s zone par zone, de mani&#232;re hi&#233;rarchique.&lt;br class='autobr' /&gt;
Le '.' s&#233;pare les zones. &lt;br class='autobr' /&gt;
Le d&#233;coupage hi&#233;rarchique des zones DNS se fait de droite &#224; gauche, le nom de la machine en dernier. Ainsi, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;clx.anet.fr&lt;/code&gt; repr&#233;sente le serveur nomm&#233; &lt;i&gt;clx&lt;/i&gt;, dans le domaine &lt;i&gt;anet&lt;/i&gt;, du suffixe &lt;i&gt;fr&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Concr&#234;tement, l'&lt;a href=&#034;http://www.afnic.fr&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Afnic&lt;/a&gt; g&#232;re l'attribution des zones dans le suffixe .fr, &lt;a href=&#034;http://www.verisign.com&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;VeriSign&lt;/a&gt; s'occupe de l'attribution des zones pour le suffixe .com et .net, nous venons d'en entendre beaucoup parler (&lt;a href=&#034;http://linuxfr.org/2003/09/17/13947.html&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://linuxfr.org/2003/09/17/13947.html&lt;/a&gt; et &lt;a href=&#034;http://www.transfert.net/a9294&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.transfert.net/a9294&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Pour effectuer la r&#233;solution, le &lt;i&gt;resolver&lt;/i&gt; proc&#232;dera donc par requ&#234;tes successives, comme ceci :
&lt;br /&gt;&#8212; &lt;i&gt;DNS racine, qui est le DNS du suffixe &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fr&lt;/code&gt; ?&lt;/i&gt;
&lt;br /&gt;&#8212; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ns1.nic.fr.&lt;/code&gt;
&lt;br /&gt;&#8212; &lt;i&gt;DNS de l'Afnic, qui est le DNS du domaine &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;anet.fr&lt;/code&gt; ?&lt;/i&gt;
&lt;br /&gt;&#8212; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ns1.cyberouest.fr. et b612.anet.fr.&lt;/code&gt;
&lt;br /&gt;&#8212; &lt;i&gt;DNS de cyberouest, quelle est l'adresse IP du serveur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;clx.anet.fr&lt;/code&gt; ?&lt;/i&gt;
&lt;br /&gt;&#8212; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;clx.anet.fr&lt;/code&gt; est un alias vers le serveur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;gaia.anet.fr.&lt;/code&gt;, lequel a l'adresse 80.118.2.10.&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb7-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;En pratique c'est un peu plus complexe, mais vous connaissez maintenant les (&#8230;)&#034; id=&#034;nh7-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;div class='spip_document_259 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;174&#034; data-legende-lenx=&#034;xxx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L500xH371/dns-anim-a645a.png?1759825063' width='500' height='371' alt='' /&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre '&gt;&lt;strong&gt;Requ&#234;te DNS simplifi&#233;e
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif '&gt;Ici, pour simplifier le sch&#233;ma, nous interrogeons b612.anet.fr. En r&#233;alit&#233; c'est un peu plus complexe, et il vaut mieux interroger ns1.cyberouest.fr.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;D'une mani&#232;re similaire, pour conna&#238;tre le nom FQDN d'une adresse IP particuli&#232;re, on fera des requ&#234;tes successives sur les serveurs DNS g&#233;rant les zones de r&#233;solution inverse des diff&#233;rents r&#233;seaux IP.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les fichiers de zone de BIND&lt;/h2&gt;
&lt;p&gt;Concr&#232;tement, pour r&#233;soudre les noms de domaine, &lt;i&gt;Bind&lt;/i&gt; va utiliser deux zones.&lt;/p&gt;
&lt;p&gt;La premi&#232;re, vou&#233;e &#224; la &lt;strong&gt;r&#233;solution directe&lt;/strong&gt; de la zone &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;anet.fr&lt;/code&gt;, contient toutes les informations relatives &#224; la zone (domaine) &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;anet.fr&lt;/code&gt;, notamment les adresses IP des serveurs, et les informations sur les sous domaines potentiels.&lt;/p&gt;
&lt;p&gt;La seconde, vou&#233;e &#224; la &lt;strong&gt;r&#233;solution inverse&lt;/strong&gt; (zone reverse, en franglais courant), indique le FQDN des serveurs ayant des adresses IP dans le r&#233;seau &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;80.118.2.0&lt;/code&gt;, ainsi que ses sous r&#233;seaux. Cette zone sera not&#233;e, pour &#233;viter tout ambigu&#239;t&#233;, &#224; l'envers, c'est &#224; dire dans le m&#234;me ordre hi&#233;rarchique que pour la zone directe. Le plus important est situ&#233; &#224; la fin :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;2.118.80.in-addr.arpa&lt;/code&gt; avec un suffixe particulier indiquant qu'il s'agit d'une zone de r&#233;solution inverse.&lt;/p&gt;
&lt;p&gt;Le fichier de zone contient plusieurs champs, permettant de fixer :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; le serveur DNS primaire, g&#233;rant la zone ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; des informations sur la zone, comportant notamment le num&#233;ro de r&#233;vision du fichier de zone (il sert &#224; savoir s'il y a eu des modifications) ; on appelle ce champ le &#034;SOA&#034;, pour &lt;i&gt;Start Of Authority&lt;/i&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; la liste des sous domaines &#233;ventuels ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; la liste des serveurs, associ&#233;s &#224; leur adresse IP ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; d'autres champs &#233;ventuels, qui sortent du cadre de cet article.&lt;/p&gt;
&lt;p&gt;Ainsi, un fichier de zone s'&#233;crira :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='20' class='spip_cadre spip_cadre_block' dir='ltr'&gt;$ORIGIN anet.fr. @ IN SOA ns2.cyberouset.fr. zoneadmin.cyberouest.fr. { 2003092501 ; num&#233;ro de s&#233;rie de la zone 10800 ; A rafra&#238;chir toutes les 3h (3x3600&#034;) 3600 ; D&#233;lai avant r&#233;essai sur erreur : 1h (3600&#034;) 604800 ; Informations p&#233;rim&#233;es apr&#232;s une semaine (24x7x3600&#034;) 86400 ; Informations p&#233;rim&#233;es au minimum 1 apr&#232;s une journ&#233;e (24x3600&#034;) } @ IN NS ns2.cyberouest.fr. ns3.cyberouest.fr. b512.anet.fr. clx IN CNAME gaia cim IN CNAME gaia gaia IN A 80.118.2.10 puck IN A 80.118.2.11 .../...&lt;/textarea&gt;
&lt;p&gt;On voit donc les champs :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &#034;$ORIGIN&#034; qui permet de pr&#233;ciser de quelle zone il s'agit&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb7-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;En fait, c'est un raccourci rapide. sert &#224; cr&#233;er un &#171; raccourci &#187;, qui sera (&#8230;)&#034; id=&#034;nh7-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; SOA serveur mail-responsable.serveur &lt;i&gt; liste de param&#232;tres &lt;/i&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; NS pour les serveurs de r&#233;f&#233;rence ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; A pour les serveurs de la zone avec leur adresse IP ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; CNAME pour les alias dont nous allons maintenant parler. Nous ne d&#233;taillerons pas la syntaxe pr&#233;cise, pour cela, r&#233;f&#233;rez-vous au &lt;i&gt;NAG&lt;/i&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb7-4&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Network Administrator Guide.&#034; id=&#034;nh7-4&#034;&gt;4&lt;/a&gt;]&lt;/span&gt; cit&#233; dans la bibliographie, mais l&#224;, l'essentiel est dit.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les alias&lt;/h2&gt;
&lt;p&gt;Il est souvent commode d'appeler un serveur par plusieurs noms, ne serait-ce que pour des raisons de limitation du nombre d'adresses IP en IPv4 (le standard actuel) ; c'est &#224; &#231;a que sert le champ &lt;i&gt;CNAME&lt;/i&gt;.&lt;br class='autobr' /&gt;
Vous le voyez, pour d&#233;finir un alias, c'est tr&#232;s simple. Il suffit de donner un nom d'alias &#224; cr&#233;er, &#034;IN CNAME&#034;, et la machine sur laquelle pointe l'alias. Notez que les FQDN sont &lt;strong&gt;toujours&lt;/strong&gt; suivis d'un point &#171; . &#187;, sinon, il s'agit d'un nom relatif &#224; la zone, c'est &#224; dire qu'il sera suffix&#233; du champ &lt;i&gt;$ORIGIN&lt;/i&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb7-5&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Voir la note 3.&#034; id=&#034;nh7-5&#034;&gt;5&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Ainsi, pour cr&#233;er clx.anet.fr, qui est un alias pointant vers gaia.anet.fr, il faut &#233;crire :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;clx IN CNAME gaia&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;dans la zone anet.fr, &lt;br class='autobr' /&gt;
Ou, en utilisant les FQDN :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;clx.anet.fr. IN CNAME gaia.anet.fr.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;L&#224;, cela devient int&#233;ressant : il est tout &#224; fait possible de d&#233;finir un alias pointant sur un serveur &lt;i&gt;ext&#233;rieur&lt;/i&gt; &#224; la zone. Ainsi, nous pourrions cr&#233;er un alias de la sorte :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;www.ryckeboer.org. IN CNAME asr.free.fr.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;dans la zone &#171; ryckeboer.org &#187;.&lt;/p&gt;
&lt;p&gt;Cela nous sera utile un peu plus loin dans l'article.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Le resolver unix&lt;/h2&gt;
&lt;p&gt;Une fois connu le fonctionnement des requ&#234;tes DNS et de &lt;i&gt;Bind&lt;/i&gt;, penchons-nous sur la fa&#231;on dont le syst&#232;me fera appel aux serveurs DNS.&lt;/p&gt;
&lt;p&gt;Deux fichiers, qui cachent la complexit&#233; du proc&#233;d&#233; sont utilis&#233;s. Le premier porte le doux nom de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/nsswitch.conf&lt;/code&gt;, et indique de quelle fa&#231;on le syst&#232;me trouvera les adresses IP associ&#233;es aux noms des machines, et vice-versa.&lt;br class='autobr' /&gt;
Deux moyens courants sont en effet &#224; la disposition du syst&#232;me : le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/hosts&lt;/code&gt;, et le DNS. Pour utiliser le DNS, nous allons donc v&#233;rifier la pr&#233;sence de la ligne :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;hosts: files dns&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/nsswitch.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Toutes les variations sont possibles, mais sachez que l'ordre des mots-clefs d&#233;signe l'ordre dans lequel le syst&#232;me effectuera ses requ&#234;tes. D'autres mots-clefs peuvent &#234;tre pr&#233;sents dans ce fichier, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;nis&lt;/code&gt;, par exemple, afin d'utiliser les &lt;i&gt;pages jaunes&lt;/i&gt; ou &lt;i&gt;YellowPages&lt;/i&gt; dont nous ne parlerons pas ici.&lt;/p&gt;
&lt;p&gt;L'autre fichier important pour la r&#233;solution DNS s'appelle &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/resolv.conf&lt;/code&gt;. Il sert &#224; param&#233;trer le &lt;i&gt;resolver&lt;/i&gt; unix. On y trouve les champs principaux :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;domain&lt;/code&gt;, qui indique le nom de domaine dans lequel se trouve votre machine ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;nameserver&lt;/code&gt;, qui indique un serveur DNS sur lequel effectuer les requ&#234;tes ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;search&lt;/code&gt;, qui permet de pr&#233;ciser un ou des domaines sur lesquels effectuer les recherches si elles n'aboutissent pas pour le domaine pr&#233;cis&#233; par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;domain&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Sur mon serveur, jabba.nowhere.null, j'ai un fichier &lt;i&gt;/etc/resolv.conf&lt;/i&gt; qui contient :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='6' class='spip_cadre spip_cadre_block' dir='ltr'&gt;domain domain.nowhere.null nameserver 172.0.0.1 # serveur DNS local nameserver 80.118.2.10 # serveur DNS anet.fr nameserver 212.27.35.34 # serveur DNS free search domain.nowhere.null nowhere.null ailleurs.null anet.fr ryckeboer.org virtual-net.fr&lt;/textarea&gt;
&lt;p&gt;Ce qui veut dire que :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; mon domaine local est &lt;i&gt;domain.nowhere.null&lt;/i&gt; ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; j'utilise dans l'ordre trois serveurs de noms, c'est-&#224;-dire le serveur local, le serveur anet.fr, et le serveur free ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; je lance des requ&#234;tes sur quatre domaines (dans l'ordre) en cas d'&#233;chec.&lt;/p&gt;
&lt;p&gt;Notez domain.nowhere.null et nowhere.null ; il a &#233;t&#233; dit plus haut que le &lt;i&gt;resolver&lt;/i&gt; &#034;ajoutait&#034; les domaines de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;search&lt;/code&gt; &#224; votre requ&#234;te, ce qui veut dire qu'il ne fera pas de requ&#234;te r&#233;cursive. Autrement dit, pour rechercher sur les sous domaines de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;nowhere.null&lt;/code&gt;, il faut les indiquer tous dans le champ &lt;i&gt;search&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Sauf que... on ne peut pas mettre plus de 6 domaines dans le champ &lt;i&gt;search&lt;/i&gt;. Et c'est heureux, cela ralentit consid&#233;rablement le temps de traitement en cas d'erreur, c'est-&#224;-dire entre le moment o&#249; vous faites la requ&#234;te, et le moment o&#249; le &lt;i&gt;resolver&lt;/i&gt; r&#233;pond que l'h&#244;te demand&#233; n'existe pas.&lt;/p&gt;
&lt;p&gt;Pour contourner cela, il faut cr&#233;er une zone particuli&#232;re sur laquelle vous ferez les requ&#234;tes, et qui ne contiendra que des alias vers les vrais zones.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;zonealias&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Vous avez un DNS local&lt;/h2&gt;
&lt;p&gt;Admettons que les fichiers de vos zones primaires soient stock&#233;es dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/var/named/primary&lt;/code&gt;.&lt;br class='autobr' /&gt;
Vous souhaitez faire des requ&#234;tes sur les noms de domaine directement, sans taper le nom de domaine complet.&lt;/p&gt;
&lt;p&gt;Nous allons cr&#233;er une zone contenant le nom des machines de toutes les zones sur lesquelles vous faites les recherches, d&#233;clar&#233;es comme alias vers le nom r&#233;el.&lt;/p&gt;
&lt;p&gt;Par exemple, je veux que &#171; ping jabba &#187; fonctionne correctement, et examine via un &lt;i&gt;ping&lt;/i&gt; la machine &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;jabba.starwars.null&lt;/code&gt;, et que &lt;/code&gt;ping bilbo&lt;/code&gt; effectue correctement un &lt;i&gt;ping&lt;/i&gt; sur &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;bilbo.middleearth.org&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Il faut tout simplement ajouter une zone contenant la liste des alias, de la sorte :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre spip_cadre_block' dir='ltr'&gt;$ORIGIN aliases.nowhere.null. bilbo IN CNAME bilbo.middleearth.org. yoda IN CNAME yoda.starwars.null. jabba IN CNAME jabba.starwars.null. clx IN CNAME clx.anet.fr. leeloo IN CNAME leeloo.lee-loo.net. epp IN CNAME www.epplug.org.&lt;/textarea&gt;
&lt;p&gt;&lt;i&gt;etc.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Dans mon &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/resolv.conf&lt;/code&gt;, je n'ai plus besoin que de la zone aliases.nowhere.null :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;search aliases.nowhere.null&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Deux m&#233;thodes s'offrent &#224; vous. Soit vous tapez tout &#224; la main, si vous ne g&#233;rez pas vous-m&#234;me vos zones, par exemple, soit vous &#233;crivez un petit script qui va lire les zones locales, et cr&#233;er les alias corespondants. Pour cela, bien s&#251;r, il faut avoir &#224; disposition les fichiers des zones que vous souha&#238;tez &#171; aliaser &#187;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Lire les fichiers de zone et cr&#233;er la zone alias&lt;/h2&gt;
&lt;p&gt;Le principe est simple :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; On prend tous les fichiers de zone que l'on veut traiter, qui sont stock&#233;es dans un fichier. &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;zone.list&lt;/code&gt;, par exemple.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Pour chaque fichier de la zone, on recherche les champs &#171; IN A &#187;, et on le transforme en &#171; IN CNAME &#187;.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Enfin, on &#233;crit tout dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;alias.nowhere.null&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Personnellement, je suis fain&#233;ant, j'ai donc &#233;crit un script dont voici l'explication.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;1)&lt;/strong&gt; Tout d'abord quelques variables relatives &#224; l'emplacement des fichiers de zone :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;$server=&#034;ns.nowhere.null&#034; $named_path=&#034;/var/named/primary&#034; $aliaszone=&#034;aliases.nowhere.null $zonelist=&#034;$named_path/zones.list&#034;&lt;/textarea&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;2)&lt;/strong&gt; On lit les fichiers de zone, de la forme&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;sousdomaine.domaine.suffixe.hosts&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt; ; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$zonelist&lt;/code&gt; est le fichier contenant la liste des zones &#224; traiter :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='22' class='spip_cadre spip_cadre_block' dir='ltr'&gt;for i in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cat $zonelist&lt;/code&gt; do cat $i | perl -pe &#034; chomp; # On r&#233;cup&#232;re l'enregistrement 'toto IN A addresse_ip' if (/([^\\. \\t]+)(\\..*)?[ \\t]+[Ii][nN][ \\t]+[aA][\\t ]+(.+)/) { \$_ = \&#034;\$1\\tIN CNAME\\t\$1.${i%.hosts}.\\n\&#034; } else { # Sinon, c'est peut-&#234;tre un commentaire ? unless (/^[ \t]*;/) { \$_ = ''; } else { # Si ce n'est pas un commentaire, on ignore. \$_ .=\&#034;\\n\&#034;; } }&#034; done&lt;/textarea&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;3)&lt;/strong&gt; Pour cr&#233;er un fichier de zone coh&#233;rent, il faut &#233;galement un &lt;i&gt;SOA&lt;/i&gt;, &#233;crit de la sorte :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='6' class='spip_cadre spip_cadre_block' dir='ltr'&gt;@ IN SOA $server. root.$server. ( $version_date$rev ; numero de serie de la zone 10800 ; refresh every 3 hours 3600 ; retry every hours 604800 ; expire after a week 86400 ) ; minimum TTL of 1 day&lt;/textarea&gt;
&lt;p&gt;et le serveur de nom primaire :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;IN NS $server.&lt;/textarea&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;4)&lt;/strong&gt; Le num&#233;ro de s&#233;rie de la zone doit toujours s'incr&#233;menter. Sinon, les changements ne sont pas rep&#233;r&#233;s. Voici le bout de code qui recherche le num&#233;ro de s&#233;rie, et l'incr&#233;mente. C'est ce num&#233;ro de s&#233;rie mat&#233;rialis&#233; par les variables &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$version_date&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$rev&lt;/code&gt;. En g&#233;n&#233;ral, on l'&#233;crit sous la forme :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;ANNEE MOIS JOUR REVISION&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ainsi, pour la 3eme r&#233;vision de la zone, ces trois r&#233;visions ayant ayant eu lieu le 7 octobre 2003, on &#233;crira &lt;i&gt;2003.10.07 03&lt;/i&gt;, sans les espaces, et les points, soit &lt;strong&gt;2003100703&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Voici le code en question :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='34' class='spip_cadre spip_cadre_block' dir='ltr'&gt;rev=01 version_date=&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;date +&#034;%Y%m%d&#034;&lt;/code&gt; if [ -f $named_path$aliaszone ] ; then # First, get old revision number for the zone file # split date and revision oldver=&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;grep &#034;; serial&#034; $named_path$aliaszone | tr -s &#034; &#034; | cut -d &#034; &#034; -f 2&lt;/code&gt; oldrev=&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;echo $oldver | perl -pe 's/........(..)/$1/'&lt;/code&gt; # compare current date and zone date [ ! &#034;a$oldrev&#034; = &#034;a&#034; ] &amp;&amp; if [ $version_date = &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;echo $oldver | perl -pe 's/(........)../$1/'&lt;/code&gt; ] ; then # ++ revision number for the day if [ $rev -le $oldrev ] ; then if [ $oldrev -ge 10 ] ; then # handle 2 digits rev=&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;expr $oldrev + 1&lt;/code&gt; else rev=&#034;0&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;expr &#034;$oldrev&#034; + 1&lt;/code&gt;&#034; fi fi fi fi&lt;/textarea&gt;&lt;div class='spip_document_261 spip_document spip_documents spip_document_file spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;19&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='http://clx.asso.fr/spip/IMG/txt/mkaliaszone.txt' class=&#034; spip_doc_lien&#034; title='Texte - 2.5 kio' type=&#034;text/plain&#034;&gt;&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L64xH64/txt-55e11.svg?1779469175' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre '&gt;&lt;strong&gt;Le script complet
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Placez ce script dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/local/bin&lt;/code&gt;, en supprimant l'extension .txt. N'oubliez pas de mettre les droits en &#233;criture dessus :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# mv /usr/local/bin/mkaliaszone.txt /usr/local/bin/mkaliaszone # chmod ugo+x /usr/local/bin/mkaliaszone&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;En savoir plus&lt;/h2&gt;
&lt;p&gt;Chez &lt;i&gt;O'Reilly&lt;/i&gt;, on trouve :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;DNS &amp; BIND&lt;/strong&gt; par &lt;i&gt;Paul Albitz&lt;/i&gt; et &lt;i&gt;Cricket Liu&lt;/i&gt;, ISBN 2-84177-150-4, pour d&#233;couvrir (beaucoup) plus sur &lt;i&gt;Bind&lt;/i&gt; et le fonctionnement des DNS ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;TCP-IP Administration en r&#233;seau&lt;/strong&gt;, par &lt;i&gt;Craig Hunt&lt;/i&gt; ISBN 2-84177-221-7, pour tout savoir sur le fonctionnement de TCP/IP, notamment au niveau de l'adressage IP ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;Administration r&#233;seau sous Linux&lt;/strong&gt; par &lt;i&gt;Olaf Kirch&lt;/i&gt; et &lt;i&gt;Terry Dawson&lt;/i&gt;, ISBN 2-84177-125-3 qui est la version papier et traduite en fran&#231;ais du NAG, &lt;strong&gt;Network Administrator's Guide&lt;/strong&gt;, que l'on trouve sur le &lt;a href=&#034;http://www.linuxdoc.org/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Linux Documentation Project&lt;/a&gt;.&lt;br class='autobr' /&gt;
Cet ouvrage est tr&#232;s instructif dans la mesure o&#249; il apporte une premi&#232;re approche des r&#233;seaux en TCP/IP de conception classique, tels que vous en rencontrerez partout dans les petites/moyennes structures.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb7-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh7-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 7-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;sans trop s'&#233;tendre sur le sujet, disons simplement que les adresses IP &#171; appartiennent &#187; &#224; l'h&#233;bergeur chez qui vous stockez votre serveur/votre site. Si vous changez d'h&#233;bergeur, votre serveur/site change d'adresse IP.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb7-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh7-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 7-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;En pratique c'est un peu plus complexe, mais vous connaissez maintenant les grandes lignes.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb7-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh7-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 7-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;En fait, c'est un raccourci rapide. &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$ORIGIN&lt;/code&gt; sert &#224; cr&#233;er un &#171; raccourci &#187;, qui sera ajout&#233; ensuite aux noms non termin&#233;s par un point. Ainsi, il serait th&#233;oriquement valable d'&#233;crire :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;$ORIGIN fr clx.anet IN CNAME gaia.anet.fr.&lt;/textarea&gt;
&lt;p&gt;Notez &#233;galement que le mot clef &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$ORIGIN&lt;/code&gt; peut &#234;tre mis n'importe o&#249; dans le fichier de zone.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb7-4&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh7-4&#034; class=&#034;spip_note&#034; title=&#034;Notes 7-4&#034; rev=&#034;appendix&#034;&gt;4&lt;/a&gt;] &lt;/span&gt;Network Administrator Guide.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb7-5&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh7-5&#034; class=&#034;spip_note&#034; title=&#034;Notes 7-5&#034; rev=&#034;appendix&#034;&gt;5&lt;/a&gt;] &lt;/span&gt;Voir la &lt;a href=&#034;#nb3&#034; class=&#034;spip_ancre&#034;&gt;note 3&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Mettre &#224; jour une Free-EOS</title>
		<link>http://clx.asso.fr/spip/?Mettre-a-jour-une-Free-EOS</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Mettre-a-jour-une-Free-EOS</guid>
		<dc:date>2003-06-02T22:13:02Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		


		<dc:subject>Free-EOS</dc:subject>

		<description>&lt;p&gt;Comment profiter des derni&#218;res rustines de s&#233;curit&#233; avec Free-EOS : soit en r&#233;cup&#233;rant l'iso de la nouvelle mouture de la distribution et en la r&#233;installant, soit &#224; l'aide d'archives &#224; d&#233;compresser et &#224; installer.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Free-EOS-+" rel="tag"&gt;Free-EOS&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Comment profiter des derni&#218;res rustines de s&#233;curit&#233; avec Free-EOS : soit en r&#233;cup&#233;rant l'iso de la nouvelle mouture de la distribution et en la r&#233;installant, soit &#224; l'aide d'archives &#224; d&#233;compresser et &#224; installer. Voici le &lt;i&gt;modus operandi&lt;/i&gt; et quelques explications.&lt;br class='autobr' /&gt;
J'ai &#233;galement inclu les pr&#233;cisions des d&#233;veloppeurs de cette distribution dans les notes.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Introduction rapide&lt;/h2&gt;
&lt;p&gt;&lt;a href='http://clx.asso.fr/spip/?Free-EOS-Le-serveur-facile' class=&#034;spip_in&#034;&gt;Free-EOS&lt;/a&gt; est une distribution cr&#233;&#233; par l'AFPA pour installer des serveurs multi-usages pour des organismes de formation. Elle se veut simple &#224; installer et &#224; utiliser. Elle s'adresse prioritairement &#224; des uilisateurs (administrateurs ?) novices qui ont peu de temps &#224; consacrer au serveur. N&#233;anmoins, les gourous pourront &#034;mettre les mains dans le cambouis&#034; tout en respectant la philosophie de cette distribution, c'est &#224; dire passer par un syst&#232;me de mod&#232;les ou &lt;i&gt;templates&lt;/i&gt; pour ajouter des services non existants dans la version de base, d&#233;finir des droits par groupes d'utilisateurs, etc.&lt;br class='autobr' /&gt;
habitu&#233;s &#224; l'administration, ils remarqueront aussi qu'il n'existe pas encore de &lt;i&gt;templates&lt;/i&gt; pour mettre &#224; jour Free-EOS. Qu'&#224; cela ne tienne, les d&#233;veloppeurs ont pens&#233; &#224; tout&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb8-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Les archives de mise &#224; jour au format tar.gz sont disponibles pour plusieurs (&#8230;)&#034; id=&#034;nh8-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;. Dans les versions 1.0-x, la proc&#233;dure de mise &#224; jour s'effectue de deux mani&#232;res : en r&#233;installant une distribution compl&#232;te ou en l'actualisant manuellement avec une archive en tar.gz qui contient un ou plusieurs paquetages rpm.&lt;br class='autobr' /&gt;
Dans cet exemple, la distribution est une Free-EOS 1.0-1 qui sera actualis&#233;e en 1.0-2.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Mise &#224; jour par r&#233;installation d'une version plus r&#233;cente&lt;/h2&gt;
&lt;p&gt;T&#233;l&#233;chargez l'iso compact&#233;e, free-eos-1.0-02.iso.bz2, que vous trouverez &lt;a href=&#034;http://sourceforge.net/project/showfiles.php?group_id=61518&amp;release_id=148453&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ici&lt;/a&gt; . Il s'agit d'une archive au format bzip2. Une fois le fichier r&#233;cup&#233;r&#233;e, lancez la commande suivante :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;bunzip2 free-eos-1.0-02.iso.bz2&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Il ne vous reste plus qu'&#224; graver l'image iso free-eos-1.0-02.iso. Sous Linux, optez pour un logiciel graphique comme &lt;a href=&#034;http://k3b.sourceforge.net&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;k3b&lt;/a&gt; ou &lt;a href=&#034;http://www.xcdroast.org&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Xcdroast&lt;/a&gt;, voire les utilitaires en mode texte cdrecord ou cdrdao (la proc&#233;dure est expliqu&#233;e sur de nombreux sites Web dont &lt;a href=&#034;http://lea-linux.org/software/gravure.php3&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;lea-linux.org&lt;/a&gt;). Sous Windows XP, la proc&#233;dure pour graver l'image iso est d&#233;crite &lt;a href=&#034;http://free-eos.org/modules/xoopsfaq/index.php?cat_id=1#q1&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ici&lt;/a&gt;.&lt;br class='autobr' /&gt;
Ins&#233;rez ensuite le CD-Rom dans le lecteur et red&#233;marrez votre PC (le d&#233;marrage sur le CD-Rom &#233;tant activ&#233; dans le bios). L'installation de free-EOS commence alors. Le Free-EOS reprend le m&#234;me sch&#233;ma de mise &#224; jour que la distribution SME 5.5 (anciennement E-smith) sur laquelle elle est bas&#233;e. Une page &#233;cran vous signale la pr&#233;sence d'une version ant&#233;rieure de Free-EOS et vous propose de saisir &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;continuer&lt;/code&gt; pour la mettre &#224; jour. &lt;a href=&#034;http://www.sme-fr.homelinux.net/installation.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Voici la proc&#233;dure d'installation/mise &#224; jour en images&lt;/a&gt; d'une SME qui est similaire &#224; celle d'une Free-EOS m&#234;me si quelques pages &#233;cran sont diff&#233;rentes car traduites en fran&#231;ais.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Mise &#224; jour par installation d'une archive&lt;/h2&gt;
&lt;p&gt;Pour mettre &#224; jour le serveur Free-EOS 1.0-1 avec &lt;a href=&#034;http://prdownloads.sourceforge.net/free-eos/free-eos-1.0-1to02.tgz?download&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;l'archive tgz&lt;/a&gt; de la free-EOS1.02. Une solution consiste &#224; passer par le mode console et l'acc&#232;s distant via SSH. En effet, c'est depuis un ordinateur du r&#233;seau local que vous installez la mise &#224; jour. Affichez la page d'accueil de Free-EOS en tapant &lt;a href=&#034;http://192.168.0.21/server-manager&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://192.168.0.21/server-manager&lt;/a&gt; dans la barre d'adresse de votre navigateur. Dans le menu Acc&#232;s &#224; distance, choisissez &lt;i&gt;Acc&#232;s Secure shell&lt;/i&gt; = Confidentiel (c'est-&#224;-dire pour le LAN) et optez pour &lt;i&gt;Permettre l'acc&#232;s &#224; la ligne de commande par Secure shell&lt;/i&gt; = Oui, puis pour &lt;i&gt;Permettre l'acc&#232;s par Secure shell &#224; l'aide des mots de passe standard&lt;/i&gt; = Oui.&lt;br class='autobr' /&gt;
Ainsi, vous acc&#233;derez au serveur Free-EOS depuis une machine du r&#233;seau local &#224; l'aide de SSH.&lt;/p&gt;
&lt;div class='spip_document_225 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;166&#034; data-legende-lenx=&#034;xxx&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='http://clx.asso.fr/spip/IMG/png/Free-EOS-Admin1-2.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L500xH375/Free-EOS-Admin1-2-c5047.png?1759525542' width='500' height='375' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre '&gt;&lt;strong&gt;Page d'accueil de l'interface d'administration du serveur Free-EOS
&lt;/strong&gt;&lt;/div&gt; &lt;div class='spip_doc_descriptif '&gt;depuis cette page d'accueil, vous pouvez ajouter des utilisateur, configurer le serveur FTP, etc.
&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Apr&#232;s r&#233;cup&#233;ration de l'archive, copiez-la sur le serveur avec scp :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;scp free-eos-1.0-1to02.tgz root@test01.filigrane.com:/root&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;En pratique, &#231;a donne ceci :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;fred@station2:~&gt; scp free-eos-1.0-1to02.tgz root@192.168.0.21:/root root@192.168.0.21's password: free-eos-1.0-1to02.t 37% |********** | 2460 KB 00:08 ETA&lt;/textarea&gt;
&lt;p&gt;Puis, connectez-vous sur le serveur gr&#226;ce &#224; un client ssh (comme (&lt;a href=&#034;http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Putty&lt;/a&gt; que vous trouverez &#233;galement sur &lt;a href=&#034;http://sourceforge.net/project/showfiles.php?group_id=61518&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Free-EOS Windows Station&lt;/a&gt;, le CD-Rom d'applications Libres pour Windows et propos&#233;es par l'&#233;quipe de Free-EOS) :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ssh -l root test01.filigrane.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;D&#233;compactez l'archive :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre spip_cadre_block' dir='ltr'&gt;[root@test01 root]# tar -xvzf free-eos-1.0-1to02.tgz update-1.0-1to02/ update-1.0-1to02/samba-2.2.7-3.7.2es2.i386.rpm update-1.0-1to02/samba-client-2.2.7-3.7.2es2.i386.rpm update-1.0-1to02/samba-common-2.2.7-3.7.2es2.i386.rpm update-1.0-1to02/update1.0-1to02 update-1.0-1to02/README&lt;/textarea&gt;
&lt;p&gt;Consultez le contenu du fichier README qui indique comment effectuer la mise &#224; jour.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;[root@test01 root]# less update-1.0-1to02/README&lt;/textarea&gt;
&lt;p&gt;Lancez la mise &#224; jour.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;[root@test01 root]# update-1.0-1to02/update-1.0-1to02&lt;/textarea&gt;
&lt;p&gt;Une fois l'actualisation termin&#233;e, la machine red&#233;marre et la connexion ssh est coup&#233;e.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Remarques :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Respectez l'ordre des mises &#224; jour. Pour passer de la version 1.0-1 &#224; la 1.0-4 appliquez successivement les rustines :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; free-eos-1.0-1to02.tgz ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; free-eos-1.0-02to03.tgz ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; free-eos-1.0-03to04.tgz&lt;/p&gt;
&lt;p&gt;La mise &#224; jour par CD-Rom reste une proc&#233;dure &#034;lourde&#034; (car elle entra&#238;ne un arr&#234;t du serveur), qui ne devrait s'appliquer qu'au changement de version majeure.&lt;/p&gt;
&lt;p&gt;Vous trouverez les isos de la Free-EOS et toutes les mises &#224; jour sur la page &lt;a href=&#034;http://sourceforge.net/project/showfiles.php?group_id=61518&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://sourceforge.net/project/show...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb8-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh8-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 8-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Les archives de mise &#224; jour au format tar.gz sont disponibles pour plusieurs raisons : SourceForge fait le m&#233;nage un peu vite sur l'&lt;i&gt;upload&lt;/i&gt;, et une image iso c'est long &#224; charger :) De plus, c'est plus rapide &#224; installer pour les administrateurs exp&#233;riment&#233;s qui ma&#238;trisent la ligne de commande et qui n'ont pas peur de travailler sous le compte root. Cela nous permet &#233;galement de proposer au plus vite des correctifs. Les &#034;d&#233;butants&#034;, &#224; qui s'adresse cette distribution, utiliseront plut&#244;t la mise &#224; jour via le CD-Rom.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Vous pouvez faire un petit tour par le site &lt;a href=&#034;http://free-eos.org&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://free-eos.org&lt;/a&gt; pour en savoir plus sur Free-EOS.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Signature al&#233;atoire dans les emails</title>
		<link>http://clx.asso.fr/spip/?Signature-aleatoire-dans-les-emails</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Signature-aleatoire-dans-les-emails</guid>
		<dc:date>2003-04-02T12:01:11Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ga&#233;tan RYCKEBOER</dc:creator>


		<dc:subject>Messagerie &#233;lectronique</dc:subject>

		<description>&lt;p&gt;Comment ajouter une valeur ajout&#233;e certaine en bas de vos couriels ? Le signature al&#233;atoire &#224; la con, le truc id&#233;al pour vous faire des amis.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Messagerie-electronique-+" rel="tag"&gt;Messagerie &#233;lectronique&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Ajouter une signature al&#233;atoire en bas de vos couriels ? C'est possible. Voici comment &#231;a fonctionne.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;La technique de w4rl0rd : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fortune&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Avec les clients de messagerie en mode texte, mutt et pine, pas de souci. Il suffit de param&#233;trer le logiciel pour qu'il&lt;br class='autobr' /&gt;
g&#233;n&#232;re de fa&#231;on dynamique la signature. Une ligne &#224; &#233;diter dans le fichier de&lt;br class='autobr' /&gt;
configuration (.muttrc ou .pinerc) dans le genre&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Signature-file=&#034;/home/gaetan/bin/makesig |&#034;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le script qui g&#233;n&#232;re&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;~gaetan/bin/makesig : /usr/games/fortune /home/gaetan/signatures.desproges \ /home/gaetan/signatures \ /home/gaetan/dac \ /home/gaetan/signatures.contrepet \ /home/gaetan/sig-hard \ | tee /home/gaetan/.signature cat /home/gaetan/.sig_end &gt;&gt; /home/gaetan/.signature cat /home/gaetan/.sig_end&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Le fichier de &#034;fin&#034; de signature :&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;.sig_end : Ga&#233;tan RYCKEBOER Soci&#233;t&#233; Virtual-Net [Tous textes et propos tenus dans cet email sont sous licence DMDZZ]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Et un bout de l'un des fichiers fortune :&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;~gaetan/sig-hard : &#034;Si tu t'appelles Capitaine Crochet, &#233;vites de te gratter les couilles.&#034; % &#034;Les hommes qui disent que les femmes sont frigides ne sont que des mauvaises langues.&#034; % P : J&#233;sus est vivant !! J&#233;sus est vivant ! J&#233;sus est vivant ! M : Passe-moi le fusil &#224; pompe... -- Maurice et Patapon % Avec Windows 98, on &#233;tait au bord du pr&#233;cipice. Avec Windows XP, on a fait un grand pas en avant. % ...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;les &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;%&lt;/code&gt;&lt;/strong&gt; servent &#224; d&#233;limiter les &#034;cha&#238;nes&#034; du fichier, c'est &#224;&lt;br class='autobr' /&gt;
dire tiennent lieu de s&#233;parateur de citation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Il ne reste plus qu'&#224; tester :&lt;/strong&gt;&lt;br class='autobr' /&gt;
Pour g&#233;n&#233;rer l'index utilis&#233; par fortune :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$ cd ~gaetan $ strfile sig-hard $ fortune sig-hard&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fortune une liste de fichiers&lt;/code&gt; (&#233;ventuellement avec une&lt;br class='autobr' /&gt;
pond&#233;ration, man fortune pour en savoir plus)&lt;/p&gt;
&lt;p&gt;NB : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;~gaetan/dac&lt;/code&gt; est un r&#233;pertoire avec plein de fichiers&lt;br class='autobr' /&gt;
fortune&lt;br class='autobr' /&gt;
dedans. Fortune retrouvera tout seul ses petits.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;C&lt;/strong&gt;ela donne la cl&#233; d'un rangement :&lt;br class='autobr' /&gt;
Tous les fichiers de signatures dans un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;~gaetan/signatures/&lt;/code&gt;&lt;br class='autobr' /&gt;
et un fichier&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;bin/maj_signatures : cd ~gaetan/signatures ; for i in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls signatures --color=never | grep -v .dat&lt;/code&gt; ; do [ strfile $i ] ; done&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;pour remettre &#224; jour apr&#232;s une modification de l'index fichiers. Fortune&lt;br class='autobr' /&gt;
utilise un fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.dat&lt;/code&gt; pour stocker des informations relatives &#224;&lt;br class='autobr' /&gt;
l'emplacement et le nombre de signatures stock&#233;es, fichier qu'il faut remettre &#224; jour &#224;&lt;br class='autobr' /&gt;
chaque modification.&lt;/p&gt;
&lt;p&gt;Enfin, si vous ne disposez pas de logiciel de couriel capable de g&#233;n&#233;rer&lt;br class='autobr' /&gt;
une signature &#224; chaque couriel, il y a deux solutions.&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; dans le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.bashrc&lt;/code&gt; (ou le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.profile&lt;/code&gt;) : ajoutez&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;bin/makesig&lt;/code&gt;&lt;/li&gt;&lt;li&gt; dans la crontab :
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;crontab -e * * * * * /home/toi/bin/makesig&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;et utiliser le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;~gaetan/.signature&lt;/code&gt; (comportement par d&#233;faut&lt;br class='autobr' /&gt;
des principaux logiciels de couriel) cr&#233;&#233; &#224; chaque login, ou toutes les&lt;br class='autobr' /&gt;
minutes selon la m&#233;thode choisie.&lt;/p&gt;
&lt;p&gt;Vous pouvez maintenant utiliser le &lt;a href='http://clx.asso.fr/spip/?Le-Guide-du-CLXien-Pervers' class=&#034;spip_in&#034;&gt;Le Guide du CLXien Pervers&lt;/a&gt; dans vos couriels ;-)&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;&lt;a href=&#034;http://www.linux-france.org/prj/bash-scripts/fortsign.html&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.linux-france.org/prj/bas...&lt;/a&gt; est une autre m&#233;thode pour cr&#233;er des signatures al&#233;atoires.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>D&#233;clarer ses revenus sous Linux</title>
		<link>http://clx.asso.fr/spip/?Declarer-ses-revenus-sous-Linux</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Declarer-ses-revenus-sous-Linux</guid>
		<dc:date>2003-03-19T22:38:37Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Dominique ROUSSEAU</dc:creator>


		<dc:subject>Chiffrement</dc:subject>
		<dc:subject>Navigateur Web</dc:subject>

		<description>&lt;p&gt;Comment r&#233;ussir &#224; remplir en ligne la d&#233;claration de revenus en France, utilis&#233;e pour le calcul de l'im&#206;t sur le revenu, en utilisant le navigateur Web Mozilla (ou un de ses d&#233;riv&#233;s).&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Chiffrement-+" rel="tag"&gt;Chiffrement&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Navigateur-Web-+" rel="tag"&gt;Navigateur Web&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;La m&#233;thode d&#233;crite ici concerne l'acc&#218;s au site du Minist&#218;re des Finances afin d'effectuer sa d&#233;claration de revenus en utilisant le navigateur Web Mozilla.&lt;br class='autobr' /&gt;
La distribution utilis&#233;e est une Debian GNU/Linux &#034;sarge&#034;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Cette ann&#233;e, le Minist&#232;re des Finances, et plus particuli&#232;rement la Direction G&#233;n&#233;rale des Impots semble avoir r&#233;ellement d&#233;cid&#233; de rendre cette administration accessible par Internet.&lt;/p&gt;
&lt;p&gt;Lorsqu'on arrive sur le portail &lt;a href=&#034;http://www.impots.gouv.fr/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www.impots.gouv.fr&lt;/a&gt; depuis d&#233;but mars (date de la mise en ligne de la nouvelle version), une des premi&#232;res choses qui saute aux yeux est &#034;&lt;a href=&#034;http://www.ir.dgi.minefi.gouv.fr&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;D&#233;clarez vos revenus par internet&lt;/a&gt;&#034;.&lt;/p&gt;
&lt;p&gt;Dans la section &#034;Configuration requise&#034; on trouve m&#234;me : &#034;Linux avec Netscape 6+ ou Mozilla 1.1+&#034;.&lt;/p&gt;
&lt;p&gt;Mais cela ne va pas sans mal ;)&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Bien configurer son syst&#232;me&lt;/h2&gt;
&lt;p&gt;La configuration utilis&#233;e est :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Debian GNU/Linux &#034;sarge&#034; (mais tout devrait &#234;tre possible avec &#034;woody&#034;) ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; mozilla 1.2.1 ;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Java : j2re1.3 (1.3.1).&lt;/p&gt;
&lt;p&gt;Pour trouver le j2re1.3 pour Debian, je vous conseille un passage par le site &lt;a href=&#034;http://www.apt-get.org/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;apt-get.org&lt;/a&gt; qui r&#233;f&#233;rence un certain nombre de sources non officielles pour Debian.&lt;/p&gt;
&lt;p&gt;Personellement, ce sont les paquets de Blackdown trouv&#233;s sur ftp.oleane.net qui sont install&#233;s sur ma machine. Dans /etc/apt/sources.list,j'ai ins&#233;r&#233; la ligne suivante :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;deb ftp://ftp.oleane.net/pub/java-linux/debian/ woody non-free&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Une fois que Mozilla et Java sont install&#233;s (ne pas oublier d'activer le support de Java dans les pr&#233;f&#233;rences de Mozilla), il suffit de faire pointer son navigateur vers &lt;a href=&#034;http://www.ir.dgi.minefi.gouv.fr/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www.ir.dgi.minefi.gouv.fr&lt;/a&gt; afin de commencer.&lt;/p&gt;
&lt;p&gt;Je vous conseille de parcourir les diff&#233;rentes documentations propos&#233;es et qui expliquent le fonctionnement du site.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Obtenir un certificat &#233;lectronique&lt;/h2&gt;
&lt;p&gt;L'&#233;tape suivante, qui justifie ce petit article est l'obtention du certificat &#233;lectronique n&#233;cessaire pour acc&#233;der &#224; la page de d&#233;claration des revenus. La solution de cryptographie choisie par la DGI repose sur une applet Java. Celle-ci n&#233;cessite des droits &#233;tendus par rapport &#224; une applet classique car elle va devoir &#233;crire sur votre disque afin, d'une part d'installer le module de cryptographie et, d'autre part pour &#233;crire le fichier du certificat.&lt;/p&gt;
&lt;p&gt;Chez moi, le module de cryptographie s'est install&#233; dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/lib/j2re1.3/lib/ext/&lt;/code&gt; (ceci peut varier si vous utilisez une autre version de la JVM - Java Virtual Machine). Par d&#233;faut, ce r&#233;pertoire &#233;tant un dossier &#034;syst&#232;me&#034;, les droits d'&#233;criture ne sont pas positionn&#233;s de fa&#231;on &#224; ce qu'un utilisateur lambda puisse y &#233;crire. La solution la plus simple pour y autoriser l'enregistrement des fichiers consiste &#224; donner les droits en &#233;criture &#224; tout le monde (mais vous pouvez aussi le faire sp&#233;cifiquement pour un seul utilisateur) . Sous le compte root, saisissez :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;chmod a+w /usr/lib/j2re1.3/lib/ext/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Vous pouvez alors passer par &#034;obtenir un certificat&#034; sur le site de la DGI. Une fen&#234;tre d'alerte indiquant qu'une applet demande des droits &#233;tendus devrait s'ouvrir, indiquant le nom de l'organisme ayant &#034;sign&#233;&#034; l'applet. Lisez les informations affich&#233;es et validez.&lt;/p&gt;
&lt;p&gt;Une fen&#234;tre popup devrait ensuite s'ouvrir. Elle poss&#232;de une barre de progression, correspondant &#224; l'installation du module de cryptographie, vous devriez d&#232;s lors trouver un fichier dans /usr/lib/j2re1.3/lib/ext/. Chez moi, &#231;a donne &#231;a :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-rw-r--r-- 1 domi domi 327621 Mar 18 23:02 teleir_cryptolib.jar&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Fermez ensuite votre navigateur (toutes les fen&#234;tres :) comme indiqu&#233; sur la page, et reconsultez le site. Revisitez la partie permettant d'obtenir un certificat.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Red&#233;marrer son navigateur&lt;/h2&gt;
&lt;p&gt;Si tout s'est bien pass&#233;, vous devriez acc&#233;der au formulaire vous demandant de saisir les informations pr&#233;sentes sur la d&#233;claration (version papier) de cette ann&#233;e (que vous avez pris soin de remplir au pr&#233;alable) ainsi que l'avis de l'ann&#233;e derni&#232;re.&lt;/p&gt;
&lt;p&gt;A l'issue de l'op&#233;ration un fichier de certificat devrait &#234;tre cr&#233;&#233; dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;~/teleir/certificats/.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;N'oubliez pas le mot de passe que vous avez saisi, c'est lui qui permet l'acc&#232;s au site, en validant le certificat.&lt;/p&gt;
&lt;p&gt;Bonne d&#233;claration :)&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Merci &#224; dim qui m'a mis sur la piste pour le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lib/ext/&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Automount et smbfs</title>
		<link>http://clx.asso.fr/spip/?Automount-et-smbfs</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Automount-et-smbfs</guid>
		<dc:date>2003-01-23T12:04:13Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		


		<dc:subject>Samba</dc:subject>

		<description>&lt;p&gt;Pour acc&#233;der &#224; des dossiers partag&#233;s via &lt;br class='autobr' /&gt;
SMBFS, NFS ou un autre syst&#232;me de fichiers &lt;br class='autobr' /&gt;
r&#233;seau, pensez &#224; automount.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Samba-+" rel="tag"&gt;Samba&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Cet article d&#233;taille comment configurer automount pour monter &lt;br class='autobr' /&gt;
des disques r&#233;seaux partag&#233;s sur un serveur via SMBFS de mani&#232;re &lt;br class='autobr' /&gt;
dynamique, c'est-&#224;-dire sans que l'utilisateur ait &#224; se soucier &lt;br class='autobr' /&gt;
du montage/d&#233;montage, et comment cr&#233;er des ic&#244;nes &lt;br class='autobr' /&gt;
correspondantes sur le Bureau de KDE.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;strong&gt;Remarques pr&#233;l&#233;minaires&lt;/strong&gt;&lt;br class='autobr' /&gt;
Aucune manipulation n'est effectu&#233;e sur le serveur nomm&#233; &lt;br class='autobr' /&gt;
serveur1. Elles sont toutes effectu&#233;es sur le poste client.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br class='autobr' /&gt;
J'ai mis en place ce syst&#232;me de montage dynamique des partages &lt;br class='autobr' /&gt;
r&#233;seaux avec des postes clients sous Linux Mandrake 9.0 pour le&lt;br class='autobr' /&gt; compte d'une mairie. Le serveur est sous SME server 5.5, donc &lt;br class='autobr' /&gt;
sans services NFS, mais avec un serveur Samba fonctionnel.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pourquoi automount ?&lt;/strong&gt;&lt;br class='autobr' /&gt;
Depuis leurs postes de travail, les utilisateurs ont besoin &lt;br class='autobr' /&gt;
d'utiliser et de sauvegarder des fichiers sur leurs partages &lt;br class='autobr' /&gt;
situ&#233;s sur le serveur. Ils doivent &#233;galement acc&#232;der rapidement&lt;br class='autobr' /&gt; &#224; ces r&#233;pertoires distants. Facile, il suffit de configurer correctement le fichier /etc/fstab, puis de mettre une jolie &lt;br class='autobr' /&gt;
ic&#244;ne sur le Bureau. Un clic sur cette derni&#232;re et &lt;br class='autobr' /&gt;
l'utilisateur affiche le contenu du partage.&lt;/p&gt;
&lt;p&gt;En effet c'est facile, mais cela ne suffisait pas. Pour monter &lt;br class='autobr' /&gt;
des r&#233;pertoires distants via smbfs sur un PDC (Contr&#244;leur &lt;br class='autobr' /&gt;
primaire de domaine), il faut indiquer le login et le mot de &lt;br class='autobr' /&gt;
passe de chaque utilisateur. Or, /etc/fstab est lisible par &lt;br class='autobr' /&gt;
tout le monde et les postes sont multi utilisateurs.&lt;/p&gt;
&lt;p&gt;De plus, il fallait trouver une solution pour &#233;viter de monter &lt;br class='autobr' /&gt;
tous les partages de tous les utilisateurs &#224; chaque d&#233;marrage &lt;br class='autobr' /&gt;
de la machine.&lt;/p&gt;
&lt;p&gt;Automount est la solution la plus facile &#224; mettre en oeuvre. Le&lt;br class='autobr' /&gt; fichier de configuration peut &#234;tre lisible uniquement par son &lt;br class='autobr' /&gt;
propri&#233;taire (root bien s&#251;r), les partages ne sont mont&#233;s que &lt;br class='autobr' /&gt;
lorsque l'utilisateur a besoin d'ouvrir un document situ&#233; sur &lt;br class='autobr' /&gt;
le dossier distant et il suffit d'un clic sur l'ic&#244;ne associ&#233;e &lt;br class='autobr' /&gt;
au r&#233;pertoire du serveur pour afficher le contenu de ce &lt;br class='autobr' /&gt;
dernier. passons maintenent &#224; la mise en oeuvre sur une Linux &lt;br class='autobr' /&gt;
Mandrake 9.0.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Installation d'autofs&lt;/h2&gt;
&lt;p&gt;Dans une console (accessible par&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;Alt+F2&lt;/textarea&gt; &lt;p&gt;par &lt;br class='autobr' /&gt;
exemple), sous le compte administrateur, lancez&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;urpmi autofs&lt;/textarea&gt;
&lt;p&gt;. V&#233;rifiez que le d&#233;mon a bien &#233;t&#233; install&#233; en &lt;br class='autobr' /&gt;
gr&#226;ce aux commandes&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;rpm -q autofs&lt;/textarea&gt; &lt;p&gt;et&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;locate automount&lt;/textarea&gt;
&lt;p&gt;. Vous devriez obtenir respectivement :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;[fredg@station1 fredg]$ rpm -q autofs autofs-4.0.0-0.17mdk&lt;/textarea&gt;
&lt;p&gt;et&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;[fredg@station1 fredg]$ locate automount /usr/share/man/man8/automount.8.bz2 /usr/sbin/automount /usr/include/kautomount.h&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;Configuration d'automount&lt;/h2&gt;
&lt;p&gt;Passons maintenant &#224; la configuration d'automount.&lt;/p&gt;
&lt;p&gt;Ouvrez le fichier &lt;i&gt;/etc/auto.master&lt;/i&gt;. Modifiez son contenu pour &lt;br class='autobr' /&gt;
qu'il ressemble &#224; ceci :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='8' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# $Id: auto.master,v 1.2 1997/10/06 21:52:03 hpa Exp $ # Sample auto.master file # Format of this file: # mountpoint map options # For details of the format look at autofs(8). #/misc /etc/auto.misc --timeout=60 #/net /etc/auto.net --timeout=60 /automount /etc/auto.smb --timeout=60&lt;/textarea&gt;
&lt;p&gt;Puis enregistrez le fichier.&lt;/p&gt;
&lt;p&gt;Il faut ensuite cr&#233;er le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/auto.smb&lt;/code&gt;. Ce&lt;br class='autobr' /&gt; dernier contient les informations de montage pour les &lt;br class='autobr' /&gt;
partages. Voici un exemple du contenu de /etc/auto.smb avec &lt;br class='autobr' /&gt;
l'utilisateur fredg dont le mot de passe est fredg et dont le &lt;br class='autobr' /&gt;
partage sur serveur1 s'appelle fredg (tr&#232;s original... non ?) :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;serveur1_fredg -fstype=smbfs,username=fredg, password=fredg,uid=502,gid=501,iocharset=iso8859-15, codepage=850,workgroup=mairie ://serveur1/fredg&lt;/textarea&gt;
&lt;p&gt;Le partage sera mont&#233; automatiquement sur&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;/automount/serveur1_fredg&lt;/textarea&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;Les uid et gid de l'utilisateur fredg sont trouv&#233;s facilement &lt;br class='autobr' /&gt;
depuis une autre console, soit en se connectant sous son nom et&lt;br class='autobr' /&gt; en tapant la commande&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;id&lt;/textarea&gt;
&lt;p&gt;, soit en ouvrant le fichier&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;/etc/passwd&lt;/textarea&gt; &lt;p&gt;et en rep&#233;rant l'utilisateur fredg. &lt;br class='autobr' /&gt;
Exemple :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;fredg:x:502:501:Gautier Fr&#233;d&#233;ric:/home/fredg:/bin/bash&lt;/textarea&gt;
&lt;p&gt;Le premier nombre, ici 501 d&#233;signe l'uid de l'utilisateur et le&lt;br class='autobr' /&gt; second, ici 502, son gid.&lt;/p&gt;
&lt;p&gt;Le param&#232;tre workgroup est optionel. Il d&#233;signe le groupe de travail des utilisateurs.&lt;/p&gt;
&lt;p&gt;Il faut ajouter une ligne pour chaque utilisateur du poste de travail poss&#233;dant un partage sur le serveur. Prenez exemple sur l'utilisateur fredg. V&#233;rifiez le gid et le uid des utilisateurs qui peuvent &#234;tre diff&#233;rents selon les machines.&lt;/p&gt;
&lt;p&gt;Apr&#232;s avoir enregistr&#233; &lt;i&gt;/etc/auto.smb&lt;/i&gt;, il faut faire en sorte que seul root puisse lire ce fichier. En effet, ce dernier contient des mots de passe et par d&#233;faut, il est lisible par tous les utilisateurs. Donc, saisissez la commande&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;chmod o-r /etc/auto.smb&lt;/textarea&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;Cr&#233;ez le r&#233;pertoire /automount gr&#226;ce &#224; la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;su - -c &#034;mkdir /automount&#034;&lt;/code&gt;. Le syst&#232;me va automatiquement cr&#233;er les r&#233;pertoires utilisateurs /automount/serveur1_fredg, etc.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Lancement du d&#233;mon automount&lt;/h2&gt;
&lt;p&gt;Dans le &lt;i&gt;Centre de configuration Mandrake&lt;/i&gt;, cliquez sur &lt;i&gt;Syst&#232;me&lt;/i&gt;, puis sur &lt;i&gt;Services&lt;/i&gt;. Activez la case &lt;i&gt;Au d&#233;marrage&lt;/i&gt; de la ligne &lt;i&gt;autofs&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Rep&#233;rez si le service est d&#233;j&#224; d&#233;marr&#233; en rep&#233;rant le commentaire (&lt;strong&gt;actif&lt;/strong&gt; indique que le service est bien d&#233;marr&#233;, &lt;strong&gt;inactif&lt;/strong&gt; signale que le service n'est pas d&#233;marr&#233;). Si le service autofs n'est pas d&#233;marr&#233;, cliquez sur le bouton &lt;i&gt;D&#233;marrer&lt;/i&gt;. Quittez ensuite le Centre de configuration Mandrake.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Ajout du lien symbolique et test&lt;/h2&gt;
&lt;p&gt;Dans une console et sous le compte utilisateur fredg, tapez la commande&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;ls /automount/serveur1_fredg&lt;/textarea&gt; &lt;p&gt;afin de vous assurer que le r&#233;pertoire distant est bien mont&#233;. Puis, saisissez&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;ln -s /automount/serveur1_fredg/ /home/fredg/&lt;/textarea&gt;
&lt;p&gt;. Cette commande a pour effet de cr&#233;er un lien symbolique qui s'appellera serveur1_fredg dans le dossier /home/fredg.&lt;/p&gt;
&lt;p&gt;Pour v&#233;rifier que le montage automatique fonctionne bien, dans la console, tapez la commande&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;ll /home/fredg/serveur1_fredg&lt;/textarea&gt;
&lt;p&gt;. Vous devriez obtenir un affichage qui ressemble &#224; celui-ci :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;[fredg@station1 fredg]$ ll /home/fredg/serveur1_fredg lrwxrwxrwx 1 fredg fredg 25 d&#233;c 24 17:38 /home/fredg/serveur1_fredg -&gt; /automount/serveur1_fredg//&lt;/textarea&gt;
&lt;p&gt;Puis affichez le contenu de /home/fredg/serveur1_fredg &#224; l'aide&lt;br class='autobr' /&gt; de la commande &lt;i&gt;ls /home/fredg/serveur1_fredg&lt;/i&gt;. Il s'agit en &lt;br class='autobr' /&gt;
fait du contenu du r&#233;pertoire personnel de fredg situ&#233; sur le &lt;br class='autobr' /&gt;
serveur de fichiers (serveur1). Reproduisez cette manipulation &lt;br class='autobr' /&gt;
(cr&#233;ation du montage et du lien pour chaque utilisateur de la machine en l'adaptant &#224; chaque utilisateur).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Ajout du raccourci sur le bureau KDE&lt;/h2&gt;
&lt;p&gt;Lancez une session graphique pour l'utilisateur fredg. Puis, &lt;br class='autobr' /&gt;
effectuez un clic droit sur le bureau. Choisissez &lt;i&gt;Nouveau/Lien&lt;br class='autobr' /&gt; vers une application&lt;/i&gt;. Dans le champ de saisie de l'onglet &lt;br class='autobr' /&gt;
&lt;i&gt;G&#233;n&#233;ral&lt;/i&gt;, tapez par exemple, &lt;i&gt;Documents sur le partage &lt;br class='autobr' /&gt;
fredg/serveur1&lt;/i&gt;. Cliquez sur l'ic&#244;ne situ&#233;e &#224; gauche du champ &lt;br class='autobr' /&gt;
de saisie. Choisissez ensuite une ic&#244;ne de la biblioth&#232;que &lt;br class='autobr' /&gt;
(&lt;i&gt;Applications&lt;/i&gt;) ou parcourez les autres images disponibles &lt;br class='autobr' /&gt;
dans les autres biblioth&#232;ques. Personnellement, j'ai choisi &lt;br class='autobr' /&gt;
l'ic&#244;ne &lt;i&gt;network_local&lt;/i&gt; accessible en choisissant &lt;i&gt;Syst&#232;mes de &lt;br class='autobr' /&gt;
fichiers&lt;/i&gt;. Vous pouvez &#233;galement choisir une ic&#244;ne diff&#233;rente &lt;br class='autobr' /&gt;
pour chaque utilisateur.&lt;/p&gt;
&lt;p&gt;Une fois l'ic&#244;ne choisie, optez pour l'onglet &lt;i&gt;Ex&#233;cution&lt;/i&gt;. Dans&lt;br class='autobr' /&gt; le champ &lt;i&gt;Commande&lt;/i&gt;, saisissez &lt;i&gt;konqueror &lt;br class='autobr' /&gt;
/home/fredg/serveur1_fredg&lt;/i&gt;. Validez en cliquant sur le bouton &lt;br class='autobr' /&gt;
&lt;i&gt;Ok&lt;/i&gt;. Maintenant, en cliquant sur l'ic&#244;ne &lt;i&gt;Documents sur le &lt;br class='autobr' /&gt;
partage fredg de serveur1&lt;/i&gt;, vous ouvrez une fen&#234;tre konqueror &lt;br class='autobr' /&gt;
affichant le contenu du partage fredg sur serveur1.&lt;br class='autobr' /&gt;
R&#233;p&#233;tez cette op&#233;ration pour tous les utilisateurs du syst&#232;me &lt;br class='autobr' /&gt;
en adaptant le nom des r&#233;pertoires bien s&#251;r.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>HOW-TO : Les processus d&#233;mons et les syst&#218;mes de chrootage</title>
		<link>http://clx.asso.fr/spip/?HOW-TO-Les-processus-demons-et-les-systUmes-de-chrootage</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?HOW-TO-Les-processus-demons-et-les-systUmes-de-chrootage</guid>
		<dc:date>2002-11-04T13:41:58Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jonathan A. Zdziarski</dc:creator>


		<dc:subject>Faille</dc:subject>
		<dc:subject>Syst&#232;me d'exploitation</dc:subject>

		<description>&lt;p&gt;Traduction de l'article de Jonathan A. Zdziarski disponible &lt;a href=&#034;http://www.networkdweebs.com/chroot.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;ici&lt;/a&gt; , diffus&#233; en version light et en anglais sur une liste de s&#233;curit&#233; informatique.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Faille-+" rel="tag"&gt;Faille&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Systeme-d-exploitation-+" rel="tag"&gt;Syst&#232;me d'exploitation&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;L'id&#233;e de savoir s&#233;curiser un peu plus une machine Unix en permettant le moins d'acc&#218;s possible &#224; travers un service ouvert, et ce gr&#226;ce &#224; une commande, un peu de m&#233;thode et un peu d'imagination.&lt;/p&gt;
&lt;p&gt;Apportez toutes vos suggestions d'ajouts et/ou corrections &#224; &lt;a href=&#034;mailto:jonathan@networkdweebs.com&#034; class=&#034;spip_mail&#034;&gt;Jonathan A. Zdziarski&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Table des mati&#232;res&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Partie I : Introduction au chrootage&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#1.1&#034; class=&#034;spip_ancre&#034;&gt;1.1&lt;/a&gt; Qu'est ce que le chrootage ?
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#1.2&#034; class=&#034;spip_ancre&#034;&gt;1.2&lt;/a&gt; Quand est-il appropri&#233; de chrooter ?
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#1.3&#034; class=&#034;spip_ancre&#034;&gt;1.3&lt;/a&gt; Tout les d&#233;mons peuvent-ils &#234;tre chroot&#233;s ?
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#1.4&#034; class=&#034;spip_ancre&#034;&gt;1.4&lt;/a&gt; Le fait de chrooter affectera-t'il mes utilisateurs ?
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#1.5&#034; class=&#034;spip_ancre&#034;&gt;1.5&lt;/a&gt; Qu'impose le chrootage ?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Partie II : Pr&#233;requis&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#2.1&#034; class=&#034;spip_ancre&#034;&gt;2.1&lt;/a&gt; Pouvons-nous chrooter ce d&#233;mon ?
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#2.2&#034; class=&#034;spip_ancre&#034;&gt;2.2&lt;/a&gt; Une introduction aux commandes truss, lsof, et ldd
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#2.3&#034; class=&#034;spip_ancre&#034;&gt;2.3&lt;/a&gt; D&#233;termination des d&#233;pendances des fichiers
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#2.4&#034; class=&#034;spip_ancre&#034;&gt;2.4&lt;/a&gt; Cr&#233;er une strat&#233;gie
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#2.5&#034; class=&#034;spip_ancre&#034;&gt;2.5&lt;/a&gt; D&#233;termination des d&#233;pendances des librairies
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#2.6&#034; class=&#034;spip_ancre&#034;&gt;2.6&lt;/a&gt; Trouver le meilleur endroit pour la prison&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Partie III : L'installation de l'environnement chroot&#233;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#3.1&#034; class=&#034;spip_ancre&#034;&gt;3.1&lt;/a&gt; Cr&#233;er une prison vide
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#3.2&#034; class=&#034;spip_ancre&#034;&gt;3.2&lt;/a&gt; Copier les programme et fichiers, configurer les t&#226;ches automatiques
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#3.3&#034; class=&#034;spip_ancre&#034;&gt;3.3&lt;/a&gt; Copier les biblioth&#232;ques
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#3.4&#034; class=&#034;spip_ancre&#034;&gt;3.4&lt;/a&gt; Cr&#233;er les devices
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#3.5&#034; class=&#034;spip_ancre&#034;&gt;3.3&lt;/a&gt; Changer les scripts de d&#233;marrage
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#3.6&#034; class=&#034;spip_ancre&#034;&gt;3.6&lt;/a&gt; Le Produit Final
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#3.7&#034; class=&#034;spip_ancre&#034;&gt;3.7&lt;/a&gt; Renseigner gr&#226;ce au syslog&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Partie IV : Pour aller plus loin&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#4.1&#034; class=&#034;spip_ancre&#034;&gt;4.1&lt;/a&gt; Comment dire si vous &#234;tes chroot&#233;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#4.2&#034; class=&#034;spip_ancre&#034;&gt;4.2&lt;/a&gt; L'&#233;clatement de la cellule chroot()&#233;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#4.3&#034; class=&#034;spip_ancre&#034;&gt;4.3&lt;/a&gt; Les erreurs &#224; ne pas faire&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Partie I : Introduction au chrootage&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#034;1.1&#034;&gt;&lt;strong&gt; 1.1 Qu'est ce le chrootage ? &lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;La commande/fonction chroot est une abr&#233;viation de &#034;change root&#034; (&#034;changer la racine&#034;), et sert &#224; changer la racine du syst&#232;me de fichiers pour l'environnement auquel elle est appliqu&#233;e. Ceci signifie que la racine initiale (/), dans tous les noms de chemin, est d&#233;finie relativement au chemin chroot&#233;. Par exemple, si un fichier s'appelait : &lt;strong&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt; /home/jonz/hello.txt &lt;/code&gt;&lt;/strong&gt;sur le syst&#232;me, et si je chroote &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/jonz &lt;/code&gt;, &lt;br class='autobr' /&gt;
le fichier se nommerait alors, dans l'environnement chroot&#233;, quelque chose comme : &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/hello.txt &lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le but du chrootage consiste &#224; cr&#233;er (th&#233;oriquement) &lt;br class='autobr' /&gt;
une &#034;prison&#034; imp&#233;n&#233;trable (ou cellule) prot&#233;geant de la lecture ou de la modification tous fichiers en dehors de l'environnement chroot&#233;. Dans l'exemple ci-dessus, je ne pourrais acc&#233;der &#224; aucun fichier en dehors de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/jonz &lt;/code&gt;, puisque &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/&lt;/code&gt; correspond maintenant &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/home/jonz &lt;/code&gt;. Le chrootage est g&#233;n&#233;ralement employ&#233; pour emprisonner des utilisateurs dans des environnements &#224;&lt;br class='autobr' /&gt;
utilisateurs multiples afin de prot&#233;ger les fichiers propres au syst&#232;me.&lt;/p&gt;
&lt;p&gt;Le chrootage peut &#233;galement &#234;tre utilis&#233; pour emprisonner&lt;br class='autobr' /&gt;
les d&#233;mons du syst&#232;me afin que ces derniers ne deviennent pas des cibles faciles pour d'&#233;ventuelles intrusions. Si une intrusion exploite&lt;br class='autobr' /&gt;
une vuln&#233;rabilit&#233; dans un d&#233;mon d'un syst&#232;me chroot&#233;, sa capacit&#233; &#224; affecter des fichiers en dehors de la prison,&lt;br class='autobr' /&gt;
ou &#224; obtenir un shell sera sensiblement diminu&#233;e. Une des principales raisons &#224; cela est que le shell ne donne pas d'acc&#232;s &#224; l'environnement complet. Ainsi m&#234;me si l'intrus injecte du code dans la m&#233;moire prot&#233;g&#233;e (&#034;D&#233;monte&#034; la pile d'appel), il n'y a aucun shell &#224; ex&#233;cuter. Beaucoup de personnes ont pr&#233;tendu pouvoir s'introduire par effraction dans une prison chroot&#233;e, mais dans beaucoup de cas il ne s'agissait que d'un simple shell (ce n'est pas le cas que nous allons &#233;tudier). S'introduire par effraction dans une prison abritant un d&#233;mon d'un environnement chroot&#233; est pour le moins, extr&#234;mement difficile.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;1.2&#034;&gt;&lt;strong&gt; 1.2 Quand est-il appropri&#233; de chrooter un processus syst&#232;me ou un d&#233;mon ? &lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Chrooter un d&#233;mon est une m&#233;thode pratique pour ajouter une couche suppl&#233;mentaire de s&#233;curit&#233; &#224; votre syst&#232;me.&lt;/p&gt;
&lt;p&gt;Beaucoup de processus du syst&#232;me et applications tierces ont d&#233;j&#224; quelques garde-fous contre une exploitation de leurs vuln&#233;rabilit&#233;s potentielles.&lt;/p&gt;
&lt;p&gt;Beaucoup d'outils ont maintenant la capacit&#233; de fonctionner sans les droits administrateurs, rendant ainsi l'attaque en tant que super-utilisateur (root) plus d&#233;licate pour les intrus.&lt;/p&gt;
&lt;p&gt;Des couches de s&#233;curit&#233; pour les r&#233;seaux comme des pare-feux, des encapsulages TCP, des filtres, at autres s'ajoutent &#233;galement &#224; la s&#233;curit&#233; globale d'un syst&#232;me. Comme tous ces derniers, le chrootage est appropri&#233; pour la plupart des impl&#233;mentations, encore faut-il que cela ne bride pas les fonctionnalit&#233;s du syst&#232;me.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;1.3&#034;&gt;&lt;strong&gt; 1.3 Tous les d&#233;mons peuvent-ils &lt;br class='autobr' /&gt;
&#234;tre chroot&#233;s ? &lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Techniquement vous pouvez chrooter tout ce que vous voulez m&#234;me la bicyclette de votre oncle Jules, mais dans certains cas le chrootage n'est pas toujours possible sans &#034;casser&#034; quelque chose, ou dans d'autres circonstances, sans une configuration tr&#232;s complexe, qui n'en vaut finalement pas la peine.&lt;/p&gt;
&lt;p&gt;Quelques d&#233;mons ne peuvent pas fonctionner correctement dans un environnement chroot&#233; du fait de la grande complexit&#233; de leurs fonctions.&lt;/p&gt;
&lt;p&gt;Par exemple, sendmail doit pouvoir acc&#233;der aux &lt;br class='autobr' /&gt;
r&#233;pertoires locaux des utilisateurs &#224; la recherche de leurs &lt;br class='autobr' /&gt;
fichiers .forward. Il n'y a aucun moyen pratique de chrooter sendmail sans cr&#233;er un &#034;miroir&#034; complexe et consommateur de temps. C'est pourquoi sendmail poss&#232;de une solution de rechange, smrsh (shell restreint de sendmail &#8212; &lt;i&gt;sendmail restricted shell&lt;/i&gt;).&lt;/p&gt;
&lt;p&gt;Une majorit&#233; de d&#233;mons syst&#232;me, peut cependant &lt;br class='autobr' /&gt;
&#234;tre chroot&#233; sans risque ni trop d'effort.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;1.4&#034;&gt;&lt;strong&gt; 1.4 Le chrootage affectera-t-il mes utilisateurs ? &lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Si le chrootage est fait correctement, vos utilisateurs ne devraient noter aucune diff&#233;rence dans le comportement du syst&#232;me. Le chrootage en soi n'affectera pas directement vos utilisateurs ou ne changera pas votre syst&#232;me&lt;br class='autobr' /&gt;
d'exploitation. Le syst&#232;me existant est g&#233;n&#233;ralement laiss&#233; intact, alors que de petites &#034;prisons&#034; sont cr&#233;&#233;es&lt;br class='autobr' /&gt;
afin de fournir de nombreux services. Gardez &#224; l'esprit &#233;galement, nous ne parlons pas de tirer profit des versions chroot&#233;es existantes pour les d&#233;mons ftp ou ssh. C'est un concept semblable, mais pourtant diff&#233;rent de celui que nous allons aborder ici. Nous parlerons du chrootage des d&#233;mons syst&#232;me qui continueront &#224; fonctionner de fa&#231;on toute aussi transparente mais avec une couche de s&#233;curit&#233;&lt;br class='autobr' /&gt;
en plus.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;1.5&#034;&gt;&lt;strong&gt; 1.5 Qu'impose le chrootage ? &lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le chrootage de n'importe quel d&#233;mon est un processus. Il implique g&#233;n&#233;ralement les &#233;tapes suivantes pour produire un d&#233;mon chroot&#233; viable :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Cr&#233;er un r&#233;pertoire &#034;prison&#034;,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Copier le d&#233;mon et tous les fichiers requis,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Copier les biblioth&#232;ques syst&#232;me requises,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Changer tous scripts de d&#233;marrage pour lancer le d&#233;mon dans son nouvel environnement.&lt;/p&gt;
&lt;p&gt;Les &#233;tapes 2 et 3 sont celles qui prennent g&#233;n&#233;ralement &lt;br class='autobr' /&gt;
le plus de temps. L'&#233;tape 2, en particulier, requiert parfois une certaine imagination. Par exemple, un logiciel de courrier doit acc&#233;der &#224; certains dossiers sur le syst&#232;me. Copier les dossiers de messagerie dans la prison ne produira pas le r&#233;sultat d&#233;sir&#233;, nous devons alors cr&#233;er une prison &#034;autour&#034; de ces dossiers.&lt;/p&gt;
&lt;p&gt;Nous entrerons dans le vif du sujet et les manipulations complexes plus tard.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Partie II : Pr&#233;requis&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#034;2.1&#034;&gt;&lt;strong&gt; 2.1 Pouvons-nous chrooter ce d&#233;mon ? &lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Avant m&#234;me de cr&#233;er un r&#233;pertoire ou de copier un simple &lt;br class='autobr' /&gt;
fichier, nous devons nous poser quelques questions importantes. La premi&#232;re est de savoir si le d&#233;mon qui nous int&#233;resse peut &#234;tre chroot&#233;.&lt;/p&gt;
&lt;p&gt;Nous allons travailler avec trois exemples de d&#233;mons syst&#232;mes ci-dessous, et poserons les m&#234;mes questions principales :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Le d&#233;mon acc&#232;de-t-il &#224; des fichiers pr&#233;sents dans un endroit &lt;br class='autobr' /&gt;
unique ?
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Est-il viable de copier les fichiers une fois pour toute, ou p&#233;riodiquement en utilisant cron ?
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Est-il prudent de cr&#233;er une prison &#034;autour&#034; d'un ensemble sp&#233;cifique de fichiers ?&lt;/p&gt;
&lt;p&gt;Si vous r&#233;pondez 'NON' &#224; chacune de ces trois questions, &lt;br class='autobr' /&gt;
il se pourrait que ce ne soit pas une bonne id&#233;e de chrooter ce d&#233;mon.&lt;/p&gt;
&lt;p&gt;Mais jetons un oeil aux exemples suivants :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; Qpopper de Qualcomm&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Le d&#233;mon acc&#232;de-t-il &#224; des fichiers pr&#233;sents dans un endroit unique ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Principalement, un logiciel de courrier doit acc&#233;der aux dossiers des utilisateurs. Il y a quelques autres dossiers tels que ceux de /etc qui sont exig&#233;s pour effectuer l'authentification. La r&#233;ponse &#224; cette question est donc 'OUI' car une majorit&#233; des dossiers requis sont pr&#233;sents dans un seul endroit (/var/mail).&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Est-il viable de copier les fichiers une bonne fois pour toute, ou p&#233;riodiquement en utilisant cron ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Copier les r&#233;pertoires de messagerie n'est jamais une bonne id&#233;e, et les copier une seule fois finira par corrompre les bo&#238;tes aux lettres des utilisateurs. Ainsi, ce n'est pas du tout une bonne id&#233;e de copier ces fichiers. Il est cependant prudent de recopier&lt;br class='autobr' /&gt;
les fichiers et r&#233;pertoires de /etc ainsi que tout autre utilis&#233; dans cet exemple, une fois par jour, ou plus ou moins fr&#233;quemment selon les besoins. Puisque nous essayons de prot&#233;ger ces fichiers, nous ne voulons pas donner d'acc&#232;s &#224; l'intrus potentiel pour les originaux.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Est-il prudent de cr&#233;er une prison &#034;autour&#034; d'un ensemble sp&#233;cifique de fichiers ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Il y a deux solutions de rechange pour traiter les dossiers d'une prison. Soit on d&#233;place ou copie les fichiers dans la prison, ou on construit la prison autour des fichiers. Dans le cas du courrier &#233;lectronique, copier les fichiers dans les deux sens toutes les x minutes est extr&#234;mement consommateur &lt;br class='autobr' /&gt;
de ressources, et il est tout simplement inefficace d'essayer de maintenir un r&#233;pertoire plein de liens symboliques. Il est bien plus efficace de forcer les logiciel &#224; utiliser les dossiers r&#233;els dans leur endroit original. Notre r&#233;ponse est ici encore 'OUI '.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; RPCBIND de Sun MicroSystem.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Le d&#233;mon acc&#232;de-t-il &#224; des dossiers pr&#233;sents dans un endroit unique ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Le d&#233;mon acc&#232;de principalement &#224; plusieurs petits fichiers &lt;br class='autobr' /&gt;
dans /etc.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Est-il viable de copier les fichiers une bonne fois pour toute, ou p&#233;riodiquement en utilisant cron ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;La plupart des dossiers consult&#233;s sont petits et rarement&lt;br class='autobr' /&gt;
mis &#224; jour. Il serait tout &#224; fait viable de copier ces fichiers dans un r&#233;pertoire diff&#233;rent une fois par jour.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Est-il prudent de cr&#233;er une prison &#034;autour&#034; d'un ensemble sp&#233;cifique de dossiers ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;A la diff&#233;rence de notre logiciel de courrier, qui acc&#232;de &lt;br class='autobr' /&gt;
principalement aux mails , /etc contient plusieurs des fichiers syst&#232;me critiques que nous essayons de nous prot&#233;ger. Ce serait une tr&#232;s mauvaise id&#233;e de cr&#233;er une prison autour de ces derniers et ferait perdre le b&#233;n&#233;fice premier du chrootage. De plus, cela risque donner la possibilit&#233; &#224; un intrus d'acc&#233;der au moindre fichier du r&#233;pertoire /etc. Ainsi, la bonne id&#233;e consiste &#224; chrooter CE d&#233;mon dans une prison totalement s&#233;par&#233;e, et en y copiant simplement les fichiers utilis&#233;s par RPCBind.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; Sendmail &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Le d&#233;mon acc&#232;de-t-il &#224; des dossiers ou fichiers pr&#233;sents dans un endroit unique ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Non. Sendmail doit avoir acc&#232;s &#224; plusieurs fichiers situ&#233;s dans des r&#233;pertoires diff&#233;rents. Il s'agit aussi bien de r&#233;pertoires&lt;br class='autobr' /&gt;
locaux que de fichiers utilisateurs. Simultan&#233;ment, sendmail doit &#233;galement acc&#233;der &#224; la queue d'envoi de courrier (/var/spool/mqueue) et &#224; des r&#233;pertoires de courrier sp&#233;cifiques aux utilisateur (/var/mail).&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Est-il viable de copier les fichiers une bonne fois pour toute, ou p&#233;riodiquement en utilisant cron ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Afin de cr&#233;er un environnement chroot&#233; contenant tous les&lt;br class='autobr' /&gt;
fichiers n&#233;cessaires au fonctionnement de sendmail, des r&#233;pertoires utilisateurs devraient &#234;tre dupliqu&#233;s dans un endroit s&#233;curis&#233;. Ce dernier sert &#224; contenir les fichiers n&#233;cessaires &#224; la distribution et &#224; la manipulation de courrier. Ceci exigerait &#233;galement la cr&#233;ation de nouveaux r&#233;pertoires et de la suppression des plus anciens apr&#232;s qu'ils aient &#233;t&#233; modifi&#233;s par l'utilisateur. Simultan&#233;ment, sendmail doit &#233;galement acc&#233;der aux r&#233;pertoires de la queue d'envoi et aux r&#233;pertoires de courrier des utilisateurs.&lt;/p&gt;
&lt;p&gt;Il n'est viable de copier aucun de ces derniers que ce soit dans un sens ou dans l'autre.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Est-il prudent de cr&#233;er une prison &#034;autour&#034; d'un ensemble sp&#233;cifique de fichiers ?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Attardons-nous sur cette question. Nous pourrions cr&#233;er une &lt;br class='autobr' /&gt;
prison autour des dossiers, mais alors nous perdrions la possibilit&#233; d'&#233;crire dans la queue d'envoi de courrier. Nous pourrions emprisonner /var, permettant ainsi l'acc&#232;s &#224; tous les deux (/var/mail et /var/spool/mqueue) mais nous laisserions alors l'environnement chroot&#233; acc&#233;der aux dossiers potentiellement critiques. Ni l'une ni l'autre des solutions envisag&#233;es n'aborde l'autre question, &#224; savoir la duplication des r&#233;pertoires utilisateurs. Il ne semble y avoir aucun ensemble de fichiers pour lequel nous pourrions cr&#233;er une prison.&lt;/p&gt;
&lt;p&gt;&lt;font color=&#034;RED&#034;&gt; Sendmail, comme nos r&#233;ponses le sugg&#232;rent, n'est pas un bon candidat pour le chrootage &lt;/font&gt;. Bien que cela puisse &#234;tre possible, l'installation serait longue et fastidieuse. R&#233;pondre exactement aux contraintes de s&#233;curit&#233; accompagnant la documentation de sendmail est d&#233;j&#224; une bonne id&#233;e.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;2.2&#034;&gt;&lt;strong&gt; 2.2 Introduction aux commandes truss, lsof et ldd&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; truss (ou strace) &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si vous tapez &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;man truss&lt;/code&gt; sous Solaris, vous verrez que truss est un outil con&#231;u pour tracer des appels et signaux syst&#232;me. Strace est un outil semblable, sous Linux. Les appels syst&#232;me incluent des appels aux biblioth&#232;ques et aux fichiers en cours d'acc&#232;s. Truss est une superbe moyen de d&#233;couvrir les ressources utilis&#233;es par un d&#233;mon particulier. Pour lancer truss, tapez simplement 'truss' suivi de la commande servant habituellement &#224; d&#233;marrer le d&#233;mon. La sortie ressemblera &#224; ceci :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; open(&#034;/usr/lib/libc.so.1 &#034;, O_rdonly)= 3 &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Le programme a ouvert la biblioth&#232;que libc.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; open64(&#034;/usr/local/etc/my.config &#034;, O_wronly|O_creat|O_trunc, 0666) = 3 &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Le programme a ouvert /usr/local/etc/my.config adin d'y &#233;crire des informations.&lt;/p&gt;
&lt;p&gt;Ex&#233;cuter truss sur un d&#233;mon devrait donner imm&#233;diatement &lt;br class='autobr' /&gt;
une longue liste de lignes. Il est int&#233;ressant d'essayer les diff&#233;rentes options et commandes du d&#233;mon pour voir les nouveaux fichiers ouverts avec truss. Sans truss, vous seriez oblig&#233; de casser la prison form&#233;e par l'environnement chroot&#233; &#224; chaque fois que manquerait un fichier.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;lsof&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;lsof est un autre outil tr&#232;s utile pour trouver les ressources utilis&#233;es par un d&#233;mon. Il affiche les fichiers ouverts, les connexions r&#233;seaux &#233;tablies, et plus encore. Le programme lsof n'est pas install&#233; syst&#233;matiquement avec le syst&#232;me, c'est un outil externe. Il peut &#234;tre t&#233;l&#233;charg&#233; depuis plusieurs sites comme &lt;a href=&#034;https://www.sunfreeware.com&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;www.sunfreeware.com&lt;/a&gt;. Les sources sont disponibles sur les ftp anonymes comme &#224; l'adresse &lt;br class='autobr' /&gt;
&lt;a href=&#034;ftp://vic.cc.purdue.edu/pub/tools/unix/lsof&#034; class=&#034;spip_out&#034;&gt;ftp://vic.cc.purdue.edu/pub/tools/unix/lsof&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ldd&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ldd est outil tr&#232;s pratique pour d&#233;terminer le nom des biblioth&#232;ques n&#233;c&#233;ssaires &#224; l'ex&#233;cution de votre programme. L'outil ldd se limite &#224; lister les &#034;biblioth&#232;ques dynamiques&#034;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb9-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Note sur les biblioth&#232;ques dynamiques : Si vous pouvez disposer des sources (&#8230;)&#034; id=&#034;nh9-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;. Utilisez ldd suivi du chemin et et du nom de fichier du d&#233;mon que vous voulez chrooter. Cela vous donnera la liste des biblioth&#232;ques &#224; copier dans la prison.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;2.3&#034;&gt;&lt;strong&gt;2.3 D&#233;terminer les d&#233;pendances des diff&#233;rents fichiers&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le premier exercice que nous avons abord&#233; &#224; la section 2.1 nous a fait r&#233;fl&#233;chir sur les d&#233;pendances (fichiers, dossiers, librairies, etc.) du d&#233;mon. Certaines sont installables dans d'autres dossiers alors que pour d'autres nous devrons &#233;tablir une prison tout autour. Seul deux des trois exemples de la section &#233;taient viables (Qpopper de Qualcomm et RPCBind de Sun). Ils sont de tr&#232;s bon candidats pour le chrootage et tous deux ont connu des failles de s&#233;curit&#233; non n&#233;gligeables par le pass&#233;. Maintenant &#233;tablissons la liste des fichiers que nous aurons besoin de d&#233;placer ou de recompiler pour ces deux exemples. Il est tout &#224; fait possible de rater quelques fichiers puisque nous trouverons toujours une solution pour les inclure dans la prison avant la mise en route de ce nouveau service. Il y a plusieurs fa&#231;ons de d&#233;terminer les fichiers utiles. Ceci inclus, mais n'est pas exhaustif :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Penser aux &#233;vidences (et oui, un logiciel de mail acc&#232;de &lt;br class='autobr' /&gt;
aux r&#233;pertoires de mails),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Examiner les fichiers de configuration,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Utiliser des outils comme 'lsof' ou 'truss', &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Arr&#234;ter le d&#233;mon pour le placer dans sa prison.&lt;/p&gt;
&lt;p&gt;Il est important de tenir compte du maximum de fichiers possibles. D'apr&#232;s ces deux exemples, nous pouvons &#233;tablir une liste exhaustive de ce dont nous allons avoir besoin :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Qpopper de Qualcomm :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;/var/mail/* (dans la prison)&lt;/p&gt;
&lt;p&gt;Les fichiers suivants, provenant de /etc, seront recopi&#233;s p&#233;riodiquement&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;hosts.allow hosts.deny netconfig nsswitch.conf passwd resolv.conf services shadow&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Sun RPCBIND&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Les fichiers suivants, provenant de /etc, seront recopi&#233;s p&#233;riodiquement&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;hosts netconfig nsswitch.conf resolv.conf services&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La zone horaire, de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/local/zoneinfo&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Un r&#233;pertoire temporaire, /tmp.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;2.4&#034;&gt;&lt;strong&gt;2.4 Cr&#233;er une strat&#233;gie&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Une fois que que nous avons une id&#233;e pr&#233;cise de la liste de fichiers qui seront utilis&#233;s, voyons voir comment nous pouvons les placer dans notre prison. Les copierons-nous ? Combien de fois ? Une seule fois ou quotidiennement ? La prison peut elle &#234;tre construite autour ? &#201;tablir une strat&#233;gie vous montrera les fichiers devant &#234;tre copi&#233;s, ceux pour lesquels il faudra construire une prison autour, et vous aurez alors une id&#233;e de l'emplacement futur de la prison. &lt;strong&gt;Il est imp&#233;ratif&lt;/strong&gt; de ne pas construire la prison autour de fichiers critiques , comme /etc, ce qui &#233;limine l'int&#233;r&#234;t de notre prison. Si vous devez absolument construire une prison autour de quoique ce soit, il faut le faire autour d'un r&#233;pertoire non critique pour le syst&#232;me, afin d'&#233;viter qu'un intrus &#233;ventuel exploite une faille de s&#233;curit&#233;.&lt;/p&gt;
&lt;p&gt;Si vous tracez un cercle sur le papier, vous pouvez positionner les fichiers en dehors de la prison &#224; l'ext&#233;rieur du cercle. Tracez des lignes dans le cercle avec des annotations pour montrer ceux qui seront d&#233;plac&#233;s ou copi&#233;s, en pr&#233;cisant la fr&#233;quence des op&#233;rations.&lt;br class='autobr' /&gt;
Ceci pour montrer la taille de la future prison (la racine du syst&#232;me de fichiers virtuel) et vous donnera de bonnes bases de travail quand il sera temps de construire la prison.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;2.5&#034;&gt;&lt;strong&gt;2.5 D&#233;terminer les d&#233;pendances des biblioth&#232;ques&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tout le code du programme que le d&#233;mon ex&#233;cutera n'est pas &lt;br class='autobr' /&gt;
n&#233;cessairement dans un seul programme. Beaucoup de bouts de code partag&#233;s sont r&#233;utilis&#233;s sous la forme de biblioth&#232;ques. Celles-ci sont requises par le programme pour s'ex&#233;cuter correctement. Dans un environnement chroot&#233;, le programme n'aura pas acc&#232;s au chemin original de ces biblioth&#232;ques. Il faudra d'abord les copier dans la prison pour le faire fonctionner. Le meilleur moyen de d&#233;terminer quelles seront les biblioth&#232;ques utilis&#233;es par votre d&#233;mon est d'utiliser la commande 'ldd'. le programme ldd listera les biblioth&#232;ques dynamiques (ou biblioth&#232;ques partag&#233;es) requises pour l'ex&#233;cuter. Il faut faire tr&#232;s attention &#224; cette partie, il faudra les copier dans le prison.&lt;/p&gt;
&lt;p&gt;Documentez les biblioth&#232;ques utilis&#233;es comme vous l'avez fait pour les fichiers. Vous savez d&#233;j&#224; comment il faudra les copier dans la prison (avec cp, et une seule fois). C'est peut &#234;tre une bonne id&#233;e de garder cette information pratique sous le coude dans le cas d'une mise &#224; jour ou afin d'appliquer un patch du syst&#232;me d'exploitation. Cela pourra vous &#234;tre utile pour copier les biblioth&#232;ques mises &#224; jour dans la prison &#233;galement. Une solution pourrait &#234;tre de les recopier via cron une fois par mois.&lt;/p&gt;
&lt;p&gt;Dans nos exemples, nous avons extrait les biblioth&#232;ques suivantes en utilisant truss :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Qpopper de Qualcomm&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;/usr/lib/libnsl.so.1 /usr/lib/libsocket.so.1 /usr/lib/libresolv.so.2 /usr/lib/libmail.so.1 /usr/lib/librt.so.1 /usr/lib/libcrypt_i.so.1 /usr/lib/libc.so.1 /usr/lib/libdl.so.1 /usr/lib/libmp.so.2 /usr/lib/libaio.so.1 /usr/lib/libgen.so.1 /usr/lib/libpthread.so.1 /usr/lib/libthread.so.1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Sun RPCBIND&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;/usr/lib/libsocket.so.1 /usr/lib/libnsl.so.1 /usr/lib/libdl.so.1 /usr/lib/libc.so.1 /usr/lib/libmp.so.2&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a name=&#034;2.6&#034;&gt;&lt;strong&gt;2.6 Trouver le meilleur emplacement pour la prison&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Vous avez d&#233;sormais toutes les informations n&#233;cessaires pour savoir o&#249; installer votre prison. Si votre prison est 'construite autour' de fichiers existants (comme pour l'exemple de Qpopper), vous devrez &#234;tre le plus proche possible de ce r&#233;pertoire. Si ce n'est pas le cas, choisissez un emplacement arbitraire pourvu qu'il y ait suffisamment d'espace disque. Nous allons utiliser &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/var/mail&lt;/code&gt; pour popper et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/var/rpcbind&lt;/code&gt; pour Sun RPCBIND. Souvenez-vous que vos programmes ne peuvent savoir qu'ils sont emprisonn&#233;s et vont donc essayer d'acc&#233;der &#224; des fichiers o&#249; le d&#233;mon s'attend &#224; les trouver, que leur chemin soit relatif ou li&#233;s symboliquement. Vous &#234;tes pr&#234;t pour passer &#224; la troisi&#232;me partie !&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Partie III : L'installation de l'environnement chroot&#233;&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#034;3.1&#034;&gt;&lt;strong&gt;3.1 Cr&#233;er une prison vide&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;La premi&#232;re &#233;tape pour cr&#233;er une prison vide est de&lt;br class='autobr' /&gt;
cr&#233;er un ensemble de r&#233;pertoires pour y mettre votre d&#233;mon,&lt;br class='autobr' /&gt;
ses fichiers de configuration et ses biblioth&#232;ques. Tout d'abord, voyons le cas de Sun RPCBIND. Nous avons choisi &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/var/rpcbind&lt;/code&gt; pour &#234;tre la racine de notre prison. Voyons comment pr&#233;parer notre arborescence :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;mkdir /var/rpcbind mkdir /var/rpcbind/dev mkdir /var/rpcbind/etc mkdir /var/rpcbind/tmp mkdir -p /var/rpcbind/usr/lib&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;D&#232;s que le d&#233;mon sera chroot&#233;, il devra acc&#233;der &#224; certains devices dans /dev, certains fichiers de configuration de /etc, son propre r&#233;pertoire temporaire, et son r&#233;pertoire&lt;br class='autobr' /&gt;
de biblioth&#232;ques. Tout devra y &#234;tre quand vous aurez fini.&lt;/p&gt;
&lt;p&gt;En ce qui concerne notre exemple avec Qpopper. Comme la prison de Qpopper doit &#234;tre construite autour du r&#233;pertoire des bo&#238;tes aux lettres, la prison doit d&#233;marrer dans /var/mail. Nous devons continuer et cr&#233;er les r&#233;pertoires suivant :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;mkdir /var/mail/dev mkdir /var/mail/etc mkdir -p /var/mail/usr/lib mkdir -p /var/mail/usr/local/lib mkdir -p /var/mail/usr/sbin mkdir -p /var/mail/usr/share/lib/zoneinfo/US&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Mais ce n'est pas encore termin&#233;. Notre logiciel&lt;br class='autobr' /&gt;
s'attend &#224; ce que les mails soient dans /var/mail. Comme il est chroot&#233;, / est en fait /var/mail ... et lorsqu'il acc&#232;de &#224; /var/mail, il ne trouve pas son fichier ! Comment r&#233;soudre se probl&#232;me ? Nous devons cr&#233;er un lien symbolique de /var/mail/var/mail vers /var/mail qui est alors /...&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;mkdir /var/mail/var ln -s / /var/mail/var/mail &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Maintenant, lorsque popper chroot&#233; acc&#232;dera &#224; /var/mail, il sera redirig&#233; vers /, qui est bien le vrai&lt;br class='autobr' /&gt;
/var/mail !&lt;/p&gt;
&lt;p&gt;Le r&#233;sultat final ressemblera alors &#224; ceci :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sun RPCBIND&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;drwxr-xr-x 7 root other 512 Aug 1 18:31 ./ drwxr-xr-x 34 root sys 512 Aug 1 18:07 ../ drwxr-xr-x 2 root other 512 Aug 1 18:16 dev/ drwxr-xr-x 2 root other 512 Aug 1 18:10 etc/ drwxr-xr-x 2 root other 512 Aug 1 18:31 tmp/ drwxr-xr-x 6 root other 512 Jul 28 15:55 usr/ drwxr-xr-x 3 root other 512 Aug 1 18:19 var/&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Qpopper&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;drwxrwxrwt 7 root mail 512 Oct 18 19:36 ./ drwxr-xr-x 34 root sys 512 Aug 1 18:07 ../ drwxr-xr-x 2 root other 512 Jul 29 13:33 dev/ drwxr-xr-x 2 root other 512 Jul 28 16:18 etc/ - Quelques bo&#238;tes aux lettres m&#233;lang&#233;es par ici - drwxr-xr-x 6 root other 512 Jul 28 15:55 usr/ drwxr-xr-x 2 root other 512 Aug 1 18:06 var/&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a name=&#034;3.2&#034;&gt;&lt;strong&gt;3.2 Copier les programmes et fichiers de configuration, configurer les t&#226;ches automatiques&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Maintenant que notre arborescence est &#233;tablie, copions-y nos programmes et fichiers de configuration. Comme nous d&#233;marrerons RPCBind via les scripts d'initialisation, il n'est pas n&#233;cessaire de copier le binaire actuel. Cependant, nous devrons y copier Qpopper pour qu'il puisse &#234;tre d&#233;marr&#233; via inetd. Si inetd cherche le fichier dans /usr/bin, vous devrez cr&#233;er /usr/bin dans la prison (/var/mail/usr/bin) et y copier l'ex&#233;cutable du d&#233;mon. Copiez-y tous les fichiers de /etc identifi&#233;s tout &#224; l'heure en pr&#233;servant les permissions. Pour les fichiers devant &#234;tre mis &#224; jour p&#233;riodiquement, cr&#233;ez les t&#226;ches 'cron' ad&#233;quates. Une fois termin&#233;, votre structure ressemblera &#224; ceci :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sun RPCBIND&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;% ls -l /var/rpcbind/etc -r--r--r-- 1 root other 90 Jul 28 16:18 hosts -rw-r--r-- 1 root other 1239 Jul 28 16:09 netconfig -rw-r--r-- 1 root other 835 Jul 28 15:32 nsswitch.conf -rw-r--r-- 1 root other 140 Jul 28 16:14 resolv.conf -r--r--r-- 1 root other 3649 Jul 28 16:14 services&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Qpopper&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;% ls -l /var/mail/etc -r--r--r-- 1 root other 90 Jul 28 16:18 hosts -rw------- 1 root other 73 Oct 18 19:15 hosts.allow -rw------- 1 root other 9 Jul 28 15:58 hosts.deny -rw-r--r-- 1 root other 1239 Jul 28 16:09 netconfig -rw-r--r-- 1 root other 835 Jul 28 15:32 nsswitch.conf -r--r--r-- 1 root other 815 Oct 18 19:15 passwd -rw-r--r-- 1 root other 140 Jul 28 16:14 resolv.conf -r--r--r-- 1 root other 3649 Jul 28 16:14 services -r-------- 1 root other 502 Oct 18 19:15 shadow&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Les lignes cron utiles pourraient ressembler &#224; ceci. Adaptez-les en fonction de votre cas particulier...&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;0,30 * * * * cp -p /etc/passwd /var/mail/etc/passwd 0,30 * * * * cp -p /etc/shadow /var/mail/etc/shadow 0 0 * * * cp -p /etc/hosts.* /var/mail/etc/ 0 0 0 * * cp -p /etc/services /var/rpcbind/etc 0 0 0 * * cp -p /etc/resolv.conf /var/mail/etc&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a name=&#034;3.3&#034;&gt;&lt;strong&gt;3.3 Copier les biblioth&#232;ques&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Vous vous souvenez de notre topo au sujet des biblioth&#232;ques ? Nous devons les copier dans le chemin relatif dans la prison. La plupart des biblioth&#232;ques se trouvent dans /usr/lib, et parfois dans /usr/local/lib. De m&#234;me, pour les fichiers de configuration, copiez les librairies en conservant leurs permissions. Vous devriez aboutir &#224; quelque chose comme ceci selon votre syst&#232;me d'exploitation :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;% ls -l /var/rpcbind/usr/lib -rwxr-xr-x 1 root other 200292 Jul 28 15:27 ld.so.1* -rwxr-xr-x 1 root other 41628 Jul 28 15:28 libaio.so.1* -rwxr-xr-x 1 root other 938940 Jul 28 15:28 libc.so.1* -rwxr-xr-x 1 root other 15616 Jul 28 15:27 libcrypt_i.so.1* -rwxr-xr-x 1 root other 4448 Jul 28 15:28 libdl.so.1* -rwxr-xr-x 1 root other 40540 Jul 28 15:28 libgen.so.1* -rwxr-xr-x 1 root other 29548 Jul 28 15:27 libmail.so.1* -rwxr-xr-x 1 root other 19584 Jul 28 15:28 libmp.so.2* -rwxr-xr-x 1 root other 730672 Jul 28 15:27 libnsl.so.1* -rwxr-xr-x 1 root other 35308 Jul 28 15:57 libpthread.so.1* -rwxr-xr-x 1 root other 326336 Jul 28 15:27 libresolv.so.2* -rwxr-xr-x 1 root other 39048 Jul 28 15:27 librt.so.1* -rwxr-xr-x 1 root other 65876 Jul 28 15:27 libsocket.so.1* -rwxr-xr-x 1 root other 166624 Jul 28 15:58 libthread.so.1* -rwxr-xr-x 1 root other 19648 Jul 28 16:17 nss_dns.so.1* -rwxr-xr-x 1 root other 38832 Jul 28 15:33 nss_files.so.1* -rwxr-xr-x 1 root other 38292 Jul 28 15:33 nss_nis.so.1* -rwxr-xr-x 1 root other 12284 Aug 1 18:15 straddr.so*&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;% ls -l /var/mail/usr/lib /var/mail/usr/local/lib -rwxr-xr-x 1 root other 200292 Jul 28 15:27 ld.so.1* -rwxr-xr-x 1 root other 41628 Jul 28 15:28 libaio.so.1* -rwxr-xr-x 1 root other 938940 Jul 28 15:28 libc.so.1* -rwxr-xr-x 1 root other 15616 Jul 28 15:27 libcrypt_i.so.1* -rwxr-xr-x 1 root other 4448 Jul 28 15:28 libdl.so.1* -rwxr-xr-x 1 root other 40540 Jul 28 15:28 libgen.so.1* -rwxr-xr-x 1 root other 29548 Jul 28 15:27 libmail.so.1* -rwxr-xr-x 1 root other 19584 Jul 28 15:28 libmp.so.2* -rwxr-xr-x 1 root other 730672 Jul 28 15:27 libnsl.so.1* -rwxr-xr-x 1 root other 35308 Jul 28 15:57 libpthread.so.1* -rwxr-xr-x 1 root other 326336 Jul 28 15:27 libresolv.so.2* -rwxr-xr-x 1 root other 39048 Jul 28 15:27 librt.so.1* -rwxr-xr-x 1 root other 65876 Jul 28 15:27 libsocket.so.1* -rwxr-xr-x 1 root other 166624 Jul 28 15:58 libthread.so.1* -rwxr-xr-x 1 root other 19648 Jul 28 16:17 nss_dns.so.1* -rwxr-xr-x 1 root other 38832 Jul 28 15:33 nss_files.so.1* -rwxr-xr-x 1 root other 38292 Jul 28 15:33 nss_nis.so.1*&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a name=&#034;3.4&#034;&gt;&lt;strong&gt;3.4 Cr&#233;er les devices&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Voici la partie la plus d&#233;licate. Une fois le d&#233;mon chroot&#233;, il ne pourra plus acc&#233;der au r&#233;pertoire habituel /dev, qui inclus tous les &lt;i&gt;devices&lt;/i&gt; (p&#233;riph&#233;riques&lt;/i&gt; indispensables comme peuvent l'&#234;tre /dev/null, /dev/log, etc. Isoler les &lt;i&gt;devices&lt;/i&gt; dont votre d&#233;mon aura besoin n'est pas &#233;vident. Vous pouvez en trouver la plupart en utilisant truss ou parfois avec un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;strings | grep dev&lt;/code&gt;, mais g&#233;n&#233;rallement, vous devrez observer les messages d'erreurs qui indiqueront le &lt;i&gt;device&lt;/i&gt; manquant.&lt;/p&gt;
&lt;p&gt;Voici les &lt;i&gt;devices&lt;/i&gt; qui devraient &#234;tre ajout&#233;s dans la prison, pour n'importe&lt;br class='autobr' /&gt;
quel d&#233;mon :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;/dev/conslog /dev/log /dev/msglog /dev/null /dev/tcp /dev/ticlts /dev/ticots /dev/ticotsord /dev/udp /dev/zero&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Voici comment cr&#233;er vos &lt;i&gt;devices&lt;/i&gt; (il faut le faire&lt;br class='autobr' /&gt;
pour chaque &lt;i&gt;device&lt;/i&gt;) :&lt;/p&gt;
&lt;p&gt;1. saisir &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;'ls -lL /dev/{{devicename}}'&lt;/code&gt;. La sortie ressemblera alors &#224; ceci :&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color=&#034;GREEN&#034;&gt;c&lt;/font&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;rw-rw-rw- 1 root sys &lt;/code&gt;&lt;font color=&#034;RED&#034;&gt;13&lt;/font&gt;, &lt;font color=&#034;BLUE&#034;&gt;2&lt;/font&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; Oct 18 19:56 /dev/null &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Le chiffre en rouge d&#233;signe le nombre 'majeur'. Le nombre en bleu est le nombre 'mineur'. La premi&#232;re lettre, en vert, pourra &#234;tre un 'c' ou un 'b', pour respectivement un &lt;i&gt;device&lt;/i&gt; de type caract&#232;re ou de type bloc. Vous pouvez cr&#233;er votre noeud &#224; l'aide de ces informations.&lt;/p&gt;
&lt;p&gt;2. D&#233;placez-vous dans le r&#233;pertoire dev de la prison (c.&#224;.d. /var/mail/dev ou /var/rpcbind/dev). Utilisez la commande 'mknod' pour cr&#233;er le &lt;i&gt;device&lt;/i&gt;. Par exemple : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mknod null c 13 2&lt;/code&gt; pour cr&#233;er un des &lt;i&gt;devices&lt;/i&gt; list&#233;s dans notre exemple. Les machines ont souvent des&lt;br class='autobr' /&gt;
nombres mineurs et majeurs diff&#233;rents, il convient donc d'y faire tr&#232;s attention.&lt;/p&gt;
&lt;p&gt;3. Au besoin, utilisez chown et chmod, prenez garde &#224; ce que les &lt;i&gt;devices&lt;/i&gt; aient exactement les m&#234;mes permissions que les originaux.&lt;/p&gt;
&lt;p&gt;Pour notre exemple de Sun RPCBIND, nous avons fini par d&#233;couvrir une fois arr&#234;t&#233; qu'il fallait aussi cr&#233;er un r&#233;pertoire nomm&#233; rpc_door avec le sticky bit. Il se peut que ce ne soit pas le cas sur votre syst&#232;me, mais devrez probablement faire quelque chose ressemblant &#224; ceci :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;mkdir -p /var/rpcbind/var/run/rpc_door chmod +t /var/rpcbind/var/run/rpc_door&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;C'en est fini du baratin.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;3.5&#034;&gt;&lt;strong&gt;3.5 Modifier les scripts de d&#233;marrage&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On y est presque ! Si vous avez oubli&#233; quelque chose, vous le verrez probablement en d&#233;marrant le d&#233;mon, la premi&#232;re fois. Vous l'avez test&#233; n'est ce pas ? Ah oui c'est vrai, on ne vous a pas dit comment ! Bon, avant de pouvoir tester correctement la plupart des d&#233;mons, il faudra arr&#234;ter la version non chroot&#233;e. Une fois le d&#233;mon en production tu&#233;, ex&#233;cutez cette commande :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/sbin/chroot /var/rpcbind /usr/sbin/rpcbind&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Si tout va bien, &#231;a devrait fonctionner. Si vous avez des erreurs du style fichiers ou biblioth&#232;ques manquantes, lancez truss pour d&#233;terminer lesquels et les copier dans le nouveau r&#233;pertoire. Une fois que tout est bon, commentez simplement l'ancien script de d&#233;marrage et remplacez-le par la version chroot&#233;e.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Comment chrooter depuis inetd&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Qpopper de Qualcomm d&#233;marre via inetd, et parfois n&#233;cessite une ligne de commande sp&#233;cigique dans /etc/inetd.conf pour s'ex&#233;cuter dans l'environnement chroot&#233;. Pour cela, utilisez une ligne semblable &#224; celle-ci :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; pop3 stream tcp nowait root /usr/sbin/chroot chroot /var/mail /usr/sbin/in.pop3 &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ou si vous utilisez les TCP wrappers, vous devrez leurrer inetd en lui faisant toujours croire que c'est in.pop3 qui d&#233;marre (ou ce que vous &#234;tes en train d'&#233;tudier). Pour cela, cr&#233;ez un lien symbolique entre le service &#224; chrooter et ins&#233;rez-le dans inetd.conf. Par exemple :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; lrwxrwxrwx 1 root other 6 Jul 28 15:42 /usr/sbin/in.pop3 -&gt; chroot* pop3 stream tcp nowait root /usr/sbin/tcpd in.pop3 /var/mail /usr/sbin/in.pop3 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;/usr/sbin/in.pop3 est &lt;i&gt;maintenant&lt;/i&gt; /usr/sbin/chroot (li&#233; symboliquement), et de fait quand inetd d&#233;marre le service in.pop3, chroot d&#233;marre alors avec les param&#232;tres '/var/mail /usr/sbin/in.pop3' ce qui d&#233;marrera la version chroot&#233;e de in.pop3 situ&#233;e dans /var/mail. Quand la copie chroot&#233;e est d&#233;marr&#233;e par chroot, le service est correctement configur&#233;.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;3.6&#034;&gt;&lt;strong&gt;3.6 Le produit final&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pour finir, notre projet ressemblera &#224; ceci :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sun RPCBIND&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;d none /var/rpcbind 0755 root other d none /var/rpcbind/dev 0755 root other c none /var/rpcbind/dev/conslog 21 0 0666 root other c none /var/rpcbind/dev/log 21 5 0640 root other c none /var/rpcbind/dev/msglog 97 1 0600 root other c none /var/rpcbind/dev/null 13 2 0666 root other c none /var/rpcbind/dev/udp 41 0 0666 root other c none /var/rpcbind/dev/tcp 42 0 0666 root other c none /var/rpcbind/dev/ticlts 105 2 0666 root other c none /var/rpcbind/dev/ticotsord 105 1 0666 root other c none /var/rpcbind/dev/ticots 105 0 0666 root other d none /var/rpcbind/var 0755 root other d none /var/rpcbind/var/run 0755 root other d none /var/rpcbind/var/run/rpc_door 1777 root root d none /var/rpcbind/tmp 0755 root other d none /var/rpcbind/usr 0755 root other d none /var/rpcbind/usr/share 0755 root other d none /var/rpcbind/usr/share/lib 0755 root other d none /var/rpcbind/usr/share/lib/zoneinfo 0755 root other d none /var/rpcbind/usr/share/lib/zoneinfo/US 0755 root other f none /var/rpcbind/usr/share/lib/zoneinfo/US/Eastern 0644 root bin d none /var/rpcbind/usr/lib 0755 root other f none /var/rpcbind/usr/lib/ld.so.1 0755 root other f none /var/rpcbind/usr/lib/libnsl.so.1 0755 root other f none /var/rpcbind/usr/lib/libsocket.so.1 0755 root other f none /var/rpcbind/usr/lib/libresolv.so.2 0755 root other f none /var/rpcbind/usr/lib/libmail.so.1 0755 root other f none /var/rpcbind/usr/lib/librt.so.1 0755 root other f none /var/rpcbind/usr/lib/libcrypt_i.so.1 0755 root other f none /var/rpcbind/usr/lib/libc.so.1 0755 root other f none /var/rpcbind/usr/lib/libdl.so.1 0755 root other f none /var/rpcbind/usr/lib/libmp.so.2 0755 root other f none /var/rpcbind/usr/lib/libaio.so.1 0755 root other f none /var/rpcbind/usr/lib/libgen.so.1 0755 root other f none /var/rpcbind/usr/lib/nss_files.so.1 0755 root other f none /var/rpcbind/usr/lib/nss_nis.so.1 0755 root other f none /var/rpcbind/usr/lib/libpthread.so.1 0755 root other f none /var/rpcbind/usr/lib/libthread.so.1 0755 root other f none /var/rpcbind/usr/lib/nss_dns.so.1 0755 root other f none /var/rpcbind/usr/lib/straddr.so 0755 root other d none /var/rpcbind/usr/sbin 0755 root other f none /var/rpcbind/usr/sbin/rpcbind 0555 root other d none /var/rpcbind/usr/local 0755 root other d none /var/rpcbind/usr/local/sbin 0755 root other d none /var/rpcbind/usr/local/lib 0755 root other d none /var/rpcbind/etc 0755 root other f none /var/rpcbind/etc/nsswitch.conf 0644 root other f none /var/rpcbind/etc/netconfig 0644 root other f none /var/rpcbind/etc/services 0444 root other f none /var/rpcbind/etc/resolv.conf 0644 root other f none /var/rpcbind/etc/hosts 0444 root other&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Qpopper de Qualcomm&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;d none /var/mail 1777 root mail d none /var/mail/usr 0755 root other d none /var/mail/usr/share 0755 root other d none /var/mail/usr/share/lib 0755 root other d none /var/mail/usr/share/lib/zoneinfo 0755 root other d none /var/mail/usr/share/lib/zoneinfo/US 0755 root other f none /var/mail/usr/share/lib/zoneinfo/US/Eastern 0644 root bin d none /var/mail/usr/lib 0755 root other f none /var/mail/usr/lib/ld.so.1 0755 root other f none /var/mail/usr/lib/libnsl.so.1 0755 root other f none /var/mail/usr/lib/libsocket.so.1 0755 root other f none /var/mail/usr/lib/libresolv.so.2 0755 root other f none /var/mail/usr/lib/libmail.so.1 0755 root other f none /var/mail/usr/lib/librt.so.1 0755 root other f none /var/mail/usr/lib/libcrypt_i.so.1 0755 root other f none /var/mail/usr/lib/libc.so.1 0755 root other f none /var/mail/usr/lib/libdl.so.1 0755 root other f none /var/mail/usr/lib/libmp.so.2 0755 root other f none /var/mail/usr/lib/libaio.so.1 0755 root other f none /var/mail/usr/lib/libgen.so.1 0755 root other f none /var/mail/usr/lib/nss_files.so.1 0755 root other f none /var/mail/usr/lib/nss_nis.so.1 0755 root other f none /var/mail/usr/lib/libpthread.so.1 0755 root other f none /var/mail/usr/lib/libthread.so.1 0755 root other f none /var/mail/usr/lib/nss_dns.so.1 0755 root other d none /var/mail/usr/sbin 0755 root other f none /var/mail/usr/sbin/in.pop3 0755 root other d none /var/mail/usr/local/lib 0755 root other d none /var/mail/etc 0755 root other f none /var/mail/etc/passwd 0444 root other f none /var/mail/etc/shadow 0400 root other f none /var/mail/etc/hosts.allow 0600 root other f none /var/mail/etc/nsswitch.conf 0644 root other f none /var/mail/etc/hosts.deny 0600 root other f none /var/mail/etc/netconfig 0644 root other f none /var/mail/etc/services 0444 root other f none /var/mail/etc/resolv.conf 0644 root other f none /var/mail/etc/hosts 0444 root other d none /var/mail/var 0755 root other s none /var/mail/var/mail=/ d none /var/mail/dev 0755 root other c none /var/mail/dev/udp 41 0 0666 root other c none /var/mail/dev/null 13 2 0666 root other c none /var/mail/dev/conslog 21 0 0666 root other c none /var/mail/dev/log 21 5 0640 root other c none /var/mail/dev/msglog 97 1 0600 root other&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Les d&#233;mons que j'ai personnellement&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb9-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Il s'agit ici de l'auteur de l'article, Jonathan A. Zdziarski&#034; id=&#034;nh9-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; chroot&#233;&lt;br class='autobr' /&gt;
sans probl&#232;me :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Qpopper &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; RPCBind
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Named (c'est beaucoup mieux que la version de base)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Stunnel &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Apache &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Nscd
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; SecurID Server &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; RADIUS &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Squid &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; syslogd&lt;/p&gt;
&lt;p&gt;Les d&#233;mons th&#233;oriquement chrootables, mais que je n'ai pas essay&#233; :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Portmap &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Lpd (avec un peu d'imagination)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Gated &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Routed &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Identd &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Comsat &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Talkd &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Tftpd &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Sadmind&lt;/p&gt;
&lt;p&gt;La plupart des autres services peuvent probablement &#234;tre tout simplement arr&#234;t&#233;s.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;#3.7&#034;&gt;&lt;strong&gt;3.7 Renseigner le syslog&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le programme syslog qui accompagne les syst&#232;mes &#224; base de System V exploite /dev/log et peut utiliser d'autres &lt;i&gt;devices&lt;/i&gt; du style &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/dev/*log&lt;/code&gt;. C'est tr&#232;s pratique car il peut continuer &#224; servir &#224; vous avertir. Il vous suffit de recr&#233;er ces &lt;i&gt;devices&lt;/i&gt; dans l'environnement chroot&#233;. J'ai essay&#233; sur Solaris et &#231;a fonctionne. Sur des syst&#232;mes non bas&#233;s sur System V comme Linux, il faudra probablement envoyer des paquets syslog vers la machine elle-m&#234;me.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Partie IV : Pour aller plus loin&lt;/h2&gt;
&lt;p&gt;&lt;a name=&#034;4.1&#034;&gt;&lt;strong&gt;4.1 Comment savoir si vous vous trouvez dans un environnement chroot&#233;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Certains ont voulu savoir s'ils se trouvaient en environnement chroot&#233; ou pas. Tous les points de montage du syst&#232;me de fichier UFS avaient une inode num&#233;rot&#233;e 2. Ce qui signifiait que la racine / chroot&#233;e n'&#233;tait pas un point de montage, le num&#233;ro d'inode serait diff&#233;rent. Comme la plupart des administrateurs syst&#232;mes utilisent chroot sans s'en inqui&#233;ter, le code suivant peut vous dire si l'environnement chroot&#233; est un point de montage ou pas.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;sys/types.h&gt; #include &lt;sys/stat.h&gt; int main(int argc, char **argv) {{ struct stat x; if (stat(&#034;/&#034;, &amp;amp;x)) {{ printf(&#034;Unable to stat /&#034;); exit(EXIT_FAILURE);&lt;br&gt; }} if (x.st_ino==2) {{ printf(&#034;I am not chrooted or chrooted on a mountpoint\n&#034;); }} else {{ printf(&#034;I am chrooted\n&#034;); }} exit(EXIT_SUCCESS); }}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cependant si vous n'avez pas un environnement syst&#232;me complet (c'est-&#224;-dire pas de fichier shadow, pas de binaire 'su' , ou autre chose tout aussi sympathique), il est facile de savoir que vous &#234;tes dans un environnement chroot&#233;.&lt;/p&gt;
&lt;p&gt;Des administrateurs recr&#233;ent un environnement syst&#232;me complet pour leurs utilisateurs afin qu'ils ne s'aper&#231;oivent pas qu'ils travaillent dans un environnement chroot&#233;. Si l'inode de / est 2, vous pouvez suspecter que votre environnement de travail est chroot&#233;. Vous pouvez alors le v&#233;rifier de la fa&#231;on suivante :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Contr&#244;lez la pr&#233;sence de certains fichiers comme le /etc/shadow (pour els shadow password) ou le binaire 'su'. &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &#201;tablissez la liste des processus et rep&#233;rez ceux qui correspondent aux binaires que vous soups&#231;onnez &#234;tre chroot&#233;s (mais certains syst&#232;mes d'exploitation autorisent les administrateurs &#224; cacher les processus). &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Si l'OS a un r&#233;pertoire /proc, cherchez o&#249; est /proc.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Lancez la commande 'df' et v&#233;rifiez si d'autres syst&#232;mes de fichiers sont mont&#233;s . Si c'est le cas, les voyez vous ? Sinon, cela devient suspect.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;4.2&#034;&gt;&lt;strong&gt;4.2 Casser une cellule chroot&#233;e&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Casser une cellule chroot&#233;e bien faite peut s'av&#233;rer &#234;tre&lt;br class='autobr' /&gt;
tr&#232;s difficile, mais avec les outils ad&#233;quats, on peut y arriver. Pour que quelqu'un puisse casser la cellule chroot&#233;e, il doit &#234;tre capable de :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Trouver une faille de s&#233;curit&#233; dans un des logiciels tournant dans la cellule, &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Exploiter cette faille et trouver un moyen d'envoyer du code en m&#233;moire ou sur le disque,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Une fois charg&#233; en m&#233;moire, arriver &#224; l'ex&#233;cuter en tant que root,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Une fois charg&#233; sur le disque, envoyer aussi un shell pour ex&#233;cuter ce code en tant que root.&lt;/p&gt;
&lt;p&gt;Envoyer et ex&#233;cuter le code malicieux en m&#233;moire peut &#234;tre aussi simple que d'ex&#233;cuter un code en tant que root dans un shell comme cela a d&#233;j&#224; pu &#234;tre montr&#233; dans de nombreux &lt;i&gt;exploits&lt;/i&gt;. Le code complet pour casser une cellule chroot&#233;e fait &#224; peine 139 bytes ! Une fois &#233;labor&#233;, casser la cellule est relativement simple. Attention, le sc&#233;nario qui suit n'est r&#233;alisable que si le logiciel en cours tourne en tant que root. Il est de fait fortement recommand&#233;, pour rendre chroot plus puissant, de d&#233;marrer les applications syst&#232;mes avec des utilisateurs sans privil&#232;ge. Cela rendra beaucoup plus difficile l'effraction de la cellule.&lt;/p&gt;
&lt;p&gt;L'effraction sort du cadre de ce document, mais le lien suivant constitue un bon point de d&#233;part pour une explication : &lt;br class='autobr' /&gt;
&lt;a href=&#034;http://www.bpfh.net/computing/docs/chroot-break.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www.bpfh.net/computing/docs/chroot-break.html&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Avec beaucoup de m&#233;thode et en comprenant bien les vuln&#233;rabilit&#233;s de chroot, il doit &#234;tre possible de rendre une prison particuli&#232;rement difficile &#224; casser. Il existe &#233;galement d'excellents outils pour intercepter les appels syst&#232;me (comme ceux lanc&#233;s par les shells root par exemple) afin d'am&#233;liorer la s&#233;curit&#233; de votre OS.&lt;/p&gt;
&lt;p&gt;&lt;a name=&#034;4.3&#034;&gt;&lt;strong&gt;4.3 Les erreurs &#224; ne pas commettre&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;M&#234;me dans un environnement chroot&#233;, d&#233;marrer un logiciel&lt;br class='autobr' /&gt;
avec des trous de s&#233;curit&#233; d&#233;grade consid&#233;rablement&lt;br class='autobr' /&gt;
la s&#233;curit&#233; fournie par chroot. Ce qui suit est une liste&lt;br class='autobr' /&gt;
des erreurs fr&#233;quentes que les administrateurs peuvent commettre en chrootant des processus :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;Erreur : &lt;/strong&gt;Ex&#233;cuter des processus chroot&#233; avec des&lt;br class='autobr' /&gt;
privil&#232;ges root.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;Niveau critique : &lt;/strong&gt;&lt;font color=&#034;RED&#034;&gt;Important&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Une des pens&#233;es illusoires les plus courantes est de supposer qu'ex&#233;cuter le logiciel en tant que root dans un environnement chroot&#233; soit s&#251;rs. C'est compl&#232;tement faux. L'id&#233;e qui r&#233;git chroot est de prot&#233;ger votre syst&#232;me contre l'exploitation d'une vuln&#233;rabilit&#233; du logiciel cible, par un intrus. Si de fait votre logiciel est vuln&#233;rable, le lancer en tant que root peut compromettre votre syst&#232;me de nombreuses fa&#231;ons. Bien s&#251;r, chroot vous prot&#232;ge de la plupart des &lt;i&gt;script kiddie&lt;/i&gt;, mais un pirate exp&#233;riment&#233; peut facilement casser la cellule (s'il a des privil&#232;ges root), s'amuser avec les devices dans /dev chroot&#233; , tuer, tracer, snooper des processus. Et, si il est anim&#233; de mauvaises intentions, il peut causer beaucoup de ravages depuis la cellule.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;Solution : &lt;/strong&gt;Modifiez l'identifiant de l'utilisateur et du groupe apr&#232;s le chrootage. Cela peut &#234;tre fait manuellement en changeant le code source avec les appels des fonctions setuid() et setgid(), ou en &#233;crivant un petit emballage tout autour (on parle de &lt;i&gt;wrapper&lt;/i&gt;). Comme le logiciel s'ex&#233;cute dans un environnement chroot&#233;, vous devriez &#234;tre capable de changer les permissions pour les attribuer &#224; un utilisateur autre que root. Par exemple, si vous chrootez Qpopper, vous pouvez le modifier de fa&#231;on &#224; ce qu'il s'execute en 'nobody' (sans utilisateur), mais dans le groupe ayant acc&#232;s &#224; toutes les bo&#238;tes aux lettres. Ceci vous permettra d'ex&#233;cuter le service de messagerie sans &#234;tre le super-utilisateur.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;Erreur : &lt;/strong&gt;Utiliser une copie du fichier de mot de passe cach&#233; (shadow password)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;Niveau critique : &lt;/strong&gt;&lt;font color=&#034;ORANGE&#034;&gt;Haut&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Dans le cas de Qpopper, nous avions copi&#233; le fichier shadow dans le r&#233;pertoire chroot&#233; afin de permettre aux utilisateurs de s'authentifier. Malheureusement, si le programme popper en lui m&#234;me n'est pas vuln&#233;rable, un intrus peut essayer de d&#233;crypter ce fichier shadow, utiliser un outil s&#233;cifique, puis avoir acc&#232;s &#224; tout le syst&#232;me en passant par la grande porte.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;Solution : &lt;/strong&gt;Il en existe quelques-unes pour y rem&#233;dier. D'abord, si vous savez installer et configurer une m&#233;thode externe d'authentification (par exemple RADIUS, SecurID, ou m&#234;me en utilisants les librairies PAM), vous mettrez en place une authentification sans utiliser le fichier shadow &#224; l'int&#233;rieur de la prison. Il s'agit de la la meilleure solution. Si elle n'est pas envisageable dans votre cas, un autre moyen de contourner le probl&#232;me consiste &#224; analyser le fichier shadow avant de le copier, d'en enlever tout utilisateur syst&#232;me ou ayant des privil&#232;ges. Si un compte privil&#233;gi&#233; doit absoluement &#234;tre pr&#233;sent dans le fichier, utilisez des mots de passe et des adresses mails diff&#233;rents de ceux utilis&#233;s pour le syst&#232;me.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;Erreur : &lt;/strong&gt;Cr&#233;er des environnements syst&#232;me virtuels&lt;br class='autobr' /&gt;
en dehors d'un point de montage
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;niveau critique : &lt;/strong&gt;&lt;font color=&#034;BLUE&#034;&gt;L&#233;ger&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;En chrootant un r&#233;pertoire qui ne fait pas &#233;galement office de point de montage, vous fournissez un petit trou de s&#233;curit&#233; qui permettra &#224; l'utilisateur de savoir s'il s'agit d'un environnement chroot&#233;. Comme nous l'avons vu ci-dessus, tous les points de montage ont une inode dont le num&#233;ro est 2. En chrootant en dehors d'un point de montage, vous permettez donc de savoir que le processus est chroot&#233;. Cette erreur n'est pas tr&#232;s dangereuse en soit puisqu'elle ne permet pas de casser cet environnement chroot&#233;. Elle fournit n&#233;anmoins une information que l'intrus ne devrait pas savoir.&lt;/p&gt;
&lt;p&gt;Si vous avez un environnement chroot&#233; relativement restreint o&#249; les fichiers syst&#232;mes sont bien cach&#233;s, il n'y a pas de raison de changer quoique ce soit, mais si vous essayez de charger un environnement complet (c'est-&#224;-dire une machine virtuelle), placer la prison dans un point de montage est une bonne id&#233;e.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;Solution : &lt;/strong&gt;Si vous essayez de charger un environnement complet (une machine virtuelle) et que vous ne voulez pas faire savoir aux utilisateurs qu'ils sont chroot&#233;s, placez la prison dans un point de montage.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb9-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh9-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 9-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;&lt;strong&gt;Note sur les biblioth&#232;ques dynamiques : &lt;/strong&gt;Si vous pouvez disposer des sources du programme que vous souhaitez chrooter, vous devriez le recompiler avec des biblioth&#232;ques statiques. Cela vous &#233;vitera de copier&lt;br class='autobr' /&gt;
&#233;galement ces biblioth&#232;ques. Si, vous utilisez un syst&#232;me d'exploitation dont les biblioth&#232;ques sont fr&#233;quemment mises &#224; jour, il est alors pr&#233;f&#233;rable de recompiler le programme avec les biblioth&#232;ques dynamiques.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb9-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh9-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 9-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Il s'agit ici de l'auteur de l'article, Jonathan A. Zdziarski&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;&lt;i&gt;La version originale de cet article est consultable en ligne : &lt;a href=&#034;http://www.networkdweebs.com/chroot.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www.networkdweebs.com/chroot.html&lt;/a&gt;&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;&#034;Reproduction of this document prohibited without permission&lt;br class='autobr' /&gt;
&#169; 2002 Network Dweebs Corporation. All Rights Reserved.&#034;&lt;/p&gt;
&lt;p&gt;&#034;Tout reproduction de ce document sans la permission de l'auteur est interdite, (c) 2002 Network Dweebs Corporation. Tous Droits R&#233;serv&#233;s.&#034;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Cr&#233;er des cocons &#224; l'&#233;preuve des root-kits</title>
		<link>http://clx.asso.fr/spip/?Creer-des-cocons-a-l-epreuve-des-root-kits</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Creer-des-cocons-a-l-epreuve-des-root-kits</guid>
		<dc:date>2002-11-04T13:41:34Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Jonathan A. Zdziarski</dc:creator>


		<dc:subject>Piratage</dc:subject>

		<description>&lt;p&gt;Comment reprendre la main sur un serveur potentiellement compromis par un root-kit ? Gr&#226;ce &#224; l'utilisation d'un cocon (saferoom).&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Piratage-+" rel="tag"&gt;Piratage&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;L'article initial de Jonathan A. Zdiarski est disponible sur cette page :&lt;a href=&#034;http://www.networkdweebs.com/saferoom.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www.networkdweebs.com/saferoom.html&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Apportez toutes suggestions d'ajouts et/ou corrections &#224; &lt;a href=&#034;mailto:jonathan@networkdweebs.com&#034; class=&#034;spip_mail&#034;&gt;Jonathan A. Zdziarski&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Nous venons de voir comment chrooter un service. En cas d'attaque, il est toujours bon de d&#233;tecter une attaque. Pour cela, une technique consiste &#224; se pr&#233;parer un petit cocon (ou &lt;i&gt;saferoom&lt;/i&gt;) bien &#224; l'abri.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Table des mati&#232;res&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Partie I : Introduction aux &lt;i&gt;Saferooms&lt;/i&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#1.1&#034; class=&#034;spip_ancre&#034;&gt;1.1&lt;/a&gt; Qu'est ce qu'un root-kit ?
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#1.2&#034; class=&#034;spip_ancre&#034;&gt;1.2&lt;/a&gt; Comment puis-je me prot&#233;ger ?
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#1.3&#034; class=&#034;spip_ancre&#034;&gt;1.3&lt;/a&gt; Qu'est ce qu'un cocon (&lt;i&gt;saferoom&lt;/i&gt;) ?
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#1.4&#034; class=&#034;spip_ancre&#034;&gt;1.4&lt;/a&gt; Un cocon est-il inviolable ?
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#1.5&#034; class=&#034;spip_ancre&#034;&gt;1.5&lt;/a&gt; Ce qu'il faut savoir pour cr&#233;er un cocon.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Partie II : Cr&#233;er un cocon&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#2.1&#034; class=&#034;spip_ancre&#034;&gt;2.1&lt;/a&gt; Configuration du disque du cocon
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#2.2&#034; class=&#034;spip_ancre&#034;&gt;2.2&lt;/a&gt; Remplir la cocon
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#2.3&#034; class=&#034;spip_ancre&#034;&gt;2.3&lt;/a&gt; Installation du chemin (path)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#2.4&#034; class=&#034;spip_ancre&#034;&gt;2.4&lt;/a&gt; Verrouillage du cocon
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;#2.5&#034; class=&#034;spip_ancre&#034;&gt;2.5&lt;/a&gt; Surveillance du cocon&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Partie I : Introduction aux &lt;i&gt;Saferooms&lt;/i&gt; &lt;/h2&gt;
&lt;p&gt;&lt;i&gt;Si vous souhaitez permettre &#224; quelqu'un de p&#233;n&#233;trer votre syst&#232;me pour le d&#233;truire, m&#226;chez-lui le travail.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a name=&#034;1.1&#034;&gt;1.1 Qu'est ce qu'un root-kit ?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Un root-kit est un outil utilis&#233; par des intrus pour manipuler votre machine tout en rendant la d&#233;tection de l'effraction du syst&#232;me beaucoup plus difficile. Les root-kits incluent g&#233;n&#233;ralement des programmes cr&#233;ant des portes d'entr&#233;e (&lt;i&gt;back-doors&lt;/i&gt;). Elles permettent &#224; de nouveaux intrus de p&#233;n&#233;trer le syst&#232;me. La plupart des sites internet consacr&#233;s aux attaques fournissent des root-kits en t&#233;l&#233;chargement libre.&lt;br class='autobr' /&gt;
Une fois qu'un intrus a r&#233;ussi &#224; p&#233;n&#233;trer dans un syst&#232;me, il compile et installe son root-kit, tout simplement. Le root-kit contient g&#233;n&#233;ralement plusieurs programmes semblables aux outils syst&#232;me tels que &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;find, netstat, ps&lt;/code&gt;, etc. Les versions modifi&#233;es de ces outils cachent volontairement l'activit&#233; de l'intrus, ainsi ses activit&#233;s ne sont pas d&#233;tect&#233;s tout de suite par l'administrateur syst&#232;me. Le plus dangereux, c'est que l'administrateur syst&#232;me n'a souvent aucune raison de suspecter l'effraction du syst&#232;me, et ne tente pas d'examiner attentivement ce dernier.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a name=&#034;1.2&#034;&gt;1.2 Comment puis-je me prot&#233;ger ?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il existe plusieurs logiciels pour d&#233;tecter des root-kits. Une recherche sur Internet vous en sugg&#233;rera quelques-uns. Une autre mani&#232;re de se prot&#233;ger contre un root-kit est de garder une trace des r&#233;sum&#233;s (&lt;i&gt;checksum&lt;/i&gt;) de tous les binaires du syst&#232;me. Pour cela, utilisez des outils comme &lt;strong&gt;tripwire&lt;/strong&gt; ou &lt;strong&gt;md5sum&lt;/strong&gt;. Les deux paquetages sont &#224; disposition du grand public, et cr&#233;ent des &#034;empreintes digitales&#034; de chaque fichier, permettant &#224; un administrateur syst&#232;me de d&#233;tecter tout changement des empreintes initiales. Ils sont tr&#232;s utiles pour d&#233;tecter si le syst&#232;me est compromis et notamment plus tard, lors de la r&#233;cup&#233;ration de celui-ci, sans devoir tout r&#233;installer. Le sujet de cet article, cependant, est de d&#233;tailler une m&#233;thode non conventionnelle de protection appel&#233;e un cocon.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a name=&#034;1.3&#034;&gt;Qu'est ce qu'un cocon (&lt;i&gt;saferoom&lt;/i&gt;) ?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si vous avez d&#233;j&#224; fait installer un syst&#232;me de s&#233;curit&#233; &#224; votre domicile, vous avez remarqu&#233; que le technicien (s'il n'est pas mauvais) a mis en place un ensemble de verrous et a renforc&#233; un point d'entr&#233;e (&#224; un endroit bien particulier). En cas de probl&#232;me, toute la famille se rend dans cette pi&#232;ce pour emp&#234;cher l'acc&#232;s au cambrioleur.&lt;/p&gt;
&lt;p&gt;Un cocon, en termes de s&#233;curit&#233;, est un 'emplacement' imp&#233;n&#233;trable sur votre syst&#232;me contenant les outils critiques n&#233;cessaires pour vos administrateurs syst&#232;mes avec toutes les fonctions indispensables. Les cocons sont g&#233;n&#233;ralement prioritaires sur le chemin conventionnel d&#233;clar&#233; dans le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.login&lt;/code&gt; ou le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.profile&lt;/code&gt; de l'administrateur syst&#232;me. On y trouve les outils de maintenance quotidienne. Un cocon, utilis&#233; efficacement, fournit un ensemble d'outils pour d&#233;tecter des&lt;br class='autobr' /&gt;
compromissions, essentiellement gr&#226;ce des fonctions de tra&#231;age.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a name=&#034;1.4&#034;&gt;Un cocon est-il inviolable ?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cela d&#233;pend du type de cocon que vous cr&#233;ez. Si vous r&#233;ussissez &#224; mettre en place un cocon en lecture seule stricte, m&#234;me pour root, vous devez continuer &#224; vous m&#233;fier de certains intrus capables de modifier votre chemin (&lt;i&gt;path&lt;/i&gt;) et qui par la suite pourront d&#233;monter compl&#232;tement le cocon. Bonne nouvelle, les intrus ne les &#034;cherchent&#034; pas syst&#233;matiquement. Quand un intrus p&#233;n&#232;tre par effraction dans votre syst&#232;me, ils r&#233;alisent qu'ils n'ont que tr&#232;s peu de temps pour s&#233;curiser leur propre acc&#232;s et donc encore moins pour y installer leur root-kit. Pour qu'un intrus puisse neutraliser un cocon, il doit d&#233;j&#224; en conna&#238;tre son existence. Par ailleurs, en le d&#233;montant, il risque d'&#234;tre d&#233;tect&#233;, un peu comme s'il se jetait dans la gueule du loup.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a name=&#034;1.5&#034;&gt;Ce qu'il faut savoir pour cr&#233;er un cocon.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il existe deux types de 'saferooms&lt;/i&gt; : les cocons physiques, ou logiques. Le cocon id&#233;al est situ&#233; sur un disque s&#233;par&#233;,&lt;br class='autobr' /&gt;
physiquement prot&#233;g&#233; en &#233;criture grace &#224; un cavalier mat&#233;riel. Face &#224; des contraintes de co&#251;t, certains choisissent cependant de simplement cr&#233;er un r&#233;pertoire cach&#233; sur une partition accessible en &#233;criture (il s'agit d'un cocon logique). Ceci rend tr&#232;s facile la neutralisation du cocon, mais est encore efficace car psychologiquement l'intrus moyen ne va pas rechercher un r&#233;pertoire cach&#233;. Cela a quelques avantages, car le &lt;i&gt;saferoom&lt;/i&gt; n'appara&#238;tra pas dans l'affichage de points de montages du syst&#232;me. L'intrus devra rechercher des binaires syst&#232;mes dans le syst&#232;me tout entier, ou trouver les comptes d'administrateurs, en examiner leur .profile ou leur .login afin de rep&#233;rer une &#233;ventuelle &lt;i&gt;saferoom&lt;/i&gt; dans un r&#233;pertoire cach&#233;. En supposant qu'il la trouve malgr&#233; tout, il doit toujours se m&#233;fier de ne pas signaler sa pr&#233;sence (et donc r&#233;v&#233;ler l'intrusion). Si je me suis &#034;logu&#233;&#034; avec mon compte et qu'un cocon est d&#233;clar&#233; dans mon chemin de base et que quelqu'un le supprime, j'obtiendrai soudainement des erreurs de &#034;fichier non trouv&#233;&#034;. De m&#234;me, il y a bien d'autres choses &#224; prendre en compte. Un bon administrateur pourrait &#233;crire une t&#226;che automatique qui v&#233;rifierait l'&#233;tat du cocon et enverrait un courriel en cas de changement ou de disparition. Toutes ces diff&#233;rentes protections non standardis&#233;es du syst&#232;me prennent un&lt;br class='autobr' /&gt;
intrus par surprise, et augmentent de mani&#232;re significative le risque de d&#233;tection.&lt;/p&gt;
&lt;p&gt;Si vous voulez vraiment assurer la s&#233;curit&#233; de vos syst&#232;mes, nous recommendons l'utilisation des deux cocons (un de chaque type). Si un intrus recherche un cocon et en neutralise un, il y a une chance tr&#232;s mince qu'il en recherche un second. Et, si toutefois il prenait le temps de la trouver tout de m&#234;me, il augmenterait &#233;norm&#233;ment les risques de d&#233;tection.&lt;/p&gt;
&lt;p&gt;Les &#233;tapes de base pour cr&#233;er un cocon sont :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Pr&#233;parer un disque (ou un r&#233;pertoire) &#224; agir en tant que tel,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Y ajouter les binaires critiques,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Ajouter les cocons dans les chemins de base des administrateurs (ou celui par d&#233;faut),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Verrouiller le cocon.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Partie II : Cr&#233;er un cocon&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;a name=&#034;2.1&#034;&gt;Configuration du disque du cocon&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si vous cr&#233;ez un cocon physique, vous devrez trouver un disque avec un cavalier pour permettre la position en lecture seule. Ils sont&lt;br class='autobr' /&gt;
assez fr&#233;quents. Comme la taille du cocon sera particuli&#232;rement petite (&#224; moins que vous souhaitiez quelque chose de mieux), plus le disque est petit, mieux c'est. Une fois le disque install&#233; et branch&#233; en lecture et &#233;criture, choisissez un point de montage (pas trop &#233;vident) et installez-y les&lt;br class='autobr' /&gt;
fichiers souhait&#233;s. Si vous cr&#233;ez un cocon logique, trouvez un endroit pour y cr&#233;er le r&#233;pertoire. Beaucoup de gens choisissent quelque chose du genre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/local/lib/perl5&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/include/sys&lt;/code&gt;. Quelque soit l'endroit, essayez de ne pas choisir un nom de fichier trop &#233;vident (&#034;saferoom&#034; est par exemple un mauvais choix).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a name=&#034;2.2&#034;&gt;Remplir le cocon&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Une fois que vous avez cr&#233;&#233; votre cocon initial, vous voudrez y cr&#233;er un r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;bin&lt;/code&gt; et y copier les fichiers critiques. On pourrait y mettre :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;crontab du find finger kill killall ls netstat passwd ps top&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Tout autre outil fr&#233;quemment utilis&#233; par les administrateurs peut y prendre place. Une fois que vous les avez copi&#233;s, la prochaine chose que vous devrez faire est d'y copier les biblioth&#232;ques dynamiques afin d'utiliser ces fichiers critiques. Si un intrus parvenait &#224; d&#233;poser ses propres biblioth&#232;ques, vous pourrez utiliser les originales. Cr&#233;ez un r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/lib&lt;/code&gt; dans votre cocon, puis faites un 'ldd' sur tous les binaires que vous y avez copi&#233;s. Par exemple :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ldd /moncocon/bin/* | awk '{print $3}'|sort|uniq&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Le r&#233;sultat devrait &#234;tre utile. Copiez toutes les librairies &#233;num&#233;r&#233;es dans le r&#233;pertoire lib.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a name=&#034;2.3&#034;&gt;Installation du chemin&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Une fois que vous avez cr&#233;&#233; votre cocon, vous voudrez rendre ces outils et biblioth&#232;ques disponibles par d&#233;faut pour les administrateurs syst&#232;me. En quoi le cocon est int&#233;ressant si vous continuez &#224; utiliser les outils originaux et que l'intrus p&#233;n&#232;tre malgr&#233; tout dans le syst&#232;me ? Vous ne le d&#233;tecterez&lt;br class='autobr' /&gt;
jamais si vous n'utilisez pas les programmes du cocon. Certains administrateurs pr&#233;f&#232;rent utiliser les nouvelles biblioth&#232;ques mais pas les nouveaux outils. L'intrus a encore plus de mal &#224; d&#233;couvrir l'existence du cocon puisqu'aucune mention n'en est faite dans le .login ou le .profile. Cela force cependant les administrateurs &#224; taper le chemin complet de la biblioth&#232;que lorsqu'ils lancent le programme. Quelle que soit la m&#233;thode, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/lib&lt;/code&gt; devra passer&lt;br class='autobr' /&gt;
apr&#232;s le nouveau r&#233;pertoire lib. Sur quelques syst&#232;mes d'exploitation, on peut modifier le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ld.so.conf&lt;/code&gt; pour inclure le chemin des nouvelles biblioth&#232;ques, d'autres pr&#233;f&#232;rent positionner manuellement les variables d'environnement correctes. La variable &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;LD_LIBRARY_PATH&lt;/code&gt; est g&#233;n&#233;ralement employ&#233;e &#224; cette fin, bien que quelques administrateurs syst&#232;mes aient choisi de modifier le chemin complet. Consultez la documentation pour trouver la solution la plus &#233;l&#233;gante.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a name=&#034;2.4&#034;&gt;Verrouiller votre cocon&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Une fois que vous avez cr&#233;&#233; et analys&#233; votre cocon, vous &#234;tes pr&#234;t &#224; le verrouiller. Si vous avez un disque physique, placez le cavalier sur la position lecture seule. Personne ne sera plus en mesure d'&#233;crire dessus.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a name=&#034;2.5&#034;&gt;Surveiller votre cocon&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Les cocons pouvant &#234;tre d&#233;truits, en surveiller l'activit&#233; est une bonne id&#233;e, par exemple par des contr&#244;les p&#233;riodiques en regardant les points de montage, ou&lt;br class='autobr' /&gt;
en examinant le r&#233;pertoire. Cela est d&#233;j&#224; un bon d&#233;but. La meilleure mani&#232;re de surveiller votre cocon, cependant, est d'&#233;crire un script pour toutes ces t&#226;ches. Les diff&#233;rentes actions &#224; pr&#233;voir : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; produire des sommes md5 sur les socons accessibles en lecture et &#233;criture, &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; v&#233;rifier les points de montages inalt&#233;rables, tout cela de fa&#231;on script&#233;s le tout accompagn&#233; &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; d'un envoi d'avertissement en cas d'intrusion et de d&#233;montage de votre cocon.&lt;/p&gt;
&lt;p&gt;Mais comme nous l'avons dit, tous les intrus ne recherchent pas syst&#233;matiquement les cocons.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;La version originale de cet article est consultable en ligne : &lt;a href=&#034;http://www.networkdweebs.com/saferoom.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www.networkdweebs.com/saferoom.html&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&#034;Reproduction of this document prohibited without permission &#169; 2002 Network Dweebs Corporation. All Rights Reserved.&#034;&lt;/p&gt;
&lt;p&gt;&#034;Toute reproduction de ce document sans la permission de l'auteur est interdite, (c) 2002 Network Dweebs Corporation. Tous Droits R&#233;serv&#233;s.&#034;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Planter Linux sans tout planter</title>
		<link>http://clx.asso.fr/spip/?Planter-Linux-sans-tout-planter</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Planter-Linux-sans-tout-planter</guid>
		<dc:date>2002-08-26T16:06:07Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Ga&#233;tan RYCKEBOER</dc:creator>


		<dc:subject>Sauvegardes</dc:subject>

		<description>&lt;p&gt;Comment &#233;viter d'attendre 15 minutes apr&#218;s un plantage hard ? Comment &#233;viter de perdre des donn&#233;es parce qu'il y a eu une panne de courant ? Les solutions existent !&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Sauvegardes-+" rel="tag"&gt;Sauvegardes&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Installer du mat&#233;riel, une carte, un scanner... Ce n'est pas toujours super facile. Et &#231;a le devient encore moins, quand le mat&#233;riel est vieux, et... hum... instable.&lt;br&gt;
Comment &#233;viter d'attendre 15 minutes apr&#218;s un plantage hard ? Comment &#233;viter de perdre des donn&#233;es parce qu'il y a eu une panne de courant ? Les solutions existent !&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Le mat&#233;riel, &#231;a a tendance &#224; planter. C'est d'ailleurs l&#224; que se situe le point faible de Linux : il ne r&#233;pare pas le mat&#233;riel tout seul. Ben oui, c'est pour &#231;a qu'on fait des syst&#232;mes embarqu&#233;s (sous &lt;a href=&#034;http://www.enseirb.fr/~kadionik/embedded/embedded.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;EmbLinux&lt;/a&gt; ;-) mais &#231;a c'est une autre histoire.&lt;/p&gt;
&lt;p&gt;En cas de plantage, si on ne fait rien, les partitions mont&#233;es en lecture/&#233;criture ne sont pas d&#233;mont&#233;es correctement. Deux probl&#232;mes se posent, qui sont li&#233;s au cache en &#233;criture de linux :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;Le cache n'est pas vid&#233;&lt;/strong&gt;, il y a corruption de donn&#233;es. C'est &#224; dire que des fichiers qui &#233;taient en train d'&#234;tre modifi&#233;s passent dans un &#233;tat instable. LEs donn&#233;es qu'ils contiennet ne sont pas compl&#232;tes&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;puisque certaines informations qui auraient d&#251; &#234;tre &#233;crire sont rest&#233;es dans (&#8230;)&#034; id=&#034;nh10-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;. Il faut donc corriger le&lt;br class='autobr' /&gt;
contenu de ces fichiers, ou les supprimer.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;Aucune corruption, mais le syst&#232;me ne le sait pas&lt;/strong&gt;. Un test de toute la partition sera effectu&#233;, ce qui risque de prendre un certain temps sur les partitions non journalis&#233;es comme celles format&#233;es en ext2&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Le type de partition le plus courant sous Linux&#034; id=&#034;nh10-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Nota : Le test en question (fsck) n'est pas ex&#233;cut&#233; uniquement si le syst&#232;me&lt;br class='autobr' /&gt;
d&#233;tecte des erreurs. Chaque partition poss&#232;de une valeur de &lt;i&gt;nombre maximal de&lt;br class='autobr' /&gt;
montages&lt;/i&gt; (ou &lt;i&gt;dump&lt;/i&gt;) et un compteur de &lt;i&gt;montages&lt;/i&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;&#231;a vient de &#034;to mount&#034;, et de la commande mount ;-)&#034; id=&#034;nh10-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;. Au bout d'un nombre d&#233;fini de montages, un test fsck est effectu&#233; sur cette partition. Le programme &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tune2fs&lt;/code&gt; permet de r&#233;gler la valeur de ce compteur. Voir la suite de l'article.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Les magic SysReq&lt;/h2&gt;
&lt;p&gt;Avant que la situation ne soit vraiment catastrophique et, si vous en avez la possibilit&#233;, il vaut mieux essayer de copier le cache interne vers le disque dur, soit par la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sync&lt;/code&gt;, soit par les &lt;i&gt;magic SysReq Keys&lt;/i&gt; (traduction libre : les touches de requ&#234;te syst&#232;me magiques).&lt;br class='autobr' /&gt;
Il s'agit d'une combinaison de touches permettant d'envoyer directement des ordres au kernel linux. Un &lt;a href=&#034;http://www.linuxhq.com/kernel/v2.4/doc/sysrq.txt.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;pointeur chez linuxHQ&lt;/a&gt; ou une petite lecture du fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/src/linuxXXXXX/Documentation/sysrq.txt&lt;/code&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-4&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Sur une Redhat Mandrake ou SuSE, il s'agit de /usr/src/linux. Sur une (&#8230;)&#034; id=&#034;nh10-4&#034;&gt;4&lt;/a&gt;]&lt;/span&gt; vous en dira plus long l&#224;-dessus.&lt;/p&gt;
&lt;p&gt;Pour utiliser ces combinaisons de touches, il faut avoir compil&#233; le noyau du syst&#232;me avec le support des &lt;i&gt;magic sysreq keys&lt;/i&gt; pour les noyaux 2.1 et sup&#233;rieur, dans le menu &#034;Kernel Hacking&#034;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-5&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Les noyaux compil&#233;s avec la plupart des distributions Linux poss&#232;dent d&#233;j&#224; (&#8230;)&#034; id=&#034;nh10-5&#034;&gt;5&lt;/a&gt;]&lt;/span&gt;. Voir &#224; ce propos :&lt;a href=&#034;http://lea-linux.org/kernel/kernel.php3&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;La page kernel de Lea-linux.org&lt;/a&gt;.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;N'oubliez pas de taper &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lilo&lt;/code&gt; apr&#232;s avoir copi&#233; le noyau fra&#238;chement recompil&#233; (!). Afin que le syst&#232;me prenne en compte les modifications que vous avez apport&#233;es au fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/lilo.conf&lt;/code&gt;.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Pour activer les touches magiques, il faut taper une commande &#224; la main, ou l'ajouter dans un des scripts de d&#233;marrage&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-6&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;&#199;a d&#233;pend des distributions, mais , ou code&gt;/etc/rcS.d/S01sysreq devraient (&#8230;)&#034; id=&#034;nh10-6&#034;&gt;6&lt;/a&gt;]&lt;/span&gt; :&lt;br&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;echo &#034;1&#034; &gt; /proc/sys/kernel/sysrq&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Si votre machine se plante sans espoir de retour, vous pouvez donc taper dans l'ordre :&lt;br class='manualbr' /&gt;&lt;strong&gt;ALT&lt;/strong&gt; - &lt;strong&gt;SysRq&lt;/strong&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-7&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;ou Syst ou [Impr Ecr] sur un clavier Fran&#231;ais, c'est &#224; dire la touche de (&#8230;)&#034; id=&#034;nh10-7&#034;&gt;7&lt;/a&gt;]&lt;/span&gt; - &lt;strong&gt;s&lt;/strong&gt; &lt;i&gt;SYNChronise le cache et le disque&lt;/i&gt;&lt;br class='manualbr' /&gt;&lt;strong&gt;ALT&lt;/strong&gt; - &lt;strong&gt;SysRq&lt;/strong&gt; - &lt;strong&gt;u&lt;/strong&gt; &lt;i&gt;d&#233;-moUnte les disques et les remonte en lecture seule&lt;/i&gt;&lt;br class='manualbr' /&gt;&lt;strong&gt;ALT&lt;/strong&gt; - &lt;strong&gt;SysRq&lt;/strong&gt; - &lt;strong&gt;b&lt;/strong&gt; &lt;i&gt;red&#233;marre (reBoote) le syst&#232;me, sans &#233;crire les donn&#233;es sur le disque&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Notez bien que sur certaines architectures, la touche SysRq (ou Syst) ne sera pas fonctionelle, voire carr&#233;ment inexistante (comme sur une Sparc ou une Sun Ultra, par exemple, o&#249; il faut taper &lt;strong&gt;Stop&lt;/strong&gt; au lieu de &lt;strong&gt;SysRq&lt;/strong&gt;). Quoiqu'il en soit, toutes les infos sur les touches magiques sont disponibles (en Anglais) aux &lt;a href=&#034;http://www.linuxhq.com/kernel/v2.4/doc/sysrq.txt.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;quartiers g&#233;n&#233;raux de Linux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Notez &#233;galement que ces trois commandes affichent comme r&#233;sultat &lt;strong&gt;OK&lt;/strong&gt; sur la console texte une fois le traitement achev&#233;. Tant que vous n'avez pas vu le message OK, si vous n'&#234;tes pas sous X-Window, bien s&#251;r, ce n'est pas la peine de passer &#224; la combinaison de touches suivante. Enfin, si le noyau (kernel) est vraiment bien plant&#233;, les combinaisons de touches SysReq ne serviront &#224; rien du tout.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Bien structurer ses donn&#233;es&lt;/h2&gt;
&lt;p&gt;Les touches magiques ne sont pas toujours suffisantes pour &#233;viter une perte de donn&#233;es. En cas de red&#233;marrage complet (red&#233;marrage en appuyant sur le bouton reset de l'ordinateur, ou initiative autonome de la part de votre ordinateur) &#8212; si vous n'avez pas le temps d'anticiper &#8212;, en cas de panne de courant ou d'appui impromptu sur le gros bouton rouge de la multiprise de courant, aucune intervention de secours n'est possible. Tout se passe en amont, pour &#233;viter d'avoir trop de casse au &lt;i&gt;fsck&lt;/i&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-8&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Ce n'est pas une contrep&#233;trie. C'est vraiment une commande qui existe&#034; id=&#034;nh10-8&#034;&gt;8&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Tout d'abord, si vous disposez de plusieurs disques, il convient de s&#233;parer les donn&#233;es du syst&#232;me. Ca permet de limiter la casse en cas de p&#233;pin sur un disque, mais &#231;a permettra &#233;galement de monter des partitions en lecture seule. Et &#231;a c'est vraiment int&#233;ressant.&lt;br class='autobr' /&gt;
Si vous n'avez qu'un disque, vous pouvez tout de m&#234;me faire deux partitions, l'une pour le syst&#232;me et l'autre pour les donn&#233;es. Mieux, trois partitions. /, /home et /var&lt;/p&gt;
&lt;p&gt;Je passe sur la cr&#233;ation des partitions, chacun a sa propre technique, mais disons que PQMagic&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-9&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Celui qui sort vos partitions de la &#034;merde&#034;&#034; id=&#034;nh10-9&#034;&gt;9&lt;/a&gt;]&lt;/span&gt; (ou plutot Partition Magic, de PowerQuest) tout en &#233;tant un logiciel commercial et propri&#233;taire, permet, entre autres, de changer la taille des partitions ext2 tout en conservant les donn&#233;es intactes (enfin... normalement).&lt;br class='autobr' /&gt;
Notons qu'il existe d'autres outils plus r&#233;cents, n'ayant donc pas la renom&#233;e de PQMagic comme &lt;a href=&#034;http://www.linux-mandrake.com/diskdrake&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;DiskDrake&lt;/a&gt;, inclus dans la distribution Mandrake, ou &lt;a href=&#034;http://www.gnu.org/software/parted/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;GNU Parted&lt;/a&gt; qui remplissent pourtant les m&#234;mes fonctions. L&#224;, ce sont des outils libres, mais personnellement, je ne les ai jamais utilis&#233;s.&lt;/p&gt;
&lt;p&gt;Bien. Maintenant, on imagine que vous avez deux partitions, vous pouvez &#233;ventuellement d&#233;placer des repertoires entiers de l'une vers l'autre, par exemple pour mettre /usr/src dans /home/src :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# mkdir /home/src # cp -rp /usr/src /home/src # mv /usr/src/ /usr/oldsrc # ln -s /home/src /usr/src&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-10&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Si vous vous sentez en veine, n'est pas mal non plus. C'est &#224; vous de voir ;-)&#034; id=&#034;nh10-10&#034;&gt;10&lt;/a&gt;]&lt;/span&gt;Et voil&#224;, un r&#233;pertoire d&#233;plac&#233;.&lt;/p&gt;
&lt;p&gt;Pour information, sur ma machine, j'ai un tr&#232;s gros r&#233;pertoire /home sur un disque &#224; part, un repertoire racine (/) de 150 Mo, un r&#233;pertoire /usr de 1 Go, et un r&#233;pertoire /var &#224; part. Mon /usr/src est sur /home. De temps en temps (quand les besoins de place se font sentir), je d&#233;place un r&#233;pertoire de l'un vers l'autre (tout SAUF /lib qui contient des librairies vitales pour les commandes mv, ls, rm, etc.)&lt;/p&gt;
&lt;p&gt;La bonne id&#233;e &#233;tant de mettre les informations statiques &#224; part, et de regrouper les informations dynamiques (/var/mysql, /var/spool, /var/log, /usr/src, /tmp, ...) sur une ou plusieurs partitions.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Monter une partition ro&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-11&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;&#034;read-only&#034; c'est &#224; dire en lecture seule&#034; id=&#034;nh10-11&#034;&gt;11&lt;/a&gt;]&lt;/span&gt; au lieu de rw&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-12&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;&#034;read/write&#034;, c'est &#224; dire en lecture, ET en &#233;criture&#034; id=&#034;nh10-12&#034;&gt;12&lt;/a&gt;]&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Maintenant que vous avez regroup&#233; toutes les informations statiques, vous allez pouvoir passer les partitions en lecture seule.&lt;br class='autobr' /&gt;
Attention, un fichier est tr&#232;s important dans ces op&#233;rations de montage/d&#233;montage, il s'agit de /etc/mtab, dans lequel le syst&#232;me &#233;crit les partitions mont&#233;es avec leurs options, et leur point de montage. Il doit donc rester accessible en &#233;criture. Cela dit, certains &#034;fondus&#034; sont capables de mettre /etc en lecture seule, mais personellement je ne le recommande pas. A moins que ce ne soit absolument n&#233;cessaire...&lt;/p&gt;
&lt;p&gt;Lorsque vous utilisez la commande &lt;i&gt;mount&lt;/i&gt;, servant &#224; monter les partitions, LA&lt;br class='autobr' /&gt;
bonne id&#233;e consiste &#224; configurer la partie &#034;options&#034;, que l'on indique par un&lt;br class='autobr' /&gt;
&lt;strong&gt;-o&lt;/strong&gt;. Dans ces options, on trouve le type de montage (ro, rw), si c'est un&lt;br class='autobr' /&gt;
montage &#034;from scratch&#034;, ou un &#034;remount&#034;, &lt;i&gt;etc.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Il est ainsi tout &#224; fait possible de changer les options d'une partition &#034;&#224; la vol&#233;e&#034; avec un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-o remount&lt;/code&gt;. Attention, il faut toutefois garder &#224; l'esprit que certains process &#034;occupent&#034; les partitions, et que ces op&#233;rations se font avec le compte root.&lt;br class='autobr' /&gt;
Changer les options de /, par exemple, ne peut se faire que si vous &#234;tes en mode single-user, sinon les d&#233;mons d&#233;marr&#233;s emp&#234;cheront le syst&#232;me de d&#233;monter/remonter&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-13&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Tiens, au passage, lorsque vous voyez le satan&#233; message system busy... il (&#8230;)&#034; id=&#034;nh10-13&#034;&gt;13&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Les r&#233;pertoires qui ne risquent rien &#224; &#234;tre pass&#233;s sur une partition en ro, sont /usr, bien s&#251;r, /lib, /boot, /opt, /sbin, /bin, /var/www, /var/samba, et sans doute d'autres.&lt;br class='manualbr' /&gt;Les r&#233;pertoires qu'il NE FAUT PAS passer en ro sont /var/spool, /var/log, /var/named, /tmp...&lt;br class='manualbr' /&gt;Enfin, les r&#233;pertoires litigieux, sont /etc&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-14&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;A cause du fichier mtab&#034; id=&#034;nh10-14&#034;&gt;14&lt;/a&gt;]&lt;/span&gt;, /home, et /var/lib. Pour ceux l&#224;, tout d&#233;pend de votre humeur, et de l'utilisation de la machine. Un /home peut tr&#232;s bien &#234;tre mont&#233; en ro sur un serveur par exemple, si ce n'est pas un serveur NFS ;-)&lt;/p&gt;
&lt;p&gt;Pesez bien le pour et le contre de toutes vos manips, et surtout, faites des tests. Par exemple, d&#233;placer /lib et /boot d'un syst&#232;me &lt;i&gt;en vie&lt;/i&gt; n'est pas possible. Vous aller tout planter, dans la mesure o&#249; vous d&#233;placez des fichiers utilis&#233;s par le noyau et par les commandes de base (ls, mkdir, mv....). Il faut donc le faire &#224; partir d'un disque rescue (disque servant &#224; se connecter sur le syst&#232;me afin de r&#233;cup&#233;rer des donn&#233;es ou effectuer des op&#233;rations de maintenance disque), par exemple.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pour changer l'&#233;tat d'une partition&lt;/strong&gt;, c'est &#224; dire ro ou rw (read-write, lecture-&#233;criture), il suffit de taper :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# mount /usr -o ro -o remount &lt;code&gt; Pour la remonter rw (par exemple pour installer un package) :&lt;code&gt; # mount /usr -o rw -o remount&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Simple, non ?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pour rendre ces changements d&#233;finitifs&lt;/strong&gt;, consultez la liste des partitions mont&#233;es avec &lt;i&gt;mount&lt;/i&gt;, et &#233;ditez le fichier /etc/fstab comme cela, par exemple :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# /etc/fstab: static file system information. # #&lt;FileSys&gt; &lt;MountPt&gt;&lt;Type&gt; &lt;Options&gt; &lt;Dump&gt; &lt;Pass&gt; /dev/hda2 / ext2 defaults,errors=remount-ro 0 1 /dev/hda3 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/hda1 /boot ext2 rw 0 2 /dev/hda5 /usr ext2 ro 0 2 /dev/hda6 /var ext2 rw,grpquota,usrquota 0 2 /dev/hda7 /tmp ext2 rw 0 2 /dev/hda8 /home ext2 grpquota,usrquota 0 2 /dev/fd0 /floppy auto defaults,user,noauto 0 0 /dev/cdrom /cdrom iso9660 defaults,ro,user,noauto,exec 0 0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Voil&#224;. Au prochain red&#233;marrage violent, vous n'aurez pas de fsck &#224; faire sur /usr. Cool, non ;-) ?&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Passer en ext3&lt;/h2&gt;
&lt;p&gt;La solution ultime pour &#233;viter les pertes de donn&#233;es &#224; cause d'un plantage syst&#232;me, c'est bien s&#251;r un syst&#232;me de fichiers journalis&#233;. Oh bien s&#251;r, vous pouvez choisir les &lt;i&gt;reiserfs&lt;/i&gt;, &lt;i&gt;jfs&lt;/i&gt; ou autres, mais le syst&#232;me de fichiers &lt;strong&gt;ext3&lt;/strong&gt; fonctionne tr&#232;s bien. Il est disponible &#224; partir des noyaux 2.4 et, je pense, pour ceux de la s&#233;rie 2.2.&lt;/p&gt;
&lt;p&gt;Le syst&#232;me de fichiers ext3, poss&#232;de des caract&#233;ristiques proches de celles d'ext2, avec en plus un journal qui stocke les modifications apport&#233;es sur les fichiers. &lt;br class='autobr' /&gt;
Grosso-modo, un d&#233;mon suppl&#233;mentaire est d&#233;marr&#233;, dont le r&#244;le sera d'&#233;crire la liste des changements effectu&#233;s sur une partition.&lt;br class='autobr' /&gt;
En cas de crash, une lecture du journal &#224; l'envers est effectu&#233;e, et les fichiers sont remis dans un &#233;tat stable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Compiler son noyal&lt;/strong&gt;&lt;br&gt;
Tout d'abord, si votre noyau ne l'a pas encore, il faut y inclure le support de l'ext3&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-15&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Sur le CD n&#176; 5 de la Debian Woody, ou sur le CD d'installation de la (&#8230;)&#034; id=&#034;nh10-15&#034;&gt;15&lt;/a&gt;]&lt;/span&gt;. Soit vous le compilez sous forme de module, si votre / et votre /lib/modules restent sur une partition ext2, par exemple en lecture seule&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-16&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Si vous compilez le support de l'ext3 sous forme de module, et que votre (&#8230;)&#034; id=&#034;nh10-16&#034;&gt;16&lt;/a&gt;]&lt;/span&gt;, soit vous recompilez compl&#232;tement votre noyau&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-17&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;On me signale l'utilisation possible de initrd afin d'ajouter le support de (&#8230;)&#034; id=&#034;nh10-17&#034;&gt;17&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;basculer la partoche&lt;/strong&gt;&lt;br&gt;
Une fois votre nouveau noyal tout beau tout neuf recompil&#233;, vous allez utiliser &lt;strong&gt;tune2fs&lt;/strong&gt;, qui sert &#224; changer les param&#232;tres des partitions ext2, pour activer le support du journal.&lt;br&gt;
En fait, cette commande ne sert pas qu'&#224; &#231;a, mais aussi &#224; changer le nombre de montages maxi entre deux fsck, le nombre de blocs r&#233;serv&#233;s &#224; root, etc.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;man tune2fs TUNE2FS(8) NAME tune2fs - adjust tunable filesystem parameters on second extended filesystems&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Une fois le fichier journal cr&#233;e, un simple remontage de la partition en ext3 permettra d'activer la journalisation. Il n'est pas impossible qu'un message d'erreur (warning) apparaisse au remontage, sur une histoire de &#034;flag&#034;.&lt;br class='autobr' /&gt;
Effectuez un fsck de la partition - en mode single user ou en d&#233;sactivant l'&#233;criture sur la partition (read-only) bien s&#251;r - et tout rentrera dans l'ordre.&lt;/p&gt;
&lt;p&gt;Enfin, modifiez le fichier /etc/fstab pour tenir compte du changement. Simple,&lt;br class='autobr' /&gt;
non ?&lt;br class='autobr' /&gt;
Il suffit de remplacer ext2 par ext3 dans la ligne correspondant &#224; la partition.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Et en cas de probl&#232;me ?&lt;/strong&gt;&lt;br&gt;
Ah. Comment faire pour r&#233;parer une partition ext3 avec un vieux noyau qui ne prend pas en charge ce format... Il y a une astuce.&lt;/p&gt;
&lt;p&gt;Comme ext2 et ext3 sont compatibles (j'entends par compatible le fait qu'une partition ext3 puisse &#234;tre mont&#233;e comme une partition ext2 en perdant le b&#233;n&#233;fice de la journalisation bien s&#251;r), il est tout &#224; fait possible de d&#233;marrer avec un CD-ROM de secours, type &#034;rescue&#034; de Debian, RedHat, Mandrake, les mini distributions Tomsrbt ou les CD Live comme DemoLinux, et de travailler sur les partitions apr&#232;s les avoir mont&#233;es comme des partitions ext2&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb10-18&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;La derni&#232;re Mandrake poss&#232;de tous les outils n&#233;cessaires pour (&#8230;)&#034; id=&#034;nh10-18&#034;&gt;18&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Autre solution, si vous avez l'habitude, comme moi, de travailler avec plusieurs noyaux (un 2.2, un 2.4 avec diff&#233;rentes options), vous pouvez configurer le&lt;br class='autobr' /&gt;
syst&#232;me pour qu'il reconnaisse automatiquement le type de la partition, en changeant le type &lt;i&gt;ext3&lt;/i&gt; par &lt;i&gt;auto&lt;/i&gt; dans le /etc/fstab. Ce n'est pas vraiment conseill&#233;, mais chez moi, &#231;a a l'air de fonctionner (sauf pour la racine /).&lt;/p&gt;
&lt;p&gt;Au boulot !&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb10-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;puisque&lt;br class='autobr' /&gt;
certaines informations qui auraient d&#251; &#234;tre &#233;crire sont rest&#233;es dans le cache&lt;br class='autobr' /&gt;
m&#233;moire, et sont donc perdues au red&#233;marrage&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Le type de partition le plus courant sous Linux&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;&#231;a vient de &#034;to mount&#034;, et de la commande &lt;i&gt;mount&lt;/i&gt; ;-)&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-4&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-4&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-4&#034; rev=&#034;appendix&#034;&gt;4&lt;/a&gt;] &lt;/span&gt;Sur une Redhat Mandrake ou SuSE, il s'agit de /usr/src/linux. Sur une Debian, c'est /usr/src/kernel-2.XX. Pour les autres distributions, je ne sais pas ;-)&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-5&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-5&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-5&#034; rev=&#034;appendix&#034;&gt;5&lt;/a&gt;] &lt;/span&gt;Les noyaux compil&#233;s avec la plupart des distributions Linux poss&#232;dent d&#233;j&#224; le support des SysReq Keys, vous &#233;vitant une recompilation inutile&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-6&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-6&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-6&#034; rev=&#034;appendix&#034;&gt;6&lt;/a&gt;] &lt;/span&gt;&#199;a d&#233;pend des distributions, mais &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/rc.d/rc.local&lt;/code&gt;, ou code&gt;/etc/rcS.d/S01sysreq&lt;/code&gt; devraient faire l'affaire sur RedHat/Mandrake ou sur Debian... Sur une SuSE, il suffit&lt;br class='autobr' /&gt;
d'activer un param&#232;tre ENABLE_SYSRQ dans le fichier de configuration&lt;br class='autobr' /&gt;
/etc/rc.config ou /etc/sysconfig/sysctl (SuSE 8.0).&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-7&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-7&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-7&#034; rev=&#034;appendix&#034;&gt;7&lt;/a&gt;] &lt;/span&gt;ou &lt;strong&gt;Syst&lt;/strong&gt; ou [Impr Ecr] sur un clavier Fran&#231;ais, c'est &#224; dire la touche de gauche sur le paquet de trois en haut, &#224; droite de &lt;strong&gt;F12&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-8&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-8&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-8&#034; rev=&#034;appendix&#034;&gt;8&lt;/a&gt;] &lt;/span&gt;Ce n'est pas une contrep&#233;trie. C'est vraiment une &lt;a href=&#034;http://msgs.securepoint.com/cgi-bin/get/ipfilter-0206/10/1/1/2.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;commande qui existe&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-9&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-9&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-9&#034; rev=&#034;appendix&#034;&gt;9&lt;/a&gt;] &lt;/span&gt;Celui qui sort vos partitions de la &#034;merde&#034;&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-10&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-10&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-10&#034; rev=&#034;appendix&#034;&gt;10&lt;/a&gt;] &lt;/span&gt;Si vous vous sentez en veine,&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;tar cvpsf - /usr/src | tar -C /home/src -xf -&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;n'est pas mal non plus. C'est &#224; vous de voir ;-)&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-11&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-11&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-11&#034; rev=&#034;appendix&#034;&gt;11&lt;/a&gt;] &lt;/span&gt;&#034;read-only&#034; c'est &#224; dire en lecture seule&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-12&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-12&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-12&#034; rev=&#034;appendix&#034;&gt;12&lt;/a&gt;] &lt;/span&gt;&#034;read/write&#034;, c'est &#224; dire en lecture, &lt;i&gt;ET&lt;/i&gt; en &#233;criture&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-13&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-13&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-13&#034; rev=&#034;appendix&#034;&gt;13&lt;/a&gt;] &lt;/span&gt;Tiens, au passage, lorsque vous voyez le satan&#233; message &lt;i&gt;system busy&lt;/i&gt;... il s'agit d'un ou plusieurs programmes d&#233;marr&#233;s sur le filesystem que vous essayez de modifier (monter, d&#233;monter, remonter). La commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fuser&lt;/code&gt; vous permet de savoir quel est le processus qui utilise un fichier donn&#233; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;gaetan@nutella:~$ fuser -v /bin/bash USER PID ACCESS COMMAND /bin/bash mikael 7376 ....m bash gaetan 8216 ...e. bash nico 8515 ...e. bash&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez m&#234;me demander &#224; fuser de killer les process en question avec l'option &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-k&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-14&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-14&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-14&#034; rev=&#034;appendix&#034;&gt;14&lt;/a&gt;] &lt;/span&gt;A cause du fichier mtab&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-15&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-15&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-15&#034; rev=&#034;appendix&#034;&gt;15&lt;/a&gt;] &lt;/span&gt;Sur le CD n&#176; 5 de la Debian Woody, ou sur le CD d'installation de la Mandrake, il y a un noyau qui comprend l'ext3. Il n'est pas impossible que le noyau pr&#233;sent sur votre machine en dispose d&#233;j&#224;, mais l&#224; &#231;a d&#233;pend de votre installation.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-16&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-16&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-16&#034; rev=&#034;appendix&#034;&gt;16&lt;/a&gt;] &lt;/span&gt;Si vous compilez le support de l'ext3 sous forme de module, et que votre noyau (et vos modules) sont sur une partition ext3, que va-t-il se passer, &#224; votre avis ?&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-17&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-17&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-17&#034; rev=&#034;appendix&#034;&gt;17&lt;/a&gt;] &lt;/span&gt;On me signale l'utilisation possible de initrd afin d'ajouter le support de l'IDE ou du SCSI (et des syst&#232;me de fichiers compil&#233;s en module) avant le d&#233;marrage du syst&#232;me. Pour tout cela, r&#233;f&#233;rez vous &#224; un article sur la compilation du noyau, par exemple : &lt;a href=&#034;http://lea-linux.org/kernel/kernel.php3&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;La page kernel de Lea-linux.org&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb10-18&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh10-18&#034; class=&#034;spip_note&#034; title=&#034;Notes 10-18&#034; rev=&#034;appendix&#034;&gt;18&lt;/a&gt;] &lt;/span&gt;La derni&#232;re Mandrake poss&#232;de tous les outils n&#233;cessaires pour redimensionner une partition, y compris ext3, et le CD n&#176;5 de la Debian Woody dispose du support de l'ext3 et de reiserfs. Ce sont donc de bonnes bases de travail.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Un tr&#218;s bon article (en anglais) sur les syst&#218;mes de fichiers journalis&#233;s est dispo sur la &lt;a href=&#034;http://www.linuxgazette.com/issue55/florido.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Linux Gazette n&#176;35&lt;/a&gt;.&lt;br class='manualbr' /&gt;Une &lt;a href=&#034;http://plug.twuug.org/articles/rescuedisk.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;page de pointeurs&lt;/a&gt; sur les syst&#218;mes d'urgence, &lt;i&gt;ie.&lt;/i&gt; les rescue CD.&lt;br class='manualbr' /&gt;Une &lt;a href=&#034;http://www.linux-france.org/article/sys/ext3fs/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;page&lt;/a&gt; en fran&#231;ais sur ext3, trouv&#233;e sur linux-france.org.&lt;br class='manualbr' /&gt;Un &lt;a href=&#034;http://www.haverlant.org/linux/reiserfs.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;article&lt;/a&gt; en fran&#231;ais expliquant comment passer une partition en reiserfs.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Lire ses mails de n'importe o&#249;</title>
		<link>http://clx.asso.fr/spip/?Lire-ses-mails-de-n-importe-ou</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Lire-ses-mails-de-n-importe-ou</guid>
		<dc:date>2002-08-09T00:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Aur&#233;lien DEHAY</dc:creator>


		<dc:subject>Messagerie &#233;lectronique</dc:subject>

		<description>&lt;p&gt;Avec plusieurs comptes de messagerie, Il faut se souvenir des logins, des mots de passe, relever les bo&#238;tes sans en oublier, etc. Il est plus pratique de rapatrier tous les emails sur une seule machine et, via Internet, consulter son courrier de chez ses amis, au travail ou en vacances. Cet article pr&#233;sente une des solutions possible : Posftix, Fetchmail, un serveur IMAP et l'interface Webmail Squirrelmail, le tout s&#233;curis&#233; par SSL.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Messagerie-electronique-+" rel="tag"&gt;Messagerie &#233;lectronique&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Avec plusieurs comptes de messagerie, Il faut se souvenir des logins, des mots de passe, relever les bo&#238;tes sans en oublier, etc. Il est plus pratique de rapatrier tous les emails sur une seule machine et, via Internet, consulter son courrier de chez ses amis, au travail ou en vacances. Cet article pr&#233;sente une des solutions possible : Posftix, Fetchmail, un serveur IMAP et l'interface Webmail Squirrelmail, le tout s&#233;curis&#233; par SSL.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Pr&#233;sentation&lt;/h2&gt;
&lt;p&gt;Il existe plusieurs mani&#232;res de consulter ses mails sans rapatrier en local les messages. La m&#233;thode la plus simple consiste &#224; se connecteur sur le service Webmail ou IMAP mis &#224; votre disposition par votre fournisseur d'acc&#232;s Internet, par exemple &lt;a href=&#034;http://webmail.free.fr&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://webmail.free.fr&lt;/a&gt;. Autre m&#233;thode non s&#233;curis&#233;e : faire appel &#224; telnet et relever les messages &#224; distance (&lt;a href=&#034;http://www.delafond.org/survielinux/&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.delafond.org/survielinux/&lt;/a&gt; ou &lt;a href=&#034;http://didierdescamps.free.fr/astuce.txt&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://didierdescamps.free.fr/astuce.txt&lt;/a&gt; pour en savoir plus). Mais ces m&#233;thodes deviennent fastidieuses d&#232;s que le nombre de bo&#238;tes aux lettres augmente.&lt;/p&gt;
&lt;p&gt;Pourquoi cet article ?&lt;br class='autobr' /&gt;
J'ai deux comptes de mails et je trouve plus pratique de r&#233;cup&#233;rer les messages sur mon serveur de messagerie. Or, lorsque je suis hors de chez moi, je veux les lire et &#233;ventuellement y r&#233;pondre. Comme ma machine est connect&#233;e via une connexion ADSL, je peux m'y connecter en permanence. L'id&#233;e &#233;tant de lire ses mails d'&#224; peu pr&#232;s n'importe o&#249;, le probl&#232;me de la s&#233;curit&#233; se pose assez vite. Une des solutions consiste &#224; tout faire passer au dessus de SSH, mais cela n'est pas tr&#232;s pratique voire impossible lorsqu'on est derri&#232;re un firewall ou un proxy.&lt;/p&gt;
&lt;p&gt;Je me suis donc pench&#233; sur une solution fond&#233;e sur le Web et sur SSL pour la consultation des mails &#224; distance. Voici une liste des logiciels utilis&#233;s :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://httpd.apache.org&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Apache&lt;/a&gt; pour le serveur Web (en &lt;a href=&#034;http://www.apache-ssl.org/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;SSL&lt;/a&gt;),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.postfix.org&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Postfix&lt;/a&gt; pour le serveur SMTP,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.inter7.com/courierimap/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Courier-imap&lt;/a&gt; pour le serveur IMAP,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://freshmeat.net/redir/fetchmail/2635/url_homepage/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Fetchmail&lt;/a&gt; &lt;br class='autobr' /&gt;
pour r&#233;cup&#233;rer les emails des diff&#233;rentes bo&#238;tes,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.procmail.org/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Procmail&lt;/a&gt; pour le tri dans les maildirs,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://spamassassin.org/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Spamassassin&lt;/a&gt; pour &#233;viter le spam (pourriel),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.squirrelmail.org&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Squirrelmail&lt;/a&gt; pour le Webmail (consultation/envoi de mails via un navigateur Web).&lt;/p&gt;
&lt;p&gt;Concernant Postfix, c'est un serveur SMTP comme il y en a tant d'autres (Sendmail, Exim par exemple). J'ai choisi Postfix parceque les fichiers de configuration sont assez faciles a lire et qu'au tout d&#233;but, je n'ai trouv&#233; que de la documentation pour Postfix.&lt;/p&gt;
&lt;p&gt;Fetchmail et Procmail sont des logiciels assez connus, qui respectivement t&#233;l&#233;charge les messages d'une ou plusieurs bo&#238;tes aux lettres, et d&#233;pose ces messages dans les bonnes bo&#238;tes aux lettres locales. Procmail permet &#233;galement d'effectuer des manipulations sur les messages, comme par exemple le lancement de Spamassassin pour chaque mail re&#231;u.&lt;/p&gt;
&lt;p&gt;Spamassassin, contrairement &#224; ce que son nom laisse croire, ne tue pas les spams, mais donne une note de 'spamitude' &#224; tout les mails (voir &lt;a href=&#034;http://spamassassin.org/tests.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;cette liste&lt;/a&gt; pour la notation) et positionne un &lt;i&gt;header&lt;/i&gt; (une en-t&#234;te) sp&#233;cial si il consid&#232;re que le mail est un spam. A charge ensuite au MDA (donc procmail ici) de traiter ce pourriel, pour le supprimer ou le mettre dans une bo&#238;te &#224; lettres particuli&#232;re.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Installation&lt;/h2&gt;
&lt;p&gt;Foin de troll trop violent. Mais je suis sous Debian. L'installation a donc &#233;t&#233; d'une simplicit&#233; outrageante :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# apt-get install apache-ssl courier-imap squirrelmail fetchmail postfix procmail spamassassin&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Un syst&#232;me &#233;quivalent doit exister pour les autres distributions (je pense a &lt;strong&gt;urpmi&lt;/strong&gt; par exemple).&lt;/p&gt;
&lt;p&gt;En th&#233;orie, si le syst&#232;me de paquetage est bien fait, et que les mainteneurs ont fait leur travail, apache-ssl et squirrelmail sont correctement configur&#233;s et fonctionnels&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb11-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Enfin, comme les serveurs IMAP et SMTP ne sont pas encore configur&#233;s, vous (&#8230;)&#034; id=&#034;nh11-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Passons donc &#224; la configuration du reste.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Configuration de Fetchmail&lt;/h2&gt;
&lt;p&gt;On peut utiliser Fetchmail de 3 mani&#232;res :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Lancer un &lt;strong&gt;fetchmail&lt;/strong&gt; par utilisateur (mode &#034;normal&#034;),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; En root, on r&#233;cup&#232;re les mails de tout le syst&#232;me (mode &#034;root&#034;),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; En utilisateur non-root qui r&#233;cup&#232;re les mails de tout le syst&#232;me (mode &#034;non-root&#034;).&lt;/p&gt;
&lt;p&gt;J'ai retenu la derni&#232;re solution, les deux autres &#233;tant connues et assez facilement configurables. La configuration de fetchmail n'influe pas sur le reste, tout ce que l'on veut, c'est un &lt;strong&gt;fetchmail&lt;/strong&gt; qui fonctionne.&lt;/p&gt;
&lt;p&gt;Premi&#232;re &#233;tape, configurer &lt;strong&gt;fetchmail&lt;/strong&gt; pour qu'il fonctionne en mode root : un fichier &lt;i&gt;/etc/fetchmailrc&lt;/i&gt; qui doit par exemple contenir ce genre de chose :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;set postmaster &#034;postmaster&#034; set nobouncemail set no spambounce set properties &#034;&#034; poll imap.laposte.net with proto IMAP user 'aurelien.dehay' there with password 'XXXXXXX' is 'aurelien' here options keep poll pop.wanadoo.fr with proto POP3 user 'aurelien.dehay' there with password 'XXXXXXX' is 'aurelien' here options keep&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;J'ai laiss&#233; les &lt;i&gt;keep&lt;/i&gt; dans les options, cela permet de faire des tests sans perdre de mails. Je dis &#231;a, vous &#234;tes pr&#233;venus, &#231;a m'est arriv&#233; de perdre quelques mails avant de me rendre compte de ce qu'il se passait.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A la place de &lt;i&gt;keep&lt;/i&gt;, vous pouvez par la suite utiliser le param&#232;tre &lt;i&gt;fetchall&lt;/i&gt;. Il permet de r&#233;cup&#233;rer tous les mails (utile la premi&#232;re fois) et ainsi, quand votre ordinateur est &#233;teint, de lire les mails &#224; partir du Webmail de votre ISP (Fournisseur d'Acc&#232;s Internet) puis de les r&#233;cup&#233;rer ensuite.&lt;/p&gt;
&lt;p&gt;A part &#231;a, que du classique. Pour le fonctionnement en non-root, ce n'est pas beaucoup plus compliqu&#233;.&lt;/p&gt;
&lt;p&gt;Un utilisateur &lt;strong&gt;fetchmail&lt;/strong&gt; (&#231;a manque d'originalit&#233;, vous pouvez bien s&#251;r l'appeler comme vous voulez) doit &#234;tre cr&#233;&#233;, si il n'existe pas d&#233;j&#224; (les manipulations sont, bien s&#251;r, &#224; effectuer sous le compte root) :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;adduser -g 65534 -d /var/run/fetchmail fetchmail&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;-g&lt;/strong&gt; pour utiliser le groupe &lt;strong&gt;nogroup&lt;/strong&gt;. Mettez le GID qui correspond &#224; nogroup, ici 65534. En fait, vous mettez ce que vous voulez (100 pour users par exemple est pas mal non plus).
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;strong&gt;-d&lt;/strong&gt; pour utiliser le r&#233;pertoire &lt;i&gt;/var/run/fetchmail&lt;/i&gt; comme r&#233;pertoire maison (= r&#233;pertoire utilisateur).&lt;/p&gt;
&lt;p&gt;Changez les utilisateurs/droits pour que &#231;a aille bien :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;chown fetchmail:nogroup /etc/fetchmailrc chmod 600 /etc/fetchmailrc chown -R fetchmail:nogroup /var/run/fetchmail chmod 700 /var/run/fetchmail&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Reste ensuite &#224; v&#233;rifier 2 choses :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Que le fichier &lt;i&gt;/etc/default/fetchmail&lt;/i&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb11-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Ne vous formalisez pas si vous utilisez autre chose que postfix et que vous (&#8230;)&#034; id=&#034;nh11-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; (sur Debian) autorise le lancement de &lt;strong&gt;fetchmail&lt;/strong&gt; en d&#233;mon : &lt;strong&gt;SERVICE&lt;/strong&gt; doit &#234;tre &#224; &lt;strong&gt;true&lt;/strong&gt; dans ce fichier.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Que le script de lancement &lt;i&gt;/etc/init.d/fetchmail&lt;/i&gt; &#233;crive bien tout ce qu'il faut dans &lt;i&gt;/var/run/fetchmail&lt;/i&gt; et pas ailleurs, sinon &#231;a risque de ne pas fonctionner correctement.&lt;/p&gt;
&lt;p&gt;Voil&#224;. Normalement, un lancement de &lt;strong&gt;fetchmail&lt;/strong&gt; (&#233;vitez de le faire maintenant, surtout si votre &lt;i&gt;fetchmailrc&lt;/i&gt; ne contient pas de param&#232;tre &lt;strong&gt;keep&lt;/strong&gt; ou si votre serveur SMTP n'est pas ou est mal configur&#233;).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Configuration Postfix&lt;/h2&gt;
&lt;p&gt;Je vous laisse vous r&#233;f&#233;rer &#224; &lt;a href=&#034;http://www.linux-france.org/article/mail/postfix-jaco/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;cette excellente documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;La configuration par d&#233;faut devrait convenir, mais j'ai pr&#233;f&#233;r&#233; restreindre l'acc&#232;s au serveur uniquement sur l'adresse locale. V&#233;rifiez donc que vous avez bien ces deux lignes (une pour &lt;strong&gt;procmail&lt;/strong&gt;, l'autre pour l'adresse d'&#233;coute) dans votre &lt;i&gt;/etc/postfix/main.cf&lt;/i&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;mailbox_command = procmail -a &#034;$EXTENSION&#034; inet_interfaces = localhost&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La premi&#232;re ligne est la ligne par d&#233;faut qui nous permettra d'utiliser &lt;strong&gt;procmail&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;La derni&#232;re ligne est histoire de s&#233;curit&#233; : elle force &lt;strong&gt;postfix&lt;/strong&gt; &#224; &#233;couter uniquement sur l'interface &#034;interne&#034; (lo), il n'acceptera donc aucune connexion de l'ext&#233;rieur, et r&#233;soud ainsi le probl&#232;me d'un serveur mal configur&#233; en &lt;a href=&#034;http://adslscan.turboline.be/faq.fr.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Open Relay&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Vous pouvez cependant supprimer cette ligne pour recevoir directement les mails &#224; (votrenom@votredomain.com&lt;/i&gt;. Cela devrait fonctionner, voir &lt;a href=&#034;http://support.dyndns.org/whitepapers/mail.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;cette documentation&lt;/a&gt; pour plus d'informations. Vous remarquerez que je n'ai pas choisi cette option pour une raison simple : mon ordinateur n'&#233;tant pas allum&#233; en permanence, il se pourrait que je perde des mails.&lt;/p&gt;
&lt;p&gt;Voil&#224;, c'est tout pour &lt;strong&gt;Postfix&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Configuration de Spamassassin et procmail&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Spamassassin&lt;/strong&gt; a tr&#232;s bien fonctionn&#233; une fois install&#233;, mais si vous voulez plus d'informations, voir le r&#233;pertoire &lt;i&gt;/etc/spamassassin&lt;/i&gt; et surtout le &lt;i&gt;man Mail::SpamAssassin::Conf&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;spamassassin&lt;/strong&gt; est un logiciel bas&#233; sur un jeu de r&#232;gle. Un logiciel a priori meilleur, mais que je n'ai pas encore test&#233; est &lt;a href=&#034;http://www.tuxedo.org/~esr/bogofilter/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;bogofilter&lt;/a&gt;. Ce dernier se base sur des r&#232;gles Baysiennes pour les filtres.&lt;/p&gt;
&lt;p&gt;La seule chose notable a se souvenir pour &lt;strong&gt;spamassassin&lt;/strong&gt;, c'est que tout mail ayant eu une note sup&#233;rieure a 5 dans les tests sera consid&#233;r&#233; comme du spam et aura donc le header &lt;i&gt;X-Spam-Status&lt;/i&gt; positionn&#233; a &lt;i&gt;Yes&lt;/i&gt;, ce qui nous servira pour filtrer le mail avec &lt;strong&gt;procmail&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Concernant &lt;strong&gt;procmail&lt;/strong&gt;, il faut cr&#233;er un fichier &lt;i&gt;$HOME/.procmailrc&lt;/i&gt; qui contiendra par exemple ce qui suit :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;VERBOSE=no SHELL=/bin/sh PATH=/usr/local/bin:/usr/bin:/bin MAILDIR=$HOME/Maildir/ #you'd better make sure it exists LOGFILE=$HOME/.procmail/from #recommended ORGMAIL=$MAILDIR/emergency-inbox DEFAULT=$MAILDIR/new LOGFILE=$MAILDIR/.procmail.log #truc incompr&#233;hensible pour &#233;viter les doublons #(lors d'un begaillement de list par exemple) :0 Wh: msgid.lock | formail -D 8192 msgid.cache :0fw | spamassassin :0: * ^X-Spam-Status: Yes $MAILDIR/SPAM/&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La partie importante est le param&#232;tre &lt;i&gt;MAILDIR=&lt;/i&gt; qui doit pointer sur le r&#233;pertoire o&#249; vous souhaitez mettre votre bo&#238;te aux lettres. Dans &lt;strong&gt;procmail&lt;/strong&gt;, tout chemin qui se termine par un &lt;strong&gt;/&lt;/strong&gt; est consid&#233;r&#233; comme un r&#233;pertoire au format &lt;i&gt;Maildir&lt;/i&gt;. Si le &lt;strong&gt;/&lt;/strong&gt; n'y est pas, le chemin sera consid&#233;r&#233; comme celui d'une &lt;i&gt;mbox&lt;/i&gt; unix normale.&lt;/p&gt;
&lt;p&gt;Dans l'exemple ci-dessus, &lt;strong&gt;spamassassin&lt;/strong&gt; est lanc&#233;, et on traite tout ce qui est consid&#233;r&#233; comme du spam en le redirigeant vers le r&#233;pertoire &lt;i&gt;$MAILDIR/SPAM/&lt;/i&gt;, ce qui permet de v&#233;rifier si un mail normal n'a pas &#233;t&#233; consid&#233;r&#233; comme du spam.&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb11-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Pour les abonn&#233;s Wanadoo : la newsletter Wanadoo se retrouvera l&#224;-dedans par (&#8230;)&#034; id=&#034;nh11-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;. Vous pouvez &#233;galement remplacer le r&#233;pertoire par &lt;i&gt;/dev/null&lt;/i&gt;, ce qui aura pour effet de supprimer d&#233;finitivement les mails consid&#233;r&#233;s comme du spam.&lt;/p&gt;
&lt;p&gt;Pour ce qui est du reste, voyez le manuel des exemples de &lt;strong&gt;procmail&lt;/strong&gt; : &lt;i&gt;man procmailex&lt;/i&gt;. Voici tout de m&#234;me deux exemples concernant les filtres des listes de diffusion CLX et CLXWEB :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;:0 * ^List-Id:.*clx-web@gaia\.anet\.fr $MAILDIR/.CLXWEB/ :0 * ^List-Id:.*clx@gaia\.anet\.fr $MAILDIR/.CLX/&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;Configuration de Courier-imap&lt;/h2&gt;
&lt;p&gt;La configuration de courier-imap s'effectue via le fichier &lt;i&gt;/etc/courier/imapd&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;La configuration n&#233;cessaire est plut&#244;t limit&#233;e pour ce que je voulais faire : la &#034;mise en &#233;coute&#034; de courier-imap sur l'interface loopback uniquement.&lt;/p&gt;
&lt;p&gt;Il faut donc modifier la ligne ADDRESS dans le fichier &lt;i&gt;/etc/courier/imapd&lt;/i&gt; en celle-ci :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;ADDRESS=127.0.0.1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On peut bien s&#251;r modifierde nombreux param&#232;tres dans les fichiers de configuration, mais comme cela marche ainsi, j'ai laiss&#233; les param&#232;tres par d&#233;faut. Regardez tout de m&#234;me ce fichier, surtout la derni&#232;re ligne, cela vous &#233;vitera certainement de mauvaises surprises &#224; l'avenir.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Voil&#224;, c'est th&#233;oriquement termin&#233;. Il ne reste plus qu'&#224; red&#233;marrer tout le toutim dans l'ordre (indicatif) :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Apache-ssl,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; courier-imap,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; postfix,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; fetchmail.&lt;/p&gt;
&lt;p&gt;En fait, l'important est de d&#233;marrer fetchmail apr&#232;s postfix pour &#233;viter de perdre des mails. Essayez maintenant de vous connecter via Apache ou un client IMAP classique en local.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;procmail&lt;/strong&gt; et &lt;strong&gt;spamassassin&lt;/strong&gt; ne n&#233;cessitent pas de lancement, ils sont appel&#233;s &#224; chaque mail re&#231;u.&lt;/p&gt;
&lt;p&gt;Une fois que les tests sont bons, n'oubliez pas de remplacer le param&#232;tre &lt;strong&gt;keep&lt;/strong&gt; de la configuration de Fetchmail par &lt;strong&gt;fetchall&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Tout devrait fonctionner sans probl&#232;mes. En cas de probl&#232;mes, voyez &lt;a href='http://clx.asso.fr/spip/?Les-listes-de-diffusion' class=&#034;spip_in&#034;&gt;la lidie&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb11-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh11-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 11-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Enfin, comme les serveurs IMAP et SMTP ne sont pas encore configur&#233;s, vous ne pourrez pas encore lire vos mails avec Squirrelmail.&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb11-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh11-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 11-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Ne vous formalisez pas si vous utilisez autre chose que &lt;strong&gt;postfix&lt;/strong&gt; et que vous lisez ce fichier, surtout la partie d&#233;crivant le &lt;strong&gt;RUNASROOT&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb11-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh11-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 11-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;Pour les abonn&#233;s Wanadoo : la newsletter Wanadoo se retrouvera l&#224;-dedans par exemple.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Pour une documentation et des explications plus pouss&#233;es, reportez-vous &#224; &lt;a href=&#034;http://195.83.3.5/~phandaal/serveur/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;l'excellente documentation de Phandaal&lt;/a&gt;. Vous y trouverez en plus de la doc sur Samba et Cups. &lt;br class='manualbr' /&gt;Notes de la R&#233;daction : Malheureusement, cette doc n'est plus accessible...&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>FLI4L, un routeur RNIS/ADSL qui tient sur une disquette</title>
		<link>http://clx.asso.fr/spip/?FLI4L-un-routeur-RNIS-ADSL-qui-tient-sur-une-disquette</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?FLI4L-un-routeur-RNIS-ADSL-qui-tient-sur-une-disquette</guid>
		<dc:date>2002-08-05T14:48:52Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Eric M.C.DECLERCK</dc:creator>


		<dc:subject>Routeur</dc:subject>

		<description>&lt;p&gt;Un vieux PC, une carte RNIS et une disquette suffisent pour construire un routeur/firewall pour un r&#233;seau local domestique ou d'une TPE. Comment ? Gr&#226;ce &#224; FLI4L.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Routeur-+" rel="tag"&gt;Routeur&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L121xH150/arton124-c41c2.png?1759526084' alt='' class='spip_logo spip_logo_right' width='121' height='150' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Un vieux PC, une carte RNIS et une disquette suffisent pour construire un routeur/firewall pour un r&#233;seau local domestique ou d'une TPE. Comment ? Gr&#226;ce &#224; FLI4L.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;center&gt; &lt;strong&gt;C'est quoi fli4l ?&lt;/strong&gt;&lt;/center&gt;
&lt;p&gt;Fli4l est un routeur Ethernet, ISDN (RNIS), ADSL fond&#233; sur Linux (Debian).&lt;br&gt;
Une seule disquette est n&#233;cessaire. Et il suffit d'un PC 486 avec 16 Mo de RAM pour cr&#233;er un routeur.&lt;br&gt;
La disquette peut &#234;tre cr&#233;&#233;e sous Unix, Linux ainsi que sous Windows.&lt;br&gt;
Aucune connaissance sp&#233;cifique &#224; Linux n'est n&#233;cessaire mais il est n&#233;anmoins utile de ma&#238;triser les commandes de base du syst&#232;me. Et une connaissance de base des r&#233;seaux telle que TCP/IP, DNS et routage est &#233;galement conseill&#233;e.&lt;/p&gt;
&lt;p&gt;Par Eric M.C.DECLERCK&lt;br&gt;
eric.m.c.declerck@free.fr&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Caract&#233;ristiques :&lt;/strong&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Cr&#233;ation de la disquette du routeur sous Unix, Linux et Windows,&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Configuration &#224; l'aide d'un seul fichier texte (ASCII).&lt;br class='autobr' /&gt;
Support pour IP-Masquerading et Port-Forwarding (NAT et PAT),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Least-Cost-Routing (LCR) : s&#233;lection automatique du fournisseur d'Acc&#232;s Internet en fonction d'un horaire pr&#233;d&#233;fini et du co&#251;t des communications,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Affichage du protocole de la connexion et calcul du co&#251;t des communications,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Client Windows/Unix/Linux imonc inclus (interface vers imond et telmond),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Upload de nouveaux fichiers via le client Windows, imonc (afin de mettre &#224; jour le routeur),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Disquette de d&#233;marrage en vfat,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Utilisation possible de disquettes de 1680 ko,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Filtrage de paquets (Packet filter) : contr&#244;le des acc&#232;s vers les ports du routeur (firewall),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Utilisation d'interfaces virtuelles WAN appel&#233;es circuits,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Utilisation possible en parall&#232;le des circuits ADSL et RNIS.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Routeur :&lt;/strong&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Noyau Linux 2.2.19,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; IP-Masquerading + PacketFilter pour la s&#233;curit&#233;,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Serveur DNS afin d'&#233;viter l'acc&#232;s des PC Windows vers le WAN pour la plupart des requ&#234;tes,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Affichage des informations de connexion (monitoring) et LCR pour le serveur imond,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Gestion des appels t&#233;l&#233;phoniques entrants pour le serveur &lt;i&gt;telmond&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Support Ethernet :&lt;/strong&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Gestionnaires pour la plupart des cartes r&#233;seau : plus de 40 familles de cartes reconnues.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Support ADSL :&lt;/strong&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Driver Roaring Penguin PPPoE avec Dial-on-Demand (num&#233;rotation &#224; la demande facultative),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; PPTP pour les connections ADSL en Autriche et Pays-Bas (EXPERIMENTAL).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Support ISDN :&lt;/strong&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Drivers HiSaX actuels : support pour 37 adaptateurs ISDN,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Diff&#233;rentes variantes de connexion : in/out/callback, raw-ip/ppp,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Agr&#233;gation de canaux (Multilink PPP) : s&#233;lection automatique ou manuelle en fonction de la bande passante,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; S&#233;lection manuelle du second canal via le client Windows/Unix,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; En option : routage IPX.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Applications en option : (packages)&lt;/strong&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Serveur DNS,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Serveur DHCP,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Login SSH,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Service Telnet et/ou FTP,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Affichage online/offline simple par LED,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Programme d'affichage en LCD avec format changeable.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Console s&#233;rie en option (voir &lt;a href=&#034;http://www.fli4l.de/german/extern/docu/stable/doc/english/html/akap_en.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;HOWTO : http://www.fli4l.de/german/extern/docu/stable/doc/english/html/akap_en.html&lt;/a&gt;),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Mini-serveur pour ADSL monitoring,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Module IPSEC, ipsec et pptp,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Restriction d'acc&#232;s pour des r&#233;seaux distants,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Support PCMCIA (EXPERIMENTAL),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Protocole des messages syt&#232;me : syslogd et klogd,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Configuration des adaptateurs ISA-PNP : iaspnp tools,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Utilitaires suppl&#233;mentaires pour le d&#233;bogage,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Configuration du port s&#233;rie,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Syst&#232;me de secours pour le contr&#244;le distant via ISDN,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Ecran LCD : affichage des connexions et du flux de donn&#233;es,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Serveur/routeur PPP via le port s&#233;rie,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Emulateur ISDN via le port s&#233;rie,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Serveur d'impression,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Acc&#232;s au serveur de temps pour la synchronisation du r&#233;seau,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Ex&#233;cution de commandes/proc&#233;dures quand un appel t&#233;l&#233;phonique se pr&#233;sente (ex : Internet dial-in),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Support pour l'IP aliasing (permet d'avoir plus d'une adresse IP par carte r&#233;seau).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hardware : &lt;/strong&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; ISDN : minimal : CPU 386 &#224; 25MHz, recommand&#233; : CPU 486 &#224; 33 MHz,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; ADSL : minimal : 486 CPU - DX2/66, recommand&#233; : CPU 486 DX4/100 &#224; 100 MHz ou CPU Pentium &#224; 75 MHz,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; M&#233;moire 8MB, recommand&#233; : 16 MB,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Adaptateur Ethernet (support pour plus de 40 familles d'adaptateurs),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; ISDN : adaptateur ISDN support&#233; par HiSaX (Type 1-37), AVM-B1 ISA/PCI ou ICN-2B,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Pas de disque dur, juste un lecteur de disquette,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Une disquette de d&#233;marrage contenant tous les fichiers n&#233;cessaires.&lt;/p&gt;
&lt;p&gt;Pour l'affichage des informations de contr&#244;le du routeur FLI4L, une autre application est disponible : le client imonc. Ce programme est disponible pour Windows et pour Linux (unix/gtk-imonc).&lt;/p&gt;
&lt;p&gt;Pour Windows : &lt;a href=&#034;http://www.wallmeier-online.de/imonc/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www.wallmeier-online.de/imonc&lt;/a&gt;.&lt;br class='autobr' /&gt;
Pour Linux et gtk : &lt;a href=&#034;http://userpage.fu-berlin.de/~Ezeank/gtk-imonc/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://userpage.fu-berlin.de/ Ezeank/gtk-imonc&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Vous trouverez ici d'autres clients pour KDE, Windows, etc. : &lt;a href=&#034;http://www.fli4l.de/german/addons.htm&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www.fli4l.de/german/addons.htm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Site Web : &lt;a href=&#034;http://www.fli4l.de&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www.fli4l.de&lt;/a&gt;.&lt;br&gt;
Auteur du programme : Frank Meyer.&lt;/p&gt;
&lt;p&gt;Vous trouverez ces informations en anglais et bien d'autres &#224; l'adresse : &lt;a href=&#034;http://www.fli4l.de/german/extern/docu/stable/doc/english/html/index_en.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www.fli4l.de/german/extern/docu/stable/doc/english/html/index_en.html&lt;/a&gt;.&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;&lt;center&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;/center&gt;
&lt;p&gt;Il est conseill&#233; de commencer par une installation sur disquette. Mais, il est &#233;galement possible d'installer fli4l sur un disque dur ou une cartouche Zip.&lt;br class='autobr' /&gt;
Cette solution (utilisation d'une disquette) est id&#233;ale pour tout ceux qui poss&#232;dent un second ordinateur d&#233;j&#224; reli&#233; en r&#233;seau via un hub (concentrateur) ou un switch (commutateur).&lt;/p&gt;
&lt;p&gt;Je vais ici d&#233;crire l'installation que j'ai faite pour un essai de connexion en ISDN.&lt;br&gt;
Afin de rendre les choses un peu difficiles j'ai choisi d'utiliser la carte Gazel ISA.&lt;/p&gt;
&lt;p&gt;L'&#233;quipement de mon r&#233;seau :&lt;br&gt;
1. Cartes r&#233;seau D-LINK DFE-530TX,&lt;br&gt;
2. HUB SMC 3616TC,&lt;br&gt;
3. C&#226;bles Cat5 non crois&#233;es,&lt;br&gt;
4. Adaptateurs ISDN :&lt;br&gt; _Gazel ISA-PNP,&lt;br class='autobr' /&gt; _ELSA microlink PCI.&lt;/p&gt;
&lt;p&gt;Ordinateur faisant fonction temporaire de routeur : Pentium 200 MHz muni d'un lecteur de disquette.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Proc&#233;dure :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il faut d'abord s'assurer que les utilitaires isapnp sont install&#233;s sur l'ordinateur qui fera fonction de routeur.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Faire un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pnpdump &gt; isapnp.conf-tmp&lt;/code&gt;,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Editer le fichier &lt;i&gt;isapnp.conf-tmp&lt;/i&gt;. Enlever toutes les parties qui ne concernent pas la carte Gazel. Ne pas oublier de pr&#233;ciser l'IRQ et l'IO exact de la carte. Pour conna&#238;tre ces deux param&#232;tres, vous pouvez vous reporter aux informations fournies par le Gestionnaire de p&#233;riph&#233;riques) de Windows (si Windows est install&#233; sur le PC), ou bien lancer un utilitaire de configuration sous MS-Dos livr&#233; avec la carte ISDN,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Copier &lt;i&gt;isapnp.conf-tmp&lt;/i&gt; sur une disquette (format&#233;e en vfat) en le renommant en &lt;i&gt;isapnp.conf&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Attention, dans la doc on pr&#233;conise de le faire apr&#232;s le d&#233;marrage du routeur. A &#233;viter, cela ne marche pas !&lt;br&gt;
Il est inutile de faire quoi que ce soit sous le compte root pour fli4l. Donc, restez sous votre compte utilisateur.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; T&#233;l&#233;charger &lt;i&gt;fli4l-2.0.4.tar.gz&lt;/i&gt; depuis (&lt;a href=&#034;http://www.fli4l.de/english/e_download.htm&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www.fli4l.de/english/e_download.htm&lt;/a&gt; ou &lt;a href=&#034;http://www.fli4l.de/german/download.php&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www.fli4l.de/german/download.php&lt;/a&gt;).
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; T&#233;l&#233;charger &lt;i&gt;isdn.tar.gz&lt;/i&gt;.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; T&#233;l&#233;charger &lt;i&gt;gtk-imonc-0.1.6.tar.gz&lt;/i&gt; (trop fain&#233;ant pour taper les commandes au clavier :)),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; D&#233;compacter &lt;i&gt;fli4l-2.0.4.tar.gz&lt;/i&gt; dans un sous-r&#233;pertoire de mon dossier utilisateur. (ex : &amp;tilde;/isdn-routeur),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; D&#233;compacter &lt;i&gt;isdn.tar.gz&lt;/i&gt; dans le dossier fli4l-2.0.4/ (ex : &amp;tilde;/isdn-routeur/fli4l-2.0.4/),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; D&#233;compacter &lt;i&gt;gtk-imonc-0.1.6.tar.gz&lt;/i&gt; dans un sous dossier de mon dossier utilisateur,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Copier &lt;i&gt;isapnp.conf&lt;/i&gt; qui se trouve sur la disquette dans &amp;tilde;/isdn-routeur/fli4l-2.0.4/opt/etc/,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Aller dans &amp;tilde;/isdn-routeur/fli4l-2.0.4/.&lt;/p&gt;
&lt;p&gt;&lt;u&gt;POUR FLI4L :&lt;/u&gt;&lt;/p&gt;
&lt;div class='spip_document_73 spip_document spip_documents spip_document_file spip_documents_left spip_document_left spip_document_avec_legende' data-legende-len=&#034;10&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='http://clx.asso.fr/spip/IMG/txt/doc-73.txt' class=&#034; spip_doc_lien&#034; title='Texte - 14.8 kio' type=&#034;text/plain&#034;&gt;&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L64xH64/txt-55e11.svg?1779469175' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre '&gt;&lt;strong&gt;base.txt
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt; &lt;p&gt;&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Editer &lt;i&gt;&amp;tilde;/isdn-router/fli4l-2.0.4/config/base.txt&lt;/i&gt;,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; L'adapter en fonction de sa configuration et des services que l'on souhaite mettre en place et sauver ensuite le fichier &lt;i&gt;base.txt&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;&lt;u&gt;POUR ISDN :&lt;/u&gt;&lt;/p&gt;
&lt;div class='spip_document_74 spip_document spip_documents spip_document_file spip_documents_left spip_document_left spip_document_avec_legende' data-legende-len=&#034;11&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='http://clx.asso.fr/spip/IMG/txt/doc-74.txt' class=&#034; spip_doc_lien&#034; title='Texte - 4.7 kio' type=&#034;text/plain&#034;&gt;&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L64xH64/txt-55e11.svg?1779469175' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre '&gt;&lt;strong&gt;gazel.txt
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Aller dans &amp;tilde;/isdn-routeur/fli4l-2.0.4/config/.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Editer le fichier &lt;i&gt;isdn.txt&lt;/i&gt;.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; L'adapter &#224; sa configuration et l'enregistrer.&lt;/p&gt;
&lt;p&gt;Les deux fichiers joints sont des exemples pour MA configuration.&lt;/p&gt;
&lt;p&gt;Et maintenant construisons la disquette !&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Aller dans &lt;i&gt;&amp;tilde;/isdn-routeur/fli4l-2.0.4&lt;/i&gt; et introduire une disquette vierge dans le lecteur,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Formater la disquette : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fdformat /dev/fd0u1680&lt;/code&gt; (de pr&#233;f&#233;rence, choisissez une disquette de bonne qualit&#233; pour utiliser ce format),
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Pour plus de s&#233;curit&#233; : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./mkclean.sh&lt;/code&gt;,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Compresser les fichiers n&#233;cessaires : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./mktgz.sh&lt;/code&gt;,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Copier les fichiers sur la disquette : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./mkfloppy.sh -h&lt;/code&gt; (le param&#232;tre &lt;strong&gt;-h&lt;/strong&gt; est n&#233;cessaire pour les disquette de 1680 ko).&lt;/p&gt;
&lt;p&gt;Puisque j'ai choisi une num&#233;rotation manuelle sous X-Window, construisons le programme &lt;i&gt;gtk-imonc&lt;/i&gt; !&lt;br class='autobr' /&gt;
Remarque : pour les mordus du clavier, vous pouvez utiliser une application en console : imonc, &#224; t&#233;l&#233;charger sur le site de &lt;a href=&#034;http://www.fli4l.de/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;fli4l.de&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Aller dans &amp;tilde;/gtk-imonc-0.1.6,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Ex&#233;cuter &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./configure&lt;/code&gt;,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Ex&#233;cuter &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./make&lt;/code&gt;,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Ex&#233;cuter &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;su&lt;/code&gt; afin de basculer sous le compte root,
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Ex&#233;cuter &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./make install&lt;/code&gt; afin d'installer le programme &lt;i&gt;gtk-imonc&lt;/i&gt; dans /usr/local/bin.&lt;/p&gt;
&lt;p&gt;Vous pouvez par la suite rep&#233;rer le fichier gtk-imoc.desktop et le copier ou le glisser &#224; la souris vers le Bureau.&lt;/p&gt;
&lt;p&gt;Voil&#224; ! C'est aussi simple que cela.&lt;/p&gt;
&lt;p&gt;Ne pas oublier si ce n'est pas d&#233;j&#224; fait, de saisir les commandes suivantes (en root) :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;ifconfig eth0 192.168.12.x netmask 255.255.255.0 up route add default gw 192.168.12.1 eth0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Pour autant que votre r&#233;seau est le 192.168.12.0 !!&lt;/p&gt;
&lt;p&gt;Elles r&#233;initialisent la carte r&#233;seau avec l'adresse IP correspondante au r&#233;seau sur lequel le routeur ISDN officie et ajustent la passerelle par d&#233;faut.&lt;br class='autobr' /&gt;
Remplacez 192.168.12.x par l'adresse IP du poste de travail.&lt;/p&gt;
&lt;p&gt;La minute de v&#233;rit&#233; !&lt;/p&gt;
&lt;p&gt;Introduisons la disquette dans l'ordinateur qui doit fonctionner en tant que routeur et mettons-le en route.&lt;br&gt;
...syslinux.....&lt;br&gt;
...kernel........&lt;/p&gt;
&lt;p&gt;Messages d'erreur ??? Impossible ;-)&lt;/p&gt;
&lt;p&gt;Login :&lt;br class='autobr' /&gt;
Saisissez votre login, puis votre mot de passe.&lt;/p&gt;
&lt;p&gt;ATTENTION, le clavier est en qwerty-US. Choisissez donc un mot de passe qui reste facile &#224; m&#233;moriser et qui ne fait pas appel aux lettres A, Q, Z, W et M.&lt;/p&gt;
&lt;p&gt;De retour &#224; votre poste de travail, lancez &lt;i&gt;gtk-imonc&lt;/i&gt;. Cliquez sur le bouton DIAL. Un t&#233;moin de connexion s'affiche dans le bas de la fen&#234;tre.&lt;/p&gt;
&lt;p&gt;Have fun !&lt;/p&gt;
&lt;p&gt;PS : toute la documentation officielle est dans le r&#233;pertoire &amp;tilde;/isdn-routeur/fli4l-2.0.4, malheureusement en allemand. Une liste de diffusion existe mais uniquement en allemand !&lt;/p&gt;
&lt;p&gt;Je conseille de faire une deuxi&#232;me disquette et, dans le fichier &lt;i&gt;base.txt&lt;/i&gt;, de changer le param&#232;tre : (pour le cas o&#249; :))&lt;br&gt;
MOUNT_BOOT='ro' # mount boot device (floppy) : ro, rw, no&lt;/p&gt;
&lt;center&gt;&lt;strong&gt;Divers :&lt;/strong&gt;&lt;/center&gt;
&lt;p&gt;A voir sur : &lt;a href=&#034;http://www-public.tu-bs.de:8080/~y0011440/Router_html/index.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;http://www-public.tu-bs.de:8080/&amp;tilde;y0011440/Router_html/index.html&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Voici une 'one-floppy' passerelle construite par Torben Baras. Il l'a nomm&#233; 'Silent Router'. Devinez pourquoi ;-)&lt;/p&gt;
&lt;div class='spip_document_71 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L320xH200/doc-71-b1eb8.jpg?1759825064' width='320' height='200' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Construit &#224; partir d'une carte m&#232;re 486-DX2 Intel 66 Mhz CPU dans un rack de 19&#034; et fli4l.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Voici le document original au format PDF :&lt;/p&gt;
&lt;div class='spip_document_75 spip_document spip_documents spip_document_file spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='http://clx.asso.fr/spip/IMG/pdf/doc-75.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 333.6 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='http://clx.asso.fr/spip/plugins-dist/medias/prive/vignettes/pdf.svg?1779455012' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Le filtrage de spam sous Debian GNU/Linux</title>
		<link>http://clx.asso.fr/spip/?Le-filtrage-de-spam-sous-Debian-GNU-Linux</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Le-filtrage-de-spam-sous-Debian-GNU-Linux</guid>
		<dc:date>2002-07-24T12:16:19Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Mathieu Bouju</dc:creator>


		<dc:subject>Debian</dc:subject>
		<dc:subject>Sendmail</dc:subject>
		<dc:subject>SPAM</dc:subject>

		<description>&lt;p&gt;Les e-mails non sollicit&#233;s (SPAM, ou encore POURRIEL} envahissent r&#233;guli&#218;rement vos bo&#238;tes &#224; lettres &#233;lectroniques ? Une seule solution : installez un syst&#218;me de filtrage tel que Spamassassin.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Debian-+" rel="tag"&gt;Debian&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-Sendmail-+" rel="tag"&gt;Sendmail&lt;/a&gt;, 
&lt;a href="http://clx.asso.fr/spip/?+-SPAM-+" rel="tag"&gt;SPAM&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='http://clx.asso.fr/spip/local/cache-vignettes/L150xH59/arton116-6c596.png?1759533061' alt='' class='spip_logo spip_logo_right' width='150' height='59' onmouseover='' onmouseout='' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Les e-mails non sollicit&#233;s (&lt;i&gt;SPAM&lt;/i&gt;, ou encore &lt;i&gt;POURRIEL&lt;/i&gt;) envahissent r&#233;guli&#218;rement vos bo&#238;tes &#224; lettres &#233;lectroniques ? Une seule solution : installez un syst&#218;me de filtrage tel que Spamassassin.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Le spam nous pourrit la vie, au moins autant que les 3 tonnes et demie de prospectus qu'on recoit chaque jour dans notre bo&#238;te aux lettres. Quoi de plus rageant que de mettre 10 minutes &#224; r&#233;cup&#233;rer 5 messages lorsque ces derniers se r&#233;v&#232;lent &#234;tre du spam ?&lt;br class='autobr' /&gt;
Il existe des outils adapt&#233;s au filtrage des mails. Spamassassin en est un.&lt;/p&gt;
&lt;p&gt;Packages n&#233;cessaires :&lt;/p&gt;
&lt;p&gt;&lt;i&gt;spamassassin&lt;/i&gt;, &lt;i&gt;procmail&lt;/i&gt;, &lt;i&gt;fetchmail&lt;/i&gt;, &lt;i&gt;qpopper&lt;/i&gt; et votre MTA pr&#233;f&#233;r&#233; (sous Debian celui par d&#233;faut est &lt;i&gt;exim&lt;/i&gt;, je lui pr&#233;f&#232;re &lt;i&gt;sendmail&lt;/i&gt;, mais les go&#251;ts et les couleurs...).&lt;/p&gt;
&lt;p&gt;Premier truc, installer tout ce joyeux bazar...&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;su -&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;# on passe en root&lt;br&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;apt-get install spamassassin procmail fetchmail qpopper exit&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;# on quitte le root, c'est pas &lt;i&gt;secure&lt;/i&gt; du tout&lt;br&gt;&lt;/p&gt;
&lt;p&gt;On va d'abord configurer fetchmail, pour aller r&#233;cup&#233;rer les mails sur les serveurs de notre FAI ou de n'importe qui d'autre.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuration de Fetchmail&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sous Debian, on a la possibilit&#233; de lancer fetchmail en tant que root (beurk) ou d'un utilisateur lambda cr&#233;&#233; pour l'occasion, fetchmail (quelle originalit&#233; :) )&lt;/p&gt;
&lt;p&gt;J'ai pass&#233; la nuit &#224; essayer de faire fonctionner fetchmail en non-root, puis j'ai abandonn&#233;, parce que vraiment... Je ne comprenais pas.&lt;/p&gt;
&lt;p&gt;Donc, j'ai modifi&#233; le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/init.d/fetchmail&lt;/code&gt; de cette mani&#232;re :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;OPTIONS=&#034;--daemon 30 --syslog&#034;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;J'ai supprim&#233; les fonctions testconfig et fixconfperms, qui ne me servaient plus &#224; rien&lt;/p&gt;
&lt;p&gt;Et j'ai remplac&#233; : &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Dans la section &#034;start&#034; du script, la ligne :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;if start-stop-daemon ${START} \ &#034;--command=${DAEMON} ${OPTIONS}&#034; ${RUNUSER} &lt;&amp;- &gt;/dev/null 2&gt;&amp;1 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;par&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;if $DAEMON ${OPTIONS} then;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Dans la section &#034;stop&#034;, la ligne :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;if su &#034;--command=${DAEMON} --quit&#034; ${RUNUSER} &lt;&amp;- &gt;/dev/null 2&gt;&amp;1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;par&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;if kill $(pidof fetchmail) &gt;/dev/null 2&gt;&amp;1 ; then echo &#034;fetchmail.&#034;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ensuite, dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/fetchmailrc&lt;/code&gt;, n&#233;cessaire au fonctionnement de Fetchmail &#224; l'&#233;chelle du syst&#232;me (et non pas d'un utilisateur), j'ai saisi :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;poll serveur.fai.tld protocol pop3 username &#034;utilisateur&#034; pass &#034;xxxxxx&#034; is &#034;user-unix&#034; here&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Diverses options sont disponibles, comme &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;keep&lt;/code&gt;, qui permet de garder une copie du message sur le serveur (attention, certains FAI appr&#233;cient mod&#233;r&#233;ment &#231;a, et si, sur le serveur, la bo&#238;tes aux lettres d&#233;passe une certaine taille (entre 5 et 20 Mo), ils bloquent la r&#233;ception de nouveaux messages.&lt;/p&gt;
&lt;p&gt;Il faut veiller &#224; &#233;tablir les bons droits sur ce fichier (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/fetchmailrc&lt;/code&gt;). En effet, &#231;a ne serait pas tr&#232;s intelligent d'autoriser tout le monde &#224; lire ce fichier, qui contient les mots de passe de vos messageries &#233;lectroniques en clair :) )&lt;/p&gt;
&lt;p&gt;donc&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;chown root.root /etc/fetchmailrc chmod 0600 /etc/fetchmailrc&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Depuis ce moment, votre machine interroge toutes les 30 secondes votre serveur pop (&#231;a peut para&#238;tre rapide mais avec certaines mailing-list c'est obligatoire si on ne veut pas r&#233;cup&#233;rer 800 mails en une fois), et envoie ces messages dans les comptes des utilisateurs.&lt;/p&gt;
&lt;p&gt;Maintenant, on va configurer Procmail pour utiliser spamassassin, qui est l'objet de cet article :p&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuration de Procmail&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Premi&#232;re chose, pour les utilisateurs de sendmail, il faut ajouter procmail dans la liste des programmes utilisables par smrsh...&lt;/p&gt;
&lt;p&gt;Pour ce faire :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;ln -s /usr/bin/procmail /etc/mail/smrsh/procmail&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ensuite, cr&#233;ez dans le r&#233;pertoire de l'utilisateur un fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.procmailrc&lt;/code&gt;, contenant les &#034;recipes&#034; (ou r&#232;gles) suivantes :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;PMDIR=$HOME/Procmail LOGFILE=$PMDIR/log MAILDIR=$HOME/Maildir :0fw | spamassassin -P :0: * ^X-Spam-Status: Yes spambox&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La premi&#232;re recipe consiste &#224; passer tous les messages &#224; la moulinette de Spamassassin, la seconde &#224; mettre tous les messages consid&#233;r&#233;s comme &#233;tant du spam dans un fichier &#224; part, en l'occurence spambox.&lt;/p&gt;
&lt;p&gt;Ensuite, il faut dire au MTA de passer par Procmail pour distribuer les mails... C'est le r&#244;le du fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.forward&lt;/code&gt; (toujours dans le r&#233;pertoire utilisateur), qui doit contenir :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&#034;| procmail&#034;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;(oui, c'est tout)&lt;/p&gt;
&lt;p&gt;Maintenant, tous les messages qui vous sont envoy&#233;s passent par spamassassin, dont vous pourrez modifier la config qui se trouve dans le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/spamassassin&lt;/code&gt;, afin de l'assaisonner &#224; vos besoins (pour le moment &#231;a me convient tel que).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Au final&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Pourquoi avoir choisi Spamassassin ?&lt;br&gt;
Parce que son syst&#232;me de notation du spam permet de r&#233;gler tr&#232;s finement ce qu'on consid&#232;re comme &#233;tant du spam, et, qu'&#224; priori, les fichiers de config sont relativement faciles &#224; lire.&lt;/p&gt;
&lt;p&gt;Voici le r&#233;sultat d'un mail filtr&#233; avec Spamassassin :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;SPAM: -------------------- Start SpamAssassin results SPAM: FROM_NAME_NO_SPACES (-0.1 points) From: no spaces in name SPAM: MSG_ID_ADDED_BY_MTA (4.0 points) 'Message-Id' was added by a relay SPAM: KOREAN_UCE_SUBJECT (3.4 points) Subject: contains Korean unsolicited email tag SPAM: INVALID_MSGID (1.8 points) Message-Id is not valid, according to RFC-2822 SPAM: NO_REAL_NAME (0.5 points) From: does not include a real name SPAM: FROM_ENDS_IN_NUMS (0.4 points) From: ends in numbers SPAM: PLING (0.1 points) Subject has an exclamation mark SPAM: MAILTO_TO_SPAM_ADDR (0.5 points) URI: Includes a link to a likely spammer email address SPAM: MAILTO_LINK (0.8 points) BODY: Includes a URL link to send an email SPAM: SUBJ_FULL_OF_8BITS (4.3 points) Subject is full of 8-bit characters SPAM: DATE_IN_PAST_12_24 (1.7 points) Date: is 12 to 24 hours before Received: date SPAM: CTYPE_JUST_HTML (1.7 points) HTML-only mail, with no text version&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On voit ci-dessus que Spamassassin note chaque &lt;i&gt;composant type&lt;/i&gt; d'un mail de spam, et d&#233;termine de la sorte si le mail peut &#234;tre consid&#233;r&#233; comme &#233;tant du spam.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.spamassassin.org&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;SPAMassassin&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.sendmail.org&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Sendmail&lt;/a&gt;, ou sur le &lt;a href='http://clx.asso.fr/spip/?Le-sendmail-cf' class=&#034;spip_in&#034;&gt;site CLX&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;a href=&#034;http://www.procmail.org&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Procmail&lt;/a&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Des articles sur le fonctionnement g&#233;n&#233;ral d'une messagerie et sur SPAMassassin &lt;a href=&#034;http://www.troubleshooters.com/lpm/200402/200402.htm&#034; class=&#034;spip_url spip_out&#034; rel=&#034;external&#034;&gt;http://www.troubleshooters.com/lpm/...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>Introduction au protocole HTTP</title>
		<link>http://clx.asso.fr/spip/?Introduction-au-protocole-HTTP</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?Introduction-au-protocole-HTTP</guid>
		<dc:date>2002-07-18T14:53:06Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Sebastien Couret</dc:creator>


		<dc:subject>Protocoles</dc:subject>

		<description>&lt;p&gt;Qu'est-ce qui se cache derri&#218;re un clic de souris ? Qu'est-ce qu'une URL ? Comment le navigateur Web demande une page Web &#224; un serveur ?&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Technique-" rel="directory"&gt;Technique&lt;/a&gt;

/ 
&lt;a href="http://clx.asso.fr/spip/?+-Protocoles-+" rel="tag"&gt;Protocoles&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;De nos jours, &#034;surfer&#034; sur le Web est un acte entr&#233; dans le quotidien de bons nombre de personnes.&lt;BR&gt;
Nous sommes de plus en plus nombreux &#224; utiliser ce service par le biais de logiciels appel&#233;s &#034;navigateurs&#034;, &#034;butineurs&#034; ou encore &#034;browsers&#034; pour les anglicistes.&lt;BR&gt;
Et ceci bien s&#251;r avec grand plaisir.&lt;BR&gt;
&lt;BR&gt;
Malheureusement,(d'aucuns diront heureusement) peu d'entre-nous savent ce qui se cache sous les clics de la souris.&lt;BR&gt;
&lt;BR&gt;
Aussi c'est dans une suite d'articles &#224; la technicit&#233; croissante que je me propose de vous faire d&#233;couvrir la face cach&#233;e du Web.&lt;BR&gt;
&lt;BR&gt;Cet article, le premier volet de la s&#233;rie pr&#233;sente les bases n&#233;cessaires pour aller plus en avant.&lt;BR&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;INTRODUCTION&lt;/h2&gt;
&lt;p&gt;Le protocole HTTP est parmi tous les protocoles applicatifs s&#251;rement celui dont l'utilisation est la plus courante chez les n&#233;ophytes.&lt;BR&gt;
Un peu comme Mr Jourdain qui fait de la prose sans le savoir, tous ceux qui &#034;surfent&#034; sur le web utilisent le protocole HTTP.&lt;BR&gt;
&lt;BR&gt;
Cet article a pour but d'entrer plus profondement dans le fonctionnement de ce fameux protocole HTTP afin de vous faire d&#233;couvrir ce que fait votre navigateur pr&#233;f&#233;r&#233; dans votre dos...&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;PRESENTATION&lt;/h2&gt;
&lt;p&gt;Nous allons par la suite utiliser le terme &lt;i&gt;&#034;client&#034;&lt;/i&gt; pour parler de la machine sur laquelle s'ex&#233;cute le navigateur et de &lt;i&gt;&#034;serveur&#034;&lt;/i&gt; pour la machine qui renvoie les documents voulus (par exemple &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;clx.anet.fr&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;De fa&#231;on basique le &lt;i&gt;client&lt;/i&gt; demande un document au &lt;i&gt;serveur&lt;/i&gt;.&lt;BR&gt;
Ce document est identifi&#233; via son &lt;i&gt;URL&lt;/i&gt;&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb12-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Uniform Ressource Locator&#034; id=&#034;nh12-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Apprendre &#224; lire une URL&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Voyons comment &#034;lire&#034; une URL :&lt;br class='autobr' /&gt;
&lt;BR&gt;
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Voici un exemple simple d'URL :&lt;br&gt;
&lt;a href=&#034;http://10function.kicks-ass.org/back.jpg&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;http://10function.kicks-ass.org/back.jpg&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Un URL peut &#234;tre d&#233;compos&#233;e en un certain nombre de champs comme suit :&lt;BR&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;http&lt;/code&gt; d&#233;signe le protocole utilis&#233;. On peut aussi trouver des valeurs comme ftp, https, gopher ...&lt;BR&gt;
Seul http nous int&#233;resse pour l'instant.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;://&lt;/code&gt; est un s&#233;parateur qui permet de diff&#233;rencier le nom du protocole de la suite de l'URL.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;10function.kicks-ass.org&lt;/code&gt; d&#233;signe le nom d'h&#244;te de la machine sur laquelle se trouve le document requis. Remarquez que le nom du serveur Web ou serveur HTTP peut aussi &#234;tre identifi&#233; par une adresse IP comme &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;80.118.2.10&lt;/code&gt;.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/&lt;/code&gt; est un nouveau s&#233;parateur qui indique la fin du nom d'h&#244;te du serveur.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; On trouve ensuite la localistation du document sur le serveur.&lt;BR&gt;
Ici &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;back.jpg&lt;/code&gt; donne le nom du document.&lt;BR&gt;
On peut voir rapidement qu'il s'agit d'un fichier nomm&#233; back.jpg, et de par son extension qu'il s'agit sans doute d'une image.&lt;BR&gt;&lt;/p&gt;
&lt;p&gt;Il arrive que l'on ait une URL un peu plus complexe comme :&lt;br&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;http://10function.kicks-ass.org:80/books/ruhacker.txt&lt;/code&gt;&lt;br class='autobr' /&gt;
On retrouve une syntaxe proche de la pr&#233;c&#233;dente avec quelques &#034;suppl&#233;ments&#034; :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;:80&lt;/code&gt; Indique le port TCP utilis&#233; pour communiquer avec le serveur. Dans 95% des cas il s'agit du port 80 qui est le port standard pour un serveur HTTP.&lt;br class='autobr' /&gt;
Remarquez que ne pas mentionner ce numero de port indique implicitement le port 80. &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/books/ruhacker.txt&lt;/code&gt; Est le nom et l'emplacement du document voulu sur le serveur.&lt;br class='autobr' /&gt;
Il est ici un peu plus complexe que pr&#233;c&#233;dement car il s'agit d'un chemin complet (un path) ; il faut donc &#034;lire&#034; que le document est 'ruhacker.txt' et qu'il se trouve dans le r&#233;pertoire /books/.&lt;/p&gt;
&lt;p&gt;Si ce le nom du document n'est pas indiqu&#233;, et que seul le r&#233;pertoire est mentionn&#233;, ce qui est tr&#232;s courant, le serveur renvoie un document d&#233;fini comme &#233;tant le document par d&#233;faut dans son fichier de configuration&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb12-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;En g&#233;n&#233;ral, le document par d&#233;faut se nomme index.html, index.htm ou (&#8230;)&#034; id=&#034;nh12-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;FONCTIONNEMENT&lt;/h2&gt;
&lt;p&gt;Lorsque vous voulez &#034;naviguer&#034; sur le web. Vous commencez en g&#233;n&#233;ral par saisir 'l'adresse du site'&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb12-3&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;ie. l'URL&#034; id=&#034;nh12-3&#034;&gt;3&lt;/a&gt;]&lt;/span&gt;. (ex : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;http://clx.anet.fr&lt;/code&gt;).&lt;br class='autobr' /&gt;
Pour surfer, l'URL est la seule chose que vous ayez &#224; fournir &#224; votre navigateur dans la zone de saisie (la barre d'adresse).&lt;BR&gt;
Quand vous cliquez sur un lien vous remarquerez que le navigateur remplit cette zone &#224; votre place.&lt;BR&gt;
Un lien n'est en fait ni plus ni moins qu'une URL vers une autre page.&lt;BR&gt;
Apr&#232;s quelques instants, le navigateur affiche le document demand&#233;.&lt;/p&gt;
&lt;p&gt;Mais voici ce qui se passe en r&#233;alit&#233;... en &#034;coulisse&#034;.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Le navigateur (ou client) analyse (on dit &lt;i&gt;parse&lt;/i&gt; en franglais informatique) l'URL qui lui a &#233;t&#233; fournie et tente d'&#233;tablir un session TCP&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb12-4&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Une session TCP est une connexion avec un serveur distant&#034; id=&#034;nh12-4&#034;&gt;4&lt;/a&gt;]&lt;/span&gt; avec l'h&#244;te mentionn&#233;, sur le port indiqu&#233;, et via le protocole choisi.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Si la connexion s'effectue, le client envoie une requ&#234;te HTTP vers le serveur (Le nom du document est inclu dans cette requ&#234;te). &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Le serveur re&#231;oit et analyse cette requ&#234;te puis recherche le document correspondant et s'il le poss&#232;de renvoie l'ensemble du document pr&#233;c&#233;d&#233; d'une &#034;en-t&#234;te&#034; de son cru vers le client.&lt;br class='autobr' /&gt;
Il ferme ensuite la session TCP.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Le navigateur interpr&#232;te (c'est &#224; dire traduit) le document re&#231;u sous une forme simple pour nous autres humains.&lt;br class='autobr' /&gt;
*S'il s'agit d'une image, il l'affiche ;&lt;br class='autobr' /&gt;
*S'il s'agit d'un texte, il l'affiche &#233;galement ;&lt;br class='autobr' /&gt;
*S'il s'agit d'une page HTML (ou page Web), il recherche les URLs d&#233;signant les documents inclus dans la page (images,sons,frames...) et reprend le processus au point &lt;strong&gt;1&lt;/strong&gt;) pour chacune de ces URL.&lt;br class='autobr' /&gt;
*S'il s'agit d'un son (MP3/WAV/OGG VORBIS...), il lance le logiciel associ&#233; (ce dernier &#233;tant install&#233; sur votre syst&#232;me).
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Vous regardez &#233;bahi, le r&#233;sultat (de m&#234;me pour cet article).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;PRATIQUE&lt;/h2&gt;
&lt;p&gt;Fort bien. Apr&#232;s la th&#233;orie, passons &#224; la pratique.&lt;br class='autobr' /&gt;
Le protocole HTTP est un protocole assez ancien, l'&#233;change se fait donc en mode texte. Il n'est ainsi pas n&#233;cessaire de coder des structures particuli&#232;res pour communiquer avec ce protocole.&lt;BR&gt;
En fait un simple client comme &lt;i&gt;telnet&lt;/i&gt; suffit.&lt;/p&gt;
&lt;p&gt;Allez, c'est parti, nous allons simuler &#224; la main le fonctionnement d'un navigateur.&lt;/p&gt;
&lt;p&gt;1) On va &#233;tablir la connection avec le serveur sur le port 80 :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lucif3r:~$ telnet clx.anet.fr 80 Trying 80.118.2.10... Connected to gaia.anet.fr. Escape character is '^]'.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;2) A partir de ce moment, le serveur attend une requ&#234;te de notre part. Une requ&#234;te tr&#232;s simple serait&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;GET / \n \n&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;i&gt;le caract&#232;re '\n' correspond &#224; un retour &#224; la ligne, c'est &#224; dire un appui sur la touche Entr&#233;e&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;3) A la r&#233;ception de cette requ&#234;te, le serveur vous renvoie le contenu du document par d&#233;faut. Puis clot la connexion :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;!DOCTYPE HTML PUBLIC &#034;-//W3C//DTD HTML 3.2//EN&#034;&gt; &lt;HTML&gt; &lt;HEAD&gt; [ COUPE CAR TROP LONG ] &lt;/BODY&gt; &lt;/HTML&gt; Connection closed by foreign host. lucif3r:~$&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La phase 4) est en fait une mise en page du document HTML qui apparait sous sa forme brute (le source) dans la r&#233;ponse donn&#233;e par telnet.&lt;/p&gt;
&lt;p&gt;Easy non ?&lt;BR&gt;
Les requ&#234;tes peuvent &#233;videment &#234;tre beaucoup plus complexes.&lt;br class='autobr' /&gt;
Voyons de plus pr&#232;s ce qu'il est possible de faire :&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;LES REQUETES HTTP&lt;/h2&gt;
&lt;p&gt;Pour simplifier, nous allons nous int&#233;resser aux trois requ&#234;tes les plus courantes.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; GET : Comme nous venons de le voir GET permet de r&#233;cup&#233;rer un document sur le serveur.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; HEAD : Fonctionne comme GET, mais ne retourne qu'un en-t&#234;te e HTTP sans le corps du document. Ce type de requ&#234;te peut &#234;tre utile pour connaitre la taille du document par exemple.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; POST : Permet d'envoyer des donn&#233;es au serveur dans le corps de la requ&#234;te. En effet jusqu'&#224; maintenant nous avons vu que les donn&#233;es &#233;taient toujours envoy&#233;es par le serveur.&lt;/p&gt;
&lt;p&gt;Mais il arrive que le navigateur doive lui aussi faire parvenir des donn&#233;es au serveur. Le cas le plus courant est un formulaire o&#249; l'on vous demande vos coordonn&#233;es par exemple.&lt;/p&gt;
&lt;p&gt;Donc la requ&#234;te commence en g&#233;n&#233;ral par une commande GET, HEAD ou POST suivie du chemin du document &#224; chercher.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; / : Permet d'aller chercher le document par d&#233;faut qui est en g&#233;n&#233;ral la page d'accueil du site.&lt;br class='autobr' /&gt;
Mais on peut tr&#232;s bien mentionner un chemin complet :&lt;/p&gt;
&lt;p&gt;par exemple :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lucif3r:~# telnet 10function.kicks-ass.org 80 Trying 80.13.111.104... Connected to 10function.kicks-ass.org. Escape character is '^]'. GET /books/ruhacker.txt \n \n &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Permet d'obtenir la prose de ReDragon.(Je rappelle que \n signifie entr&#233;e).&lt;/p&gt;
&lt;p&gt;En r&#233;alit&#233; les navigateurs ne se contentent pas de requ&#234;tes aussi simples, ils fournissent (parfois &#224; votre insu) d'autres informations &#224; la suite du GET.&lt;br class='autobr' /&gt;
Il peut aussi s'agir de n&#233;gocier certaines options comme la langue ou les tables de caract&#232;res support&#233;es.&lt;br class='autobr' /&gt;
Il s'agit de ce que nous appelerons une en-t&#234;te HTTP.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;L'ent&#234;te HTTP (Envoy&#233;e par le client)&lt;/h2&gt;
&lt;p&gt;L'ent&#234;te est g&#233;n&#233;ralement une liste de variables et de valeurs associ&#233;es. Voici un tableau recensant ces variables :&lt;br class='autobr' /&gt;
&lt;BR&gt;&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Date&lt;/td&gt;
&lt;td&gt;Date et heure de g&#233;n&#233;ration de la requ&#234;te&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Authorization&lt;/td&gt;
&lt;td&gt;Permet d'acc&#233;der &#224; des ressources prot&#233;g&#233;es par un mot de passe&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;From&lt;/td&gt;
&lt;td&gt;Adresse e-mail de l'utilisateur effectuant la requ&#234;te&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;If-Modified-Since&lt;/td&gt;
&lt;td&gt;Sp&#233;cifie une date permettant d'introduire une condition (GET conditionnel)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Referer&lt;/td&gt;
&lt;td&gt;Pointe sur l'URL de la page &#224; partir de laquelle le document est demand&#233;.&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;User-Agent&lt;/td&gt;
&lt;td&gt;Identifiant logiciel de navigation employ&#233;.(w3M RuleZ)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Content-Type&lt;/td&gt;
&lt;td&gt;Type de donn&#233;es contenues dans le corps de la requ&#234;te (Dans le cas d'un POST)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Content-Length&lt;/td&gt;
&lt;td&gt;Longueur du corps &#233;ventuelle de la requ&#234;te&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Content-Encoding&lt;/td&gt;
&lt;td&gt;Indique un codage suppl&#233;mentaire associ&#233; &#224; la ressource acc&#233;d&#233;e.&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Connection&lt;/td&gt;
&lt;td&gt;Comportement d&#233;sir&#233; au niveau des connections persistantes.&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Accept&lt;/td&gt;
&lt;td&gt;Indique la liste des types de donn&#233;es support&#233;es par le client&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Accept-Charset&lt;/td&gt;
&lt;td&gt;Enum&#232;re la ou les tables de caract&#232;res support&#233;es&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Accept-Encoding&lt;/td&gt;
&lt;td&gt;Pr&#233;cise une sp&#233;cification du type d'encodage accept&#233; pour la r&#233;ponse&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Accept-Language&lt;/td&gt;
&lt;td&gt;Sp&#233;cifie la liste des langues pr&#233;f&#233;r&#233;s de l'utilisateur&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Host&lt;/td&gt;
&lt;td&gt;Indique le nom du serveur(+no de port) &#224; partir duquel le document doit &#234;tre r&#233;cup&#233;r&#233;.(cf VirtualHost)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/TABLE&gt;
&lt;p&gt;Tout d'abord, il faut savoir que pour utiliser ce type d'entt&#234;te, il faut mentionner &#224; la suite de la requ&#234;te la version du protocole utilis&#233;e. (en g&#233;n&#233;ral HTTP 1.0 ou HTTP/1.0 voire HTTP 1.1 ou HTTP/1.1)&lt;/p&gt;
&lt;p&gt;Parmis toutes ces variables celle qui me parait la plus importante est 'Host'.&lt;br class='autobr' /&gt;
En effet la plupart des serveurs HTTP - pour ne pas dire tous - n'h&#233;bergent pas qu'un seul site, pour des raisons d'&#233;conomie d'adresses IP. On fait alors appel au &lt;i&gt;virtual-host&lt;/i&gt; pour les distinguer les uns des autres.&lt;br class='autobr' /&gt;
En pratique la valeur fix&#233;e avec Host permet d'arriver sur une racine de site diff&#233;rente, et d'associer plusieurs noms de sites &#224; une seule et m&#234;me adresse IP.&lt;br class='autobr' /&gt;
Par exemple :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;lucif3r:~$ telnet clx.anet.fr 80 Trying 80.118.2.10... Connected to gaia.anet.fr. Escape character is '^]'. GET / HTTP 1.0\n Host:clx.anet.fr\n HTTP/1.1 200 OK Date: Sat, 13 Jul 2002 22:07:28 GMT Server: Apache/1.3.9 (Unix) Debian/GNU PHP/3.0.18 mod_ssl/2.4.10 OpenSSL/0.9.4 mod_perl/1.21_03-dev Last-Modified: Sun, 12 May 2002 11:52:42 GMT ETag: &#034;7a81-7f-3cde578a&#034; Accept-Ranges: bytes Content-Length: 127 Connection: close Content-Type: text/html; charset=iso-8859-1 &lt;html&gt; &lt;head&gt; &lt;link rel=&#034;shortcut icon&#034; href=&#034;favicon.ico&#034;&gt; &lt;meta http-equiv=&#034;refresh&#034; content=&#034;0;url=/spip/&#034;&gt; &lt;/head&gt; &lt;/html&gt; Connection closed by foreign host.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous permet de demander la page de garde du clx.&lt;br class='autobr' /&gt;
Remarquons d&#232;s lors que le serveur a r&#233;pondu en ins&#233;rant lui aussi une en-t&#234;te HTTP.&lt;br class='autobr' /&gt;
Nous allons donc d&#233;tailler un peu plus l'en-t&#234;te HTTP retourn&#233;e.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;L'en t&#234;te HTTP (Renvoy&#233;e par le serveur)&lt;/h2&gt;&lt;BR&gt;
&lt;TABLE BORDER=1&gt;&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Accept-Range&lt;/td&gt;
&lt;td&gt;Permet au serveur d'indiquer s'il accepte l'acc&#232;s &#224; des portions de documents et, si oui,avec quelle granularit&#233;(au niveau de l'octet par exemple)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Content-length&lt;/td&gt;
&lt;td&gt;Taille du flux de sortie(en octets), consid&#233;r&#233; comme &#233;tant un binaire&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Content-type&lt;/td&gt;
&lt;td&gt;Type MIME du flux de sortie&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Date&lt;/td&gt;
&lt;td&gt;Date et heure de g&#233;n&#233;ration de la r&#233;ponse&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Last-Modified&lt;/td&gt;
&lt;td&gt;Date de derni&#232;re modification&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Expires&lt;/td&gt;
&lt;td&gt;Date et heure de fin de validit&#233; du document, lequel doit alors &#234;tre charg&#233; &#224; nouveau par le serveur.&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Pragma&lt;/td&gt;
&lt;td&gt;Document cach&#233; / non cach&#233;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;Etat de la requ&#234;te (ne doit en aucun cas figurer dans un intitul&#233; complet)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Server&lt;/td&gt;
&lt;td&gt;Logiciel et version du serveur HTTP&lt;/td&gt;
&lt;td&gt;Location&lt;/td&gt;
&lt;td&gt;Redirection du serveur (ne doit en aucun cas appara&#238;tre dans un intitul&#233; complet.)(Codes de statut 301 et 302)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;WWW-Authenticate&lt;/td&gt;
&lt;td&gt;Demande l'authentification de l'utilisateur(R&#233;ponse de type 401)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Refresh&lt;/td&gt;
&lt;td&gt;Le client doit charger &#224; nouveau le document mentionn&#233;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Set-Cookie&lt;/td&gt;
&lt;td&gt;Le client stocke les donn&#233;es sp&#233;cifi&#233;es, qui peuvent alors &#234;tre conserv&#233;es en m&#233;moire entre deux requ&#234;tes&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/TABLE&gt;
&lt;p&gt;Avec un peu d'attention, vous aurez sans doute remarqu&#233; que le serveur d&#233;bute l'en-t&#234;te de la r&#233;ponse par une cha&#238;ne du type :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;HTTP/1.1 200 OK&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;BR&gt;
&lt;strong&gt;HTTP/1.1&lt;/strong&gt; est la version du protocole utilis&#233; par le serveur.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;200&lt;/strong&gt; est un code de retour dont nous allons d&#233;tailler tout de suite les valeurs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OK&lt;/strong&gt; est le message associ&#233; &#224; la valeur de retour.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Code de retour&lt;/h2&gt;&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric '&gt;200&lt;/td&gt;
&lt;td&gt;R&#233;ussite&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric '&gt;201&lt;/td&gt;
&lt;td&gt;R&#233;ussite et cr&#233;ation d'un nouveau document (POST)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric '&gt;202&lt;/td&gt;
&lt;td&gt;Requ&#234;te accept&#233;e, traitement en cours&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric '&gt;204&lt;/td&gt;
&lt;td&gt;Aucune R&#233;ponse (corps vide)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric '&gt;301&lt;/td&gt;
&lt;td&gt;Document d&#233;plac&#233; permanent&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric '&gt;302&lt;/td&gt;
&lt;td&gt;Document d&#233;plac&#233; temporairement&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric '&gt;304&lt;/td&gt;
&lt;td&gt;La ressource demand&#233;e n'a pas &#233;t&#233; modifi&#233;e (GET conditionnel)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric '&gt;400&lt;/td&gt;
&lt;td&gt;Erreur de syntaxe dans la requ&#234;te envoy&#233;e&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric '&gt;401&lt;/td&gt;
&lt;td&gt;Autorisation non valable&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric '&gt;403&lt;/td&gt;
&lt;td&gt;Acc&#232;s interdit&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric '&gt;404&lt;/td&gt;
&lt;td&gt;Introuvable&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric '&gt;500&lt;/td&gt;
&lt;td&gt;Erreur syst&#232;me&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric '&gt;501&lt;/td&gt;
&lt;td&gt;Op&#233;ration non impl&#233;ment&#233;e&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td class='numeric '&gt;502&lt;/td&gt;
&lt;td&gt;Le serveur, utilis&#233; comme interm&#233;diaire, a re&#231;u une r&#233;ponse invalide du syst&#232;me acc&#233;d&#233; pour le compte du client&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td class='numeric '&gt;503&lt;/td&gt;
&lt;td&gt;Service indisponible&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Voil&#224;, c'est tout pour aujourd'hui...&lt;br class='autobr' /&gt;
Bon test, et &#224; bient&#244;t !&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb12-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh12-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 12-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Uniform Ressource Locator&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb12-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh12-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 12-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;En g&#233;n&#233;ral, le document par d&#233;faut se nomme index.html, index.htm ou index.php (sur un serveur apache) et default.htm, default.htm sur un serveur propri&#233;taire Microsoft IIS&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb12-3&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh12-3&#034; class=&#034;spip_note&#034; title=&#034;Notes 12-3&#034; rev=&#034;appendix&#034;&gt;3&lt;/a&gt;] &lt;/span&gt;&lt;i&gt;ie.&lt;/i&gt; l'URL&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb12-4&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh12-4&#034; class=&#034;spip_note&#034; title=&#034;Notes 12-4&#034; rev=&#034;appendix&#034;&gt;4&lt;/a&gt;] &lt;/span&gt;Une session TCP est une connexion avec un serveur distant&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>


 
	


 
	

</channel>
</rss>
