<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://documentation.leonardmercader.com/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>documentation</title>
	<link>https://documentation.leonardmercader.com/</link>
	<description></description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://documentation.leonardmercader.com/spip.php?page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>R&#233;seaux Cisco</title>
		<link>https://documentation.leonardmercader.com/?Reseaux-Cisco</link>
		<guid isPermaLink="true">https://documentation.leonardmercader.com/?Reseaux-Cisco</guid>
		<dc:date>2022-08-14T16:43:02Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>leonard</dc:creator>



		<description>
&lt;p&gt;I - Cisco &lt;br class='autobr' /&gt;
https://he.net/3d-map/
&lt;br class='autobr' /&gt;
https://zed-network.fr/
&lt;br class='autobr' /&gt;
Marque propri&#233;taire, incontournable du r&#233;seau. II - CLI (Commande Line Interface) &lt;br class='autobr' /&gt;
Interface de lignes de commandes permettant d'entr&#233;e sur du mat&#233;riel r&#233;seaux Cisco pour les configurer et les g&#233;rer. **II.a - Commandes utiles &lt;br class='autobr' /&gt;
enable : pour passer en privil&#232;ge. &lt;br class='autobr' /&gt;
configuration terminal ou conf t : pour passer en mode configuration.
&lt;br class='autobr' /&gt;
interface &lt;nom_interface&gt; : configurer une interface r&#233;seau. &lt;br class='autobr' /&gt;
show ? : man de la commande (&#8230;)&lt;/p&gt;


-
&lt;a href="https://documentation.leonardmercader.com/?-Informatique-" rel="directory"&gt;Informatique&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;cisco-0&#034; name=&#034;cisco-0&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a1&#034; name=&#034;a1&#034;&gt;&lt;/a&gt;I - Cisco&lt;/h3&gt; &lt;p&gt;&lt;a href=&#034;https://he.net/3d-map/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://he.net/3d-map/&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://zed-network.fr/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://zed-network.fr/&lt;/a&gt;&lt;br class='autobr' /&gt;
Marque propri&#233;taire, incontournable du r&#233;seau.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;cli-commande-line-interface-1&#034; name=&#034;cli-commande-line-interface-1&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2&#034; name=&#034;a2&#034;&gt;&lt;/a&gt;II - CLI (Commande Line Interface)&lt;/h3&gt; &lt;p&gt;Interface de lignes de commandes permettant d'entr&#233;e sur du mat&#233;riel r&#233;seaux Cisco pour les configurer et les g&#233;rer.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;commandes-utiles-2&#034; name=&#034;commandes-utiles-2&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.1&#034; name=&#034;a2.1&#034;&gt;&lt;/a&gt;II.a - Commandes utiles&lt;/h4&gt; &lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;enable&lt;/code&gt; : pour passer en privil&#232;ge.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;configuration terminal&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;conf t&lt;/code&gt; : pour passer en mode configuration.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;interface &lt;nom_interface&gt;&lt;/code&gt; : configurer une interface r&#233;seau.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;show ?&lt;/code&gt; : man de la commande show. &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;show ip interfaces brief&lt;/code&gt; &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sh run interfa &lt;N&#176;Interface&gt;&lt;/code&gt; : n'affiche que l'interface souhait&#233;.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;include&lt;/code&gt; &#233;quivalent &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;grep&lt;/code&gt; dan le bash. &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sh run | include secret&lt;/code&gt; (pour n'afficher que les mots de passe.)&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;begin toto&lt;/code&gt; est comme un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;grep ^toto&lt;/code&gt; : affichera tout ce qui commence par toto.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#sh run | begin access-list 1&lt;/code&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;liens-interessants-3&#034; name=&#034;liens-interessants-3&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.2&#034; name=&#034;a2.2&#034;&gt;&lt;/a&gt;II.b - Liens int&#233;ressants&lt;/h4&gt; &lt;p&gt;Sur les switchs :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.ciscomadesimple.be/2014/07/24/switching-fundamentals-table-dadresses-mac-content-addressable-memory-cam-table/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.ciscomadesimple.be/2014/07/24/switching-fundamentals-table-dadresses-mac-content-addressable-memory-cam-table/&lt;/a&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;les-differents-modes-4&#034; name=&#034;les-differents-modes-4&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.3&#034; name=&#034;a2.3&#034;&gt;&lt;/a&gt;II.1 - Les diff&#233;rents modes.&lt;/h4&gt; &lt;p&gt;Pour sortir d'un mode :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;exit&lt;/code&gt;&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-utilisateur-user-exec-command-5&#034; name=&#034;mode-utilisateur-user-exec-command-5&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.3.1&#034; name=&#034;a2.3.1&#034;&gt;&lt;/a&gt;II.1.1 - Mode Utilisateur : User EXEC Command&lt;/h5&gt; &lt;p&gt;On peut faire des ping ou passer les commandes &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;show&lt;/code&gt; (afin d'afficher des informations).&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;NomDuRouter&gt;&lt;/code&gt; s'affiche quand on est dans ce mode. &#192; partir de ce mode, on peut passer en mode Privil&#232;ge gr&#226;ce &#224; la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;enable&lt;/code&gt;.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-privilege-privileged-exec-command-6&#034; name=&#034;mode-privilege-privileged-exec-command-6&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.3.2&#034; name=&#034;a2.3.2&#034;&gt;&lt;/a&gt;II.1.2 - Mode Privil&#232;ge : Privileged EXEC Command&lt;/h5&gt; &lt;p&gt;&lt;strong&gt;&#201;quivaudrait au root syst&#232;me&lt;/strong&gt;. On peut passer les commande utilisateur mais aussi d'autres commandes de &lt;strong&gt;manipulations de fichiers&lt;/strong&gt; ou de &lt;strong&gt;passer en mode debug&lt;/strong&gt;.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;NomDuRouter#&lt;/code&gt; s'affiche lorsqu'on est dans ce mode. De ce mode, on peut passer en mode &#171; Configuration Globale &#187; avec la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;configure terminal. &lt;/code&gt;&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-globale-global-configuration-7&#034; name=&#034;mode-configuration-globale-global-configuration-7&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.3.3&#034; name=&#034;a2.3.3&#034;&gt;&lt;/a&gt;II.1.3 - Mode configuration Globale : Global Configuration command&lt;/h5&gt; &lt;p&gt;C'est un sous-mode du mode Privil&#232;ge. On peut ainsi passer des commandes de configuration, comme la modification du hostname... &lt;u&gt;&lt;strong&gt;Aucune commande du Mode Privil&#232;ge n'est possible.&lt;/strong&gt;&lt;/u&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;NomDuRouter(config)#&lt;/code&gt; s'affiche lorsqu'on est en mode configuration globale.&lt;/p&gt;
&lt;p&gt;Depuis ce mode on peut passer &#224; 3 autres sous-modes :&lt;/p&gt; &lt;h6 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-interface-8&#034; name=&#034;mode-interface-8&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.3.3.1&#034; name=&#034;a2.3.3.1&#034;&gt;&lt;/a&gt;II.1.3.1 - Mode Interface&lt;/h6&gt; &lt;p&gt;Le mode configuration d'interfaces (Interface command) permet de configurer les adresses, les masques, etc. des interfaces r&#233;seaux.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;NomDuRouter(config-if)#&lt;/code&gt; appara&#238;t quand on est dans ce mode. On doit entrer &#171; interface + &#187; le nom de l'interface pour entrer dans ce mode. Exemple :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;NomDuRouter(config)# interface FastEthernet 0/1&lt;/code&gt;&lt;/p&gt; &lt;h6 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-routage-9&#034; name=&#034;mode-configuration-routage-9&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.3.3.2&#034; name=&#034;a2.3.3.2&#034;&gt;&lt;/a&gt;II.1.3.2 - Mode de configuration du Routage&lt;/h6&gt; &lt;p&gt;Permet de configurer les protocoles de routage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NomDuRouter(config-router)#&lt;/strong&gt; s'affiche quand on est dans ce mode.&lt;/p&gt; &lt;h6 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-ligne-10&#034; name=&#034;mode-configuration-ligne-10&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.3.3.3&#034; name=&#034;a2.3.3.3&#034;&gt;&lt;/a&gt;II.1.3.3 - Mode de configuration en Ligne&lt;/h6&gt; &lt;p&gt;Permet de configurer la s&#233;curit&#233; du routeur.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NomDuRouteur(config-line)#&lt;/strong&gt; s'affiche quand on est dans ce mode.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;resume-11&#034; name=&#034;resume-11&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.3.4&#034; name=&#034;a2.3.4&#034;&gt;&lt;/a&gt;II.1.4 - R&#233;sum&#233;&lt;/h5&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Mode&lt;/td&gt;
&lt;td&gt;r&#233;sum&#233;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Router&gt;&lt;/td&gt;
&lt;td&gt;User EXEC mode&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Router#&lt;/td&gt;
&lt;td&gt;Privileged EXEC mode&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Router(config)#&lt;/td&gt;
&lt;td&gt;Configuration de mode (notice the # sign indicates this is accessible only at privileged EXEC mode)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Router(config-if)#&lt;/td&gt;
&lt;td&gt;Interface level within configuration mode&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;Router(config-router)#&lt;/td&gt;
&lt;td&gt;Routing engine level within configuration mode&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Router(config-line)#&lt;/td&gt;
&lt;td&gt;Line level (vty, tty, async) within configuration mode&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;div class='spip_document_72 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='https://documentation.leonardmercader.com/IMG/png/cisco_opcr1.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/cisco_opcr1.png' width='500' height='1007' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;configuration-routeur-12&#034; name=&#034;configuration-routeur-12&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.4&#034; name=&#034;a2.4&#034;&gt;&lt;/a&gt;II.2 - Configuration Routeur&lt;/h4&gt; &lt;p&gt;La commande :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;configure terminal&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Permet de passer en mode Configuration Globale.&lt;/p&gt;
&lt;p&gt;Il existe l'autocompl&#233;tion dans le CLI et la gestion des erreurs lors d'une faute de frappe d'une commande :&lt;br class='autobr' /&gt;
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;hostmame routeur1 ^&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;pour obtenir de l'aide :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;hostname ?&lt;/code&gt;&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;exemple-simple-13&#034; name=&#034;exemple-simple-13&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.4.1&#034; name=&#034;a2.4.1&#034;&gt;&lt;/a&gt;II.2.1 - Exemple simple&lt;/h5&gt; &lt;h6 class=&#034;spip&#034;&gt;&lt;a id=&#034;nommer-routeur-routeur1-14&#034; name=&#034;nommer-routeur-routeur1-14&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.4.1.1&#034; name=&#034;a2.4.1.1&#034;&gt;&lt;/a&gt;Nommer le routeur &#034;routeur1&#034; :&lt;/h6&gt; &lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;hostname routeur1&lt;/code&gt;&lt;/p&gt; &lt;h6 class=&#034;spip&#034;&gt;&lt;a id=&#034;pour-afficher-config-routeur-15&#034; name=&#034;pour-afficher-config-routeur-15&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.4.1.2&#034; name=&#034;a2.4.1.2&#034;&gt;&lt;/a&gt;Pour afficher la config du routeur :&lt;/h6&gt; &lt;p&gt;Passer en mode privil&#232;ge (exemple sur un routeur basique) :&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;IR800&gt;enable IR800#show running-config&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;r&#233;sultat :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;IR800#show running-config&lt;br class='autobr' /&gt;
Building configuration...&lt;/p&gt;
&lt;p&gt;Current configuration : 1062 bytes&lt;br class='autobr' /&gt; !&lt;br class='autobr' /&gt;
version 15.5&lt;br class='autobr' /&gt;
service timestamps log datetime msec&lt;br class='autobr' /&gt;
service timestamps debug datetime msec&lt;br class='autobr' /&gt;
no service password-encryption&lt;br class='autobr' /&gt; !&lt;br class='autobr' /&gt;
hostname IR800 &lt;strong&gt; &lt;i&gt;&lt;--- Nom du Routeur, ici : IR800&lt;/i&gt; &lt;/strong&gt;&lt;br class='autobr' /&gt; !&lt;br class='autobr' /&gt; ! &lt;strong&gt; &lt;i&gt;&lt;&lt;&lt; Liste des interfaces &gt;&gt;&gt;&gt;&lt;/i&gt; &lt;/strong&gt;&lt;br class='autobr' /&gt; !&lt;br class='autobr' /&gt;
interface GigabitEthernet0&lt;br class='autobr' /&gt; no ip address &lt;br class='autobr' /&gt; duplex auto&lt;br class='autobr' /&gt; speed auto&lt;br class='autobr' /&gt; shutdown&lt;br class='autobr' /&gt; ! &lt;strong&gt; &lt;i&gt;On voit qu'au niveau de cette interface il n y a pas d'adresse IP.&lt;/i&gt; &lt;/strong&gt; (no ip address&lt;br class='autobr' /&gt; ! &lt;strong&gt; &lt;i&gt;shutdown veut dire que le port est &#233;teint. &lt;/i&gt; &lt;/strong&gt; &lt;br class='autobr' /&gt; ! ... &lt;br class='autobr' /&gt; !&lt;br class='autobr' /&gt;
end&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h6 class=&#034;spip&#034;&gt;&lt;a id=&#034;personnaliser-banniere-16&#034; name=&#034;personnaliser-banniere-16&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.4.1.3&#034; name=&#034;a2.4.1.3&#034;&gt;&lt;/a&gt;Personnaliser la banni&#232;re :&lt;/h6&gt; &lt;p&gt;La banni&#232;re ou banner est le texte qui s'affiche &#224; la connexion.&lt;/p&gt;
&lt;p&gt;cell-ci apparait en bas (?)&lt;/p&gt;
&lt;p&gt;il faut &#234;tre en mode config.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;configuration terminal&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;Routeur1(config)# banner login % Enter TEXT message. End with the character '%'. Vous tentez d'entrer sur mon $(hostname) %&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;banner login puis %, le % est notre symbole de fin de message. une fois appliqu&#233;, le message sera stopp&#233;.&lt;br class='autobr' /&gt;
On peut en choisir d'autre, au choix.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;voir-liste-des-interfaces-reseau-17&#034; name=&#034;voir-liste-des-interfaces-reseau-17&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.4.2&#034; name=&#034;a2.4.2&#034;&gt;&lt;/a&gt;Voir la liste des interfaces r&#233;seau :&lt;/h5&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;IR800#show ip interface brief Interface IP-Address OK? Method Status Protocol GigabitEthernet0 192.168.0.254 YES manual down down GigabitEthernet1 unassigned YES unset up up GigabitEthernet2 unassigned YES unset down down GigabitEthernet3 unassigned YES unset down down GigabitEthernet4 unassigned YES unset down down &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;configurer-une-interface-reseau-18&#034; name=&#034;configurer-une-interface-reseau-18&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.4.3&#034; name=&#034;a2.4.3&#034;&gt;&lt;/a&gt;Configurer une interface r&#233;seau.&lt;/h5&gt; &lt;p&gt;Pour cela il faudra traverser diff&#233;rents mode :&lt;br class='autobr' /&gt;
&#234;tre en privil&#232;ge : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;enable&lt;/code&gt; pouis passer en mode configuration : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;configuration terminal&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;conf t&lt;/code&gt; (voir abr&#233;viations). puis interface &lt;tabulation&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;IR800(config)#interface GigabitEthernet0 IR800(config)#ip address 192.168.0.254 255.255.255.0 IR800(config)#interface GigabitEthernet0 IR800(config-if)#no shutdown&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;(pour activer l'interface)&lt;/p&gt; &lt;h6 class=&#034;spip&#034;&gt;&lt;a id=&#034;explications-19&#034; name=&#034;explications-19&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.4.3.1&#034; name=&#034;a2.4.3.1&#034;&gt;&lt;/a&gt; Explications : &lt;/h6&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;interface GigabitEthernet0/0/0 ip address 192.168.1.254 255.255.255.0 duplex auto speed auto media-type rj45 no cdp enable&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt; &lt;strong&gt;La premi&#232;re ligne&lt;/strong&gt; est l'adresse que nous lui avons d&#233;finie&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;La deuxi&#232;me ligne&lt;/strong&gt; signifie que le canal de communication s'auto-configure entre deux choix possibles. En&lt;strong&gt; auto&lt;/strong&gt;, l'interface s'adaptera au terminal sur lequel elle est branch&#233;e (s'il peut faire du full-duplex il le fera) :&lt;/p&gt;
&lt;p&gt; - Le&lt;strong&gt; full-duplex&lt;/strong&gt; qui signifie que les c&#226;bles communiquent dans les deux sens de circulation en m&#234;me temps (plus rapide).&lt;/p&gt;
&lt;p&gt; - Le &lt;strong&gt;half-duplex&lt;/strong&gt; qui signifie que les c&#226;bles communiquent dans un seul sens &#224; la fois (plus lent).&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;La troisi&#232;me ligne&lt;/strong&gt; signifie que la vitesse se g&#232;re automatiquement, dans ce mode l'interface choisira la vitesse la plus rapide possible en fonction de l'appareil sur lequel elle sera branch&#233;e. Ici elle va choisir 1 Gbps (1 Giga bit par seconde).&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;La quatri&#232;me ligne&lt;/strong&gt; d&#233;finit le type de port physique (quel c&#226;ble peut-on brancher), ici il s'agit d'un c&#226;ble RJ45, un c&#226;ble Ethernet.&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;La derni&#232;re ligne&lt;/strong&gt; signifie que &#171; cdp &#187; (pour CISCO DISCOVERY PROTOCOL) n'est pas activ&#233;. Il s'agit d'un protocole propri&#233;taire de CISCO qui d&#233;couvre les p&#233;riph&#233;riques (routeur, switch, etc.) branch&#233;s directement sur son interface.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;raccourci-abreviations-20&#034; name=&#034;raccourci-abreviations-20&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.5&#034; name=&#034;a2.5&#034;&gt;&lt;/a&gt;II.3 - Raccourci et abr&#233;viations&lt;/h4&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;raccourcis-clavier-21&#034; name=&#034;raccourcis-clavier-21&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.5.1&#034; name=&#034;a2.5.1&#034;&gt;&lt;/a&gt;II.3.1 - Raccourcis clavier&lt;/h5&gt;
&lt;div class='spip_document_73 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='https://documentation.leonardmercader.com/IMG/png/cisco_opcr2.png' width='500' height='411' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;abreviations-22&#034; name=&#034;abreviations-22&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.5.2&#034; name=&#034;a2.5.2&#034;&gt;&lt;/a&gt;II.3.2 - Abr&#233;viations&lt;/h5&gt; &lt;p&gt;Ce sont des &#034;raccourcis&#034; de commandes, pour aller plus vite.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Routeur1# configure terminal&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Elle peut s'abr&#233;ger par la commande :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Routeur1# conf t&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Cette commande fonctionne car elle ne cr&#233;&#233; pas d'ambigu&#239;t&#233; avec une autre commande qui commencerait par &lt;strong&gt;conf&lt;/strong&gt; et avec une autre option commen&#231;ant par &lt;strong&gt;t&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Routeur1# show running-config&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Qui devient :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Routeur1#: sh run&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour la copy :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;copy running-config startup-config&lt;/code&gt; devient&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;copy run start&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;sauvegarde-configuration-23&#034; name=&#034;sauvegarde-configuration-23&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.6&#034; name=&#034;a2.6&#034;&gt;&lt;/a&gt;II.4 - Sauvegarde de la configuration&lt;/h4&gt; &lt;p&gt;Il existe deux mani&#232;res de garder la conf en m&#233;moire : en RAM et sur le disque du routeur, cette derni&#232;re ne se fait pas automatiquement.&lt;/p&gt;
&lt;p&gt;Les modifications seront v&#233;rifiables avec le &lt;strong&gt;show running-config&lt;/strong&gt; (qui est celle en cours stock&#233;e en RAM).&lt;br class='autobr' /&gt;
Afin de s'assurer qu'il y a d&#233;j&#224; une sauvegarde sur le disque et que celle-ci est configur&#233;e sur l'interface, il faut taper la commande :&lt;br class='autobr' /&gt;
&lt;strong&gt;show startup-config&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;si le message &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;startup-config is not present&lt;/code&gt; appara&#238;t, c'est que rien n'a &#233;t&#233; entreprit.&lt;/p&gt;
&lt;p&gt;Il faut dans ce cas copier la conf qui fonctionne dans le startup, afin de la rendre p&#233;renne.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;copy running-config startup-config&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;d&#233;sormais, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;show startup-config&lt;/code&gt; renvoie bien quelque chose...&lt;/p&gt;
&lt;p&gt;La commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;write-memory&lt;/code&gt; va remplacer le fichier startup par celui de m&#233;moire, alors que le copie fusionnera les deux.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;iii-vlan-24&#034; name=&#034;iii-vlan-24&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3&#034; name=&#034;a3&#034;&gt;&lt;/a&gt;III - VLAN&lt;/h3&gt; &lt;p&gt;Un VLAN pour R&#233;seau Priv&#233; Virtuel permet de scind&#233; de mani&#232;re logique (et non physique) diff&#233;rents LAN entre eux pour qu'ils ne puissent pas &#234;tre joignables l'un &#224; travers l'autre.&lt;/p&gt;
&lt;p&gt;Un m&#234;me Switch peut scinder le LAN en plusieurs VLAN.&lt;/p&gt;
&lt;p&gt;Cela permet d'allouer plus de bande passante pour un r&#233;seau particulier (la VoIP par exemple) on a ainsi un gain de qualit&#233;, d'optimisation en scindant un m&#234;me r&#233;seau physique et accentuer la s&#233;curit&#233; afin d'&#233;viter d'avoir acc&#232;s &#224; TOUT le r&#233;seau LAN.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;iii-trame-vlan-25&#034; name=&#034;iii-trame-vlan-25&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3.1&#034; name=&#034;a3.1&#034;&gt;&lt;/a&gt;III.1 - Trame d'un VLAN&lt;/h4&gt;
&lt;div class='spip_document_74 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='https://documentation.leonardmercader.com/IMG/png/vlan_trame.png' width='61' height='721' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;La trame est sensiblement la m&#234;me que celle du protocole TCP/IP ; n&#233;anmoins, il y a une modification, le protocole 802.1q (nomm&#233; aussi en anglais DOT1q) ajoute 4 octets (2 pour le VLAN et 2 pour l'Ether type).&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;iii-configuration-vlan-26&#034; name=&#034;iii-configuration-vlan-26&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3.2&#034; name=&#034;a3.2&#034;&gt;&lt;/a&gt;III.2 - Configuration VLAN&lt;/h4&gt; &lt;p&gt;Il faut se connecter avec les privil&#232;ges puis :&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;conf t vlan &lt;n&#176; de vlan &#224; cr&#233;er&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ou &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vlan &lt;plage de n&#176; (1- 1000)&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;on peut le nommer en se mettant en config vlan :&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;#vlan &lt;n&#176;&gt; #name toto&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;le VLAN est cr&#233;&#233;, il faut d&#233;sormais rattacher les interfaces que l'on veut mettre au VLAN.&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;interface fastEthernet 0/2 switchport access vlan &lt;n&#176;&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;V&#233;rification en mode privil&#232;ge :&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;# sh vl (pour show vlan) 3 toto active Fa0/2&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;on y voit cette ligne o&#249; l'interface est d&#233;sormais isol&#233;e des autres r&#233;seaux en &#233;tant rattach&#233; au vlan 3 &#034;toto&#034;.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;iii-stopper-vlan-27&#034; name=&#034;iii-stopper-vlan-27&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3.3&#034; name=&#034;a3.3&#034;&gt;&lt;/a&gt;III.3 - Stopper un VLAN&lt;/h4&gt; &lt;p&gt;En mode privil&#232;ge, conf t :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#no vlan &lt;n&#176;&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;puis / !\ Bien supprimer le rattachement de l'interface !&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config-if)#no switchport access vlan 3&lt;/code&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;iii-faire-passer-plusieurs-vlan-sur-28&#034; name=&#034;iii-faire-passer-plusieurs-vlan-sur-28&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3.4&#034; name=&#034;a3.4&#034;&gt;&lt;/a&gt;III.4 - faire passer plusieurs VLAN sur le m&#234;me c&#226;ble (Trunk)&lt;/h4&gt;
&lt;div class='spip_document_76 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='https://documentation.leonardmercader.com/IMG/png/cisco_opcr3.png' width='500' height='623' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Imaginons que les deux serveurs du dessus doivent faire partie d'un m&#234;me VLAN s&#233;par&#233; des deux autres en bas ; en sommes, ceux du bas ne doivent pas communiquer avec ceux du haut.&lt;/p&gt;
&lt;p&gt;Le VLAN2 sera celui qui r&#233;unit les deux serveurs du haut, et le VLAN3, celui du bas.&lt;/p&gt;
&lt;p&gt;Sur les deux switch il faudra cr&#233;&#233; les vlan2 et 3.&lt;br class='autobr' /&gt;
Configurer les interface qui raccordent les postes avec les vlan appropri&#233;s.&lt;br class='autobr' /&gt;
Configurer les interfaces reliant le c&#226;ble r&#233;seau qui rattache les switchs entre eux en mode trunk (car chaque port devra porter 2 vlan diff&#233;rents).&lt;/p&gt;
&lt;p&gt;cr&#233;ation des vlan (sur chacun des switchs) :&lt;/p&gt;
&lt;p&gt;passage en privil&#232;ge :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; en&lt;/code&gt;&lt;br class='autobr' /&gt;
config g&#233;n&#233;ral :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; conf t&lt;/code&gt;&lt;br class='autobr' /&gt;
cr&#233;ation de vlan 3 et 2 :&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; vlan 2-3 exit&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;config de l'interface qui relie le premier poste (ici PC3, donc interface Fa0/4)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; int fa0/4&lt;/code&gt;&lt;br class='autobr' /&gt;
puis dans l'interface, on autorise l'usage du vlan 3 :&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; switchport access vlan 3 exit&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;on refait pour port 0/3... pour vlan 2&lt;/p&gt;
&lt;p&gt;Pour Trunker (sur chacun des switchs) :&lt;/p&gt;
&lt;p&gt;passage en privil&#232;ge :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; en&lt;/code&gt;&lt;br class='autobr' /&gt;
config g&#233;n&#233;ral :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; conf t&lt;/code&gt;&lt;br class='autobr' /&gt;
on configure l'interface qui relie le second switch et qui portera vlan 2 ET vlan 3 en activant le mode trunk et en autorisant vlan 2 et 3 :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; int fa0/2&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; switchport mode trunk switchport trunk allowed vlan 2-3&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;idem sur port fa 0/1 du second switch.&lt;/p&gt;
&lt;p&gt;On peut pinguer PC3 et PC2 mais pas les &lt;i&gt;laptops&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;On peut voir notre conf vlan avec :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sh vlan&lt;/code&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;creer-des-acces-entre-vlan-29&#034; name=&#034;creer-des-acces-entre-vlan-29&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4&#034; name=&#034;a4&#034;&gt;&lt;/a&gt;IV - Cr&#233;er des acc&#232;s entre VLAN.&lt;/h3&gt; &lt;p&gt;L'id&#233;e &#233;tant de pouvoir acc&#233;der, depuis un r&#233;seau ext&#233;rieur aux VLAN pr&#233;configur&#233;s, aux switchs.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;creer-une-virtuelle-30&#034; name=&#034;creer-une-virtuelle-30&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4.1&#034; name=&#034;a4.1&#034;&gt;&lt;/a&gt;IV.1 - Cr&#233;er une IP Virtuelle.&lt;/h4&gt; &lt;p&gt;L'id&#233;e &#233;tant d'acc&#233;der depuis un poste ext&#233;rieur aux VLAN &#224; un switch (qui n'a pas d'IP).&lt;/p&gt;
&lt;p&gt;On cr&#233;&#233; tout d'abord le vlan que nous nommerons vlan 99 puis on cr&#233;&#233; une IP virtuelle :&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;(config)#int vlan 99 Switch(config-if)#ip address 192.168.99.2 255.255.255.0 Switch(config-if)#no shutdown&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;puis on associe le port physique du switch au vlan 99 en rendant up le port en question.&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;switchport access vlan 99 no shutdown&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;ajout-vlan-dans-trunk-31&#034; name=&#034;ajout-vlan-dans-trunk-31&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4.2&#034; name=&#034;a4.2&#034;&gt;&lt;/a&gt;IV.2 - Ajout de vlan dans un trunk&lt;/h4&gt;
&lt;div class='spip_document_77 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='https://documentation.leonardmercader.com/IMG/png/cisco_opcr4.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/cisco_opcr4.png' width='468' height='860' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;VLAN 2 et 3 sont d&#233;j&#224; dans un trunk respectif mais ne peuvent pas communiquer ensemble. On aimerait que le vlan99 puisse ping les IP virtuelle de Switch 1 et 2.&lt;br class='autobr' /&gt;
Il faut pour se faire ajouter le vlan 99 au trunk d&#233;j&#224; existant pour atteindre le switch 2 :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#conf t&lt;/code&gt;&lt;br class='autobr' /&gt;
sur l'interface o&#249; est configur&#233; le trunk :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config-if)#switchport trunk allowed vlan add 99&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Au sujet du trunk, tutos :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://community.cisco.com/t5/networking-knowledge-base/how-to-define-the-vlans-allowed-on-a-trunk-link/ta-p/3131083&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://community.cisco.com/t5/networking-knowledge-base/how-to-define-the-vlans-allowed-on-a-trunk-link/ta-p/3131083&lt;/a&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;communiquer-entre-vlan-via-routeur-32&#034; name=&#034;communiquer-entre-vlan-via-routeur-32&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4.3&#034; name=&#034;a4.3&#034;&gt;&lt;/a&gt;IV.3 - Communiquer entre vlan via un routeur&lt;/h4&gt; &lt;p&gt;L'id&#233;e &#233;tant de communiquer entre le vlan 2 et le vlan 3 ou le vlan 99 tout en transitant les paquets via le routeur.&lt;br class='autobr' /&gt;
Probl&#232;me : il n'y a qu'un c&#226;ble physique branch&#233; entre le switch et le routeur pour 3 adresse IP LAN diff&#233;rentes, donc, trois r&#233;seaux VLAN diff&#233;rents qui ne peuvent pas communiquer entre eux. &lt;br class='autobr' /&gt;
Afin de faire en sorte que le routeur puisse accepter toutes les requ&#234;tes pour les faire transiter entre elles, il faudra cr&#233;er des sous-interfaces &#224; l'interfaces physiques c&#226;bl&#233;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Il faut s'assurer que le port du switch qui va desservir le routeur soit bien en mode trunk sur les vlan qui doivent atteindre le routeur.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;L'interface physique ne doit pas avoir d'IP, mais doit &#234;tre up afin de configurer les 3 sous-interfaces :&lt;/p&gt;
&lt;p&gt;sur le routeur :&lt;/p&gt;
&lt;p&gt;Mode privil&#232;ge :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;en&lt;/code&gt;&lt;br class='autobr' /&gt;
mode configuration :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;conf t&lt;/code&gt;&lt;br class='autobr' /&gt;
sur l'interface branch&#233;e (ici GigaEt 0/0/0) :&lt;br class='autobr' /&gt;
Le protocole vlan est le dot1Q, nous allons ajouter un point &lt;n&#176; de vlan&gt; d'interface que nous voulons cr&#233;er, pour une bonne organisation nous allons utiliser le n&#176; de vlan :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;int gigabitEthernet 0/0/0.2&lt;/code&gt;&lt;br class='autobr' /&gt;
on entre directement en sous-interface et on sp&#233;cifie que l'on va cr&#233;er une interface qui &#233;coutera sur un vlan particulier (apr&#232;s le dot1Q, on met le n&#176; de vlan :&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;Router(config-subif)#encapsulation dot1Q 2 Router(config-subif)#ip address 172.16.2.254 255.255.255.0 Router(config-subif)#exit&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On recommence pour tous le vlan que l'on veut associer.&lt;/p&gt;
&lt;p&gt;le r&#233;sultat &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sh run&lt;/code&gt; doit ressembler &#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;interface GigabitEthernet0/0/0 no ip address duplex auto speed auto ! interface GigabitEthernet0/0/0.2 encapsulation dot1Q 2 ip address 172.16.2.254 255.255.255.0 ! interface GigabitEthernet0/0/0.3 encapsulation dot1Q 3 ip address 172.16.3.254 255.255.255.0 ! interface GigabitEthernet0/0/0.99 encapsulation dot1Q 99 ip address 192.168.99.254 255.255.255.0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;un ping entre poste de diff&#233;rents vlan montrera le trajet du paquet transitant via le routeur avant d'atteindre la cible.&lt;/p&gt;
&lt;p&gt;On peut configurer sur les terminaux les passerelles vers les adresses IPs des sous-interfaces respectifs. &lt;br class='autobr' /&gt;
pour les postes en 172.16.2.0 -&gt; 172.16.2.254&lt;br class='autobr' /&gt;
172.16.3.0 -&gt; 172.16.3.254&lt;br class='autobr' /&gt;
192.168.99.0 -&gt; 192.168.99.254&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;lancer-service-dhcp-33&#034; name=&#034;lancer-service-dhcp-33&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a5&#034; name=&#034;a5&#034;&gt;&lt;/a&gt;V - Lancer le service DHCP&lt;/h3&gt; &lt;p&gt;Sur ce m&#234;me routeur ayant des sous-interfaces permettant de relier les diff&#233;rents vlan, nous allons configurer le service DHCP afin de fournir une adresse IP de mani&#232;re automatique.&lt;/p&gt;
&lt;p&gt;sur le routeur, passage en mode privil&#232;ge et configuration globale puis :&lt;/p&gt;
&lt;p&gt;Nous allons cr&#233;er un pool dhcp par vlan, ici le &#034;vlan2&#034; n'est qu'un nom, on aurait pu l'appeler &#034;th&#233;&#226;tre&#034;. &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ip dhcp pool vlan2&lt;/code&gt;&lt;br class='autobr' /&gt;
On passe d&#233;sormais en conf dhcp :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Router(dhcp-config)#&lt;/code&gt;&lt;br class='autobr' /&gt;
on va ainsi sp&#233;cifier l'adresse du r&#233;seau puis la passerelle par d&#233;faut de la plage IP du vlan concern&#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;Router(dhcp-config)#network 172.16.2.0 255.255.255.0 Router(dhcp-config)#default-router 172.16.2.254&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;sur chaque PC du vlan, on peut relancer les interfaces pour voir si l'attribution des IPs en DHCP est fonctionnel. (ipconfig \renew pour les PC windows dans packet tracer)&lt;/p&gt;
&lt;p&gt;Il faut faire &#231;a pour chaque vlan sur le routeur.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;lancer-service-ntp-34&#034; name=&#034;lancer-service-ntp-34&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a6&#034; name=&#034;a6&#034;&gt;&lt;/a&gt;VI - Lancer le service NTP&lt;/h3&gt; &lt;p&gt;&lt;i&gt;Network Time Protocol&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Le service va &#234;tre activ&#233; sur le routeur puis ce sera le tour des switchs !&lt;/p&gt;
&lt;p&gt;Sur le routeur en privil&#232;ge et conf globale :&lt;br class='autobr' /&gt;
&lt;strong&gt; / !\ &lt;/strong&gt; la commande ci-dessous va d&#233;finir le serveur comme &#233;tant celui qui donne l'heure MAIS qui ne va pas la r&#233;cup&#233;rer sur Internet ! &lt;br class='autobr' /&gt;
#ntp master 1&lt;br class='autobr' /&gt;
#end&lt;/p&gt;
&lt;p&gt;faire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ntp ?&lt;/code&gt; pour voir les diff&#233;rentes options.&lt;/p&gt;
&lt;p&gt;Maintenant sur les switchs :&lt;br class='autobr' /&gt;
on d&#233;finit le serveur NTP&lt;br class='autobr' /&gt;
#ntp server 192.168.99.254&lt;br class='autobr' /&gt;
on v&#233;rifie :&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;#ntp associations address ref clock st when poll reach delay offset disp *~192.168.99.254127.127.1.1 1 7 16 1 0.00 1.00 0.00 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured Switch#sh ntp sta Switch#sh ntp status Clock is synchronized, stratum 2, reference is 192.168.99.254&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;on peut aussi lancer :&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;#show clock detail 0:39:42.13 UTC Mon Mar 1 1993 Time source is NTP&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Inutile de le faire sur chaque vlan, car le switch est trunk&#233; et pointe vers le routeur qui g&#232;re les sous-interface.&lt;/p&gt;
&lt;p&gt;infos int&#233;ressantes sur le NTP : &lt;a href=&#034;https://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/ios-software-releases-110/15171-ntpassoc.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/ios-software-releases-110/15171-ntpassoc.html&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;vii-acces-entre-plusieurs-reseaux-internet-35&#034; name=&#034;vii-acces-entre-plusieurs-reseaux-internet-35&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a7&#034; name=&#034;a7&#034;&gt;&lt;/a&gt;VII - Acc&#232;s entre plusieurs r&#233;seaux (Internet)&lt;/h3&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;vii-configurer-wan-36&#034; name=&#034;vii-configurer-wan-36&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a7.1&#034; name=&#034;a7.1&#034;&gt;&lt;/a&gt;VII.1 - Configurer le WAN&lt;/h4&gt; &lt;p&gt;Pour configurer le WAN, il faut des IPs publiques au niveau des routeurs. et attribuer un route lorsqu'un paquet arrive pour un r&#233;seau ne faisant pas parti du routeur.&lt;/p&gt;
&lt;p&gt;Mode privil&#232;ge, configuration globale :&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;#en #conf t&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On rentre dans l'interface, on lui donne une IP publique et une route par d&#233;faut :&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;#int gigabitEthernet 0/0/1 (config-if)#ip address 223.0.0.2 255.255.255.0 (config-if)#no shutdown (config-if)#exit Router(config)#ip route 0.0.0.0 0.0.0.0 223.0.0.5&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Sans savoir o&#249; envoyer un paquet, le routeur l'enverra vers l'IP 223.0.0.5.&lt;/p&gt;
&lt;p&gt;Il faut qu'il y ait &#233;videmment un routeur en face avec cette IP publique configur&#233;e.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;vii-nat-37&#034; name=&#034;vii-nat-37&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a7.2&#034; name=&#034;a7.2&#034;&gt;&lt;/a&gt;VII.2 - NAT&lt;/h4&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;vii-nat-pour-sortie-vers-internet-38&#034; name=&#034;vii-nat-pour-sortie-vers-internet-38&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a7.2.1&#034; name=&#034;a7.2.1&#034;&gt;&lt;/a&gt;VII.2.1 - NAT pour la sortie vers Internet&lt;/h5&gt; &lt;p&gt;Network Address Translation.&lt;/p&gt;
&lt;p&gt;Le NAT permet d'autoriser &#224; plusieurs (v)LAN (IP priv&#233;es) &#224; utiliser une adresse publique unique pour ses transactions sur Internet.&lt;/p&gt;
&lt;p&gt;Sur le routeur, il y a plusieurs &#233;tapes &#224; respecter : &lt;br class='autobr' /&gt;
1 -&gt; cr&#233;ation d'un groupe par VLAN.&lt;br class='autobr' /&gt;
2 -&gt; Lui donner les droits de permission.&lt;br class='autobr' /&gt;
3 -&gt; Signaler &#224; l'interface WAN de liaison avec l'ext&#233;rieur qu'il est point de sortie du NAT.&lt;br class='autobr' /&gt;
4 -&gt; Signaler &#224; l'interface virtuelle du VLAN qu'il est point d'entr&#233;e du NAT.&lt;br class='autobr' /&gt;
5 -&gt; On autorise enfin le groupe (cr&#233;&#233; en 1) &#224; utiliser le point de sortie WAN du NAT.&lt;/p&gt;
&lt;p&gt;(il faudra r&#233;p&#233;ter ces &#233;tapes pour chaque VLAN)&lt;/p&gt;
&lt;p&gt;en mode privil&#232;ge et conf globale sur le routeur de sortie du VLAN : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&gt;en&lt;/code&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#conf t&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;#ip access-list standard NOM_DU_GROUPE #permit 172.16.2.0 (ip du vlan) 0.0.0.255 (avec le masque r&#233;seau invers&#233;)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Sur l'interface WAN du routeur (de sortie) :&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;#int gig0/0/1 (config-int)#ip nat outside (config-int)#exit&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Sur l'interface virtuelle d'entr&#233;e du VLAN :&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;#int gig0/0/0.2 (config-int)#ip nat inside&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;autorisation du groupe &#224; utiliser le NAT en sortie :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#ip nat inside NOM_DU_GROUPE interface gigabitEthernet 0/0/1 overload&lt;/code&gt;&lt;br class='autobr' /&gt;
traduction : pour les IP du groupe NAT leur permettre de sortir par l'interface WAN avec r&#233;&#233;criture de l'IP priv&#233;e en publique.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;vii-nat-pour-entree-depuis-internet-39&#034; name=&#034;vii-nat-pour-entree-depuis-internet-39&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a7.2.2&#034; name=&#034;a7.2.2&#034;&gt;&lt;/a&gt;VII.2.2 - NAT pour l'entr&#233;e depuis Internet&lt;/h5&gt; &lt;p&gt;Cette technique peut-&#234;tre appel&#233; du &lt;strong&gt;port forwarding&lt;/strong&gt;. Le principe est qu'un flux provenant d'Internet vers l'adresse publique du routeur r&#233;oriente le flux vers un serveur du LAN ayant une adresse priv&#233;e.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#ip nat inside source static 192.168.2.1 223.0.0.1 &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Dans l'exemple, tous les flux entrant &lt;strong&gt;via l'IP publique&lt;/strong&gt; seront redirig&#233;s vers le poste avec l'IP priv&#233;e donn&#233;e.&lt;/p&gt;
&lt;p&gt;Ici, on sp&#233;cifie le port :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ip nat inside source static tcp 192.168.2.1 80 223.0.0.1 80&lt;/code&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;viii-spanning-tree-stp-40&#034; name=&#034;viii-spanning-tree-stp-40&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a8&#034; name=&#034;a8&#034;&gt;&lt;/a&gt;VIII - Spanning Tree - STP&lt;/h3&gt; &lt;p&gt;STP est un protocole r&#233;seau qui permet de mettre en s&#233;rie des switchs afin que ces derniers soient redond&#233;s en toute s&#233;curit&#233;.&lt;/p&gt;
&lt;p&gt;Liens int&#233;ressant qui compl&#232;te (th&#233;orie) :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.fingerinthenet.com/intro-stp/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.fingerinthenet.com/intro-stp/&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.fingerinthenet.com/stp/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.fingerinthenet.com/stp/&lt;/a&gt;&lt;/p&gt;
&lt;div class='spip_document_78 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='https://documentation.leonardmercader.com/IMG/png/cisco_spanntree.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/cisco_spanntree.png' width='324' height='803' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style:&#034;font-size:9px;&#034;&gt;source de l'image : openclassrooms.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Le risque de mettre des switch en s&#233;rie pour la redondance (comme l'exemple donn&#233; pour la &lt;i&gt;temp&#234;te de Broadcast&lt;/i&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Il y a trois risques bien d&#233;finis lors de la mise en redondance des switchs :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1 - La temp&#234;te de Broadcast&lt;/strong&gt; (lors d'un DHCP request par exemple.)&lt;br class='autobr' /&gt;
&lt;strong&gt;2 - La duplication de trames&lt;/strong&gt;.&lt;br class='autobr' /&gt;
&lt;strong&gt;3 - L'instabilit&#233; des tables MAC des switchs&lt;/strong&gt;.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;viii-tempete-broadcast-41&#034; name=&#034;viii-tempete-broadcast-41&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a8..1&#034; name=&#034;a8..1&#034;&gt;&lt;/a&gt;VIII.1 - La temp&#234;te de broadcast. &lt;/h5&gt; &lt;p&gt;PC1 envoie un paquet pour d&#233;couvrir qui est le serveur DHCP, le paquet est envoy&#233; sur tout le r&#233;seau. Switch4 re&#231;oit le paquet et l'envoie &#224; son tour &#224; tout le r&#233;seau, switch2 et s3 re&#231;oive le DHCPrequest et l'envoie &#224; leur tour &#224; tout le r&#233;seau, &#224; savoir deux autres fois &#224; s4 qui &#224; son tour, renverra le paquet &#224; tout le r&#233;seau, etc.&lt;/p&gt;
&lt;p&gt;A ce moment l&#224;, les switchs montent en CPU afin de traiter tout ces paquets et finiront par planter.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;viii-duplication-trames-42&#034; name=&#034;viii-duplication-trames-42&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a8.1.1&#034; name=&#034;a8.1.1&#034;&gt;&lt;/a&gt;VIII.2 - La duplication de trames. &lt;/h5&gt; &lt;p&gt;PC1 envoie une requ&#234;te (un ping, ou un paquet pour le HTTP disons) au routeur, s3 et s2 re&#231;oivent la requ&#234;te et la font suivre au routeur, qui recevra 2 fois le m&#234;me paquet. Le risque &#233;tant de surcharger la bande passante et surtout les traitements du routeur.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;viii-instabilite-des-tables-mac-des-43&#034; name=&#034;viii-instabilite-des-tables-mac-des-43&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a8.1.2&#034; name=&#034;a8.1.2&#034;&gt;&lt;/a&gt;VIII.3 - L'instabilit&#233; des tables MAC des switchs. &lt;/h5&gt; &lt;p&gt;L'id&#233;e &#233;tant que les switchs n'ont as encore remplis leur tables d'adressage MAC et ne savent de ce fait pas vers quelle direction il faut envoyer le message pour atteindre le routeur. s2 et s3 recevront la m&#234;me requ&#234;te et interrogeront les &#233;quipements autour d'eux. s2 enregistrera l'adresse MAC dans sa table MAC n&#176;2 (exemple), mais recevra une demande du m&#234;me poste via une autre entr&#233;e de sa table MAC, s2 et s3 passerons leur temps &#224; modifier leurs entr&#233;es de table.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lors d'une temp&#234;te ou d'une boucle on peut voir que les CPU des switchs montent en fl&#232;che, plus rien ne passe jusqu'&#224; ce que ces derniers tombent.&lt;/strong&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;switch#show proce cpu sorted&lt;/code&gt;&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;viii-resolution-44&#034; name=&#034;viii-resolution-44&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a8.1.3&#034; name=&#034;a8.1.3&#034;&gt;&lt;/a&gt;VIII.4 - R&#233;solution.&lt;/h5&gt; &lt;p&gt;La solution est simplement &#224; activer le spaning-tree sur les switchs (&#224; red&#233;marrer).&lt;/p&gt;
&lt;p&gt;en &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;conf t &lt;/code&gt; :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(conf)#spanning-tree vlan 1-4096&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;sur tous les switchs.&lt;br class='autobr' /&gt;
on peut aussi manuellement d&#233;signer des switchs comme &#233;tant les primaires et secondaires :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;switch_primaire(conf)#spanning-tree vlan1 root primary&lt;/code&gt;&lt;br class='autobr' /&gt;
puis un secondaire :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;switch_secondaire(conf)#spanning-tree vlan1 root secondary&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;si le primaire tombe, le secondaire prend le relais.&lt;/p&gt;
&lt;p&gt;on v&#233;rifie par un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sh spann&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;Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/2 Desg FWD 19 128.2 P2p Fa0/1 Desg FWD 19 128.1 P2p&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Sur le primaire les ports sont en forwarding (ils transmettront les paquets).&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;Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/2 Root FWD 19 128.2 P2p Fa0/1 Altn BLK 19 128.1 P2p&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;sur le secondaire, le port est bloqu&#233;.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;protocoles-routage-45&#034; name=&#034;protocoles-routage-45&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a9&#034; name=&#034;a9&#034;&gt;&lt;/a&gt;IX - Protocoles de routage. &lt;/h3&gt; &lt;p&gt;Au sein d'une entreprise ou d'un fournisseur d'acc&#232;s, c'est le protocol IGP qui sera utilis&#233;. (&lt;strong&gt;I&lt;/strong&gt;nterior &lt;strong&gt;G&lt;/strong&gt;ateway &lt;strong&gt;P&lt;/strong&gt;rotocol)&lt;/p&gt;
&lt;p&gt;Il y en a plusieurs mais ils servent &#224; acheminer les paquets gr&#226;ce &#224; l'adresse IP et le masque sous-r&#233;seau.&lt;br class='autobr' /&gt;
&lt;strong&gt;Le routage concerne le couche 3&lt;/strong&gt; (L3).&lt;br class='autobr' /&gt;
Ces derniers ne servent pas qu'&#224; acheminer un paquet d'un point A &#224; un point B, mais &#224; choisir le chemin le plus court.&lt;br class='autobr' /&gt;
Ces algorithmes sont &lt;strong&gt;distribu&#233;s&lt;/strong&gt; (ils s'ex&#233;cutent sur chaque routeur) et &lt;strong&gt;it&#233;ratifs&lt;/strong&gt; (ils tournent en boucle) afin de mettre &#224; l'&#233;chelle les modifications effectu&#233;es sur le r&#233;seau (retrait / ajout d'un routeur).&lt;/p&gt;
&lt;p&gt;La table de routage donne au routeur le chemin vers les autres concentrateurs les plus proches selon l'IP r&#233;seau du destinataire. Un routeur ne connait pas un chemin entier, mais que le bout qui le concerne.&lt;/p&gt;
&lt;p&gt;Exemple de table de routage :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Adresse&lt;/td&gt;
&lt;td&gt;Masque&lt;/td&gt;
&lt;td&gt;Passerelle&lt;/td&gt;
&lt;td&gt;Interface&lt;/td&gt;
&lt;td&gt;M&#233;trique&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;0.0.0.0&lt;/td&gt;
&lt;td&gt;0.0.0.0&lt;/td&gt;
&lt;td&gt;1.1.1.2&lt;/td&gt;
&lt;td&gt;1.1.1.1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;4.3.2.0&lt;/td&gt;
&lt;td&gt;/24&lt;/td&gt;
&lt;td&gt;4.3.2.2&lt;/td&gt;
&lt;td&gt;4.3.2.3&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;8.7.6.0&lt;/td&gt;
&lt;td&gt;/24&lt;/td&gt;
&lt;td&gt;8.7.6.6&lt;/td&gt;
&lt;td&gt;8.7.6.7&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Les protocoles de routages ont la charge d'alimenter et de maintenir cette table de routage. &lt;br class='autobr' /&gt;
Si l'adresse n'est pas dans la table, alors il redirigera le paquet vers 1.1.1.2.&lt;/p&gt;
&lt;p&gt;Il existe&lt;strong&gt; 2 grandes familles de routage IGP &lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;Le but de chaque routeur sera de conna&#238;tre l'&#233;tat du r&#233;seau afin de d&#233;finir la route la plus rapide.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Une distance administrative&lt;/strong&gt; est une note qu'&#224; chaque protocole. Plus la note est basse, plus elle sera consid&#233;r&#233;e comme fiable. Si un routeur fait face &#224; un choix entre plusieurs routeurs de protocoles diff&#233;rents, il prendra celui qui aura la note administrative la plus basse.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;vecteur-distances-46&#034; name=&#034;vecteur-distances-46&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a9.1&#034; name=&#034;a9.1&#034;&gt;&lt;/a&gt;IX.1 - A Vecteur de distances&lt;/h4&gt;
&lt;div class='spip_document_84 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='https://documentation.leonardmercader.com/IMG/png/cisco_rout1.png' width='500' height='520' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le routeur 2 (R2) sait qu'il a le routeur 1 (R1) comme voisin, il en informera les autres routeurs en disant qu'il est &#224; un saut de R1. R3, R4 et R5 re&#231;oivent l'information comme quoi ils sont &#224; 3 sauts de R1. R4 choisira logiquement R2 comme chemin le plus court, et non R3 ou R5. Ces deux serveurs, avec R4 informent R6, ce dernier routeur, malgr&#233; l'&#233;galit&#233; des sauts choisira un routeru selon son nom ou son adresse MAC.&lt;/p&gt;
&lt;p&gt;inconv&#233;nient : prend un certain temps pour diffuser l'information.&lt;br class='autobr' /&gt;
avantage : ne prend pas de ressource CPU.&lt;br class='autobr' /&gt;
&lt;strong&gt;Protocoles : RIP, EIGRP&lt;/strong&gt;.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;eigrp-47&#034; name=&#034;eigrp-47&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a9.1.1&#034; name=&#034;a9.1.1&#034;&gt;&lt;/a&gt;IX.1.1 - EIGRP&lt;/h5&gt; &lt;p&gt;&lt;strong&gt;E&lt;/strong&gt;nhanced &lt;strong&gt;I&lt;/strong&gt;nterior &lt;strong&gt;G&lt;/strong&gt;ateway &lt;strong&gt;R&lt;/strong&gt;outing &lt;strong&gt;P&lt;/strong&gt;rotocol&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Protocole hybride&lt;/strong&gt; (ne fait pas que du vecteur de distances), propri&#233;taire CISCO mais est depuis quelques ann&#233;es reconnu par l'IETF comme un standard.&lt;/p&gt;
&lt;p&gt;C'est un protocole rapide, il est plus rapide que les autres protocoles de sa famille &#224; &#233;tat de liens. &lt;br class='autobr' /&gt;
Du fait qu'il connait la topologie r&#233;seau, il est capable de r&#233;soudre des probl&#232;mes de routage, comme les boucles.&lt;br class='autobr' /&gt;
Il prend aussi la m&#233;trique et la rapidit&#233; des c&#226;bles, et pas que les sauts. &lt;br class='autobr' /&gt;
Il poss&#232;de une route de secours.&lt;br class='autobr' /&gt;
Il est le seul &#224; faire du &lt;i&gt;load-balancing&lt;/i&gt; entre deux c&#226;bles de capacit&#233;s diff&#233;rentes.&lt;br class='autobr' /&gt;
Distance administrative de 90.&lt;/p&gt;
&lt;p&gt;Les commandes :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;show ip eigrp topology&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;show ip eigrp neighbors&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sh ip route&lt;/code&gt;&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;configuration-48&#034; name=&#034;configuration-48&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a9.1.2&#034; name=&#034;a9.1.2&#034;&gt;&lt;/a&gt;IX.1.2 - Configuration.&lt;/h5&gt; &lt;p&gt;&lt;span style=&#034;color:red&#034;&gt;&lt;strong&gt;/ !\ &lt;/strong&gt;&lt;/span&gt; Il s'agit ici d'IGP, les routeur doivent tous avoir une interface du m&#234;me r&#233;seau / sous-r&#233;seau que le routeur qu'ils essaient de joindre.&lt;/p&gt;
&lt;p&gt;Elle se passe en premier lieu sur les routeurs qui se situent entre le routeur du poste terminal exp&#233;diteur et le routeur du serveur de destination.&lt;/p&gt;
&lt;p&gt;Sur chaque routeur :&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;&gt;en #conf t (config)#router eigrp 1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;on d&#233;finit pour chaque routeur un AS (syst&#232;me autonome) avec le groupe 1. chaque routeur du m&#234;me groupe sera consid&#233;r&#233; comme voisin.&lt;br class='autobr' /&gt;
Puis :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config-router)#no auto-summary&lt;/code&gt;&lt;br class='autobr' /&gt;
Cela permet de d&#233;sactiver &#034;l'agr&#233;gation d'adresses IPs&#034; (par d&#233;faut le routeur simplifie les adresses pour limiter ses entr&#233;es dans la table de routage, il peut ainsi englober + de sous-r&#233;seau qu'il ne faut) ; en le d&#233;sactivant, nous lui disons de se contenter des r&#233;seaux de voisinage que nous allons lui donner.&lt;/p&gt;
&lt;p&gt;Pour chaque voisin, on y met la plage r&#233;seau :&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;(config-router)#network 223.0.0.0 (config-router)#network 223.0.1.0 (config-router)#network 223.0.2.0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;puis on test que les routeurs se pinguent tous l'un l'autre.&lt;/p&gt;
&lt;p&gt;Et on fait de m&#234;me pour le routeur de l'exp&#233;diteur et du destinataire.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;il ne faut pas ajouter de plages de r&#233;seaux priv&#233;s au routeur&lt;/code&gt;, que les publiques.&lt;/p&gt;
&lt;p&gt;&lt;u&gt;v&#233;rification :&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#sh ip protocols&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#show ip eigrp neighbors&lt;/code&gt;&lt;br class='autobr' /&gt;
pour voir le voisinage.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#show ip eigrp topology&lt;/code&gt;&lt;br class='autobr' /&gt;
la topologie du voisinage.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#show ip route&lt;/code&gt;&lt;br class='autobr' /&gt;
le choix pour chaque destination.&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; &gt; pour donner acc&#232;s &#224; Internet au poste terminal en ip priv&#233;e, voir &lt;a href=&#034;https://documentation.leonardmercader.com/?Reseaux-Cisco#vii-nat-37&#034; class=&#034;spip_url&#034;&gt;https://documentation.leonardmercad...&lt;/a&gt; et ses sous sections.&lt;br class='autobr' /&gt;
et y mettre le DHCP &lt;a href=&#034;https://documentation.leonardmercader.com/?Reseaux-Cisco#lancer-service-dhcp-33&#034; class=&#034;spip_url&#034;&gt;https://documentation.leonardmercad...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On peut d&#233;sormais faire un test de ping depuis le test d'exp&#233;diteur vers n'importe quel routeur et poste destinataire (ip publique de son routeur.)&lt;/p&gt;
&lt;div class='spip_document_89 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='https://documentation.leonardmercader.com/IMG/zip/3.pkt.zip' class=&#034; spip_doc_lien&#034; title='Zip - 76.6 kio' type=&#034;application/zip&#034;&gt;&lt;img src='https://documentation.leonardmercader.com/local/cache-vignettes/L64xH64/zip-f045b.svg?1772966523' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;etat-liens-49&#034; name=&#034;etat-liens-49&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a9.2&#034; name=&#034;a9.2&#034;&gt;&lt;/a&gt;IX.2 - A &#201;tat de liens&lt;/h4&gt;
&lt;div class='spip_document_85 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='https://documentation.leonardmercader.com/IMG/png/cisco_rout2.png' width='500' height='520' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Ici, R2 va enregistrer dans sa table de voisinage la topologie r&#233;seau des c&#226;bles le reliant aux diff&#233;rents routeurs. Il choisira le chemin le plus rapide vers la destination souhait&#233;e.&lt;/p&gt;
&lt;p&gt;exemple de table de voisinage :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Table de voisinage R2&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;R1&lt;/td&gt;
&lt;td&gt;10Gb/s&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;R3&lt;/td&gt;
&lt;td&gt;1Gb/s&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;R4&lt;/td&gt;
&lt;td&gt;10Gb/s&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;R5&lt;/td&gt;
&lt;td&gt;1Gb/s&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;inconv&#233;nient : prend de la ressource.&lt;br class='autobr' /&gt;
avantage : plus rapide que ceux &#224; l'&#233;tat de liens.&lt;br class='autobr' /&gt;
&lt;strong&gt;Protocoles : OSPF, IS-IS&lt;/strong&gt;.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;ospf-50&#034; name=&#034;ospf-50&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a9.2.1&#034; name=&#034;a9.2.1&#034;&gt;&lt;/a&gt;IX.2.1 - OSPF&lt;/h5&gt; &lt;p&gt;Con&#231;u pour l'IETF, &lt;strong&gt;O&lt;/strong&gt;pen &lt;strong&gt;S&lt;/strong&gt;hortest &lt;strong&gt;P&lt;/strong&gt;ath &lt;strong&gt;F&lt;/strong&gt;irst est un protocole ouvert, concurrent &#224; EIGRP.&lt;/p&gt;
&lt;p&gt;_Les routeurs connaissent leurs voisins et la totalit&#233; des routeur du r&#233;seau.&lt;br class='autobr' /&gt;
_Utilise la bande passante comme m&#233;trique pour la meilleure route.&lt;br class='autobr' /&gt;
_&lt;i&gt;Load-balancing&lt;/i&gt; uniquement sur des bande passantes identiques.&lt;br class='autobr' /&gt;
_Envoie toutes les 10 secondes un message Hello aux routeurs, si au bout de 4 un routeur ne r&#233;pond pas, il est consid&#233;r&#233; comme tomb&#233; et la convergence se fait pour choisir une meilleure route.&lt;br class='autobr' /&gt;
_Transmission des paquets de mise &#224; jour centralis&#233; pour &#233;conomiser la bande passante.&lt;br class='autobr' /&gt;
_Possibilit&#233; de configurer une route de secours.&lt;br class='autobr' /&gt;
_possibilit&#233; de subdiviser le r&#233;seau en &#034;Aire&#034; afin de limiter la bande passante.&lt;/p&gt;
&lt;div class='spip_document_86 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='https://documentation.leonardmercader.com/IMG/png/cisco_ospf.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/cisco_ospf.png' width='400' height='859' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Sa distance administrative est de 110.&lt;/p&gt;
&lt;p&gt;Les commandes : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;show ip ospf neighbor&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;show ip ospf topology&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sho ip route&lt;/code&gt;&lt;/p&gt; &lt;h6 class=&#034;spip&#034;&gt;&lt;a id=&#034;fonctionnement-51&#034; name=&#034;fonctionnement-51&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a9.2.1.1&#034; name=&#034;a9.2.1.1&#034;&gt;&lt;/a&gt;IX.2.1.1 - Fonctionnement&lt;/h6&gt; &lt;p&gt; _Un routeur R1 envoie sa base de donn&#233;es (les routeurs qu'il conna&#238;t et leurs r&#233;seaux) dans un message appel&#233; &lt;strong&gt;DBD&lt;/strong&gt; (pour Database Description).&lt;/p&gt;
&lt;p&gt; _Le routeur r&#233;cepteur R2, s'il re&#231;oit une information d'un routeur qu'il ne conna&#238;t pas, envoie un message &lt;strong&gt;LSR&lt;/strong&gt; (pour Link State Request) afin d'en savoir plus sur ce routeur.&lt;/p&gt;
&lt;p&gt; _R1 renvoie alors un message avec des informations d&#233;taill&#233;es du routeur inconnu de R2 dans un message &lt;strong&gt;LSU&lt;/strong&gt; (pour Link State Update).&lt;/p&gt;
&lt;p&gt; _R2 confirme avoir bien re&#231;u le message en envoyant &#224; R1 un message d'acquittement &lt;strong&gt;LSAck&lt;/strong&gt; (pour Link State Acquittement).&lt;/p&gt;
&lt;div class='spip_document_87 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='https://documentation.leonardmercader.com/IMG/png/cisco_ospf2.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/cisco_ospf2.png' width='319' height='966' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h6 class=&#034;spip&#034;&gt;&lt;a id=&#034;configuration-52&#034; name=&#034;configuration-52&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a9.2.1.2&#034; name=&#034;a9.2.1.2&#034;&gt;&lt;/a&gt;IX.2.1.2 - Configuration&lt;/h6&gt; &lt;p&gt;Rappel : pour d&#233;sactiver EIGRP : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;no router eigrp 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour chaque routeur entre les routeur exp. et dest. :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&gt;en #conf t&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#router ospf 1&lt;/code&gt;&lt;br class='autobr' /&gt;
contrairement &#224; EIGRP, le chiffre 1 n'est pas le num&#233;ro d'un groupe mais d'un num&#233;ro de processus interne au routeur.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config-router)#network 223.0.1.0 0.0.0.255 area 0&lt;/code&gt;&lt;br class='autobr' /&gt;
On fait cela pour chaque r&#233;seau voisins connect&#233;s au routeur.&lt;/p&gt;
&lt;p&gt;ne pas oublier de le faire sur le routeur exp&#233;diteur (box) et destinataire, &lt;strong&gt;sans y mettre les ip priv&#233;e&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;test de ping.&lt;/p&gt;
&lt;p&gt;&lt;u&gt;v&#233;rifions :&lt;/u&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;#sh ip protocols Routing Protocol is &#034;ospf 1&#034; Outgoing update filter list for all interfaces is not set Incoming update filter list for all interfaces is not set Router ID 223.0.2.2 Number of areas in this router is 1. 1 normal 0 stub 0 nssa Maximum path: 4 Routing for Networks: 223.0.0.0 0.0.0.255 area 0 223.0.1.0 0.0.0.255 area 0 223.0.2.0 0.0.0.255 area 0 Routing Information Sources: Gateway Distance Last Update 223.0.4.4 110 01:09:41 223.0.3.3 110 01:10:01 Distance: (default is 110)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On peut voir qu'OSPF :&lt;/p&gt;
&lt;p&gt; est bien lanc&#233; et qu'il route les r&#233;seaux 223.0.0.0/24, 223.0.1.0/24 et 223.0.2.0/24.&lt;/p&gt;
&lt;p&gt; poss&#232;de un ID unique (pour le diff&#233;rencier des autres routeurs) est 223.0.2.2.. Ce n'est pas l'adresse IP, on peut le modifier avec la commande : avec la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;router-id [adresse-IP]&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt; n'appartient qu'&#224; une seule area.&lt;/p&gt;
&lt;p&gt; poss&#232;de deux passerelles (gateway), les routeurs 3 et 4. Les adresses que l'on voit sont leur ID pour OSPF.&lt;/p&gt; &lt;h6 class=&#034;spip&#034;&gt;&lt;a id=&#034;ajout-une-zone-53&#034; name=&#034;ajout-une-zone-53&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a9.2.1.3&#034; name=&#034;a9.2.1.3&#034;&gt;&lt;/a&gt;IX.2.1.3 - Ajout d'une zone&lt;/h6&gt; &lt;p&gt;Le principe peut &#234;tre utilis&#233; si, imaginons, nous avos 40 routeurs qui auront chacun 39 routes. En les scindant en 2 zones, nous obtenons 20 routeurs dans chacune d'entre elles et chaque routeur aura 19 chemins dont 1 seul routeur g&#232;rera la fronti&#232;re entre les 2 zones.&lt;br class='autobr' /&gt;
Ce routeur situ&#233; entre 2 zone se nomment un ABR (Area Border Router). Celui-ci aura chaque p&#233;riph&#233;rique qui donnera acc&#232;s &#224; l'autre zone. S'il y a plus de 1 zone, la zone 0 est obligatoire et ce nome &#034;&lt;i&gt;backbone&lt;/i&gt;&#034;.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ABR(config)#router ospf 1&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ABR(config-router)#network 223.0.4.0 0.0.0.255 area 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On ajoute ensuite la zone 1.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ABR(config-router)#network 223.0.10.0 0.0.0.255 area 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Et on peut terminer la configuration.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ABR(config-router)#exit&lt;/code&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;tableau-comparatif-ospf-eigrp-54&#034; name=&#034;tableau-comparatif-ospf-eigrp-54&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a9.3&#034; name=&#034;a9.3&#034;&gt;&lt;/a&gt; IX.3 - Tableau comparatif OSPF - EIGRP&lt;/h4&gt;
&lt;div class='spip_document_88 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='https://documentation.leonardmercader.com/IMG/png/cisco_ospf3.png' width='500' height='491' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style=&#034;font-size:10px;&#034;&gt;ps : BGP est un protocole EGP, utilis&#233; sur Internet. &lt;/span&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;securite-55&#034; name=&#034;securite-55&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10&#034; name=&#034;a10&#034;&gt;&lt;/a&gt;X - S&#233;curit&#233;.&lt;/h3&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;acces-restreint-mode-privilege-56&#034; name=&#034;acces-restreint-mode-privilege-56&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10.1&#034; name=&#034;a10.1&#034;&gt;&lt;/a&gt;X.1 - Acc&#232;s restreint au mode privil&#232;ge. &lt;/h4&gt; &lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;enable algorithm-type sha256 secret &lt;motDePasse&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On met un mot de passe afin d'avoir acc&#232;s au mode privil&#232;ge.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;creation-utilisateur-57&#034; name=&#034;creation-utilisateur-57&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10.2&#034; name=&#034;a10.2&#034;&gt;&lt;/a&gt;X.2 - Cr&#233;ation d'un utilisateur.&lt;/h4&gt; &lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#username root secret &lt;mot de passe&gt;&lt;/code&gt;&lt;br class='autobr' /&gt;
On cr&#233;&#233; un utilisateur&lt;br class='autobr' /&gt;
et on lui attribue des droits :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#username root privilege 15&lt;/code&gt;&lt;br class='autobr' /&gt;
15 est le num&#233;ro de privil&#232;ge maximal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;/ ! \ &lt;/strong&gt; il faut associer un compte &#224; un port console.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;les-differents-niveaux-privileges-58&#034; name=&#034;les-differents-niveaux-privileges-58&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10.3&#034; name=&#034;a10.3&#034;&gt;&lt;/a&gt;X.3 - Les diff&#233;rents niveaux de privil&#232;ges.&lt;/h4&gt; &lt;p&gt;Par d&#233;faut, il y a trois niveaux de privil&#232;ges sur le routeur :&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;niveau de privil&#232;ge 1&lt;/strong&gt; = non-privil&#233;gi&#233; (l'invite indique router&gt;), niveau par d&#233;faut pour se connecter&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;le niveau de privil&#232;ge 15&lt;/strong&gt; = a favoris&#233; (l'invite indique router#), niveau apr&#232;s &#234;tre entr&#233; en mode activer&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;le niveau de privil&#232;ge 0&lt;/strong&gt; = rarement utilis&#233;, mais inclut 5 commandes : d&#233;sactiver, activer, quitter, aide et d&#233;connexion&lt;/p&gt;
&lt;p&gt;On peut personnaliser les niveaux 2 &#224; 14, en affectant un niveau &#224; certains utilisateurs ayant certains droits et d'autres niveaux pour un autre groupe qui aura des droits diff&#233;rents :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://study-ccna.com/cisco-privilege-levels/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://study-ccna.com/cisco-privilege-levels/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;voir les privil&#232;ges :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sh priv&lt;/code&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;associer-compte-port-console-59&#034; name=&#034;associer-compte-port-console-59&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10.4&#034; name=&#034;a10.4&#034;&gt;&lt;/a&gt;X.4 - Associer le compte &#224; un port console.&lt;/h4&gt; &lt;p&gt;Quand l'on se connecte via Packet tracer sur un routeur, il y a une simulation de connexion &lt;u&gt;physique&lt;/u&gt; sur un port console (oui, comme si physiquement on &#233;tait devant le routeur).&lt;/p&gt;
&lt;p&gt;on peut voir cette connexion sur con0 :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Router con0 is now available&lt;/code&gt;&lt;br class='autobr' /&gt;
en faisant exit plusieurs fois.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;les-ports-consoles-60&#034; name=&#034;les-ports-consoles-60&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10.4.1&#034; name=&#034;a10.4.1&#034;&gt;&lt;/a&gt;X.4.1 - Les ports consoles.&lt;/h5&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;Router#sh line Tty Line Typ Tx/Rx A Roty AccO AccI Uses Noise Overruns Int * 0 0 CTY - - - - 0 0 0/0 - 1 1 AUX 9600/9600 - - - - 0 0 0/0 - 132 132 VTY - - - - 0 0 0/0 - 133 133 VTY - - - - 0 0 0/0 - 134 134 VTY - - - - 0 0 0/0 - 135 135 VTY - - - - 0 0 0/0 - 136 136 VTY - - - - 0 0 0/0 - Line(s) not in async mode -or- with no hardware support: 2-131&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ce que l'on voit sont les ports du routeur. On les appelle TTY line :&lt;/p&gt;
&lt;p&gt; La premi&#232;re &lt;strong&gt;CTY&lt;/strong&gt; est le port console. &lt;strong&gt;Le con0&lt;/strong&gt; qui appara&#238;t sur votre &#233;cran.&lt;/p&gt;
&lt;p&gt; La deuxi&#232;me &lt;strong&gt;AUX&lt;/strong&gt; est un port auxiliaire.&lt;/p&gt;
&lt;p&gt; La troisi&#232;me &lt;strong&gt;VTY&lt;/strong&gt; est un port virtuel, il ne correspond &#224; &lt;u&gt;aucun mat&#233;riel physique. C'est un port logiciel&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;D'autres routeurs ont d'autres entr&#233;es : les lignes TTY, des lignes asynchrones (utilis&#233;es pour les longues distances). &lt;u&gt;Ces ports correspondent &#224; un mat&#233;riel install&#233; sur le routeur&lt;/u&gt;. Nous n'avons rien install&#233; et avons que le mat&#233;riel de base, le port console, l'auxiliaire et les ports virtuels.&lt;/p&gt;
&lt;p&gt;Il va donc falloir associer le mot de passe &#224; un port :&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;Au cty ou con0 pour le port console&lt;/strong&gt; et les utilisateurs qui se connecteront &lt;u&gt;directement sur le routeur.&lt;/u&gt;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;Au vty&lt;/strong&gt; pour les utilisateurs qui se connecteront par telnet ou &lt;u&gt;ssh&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;Rattachons un mot de passe au con0 :&lt;br class='autobr' /&gt;
(config)#line con 0&lt;br class='autobr' /&gt;
(config-line)#password &lt;motdepasse&gt;&lt;br class='autobr' /&gt;
on le rattache lors du siple login :&lt;br class='autobr' /&gt;
(config-line)#login&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;/ !\ &lt;/strong&gt; il faut faire un test avant la sauvegarde de la conf afin de s'assurer que cela fonctionne, au risque de ne plus pouvoir s'y connecter.&lt;br class='autobr' /&gt;
&lt;strong&gt;v&#233;rifications avec :&lt;/strong&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sh run&lt;/code&gt;&lt;br class='autobr' /&gt;
si ok :&lt;br class='autobr' /&gt;
exit plusieurs fois.&lt;br class='autobr' /&gt;
on voit que pour entrer dans le CLI on est bloqu&#233; par un mdp :&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 Access Verification Password: &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;(pour le test, le mdp est : mop)&lt;/p&gt;
&lt;p&gt;on peut faire cela pour les autres ports con0 (acc&#232;s physique).&lt;/p&gt;
&lt;p&gt;A ce stade, &lt;u&gt;le mot de passe est ind&#233;pendant des utilisateurs&lt;/u&gt; que nous aurions cr&#233;&#233;s, ils s'agit ici &lt;u&gt;QUE d'un mot de passe de connexion via le port d&#233;termin&#233;&lt;/u&gt;.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;association-des-comptes-61&#034; name=&#034;association-des-comptes-61&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10.4.2&#034; name=&#034;a10.4.2&#034;&gt;&lt;/a&gt; X.4.2 - Association des comptes.&lt;/h5&gt; &lt;p&gt;&lt;strong&gt;/ !\ &lt;/strong&gt; Il faut d&#233;j&#224; avoir cr&#233;&#233; un compte avant de lancer un rattachement &#224; un login sur le routeur.&lt;br class='manualbr' /&gt;Dans le cas o&#249; il n y en aurait pas... le routeur nous demandera un login inexistant ! on sera ainsi bloqu&#233; !&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; (config)#line con 0&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config-line)#login local&lt;/code&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;connexion-ssh-62&#034; name=&#034;connexion-ssh-62&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10.5&#034; name=&#034;a10.5&#034;&gt;&lt;/a&gt;X.5 - Connexion SSH&lt;/h4&gt; &lt;p&gt;Afin de pouvoir faire une connexion SSH, nous aurions besoin de 3 &#233;l&#233;ments : &lt;br class='manualbr' /&gt;Une paire de cl&#233;s publique/priv&#233;e ;&lt;br class='manualbr' /&gt;Un nom de domaine pour g&#233;n&#233;rer ces cl&#233;s ;&lt;br class='manualbr' /&gt;L'activation de SSH sur les&lt;strong&gt; ports virtuels (vty 0 &#224; 4)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;1 _ Cr&#233;ation du domaine :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#domaine-name ltx.eus&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;2 _ Cr&#233;ation paire de cl&#233;s.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#crypto key generate rsa&lt;/code&gt;&lt;br class='autobr' /&gt;
par d&#233;faut il est en 512 bits, mettons 2048.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;How many bits in the modulus [512]: 2048&lt;/code&gt;&lt;br class='autobr' /&gt;
activons ssh 2 :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(conf)#ip ssh version 2&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;3 _ Rattachement au port concern&#233; (virtuels vty)&lt;br class='autobr' /&gt;
sur tous les ports virtuels :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#line vty 0 4&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config-line)#transport input ssh&lt;/code&gt;&lt;br class='autobr' /&gt;
bien-s&#251;r on y rattache un utilisateur cr&#233;&#233; pr&#233;c&#233;demment (pour le test packet cisco : timi mdp : mop)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config-line)#login local&lt;/code&gt;&lt;br class='autobr' /&gt;
test via un autre routeur :&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;Router#ssh -l timi 213.219.12.2 Password: central#conf t&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; l option de SSH pour mettre le login.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;acces-list-acl-63&#034; name=&#034;acces-list-acl-63&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10.6&#034; name=&#034;a10.6&#034;&gt;&lt;/a&gt;X.6 - Acces-list (ACL)&lt;/h4&gt; &lt;p&gt;Permet de filtrer l'acc&#232;s &#224; un vlan (par exemple) &#224; une IP ou plage d'IPs.&lt;br class='autobr' /&gt;
L'ACL doit se configurer au niveau du routeur donnant acc&#232;s au r&#233;seau que l'on veut restreindre.&lt;/p&gt;
&lt;p&gt;Cas de figure : Une IP envoie des requ&#234;tes ind&#233;sirable &#224; un serveur de notre r&#233;seau. L'ACL est l&#224; pour la bloquer.&lt;/p&gt;
&lt;p&gt;Lien utile :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.cisco.com/c/en/us/support/docs/security/ios-firewall/23602-confaccesslists.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.cisco.com/c/en/us/support/docs/security/ios-firewall/23602-confaccesslists.html&lt;/a&gt;&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;acl-standard-64&#034; name=&#034;acl-standard-64&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10.6.1&#034; name=&#034;a10.6.1&#034;&gt;&lt;/a&gt;X.6.1 - ACL Standard.&lt;/h5&gt; &lt;p&gt; _ Elle prend un num&#233;ro de 1 &#224; 99.&lt;/p&gt;
&lt;p&gt; _ Elle permet de bloquer (ou d'autoriser) &lt;u&gt;une adresse source&lt;/u&gt;, c'est-&#224;-dire dans notre cas, le spammeur.&lt;/p&gt;
&lt;p&gt; _ Elle doit se placer &lt;strong&gt;le plus pr&#232;s possible de la destination&lt;/strong&gt;, le plus pr&#232;s du serveur attaqu&#233; par le spammeur.&lt;/p&gt;
&lt;p&gt;Imaginons que nous ayons identifier l'adresse 218.218.25.15 comme celle de notre spammeur. Nous allons donc la bloquer au niveau de notre routeur d'entr&#233;e puis l'appliquer au VLAN du serveur destinataire.&lt;/p&gt;
&lt;p&gt;Sur le routeur d'entr&#233;e destinataire :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#access-list 1 deny host 218.218.25.15&lt;/code&gt;&lt;br class='autobr' /&gt;
ici, on bloque qu'une IP, nous pouvons bloquer tout une plage d'IP :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#access-list 1 deny host 218.218.25.0 0.0.0.255&lt;/code&gt;&lt;br class='autobr' /&gt;
on utilise toujours le &lt;strong&gt;masque invers&#233;&lt;/strong&gt; pour les configuration r&#233;seaux ! &lt;br class='autobr' /&gt;
Le risque de bloquer tout une plage serait de bloquer une IP l&#233;gitime.&lt;/p&gt;
&lt;p&gt;Appliquons le sur le vlan 2 menant au serveur victime.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;routeur1(config)#int GigabitEthernet0/0/0.2&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;routeur1(config-subif)#ip access-group 1 out&lt;/code&gt;&lt;br class='autobr' /&gt;
Pourquoi un out, alors que l'on bloque en entr&#233;e ?&lt;br class='autobr' /&gt;
En fait, on bloque &#224; la sortie du routeur le flux allant de l'IP publique VERS l'IP priv&#233;e, le paquet est accept&#233; en entr&#233;e d'IP publique mais sera rejet&#233; en direction de l'IP priv&#233;e. Cette IP pourra aller vers un autre serveur via une requ&#234;te diff&#233;rente par exemple.&lt;/p&gt;
&lt;p&gt;exemple de la conf de l'interface :&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;interface GigabitEthernet0/0/0.2 encapsulation dot1Q 2 ip address 192.168.2.254 255.255.255.0 ip access-group 1 out ip nat inside&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;IP NAT inside : le flux &#224; NATer arrive de l'IP priv&#233;e en entr&#233;e (pour sortir par la suite.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;/ !\ &lt;/strong&gt; En laissant que cette r&#232;gle ainsi, il y a un blocage total ! En fait, cela est masqu&#233; dans la conf mais il y a une r&#232;gle implicite qui interdit tout :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; #access-list 1 deny any&lt;/code&gt;&lt;br class='autobr' /&gt;
Il faur rajouter APRES les r&#232;gles d'interdiction un :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; #access-list 1 permit any&lt;/code&gt;&lt;br class='autobr' /&gt;
Si nous devons AJOUTER une r&#232;gle, il faudra la faire en supprimant toute l'ACL cr&#233;&#233; et rajouter notre interdiction et remettre le permit &#224; la fin :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#no access-list 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les r&#232;gles se lisent l'une &#224; la suite des autres&lt;/strong&gt;, dans l'ordre, il ne peut et ne doit y avoir :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; #access-list 1 deny 14.12.12.0 0.0.0.255&lt;/code&gt; (interdiction d'acc&#232;s &#224; toute la plage IP) et :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; #access-list 1 permit 14.12.12.1&lt;/code&gt;&lt;br class='autobr' /&gt;
Car &lt;u&gt;la premi&#232;re r&#232;gle s'appliquera en priorit&#233;&lt;/u&gt; et aura d&#233;j&#224; drop&#233; le paquet de l'IP pr&#233;sente dans la plage, l'autorisation arrive tardivement. Il faut que ce soit dans cet ordre :&lt;br class='autobr' /&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt; #access-list 1 permit 14.12.12.1&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; #access-list 1 deny 14.12.12.0 0.0.0.255&lt;/code&gt;&lt;br class='autobr' /&gt;
il n'autorise de la plage d'IP qu'une seule.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pour autoriser les autres IP &#224; passer, mettre &#224; la fin :&lt;/strong&gt; &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; #access-list 1 permit 14.12.12.1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;/ !\ &lt;/strong&gt; Pour bloquer une IP source vers un destinataire, le faire au plus pr&#232;s de celui-ci, afin de ne pas prendre le risque de bloquer l'IP sur d'autres endroit non voulu.&lt;br class='autobr' /&gt;
Au niveau du blocage d'une IP destinatrice, il faudra le faire au routeur le plus proche de la source.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;acl-etendue-65&#034; name=&#034;acl-etendue-65&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10.6.2&#034; name=&#034;a10.6.2&#034;&gt;&lt;/a&gt;X.6.2 - ACL &#233;tendue.&lt;/h5&gt; &lt;p&gt; _ Elle prend un num&#233;ro de 100 &#224; 199 (chaque ACL aura un n&#176; qu'on leur donne). On peut aussi leur donner un nom mais la syntaxe diff&#232;re.&lt;/p&gt;
&lt;p&gt; _ Elle peut bloquer (ou autoriser) soit l'adresse source, soit l'adresse de destination, soit un port ou service (comme SSH ou telnet par exemple).&lt;/p&gt;
&lt;p&gt; _ Elle doit &#234;tre plac&#233;e le plus proche de la source.&lt;/p&gt;
&lt;p&gt;Les ACL &#233;tendues peuvent filtrer une ip source et une de destination ou un port particulier.&lt;/p&gt;
&lt;p&gt;Nous voulons interdire le port SSH (22) &#224; une IP :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#access-list 100 deny tcp host 223.0.1.4 any eq 22&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#access-list 100 permit ip any any&lt;/code&gt;&lt;br class='autobr' /&gt;
idem le permit pour autoriser &#224; tous en fin.&lt;/p&gt;
&lt;p&gt;ajout au niveau de l'interface :&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;(config)#interface gi0/1 (config-if)#ip access-group 100 in&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ou la possibilit&#233;, non pas de mettre un num&#233;ro, mais un nom, comme pour le NAT :&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;(config)#ip access-list extended interdiction_SSH (config-ext-nacl)#deny tcp host 223.0.1.4 any eq 22 (config-ext-nacl)#permit ip any any&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;pui on applique le nom &#224; l'interface.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;radius-66&#034; name=&#034;radius-66&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10.7&#034; name=&#034;a10.7&#034;&gt;&lt;/a&gt;X.7 - Radius.&lt;/h4&gt; &lt;p&gt;Utilise le protocole AAA ( &lt;strong&gt;A&lt;/strong&gt;uthentification &lt;strong&gt;A&lt;/strong&gt;utorisation &lt;strong&gt;A&lt;/strong&gt;ccounting (compte)). Radius est install&#233; sur un serveur sous noyau Linux ou Windows et a pour r&#244;le de centraliser les identifiants et mots de passe.&lt;/p&gt;
&lt;p&gt;Sur le serveur Radius, il faut activer le service. D&#233;finir un nom de groupe et un mot de passe, puis cr&#233;er un utilisateur et son mot de passe.&lt;/p&gt;
&lt;p&gt;Sur le routeur Client (qui recevra la connexion et qui enverra les identification au serveur), il faut configurer Radius :&lt;/p&gt;
&lt;p&gt;Activation de Radius sur le routeur demandeur : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)# aaa new-model&lt;/code&gt;&lt;br class='autobr' /&gt;
Configuration et d&#233;finition du serveur Radios (IP) avec le mot de passe d&#233;finit sur le serveur (pas celui de l'utilisateur que nous avons cr&#233;&#233;).&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#radius-server host 223.0.2.8 key Cisco1234&lt;/code&gt;&lt;br class='autobr' /&gt;
Configurer le routeur pour qu'il utilise l'authentification AAA avec le groupe radius&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#aaa authentication login default group radius local&lt;/code&gt;&lt;br class='autobr' /&gt;
Associons les lignes &#224; l'authentification Radius (ici les lignes virtuels vty)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(config)#line vty 0 15&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(configure-line)# login authentication default&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;afin de v&#233;rifier que c'est bien pris en compte :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#sh ru | in aaa&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#sh run | in radius&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;A partir de maintenant, d&#233;s que l'on voudra rentrer de nouveau sur le routeur, c'est le user cr&#233;&#233; sur le serveur Radius qui sera demand&#233;.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;representations-architecture-67&#034; name=&#034;representations-architecture-67&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a11&#034; name=&#034;a11&#034;&gt;&lt;/a&gt;XI - Repr&#233;sentations architecture.&lt;/h3&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;architecture-physique-68&#034; name=&#034;architecture-physique-68&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a11.1&#034; name=&#034;a11.1&#034;&gt;&lt;/a&gt;XI.1 - Architecture physique.&lt;/h4&gt; &lt;p&gt;Cette repr&#233;sentation &#224; l'objectif de :
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &gt; localiser en un coups d'oeil l'emplacement.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &gt; d'anticiper les installations physiques (types de c&#226;bles, connectiques, nombre de switchs, ports...)&lt;/p&gt;
&lt;p&gt;exemple de sch&#233;ma physique :&lt;/p&gt;
&lt;div class='spip_document_93 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='https://documentation.leonardmercader.com/IMG/pdf/mercader_leonard_1_schema_physique_112022.pdf' class=&#034; spip_doc_lien&#034; title='PDF - 962.2 kio' type=&#034;application/pdf&#034;&gt;&lt;img src='https://documentation.leonardmercader.com/local/cache-vignettes/L64xH64/pdf-b8aed.svg?1772966523' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;architecture-logique-69&#034; name=&#034;architecture-logique-69&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a11.2&#034; name=&#034;a11.2&#034;&gt;&lt;/a&gt;XI.2 - Architecture logique.&lt;/h4&gt; &lt;p&gt;Cette repr&#233;sentation &#224; pour objectif de :&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; &gt; lister en un coups d'oeil les protocoles utilis&#233;s et les redondances.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &gt; lister les VLANs et IPs existants et leur interconnexions.&lt;/p&gt;
&lt;p&gt;exemple :&lt;/p&gt;
&lt;div class='spip_document_94 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='https://documentation.leonardmercader.com/IMG/png/archilogi.png' width='500' height='354' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;plan-adressage-70&#034; name=&#034;plan-adressage-70&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a11.3&#034; name=&#034;a11.3&#034;&gt;&lt;/a&gt;XI.3 - Plan d'adressage.&lt;/h4&gt; &lt;p&gt;Le plan d'adressage permet de pr&#233;voir et d'anticiper les plages r&#233;seaux selon le nombre de postes que l'on veut allouer.&lt;/p&gt;
&lt;p&gt;exemple :&lt;/p&gt;
&lt;div class='spip_document_95 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='https://documentation.leonardmercader.com/IMG/odt/ips_tabl.2.odt' class=&#034; spip_doc_lien&#034; title='OpenDocument Text - 23.8 kio' type=&#034;application/vnd.oasis.opendocument.text&#034;&gt;&lt;img src='https://documentation.leonardmercader.com/local/cache-vignettes/L64xH64/odt-251e4.svg?1772966523' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;erreurs-rencontrees-71&#034; name=&#034;erreurs-rencontrees-71&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a12&#034; name=&#034;a12&#034;&gt;&lt;/a&gt;Erreurs rencontr&#233;es.&lt;/h3&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;overlaps-with-gigabitethernet-72&#034; name=&#034;overlaps-with-gigabitethernet-72&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a12.1&#034; name=&#034;a12.1&#034;&gt;&lt;/a&gt; x.x.x.x overlaps with GigabitEthernet y/y/y&lt;/h4&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;Router(config-subif)#ip address 169.254.35.10 255.255.0.0 % 169.254.0.0 overlaps with GigabitEthernet0/0/1.3&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le masque de sous-r&#233;seau est trop large, il y a certainement une autre interface qui &#233;coute sur 169.254.x.x&lt;br class='autobr' /&gt;
La modification du masque en 255.255.255.0 r&#233;sout le probl&#232;me.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;bad-mask-for-address-73&#034; name=&#034;bad-mask-for-address-73&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a12.2&#034; name=&#034;a12.2&#034;&gt;&lt;/a&gt;Bad mask /24 for address x.x.x.x&lt;/h4&gt; &lt;p&gt;Normal, faute d'inattention :&lt;/p&gt;
&lt;p&gt;Router(config-subif)#ip address 169.254.35.0 255.255.255.0&lt;br class='autobr' /&gt;
Bad mask /24 for address 169.254.35.0&lt;/p&gt;
&lt;p&gt;L'adresse IP &#224; mettre &#224; une interface ne doit et ne peut &#234;tre l'adresse du r&#233;seau entier !&lt;br class='autobr' /&gt;
il faut une adresse valide entre 1 et 255, pas de 0.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;problemes-ping-icmp-74&#034; name=&#034;problemes-ping-icmp-74&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a12.3&#034; name=&#034;a12.3&#034;&gt;&lt;/a&gt;Probl&#232;mes de Ping ICMP&lt;/h4&gt; &lt;p&gt;Le ping ne s'effectue pas entre 2 serveurs d'IP diff&#233;rentes SAUF quand ils sont dans le m&#234;me VLAN (&lt;u&gt;ce qui est faux&lt;/u&gt;), pourquoi ?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Un switch est de couche 2&lt;/strong&gt; (L2) et ne se soucie que des adresses MAC pourtant, on penserait &#224; tord que 2 postes avec des IPs diff&#233;rentes pourraient se pinguer via le switch, ce dernier ne relayant pas l'IP.&lt;/p&gt;
&lt;p&gt;H&#233; ben non.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Explication :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pc1 &#224; une IP 192.168.0.1 (masque 255.255.255.0) et veut pinguer Pc2 192.168.0.2 (255.255.255.0)&lt;/strong&gt;.&lt;br class='autobr' /&gt;
1- Un paquet ARP est envoy&#233; afin que le switch cr&#233;&#233; sa table d'&#233;quivalence IP -&gt; MAC.&lt;br class='autobr' /&gt;
2- Le paquet ICMP part du 192.168.0.1 vers 192.168.0.2.&lt;br class='autobr' /&gt;
3- Le switch lit l'adresse MAC de l'exp&#233;diteur puis le relaye &#224; l'adresse MAC du destinataire.&lt;br class='autobr' /&gt;
4- &lt;strong&gt;La carte r&#233;seau du destinataire accepte le paquet, la couche 3 de Pc2 voit que les IPs sont les m&#234;me.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pc1 &#224; une IP 192.168.0.1 (255.255.255.0) et veut pinguer Pc2 192.168.1.2 (255.255.255.0)&lt;/strong&gt;.&lt;br class='autobr' /&gt;
1- Un paquet ARP est envoy&#233; afin que le switch cr&#233;&#233; sa table d'&#233;quivalence IP -&gt; MAC.&lt;br class='autobr' /&gt;
2- Le paquet ICMP part du 192.168.0.1 vers 192.168.1.2.&lt;br class='autobr' /&gt;
3- Le switch lit l'adresse MAC de l'exp&#233;diteur puis le relaye &#224; l'adresse MAC du destinataire.&lt;br class='autobr' /&gt;
4- &lt;strong&gt;La carte r&#233;seau de l'exp&#233;diteur refuse le paquet, la couche 3 de Pc2 voit que les IPs &lt;u&gt;ne sont pas&lt;/u&gt; les m&#234;me.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;5. The destination IP address 192.168.1.3 is not in the same subnet and is not the broadcast address.&lt;br class='autobr' /&gt;
6. The default gateway is not set. The device drops the packet.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Pc1 &#224; une IP 192.168.0.1 (255.255.0.0) et veut pinguer Pc2 192.168.1.2 (255.255.0.0)&lt;/strong&gt;.&lt;br class='autobr' /&gt;
1- Un paquet ARP est envoy&#233; afin que le switch cr&#233;&#233; sa table d'&#233;quivalence IP -&gt; MAC.&lt;br class='autobr' /&gt;
2- Le paquet ICMP part du 192.168.0.1 vers 192.168.1.2.&lt;br class='autobr' /&gt;
3- Le switch lit l'adresse MAC de l'exp&#233;diteur puis le relaye &#224; l'adresse MAC du destinataire.&lt;br class='autobr' /&gt;
4- &lt;strong&gt;La carte r&#233;seau du destinataire accepte le paquet, la couche 3 de Pc2 voit que &lt;u&gt; le masque d'IP englobe leur plage d'IPs&lt;/u&gt;, ils sont donc dans le m&#234;me sous-r&#233;seau. &lt;br class='autobr' /&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;R&#233;sum&#233; :&lt;/strong&gt; Ce n'est pas parce que 2 postes sont dans le m&#234;me VLAN qu'ils pourront se pinguer. Le Ping est de couche 3 (routeur protocole IP), et lira donc l'adresse IP et son masque.&lt;br class='autobr' /&gt;
&lt;strong&gt;Rappel :&lt;/strong&gt; Un VLAN est l&#224; pour scinder virtuellement des r&#233;seaux diff&#233;rents au sein d'un m&#234;me c&#226;ble ou r&#233;seaux physique.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>nmap</title>
		<link>https://documentation.leonardmercader.com/?nmap</link>
		<guid isPermaLink="true">https://documentation.leonardmercader.com/?nmap</guid>
		<dc:date>2022-04-27T09:51:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>leonard</dc:creator>



		<description>
&lt;p&gt;I - Principe. &lt;br class='autobr' /&gt;
Le but de nmap est de tester un, des, quelques, ou tout les ports d'un serveur distant afin de r&#233;pertorier ceux qui sont ouverts des ferm&#233;s. &lt;br class='autobr' /&gt;
**I.1 - Rappel transaction TCP &lt;br class='autobr' /&gt;
Une requ&#234;te TCP est envoy&#233; par le client au serveur, qui lui-m&#234;me r&#233;pondra, selon cette r&#233;ponse, le serveur saura quelle action entreprendre et r&#233;pondra si le port est ouvert : &lt;br class='autobr' /&gt;
1 -&gt; SYN du client au serveur. Si le port est ouvert : 2 -&gt; le serveur r&#233;pond SYN/ACK au client. Le port est donc ouvert. 3 (&#8230;)&lt;/p&gt;


-
&lt;a href="https://documentation.leonardmercader.com/?-gnu-linux-" rel="directory"&gt;GNU/Linux&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;cisco-0&#034; name=&#034;cisco-0&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a1&#034; name=&#034;a1&#034;&gt;&lt;/a&gt;I - Principe.&lt;/h3&gt; &lt;p&gt;Le but de nmap est de tester un, des, quelques, ou tout les ports d'un serveur distant afin de r&#233;pertorier ceux qui sont ouverts des ferm&#233;s.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;cli-commande-line-interface-1&#034; name=&#034;cli-commande-line-interface-1&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a1.1&#034; name=&#034;a1.1&#034;&gt;&lt;/a&gt;I.1 - Rappel transaction TCP&lt;/h4&gt; &lt;p&gt;Une requ&#234;te TCP est envoy&#233; par le client au serveur, qui lui-m&#234;me r&#233;pondra, selon cette r&#233;ponse, le serveur saura quelle action entreprendre et r&#233;pondra si le port est ouvert :&lt;/p&gt;
&lt;p&gt;1 -&gt; SYN du client au serveur.&lt;br class='autobr' /&gt;
Si le port est ouvert :&lt;br class='autobr' /&gt;
2 -&gt; le serveur r&#233;pond SYN/ACK au client.&lt;br class='autobr' /&gt;
Le port est donc ouvert.&lt;br class='autobr' /&gt;
3 -&gt; le client entreprend la liaison avec un ACK.&lt;/p&gt;
&lt;div class='spip_document_48 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='https://documentation.leonardmercader.com/IMG/png/tcp2.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/tcp2.png' width='248' height='1064' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Dans le cas o&#249; le port est ferm&#233;, le serveur r&#233;pondra par un RST (reset).&lt;/p&gt;
&lt;p&gt;1 - SYN&lt;br class='autobr' /&gt;
2 - RST&lt;br class='autobr' /&gt;
Le port est ferm&#233;.&lt;/p&gt;
&lt;div class='spip_document_47 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='https://documentation.leonardmercader.com/IMG/png/tcp1.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/tcp1.png' width='500' height='735' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Comme expliqu&#233; plus haut, les DROP effectu&#233;s par une pare-feu donnent un &#233;l&#233;ment de r&#233;ponse quand au fait qu'un port est ouvert mais prot&#233;g&#233;.&lt;/p&gt;
&lt;p&gt;1 - SYN&lt;br class='autobr' /&gt;
2 - &lt;br class='autobr' /&gt;
Le port ne r&#233;pond pas, e paquet a &#233;t&#233; drop&#233;... il doit y avoir un pare-feu.&lt;/p&gt;
&lt;p&gt;Pour cela, il est bon de param&#233;trer le pare-feu pour qu'il r&#233;ponde un RST, afin de faire comme si le port &#233;tait ferm&#233;.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;commandes-utiles-2&#034; name=&#034;commandes-utiles-2&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a1.2&#034; name=&#034;a1.2&#034;&gt;&lt;/a&gt;I.2 - Particularit&#233; transaction UDP.&lt;/h4&gt; &lt;p&gt;Contrairement &#224; la transaction TCP, UDP ne fait pas de r&#233;ponse, il se contente de r&#233;cup&#233;rer le paquet sans confirmation, ce qui fait que le flux est rapide (vid&#233;os, etc.).&lt;/p&gt;
&lt;p&gt;Concernant nmap, l'absence de r&#233;ponse lors d'un scanne du port UDP fait que ce dernier sera not&#233; comme ouvert ou filtr&#233;.&lt;br class='autobr' /&gt;
S'il est ferm&#233;, c'est une r&#233;ponse ICMP disant que le port est &lt;i&gt;unreachable&lt;/i&gt;.&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;Due to this difficulty in identifying whether a UDP port is actually open, UDP scans tend to be incredibly slow in comparison to the various TCP scans (in the region of 20 minutes to scan the first 1000 ports, with a good connection). For this reason it's usually good practice to run an Nmap scan with &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;--top-ports &lt;number&gt; enabled&lt;/code&gt;. For example, scanning with &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;nmap -sU --top-ports 20 &lt;target&gt;&lt;/code&gt;. Will scan the top 20 most commonly used UDP ports, resulting in a much more acceptable scan time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;liens-interessants-3&#034; name=&#034;liens-interessants-3&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2&#034; name=&#034;a2&#034;&gt;&lt;/a&gt;II.1 - Nmap Scripting Engine.&lt;/h3&gt; &lt;p&gt;&#201;crits en Lua, il existe des scripts d&#233;j&#224; faits qui permettent :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; safe :- Won't affect the target&lt;br class='autobr' /&gt; intrusive :- Not safe : likely to affect the target&lt;br class='autobr' /&gt; vuln :- Scan for vulnerabilities&lt;br class='autobr' /&gt; exploit :- Attempt to exploit a vulnerability&lt;br class='autobr' /&gt; auth :- Attempt to bypass authentication for running services (e.g. Log into an FTP server anonymously)&lt;br class='autobr' /&gt; brute :- Attempt to bruteforce credentials for running services&lt;br class='autobr' /&gt; discovery :- Attempt to query running services for further information about the network (e.g. query an SNMP server).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#034;https://nmap.org/book/nse-usage.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://nmap.org/book/nse-usage.html&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;les-differents-modes-4&#034; name=&#034;les-differents-modes-4&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3&#034; name=&#034;a3&#034;&gt;&lt;/a&gt;II.2 - Activation de NSE&lt;/h3&gt; &lt;p&gt;Ne sera activ&#233; que sur les cibles ayant le service vis&#233; activ&#233;.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;--script=safe&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour lancer un script sp&#233;cifique :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; --script=&lt;script-name&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Certains scripts ont besoins de param&#232;tres, il est possible de les passer avec :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;--script-args&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;exemple :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;nmap -p 80 --script http-put --script-args http-put.url='/dav/shell.php',http-put.file='./shell.php'&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Les arguments sont entre guillemets simples et s&#233;par&#233;s par des virgules.&lt;br class='autobr' /&gt;
Juste apr&#232;s le &#8212;scripts-args, il faut renommer le script (ici : http-put) puis le type d'arguments (ici : url)&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;script-name&gt;.&lt;argument&gt; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;voir la doc :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://nmap.org/nsedoc/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://nmap.org/nsedoc/&lt;/a&gt;&lt;br class='autobr' /&gt;
ou, mais pas si exhaustif que le site :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;nmap --script-help &lt;script-name&gt;&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>D&#233;pannage / investigation mail (postfix, Dovecot)</title>
		<link>https://documentation.leonardmercader.com/?Depannage-investigation-mail-postfix-Dovecot</link>
		<guid isPermaLink="true">https://documentation.leonardmercader.com/?Depannage-investigation-mail-postfix-Dovecot</guid>
		<dc:date>2022-04-18T09:13:46Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>leonard</dc:creator>



		<description>
&lt;p&gt;1. Introduction. &lt;br class='autobr' /&gt;
Pour des articles sur l'installation de Postfix avec Dovecot et Postfixadmin -&gt; ici. Pour une explication br&#232;ve sur le protocole SMTP, IMAP, POP, LMTP -&gt; ici Pour un article uniquement sur Dovecot -&gt; ici &lt;br class='autobr' /&gt;
Cette page regroupe les erreurs et m&#233;thodes de d&#233;bogage d'erreurs de livraison de courrier Postfix / Dovecot. &lt;br class='autobr' /&gt;
2. Trucs et astuces. &lt;br class='autobr' /&gt; 3. Erreurs. &lt;br class='autobr' /&gt;
** Sender address rejected : Access denied &lt;br class='autobr' /&gt;
Cette erreur est asez explicite, le serveur de relay refuse l'adresse de (&#8230;)&lt;/p&gt;


-
&lt;a href="https://documentation.leonardmercader.com/?-gnu-linux-" rel="directory"&gt;GNU/Linux&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;1. Introduction.&lt;/p&gt;
&lt;p&gt;Pour des articles sur l'installation de Postfix avec Dovecot et Postfixadmin -&gt; &lt;a href='https://documentation.leonardmercader.com/?Postfix-Dovecot' class=&#034;spip_in&#034;&gt;ici&lt;/a&gt;.&lt;br class='autobr' /&gt;
Pour une explication br&#232;ve sur le protocole SMTP, IMAP, POP, LMTP -&gt; &lt;a href='https://documentation.leonardmercader.com/?Dovecot' class=&#034;spip_in&#034;&gt;ici&lt;/a&gt;&lt;br class='autobr' /&gt;
Pour un article uniquement sur Dovecot -&gt; &lt;a href='https://documentation.leonardmercader.com/?Postfix-Dovecot' class=&#034;spip_in&#034;&gt;ici&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Cette page regroupe les erreurs et m&#233;thodes de d&#233;bogage d'erreurs de livraison de courrier Postfix / Dovecot.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;cisco-0&#034; name=&#034;cisco-0&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a1&#034; name=&#034;a1&#034;&gt;&lt;/a&gt;2. Trucs et astuces.&lt;/h3&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;cli-commande-line-interface-1&#034; name=&#034;cli-commande-line-interface-1&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2&#034; name=&#034;a2&#034;&gt;&lt;/a&gt; 3. Erreurs.&lt;/h3&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;commandes-utiles-2&#034; name=&#034;commandes-utiles-2&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.1&#034; name=&#034;a2.1&#034;&gt;&lt;/a&gt; Sender address rejected : Access denied&lt;/h4&gt; &lt;p&gt;Cette erreur est asez explicite, le serveur de relay refuse l'adresse de l'&#233;metteur &#034;From&#034;. &lt;br class='autobr' /&gt;
Le &lt;strong&gt;pi&#232;ge &lt;/strong&gt; serait de v&#233;rifier uniquement s'il y a une restriction au niveau du sender_access, mais le recipient_access peut aussi avoir des r&#232;gles sur les adresses de ses &#233;metteurs !&lt;/p&gt;
&lt;p&gt;En sommes, le &lt;u&gt;sender_access se fera pour des envois &lt;strong&gt;DEPUIS&lt;/strong&gt; notre serveur mail&lt;/u&gt;, alors que le recipient_access se param&#233;trera pour les adresses h&#233;berg&#233;es sur notre serveur. &lt;u&gt;Les &#233;metteurs voulant nous &#233;crire tomberont dans la r&#232;gle du recipient_access&lt;/u&gt;&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;liens-interessants-3&#034; name=&#034;liens-interessants-3&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.1.1&#034; name=&#034;a2.1.1&#034;&gt;&lt;/a&gt; Solution lorsque c'est pour un envoi depuis notre serveur local :&lt;/h5&gt; &lt;p&gt;V&#233;rifier dans main.cf qu'il n y ait pas &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;effacer dans le fichier /etc/postfix/sender_access le nom de domaine qui y a &#233;t&#233; ajout&#233;.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;DOMAINE.NET REJECT&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;faire un :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;postmap /etc/postfix/sender_access&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;pour mettre &#224; jour la base Postfix.&lt;/p&gt;
&lt;p&gt;Lorsque l'envoi se fait par un utilisateur syst&#232;me, les smtp_checks ne fonctionnent pas.&lt;br class='autobr' /&gt;
L'utilisateur syst&#232;me (www-data, root, etc.) vont passer par sendmail pour envoyer leur message :&lt;br class='autobr' /&gt;
pour rappel :&lt;/p&gt;
&lt;p&gt;(revoir l'archi Postfix en d&#233;tail)&lt;br class='autobr' /&gt;
En interne : Sendmail (interne) -&gt; postdrop&lt;br class='autobr' /&gt;
Internet -&gt; SMTP -&gt; incoming&lt;/p&gt;
&lt;p&gt;Lorsque le message passe en interne pas Sendmail, il n'utilise pas le protocol SMTP, mais passe par Sendmail.&lt;/p&gt;
&lt;p&gt;pour interdire un utilisateur syst&#232;me &#224; envoyer un mail : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;authorized_submit_users = !root, static:all&lt;/code&gt; interdira root &#224; envoyer des mails, r&#233;sultat : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;serveur-01 postfix/sendmail[3569097]: fatal: User root(0) is not allowed to submit mail&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;span style=&#034;color:red&#034;&gt;/ !&lt;/span&gt; il faut obligatoirement mettre le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;static:all&lt;/code&gt; cela veut dire que tout le reste est accept&#233;, si on ne met que &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;root&lt;/code&gt; il n'yaura que cet utilisateur qui pourra envoyer. &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;!root&lt;/code&gt; puis vide, root sera interdit, mais le reste des utilisateurs syst&#232;mes aussi !&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;authorized_submit_users (default : static:anyone)&lt;/p&gt;
&lt;p&gt; List of users who are authorized to submit mail with the sendmail(1) command (and with the privileged postdrop(1) helper command).&lt;/p&gt;
&lt;p&gt; By default, all users are allowed to submit mail. Otherwise, the real UID of the process is looked up in the system password file, and access is granted only if the corresponding login name is on the access list. The username &#034;unknown&#034; is used for processes whose real UID is not found in the password file. To deny mail submission access to all users specify an empty list.&lt;/p&gt;
&lt;p&gt; Specify a list of user names, &#034;/file/name&#034; or &#034;type:table&#034; patterns, separated by commas and/or whitespace. The list is matched left to right, and the search stops on the first match. A &#034;/file/name&#034; pattern is replaced by its contents ; a &#034;type:table&#034; lookup table is matched when a name matches a lookup key (the lookup result is ignored). Continue long lines by starting the next line with whitespace. Specify &#034; !pattern&#034; to exclude a user name from the list. The form &#034; !/file/name&#034; is supported only in Postfix version 2.4 and later.&lt;/p&gt;
&lt;p&gt; Example :&lt;/p&gt;
&lt;p&gt; authorized_submit_users = !www, static:all&lt;/p&gt;
&lt;p&gt; This feature is available in Postfix 2.2 and later.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;source : &lt;a href=&#034;https://www.postfix.org/postconf.5.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.postfix.org/postconf.5.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;telnet localhost 25 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 2emedb.leotxando.net ESMTP Postfix (Debian/GNU) 500 5.5.2 Error: bad syntax 500 5.5.2 Error: bad syntax 500 5.5.2 Error: bad syntax 500 5.5.2 Error: bad syntax 500 5.5.2 Error: bad syntax&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;un &lt;i&gt;quit&lt;/i&gt; permet de stopper le processus.&lt;br class='autobr' /&gt;
killer le processus telnet s'il ne rend pas la main.&lt;br class='autobr' /&gt;
voir les logs syslog&lt;br class='autobr' /&gt;
relancer telnet&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;telnet localhost 25 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 2emedb.leotxando.net ESMTP Postfix (Debian/GNU) ehlo localhost ...&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;voir les logs syslog...&lt;br class='autobr' /&gt;
l'erreur venait de l&#224; :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;postfix/smtpd[2454]: error: open /etc/postfix/mysql/mysql-sender-login-maps.cf: No such file or directory&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;L'erreur est assez explicite.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo vi /etc/postfix/main.cf : smtpd_sender_login_maps = mysql:/etc/postfix/mysql-sender-login-maps.cf&lt;/code&gt;&lt;br class='autobr' /&gt;
il y avait un /mysql en trop.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo systemctl restart postfix.service telnet localhost 25 &lt;quote&gt;Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 2emedb.leotxando.net ESMTP Postfix (Debian/GNU) ehlo localhost 250-2emedb.leotxando.net 250-PIPELINING 250-SIZE 502400000 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit Connection closed by foreign host.&lt;/code&gt;&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;les-differents-modes-4&#034; name=&#034;les-differents-modes-4&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.1.2&#034; name=&#034;a2.1.2&#034;&gt;&lt;/a&gt; Recipient address rejected : User unknown in local recipient table&lt;/h5&gt; &lt;p&gt;V&#233;rifier que la liste des destinataire pour la r&#233;ception des courriels est bien lu. &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &gt; faire un postmap ? un restart ?&lt;br class='autobr' /&gt;
est-ce que tout a &#233;t&#233; respect&#233; pour la conf de la r&#233;ception de mails . (MX..)&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-utilisateur-user-exec-command-5&#034; name=&#034;mode-utilisateur-user-exec-command-5&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.1.3&#034; name=&#034;a2.1.3&#034;&gt;&lt;/a&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fatal: configuration error: virtual_mailbox_limit is limited but message_size_limit is unlimited&lt;/code&gt;&lt;/h5&gt; &lt;p&gt;S'affiche quand l'on a activ&#233; une variable de contr&#244;le de distribution de courriels en r&#233;ception.&lt;/p&gt;
&lt;p&gt;Les valeurs de virtual_mailbox_limit et de message_size_limit doivent &#234;tre coh&#233;rents ! virtual_mailbox_limit doit &#234;tre &gt; &#224; message_size_limit.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;postconf -d | grep virtual_mailbox_limit&lt;/code&gt; une valeur par d&#233;faut est d&#233;finie.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;postconf -n | grep virtual_mailbox_limit&lt;/code&gt; montre une autre valeur que l'on aurait d&#233;finit.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;postconf -d | grep message_size_limit&lt;/code&gt; une valeur par d&#233;faut est d&#233;finie.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;postconf -n | grep message_size_limit&lt;/code&gt;montre une autre valeur que l'on aurait d&#233;finit.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;postconf -e 'virtual_mailbox_limit = 102400000'&lt;/code&gt; permet de d&#233;finir un taille &#224; la variable, celle-ci doit-&#234;tre sup&#233;rieur &#224; message_size_limit.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;postconf -e 'virtual_mailbox_limit = 0'&lt;/code&gt; est aussi une alternative permettant de mettre en illimit&#233; la taille des BAL.&lt;/p&gt;
&lt;p&gt;lecture :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.postfix.org/DEBUG_README.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.postfix.org/DEBUG_README.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://en.redinskala.com/postfix-421-4-4-2-timeout-exceeded/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://en.redinskala.com/postfix-421-4-4-2-timeout-exceeded/&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://en.redinskala.com/postfix-maillog-interpretation/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://en.redinskala.com/postfix-maillog-interpretation/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://lloydrochester.com/post/unix/process-mail-script-postfix/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://lloydrochester.com/post/unix/process-mail-script-postfix/&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://www.postfix.org/FILTER_README.html#simple_filter&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.postfix.org/FILTER_README.html#simple_filter&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-privilege-privileged-exec-command-6&#034; name=&#034;mode-privilege-privileged-exec-command-6&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3&#034; name=&#034;a3&#034;&gt;&lt;/a&gt;Ports POP / IMAP / SMTP&lt;/h3&gt; &lt;p&gt;&lt;a href=&#034;https://www.kekhosting.com/knowledgebase/email-ports-%E2%80%93-pop3%2c-imap-and-smtp-port-numbers.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.kekhosting.com/knowledgebase/email-ports-%E2%80%93-pop3%2c-imap-and-smtp-port-numbers.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&#224; lire sur le fait de changer de port de 25 &#224; 587 pour le SMTP :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://serversmtp.com/port-587/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://serversmtp.com/port-587/&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-globale-global-configuration-7&#034; name=&#034;mode-configuration-globale-global-configuration-7&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4&#034; name=&#034;a4&#034;&gt;&lt;/a&gt;Lire les ent&#234;tes / headers&lt;/h3&gt; &lt;p&gt;&lt;a href=&#034;https://mediatemple.net/community/products/grid/204644060/how-do-i-view-email-headers-for-a-message&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://mediatemple.net/community/products/grid/204644060/how-do-i-view-email-headers-for-a-message&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;depuis client de messagerie :&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://mediatemple.net/community/products/grid/204644060/how-do-i-view-email-headers-for-a-message&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://mediatemple.net/community/products/grid/204644060/how-do-i-view-email-headers-for-a-message&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-interface-8&#034; name=&#034;mode-interface-8&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a5&#034; name=&#034;a5&#034;&gt;&lt;/a&gt;&#034;D&#233;samorcer&#034; des liens dans des emails re&#231;us.&lt;/h3&gt; &lt;p&gt;Cela s'appelle &#034;defang url&#034; et se pr&#233;sente ainsi :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;hxxp[://]t[.]teckbe[.]com/p/?j3=3DEOowFcEwFHl6EOAyFcoUFV= TVEchwFHlUFOo6lVTTDcATE7oUE7AUET=3D=3D&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;le http est modifi&#233; en hxxp, les :// et les points ( &lt;strong&gt;.&lt;/strong&gt; ) sont entre croch&#233;s. C'est tout, la suite de l'url peut-&#234;tre en base64.&lt;/p&gt;
&lt;p&gt;pour d&#233;samorcer une url :&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://gchq.github.io/CyberChef/#recipe=Defang_URL(true,true,true&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://gchq.github.io/CyberChef/#recipe=Defang_URL(true,true,true&lt;/a&gt;,'Valid%20domains%20and%20full%20URLs')&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-routage-9&#034; name=&#034;mode-configuration-routage-9&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a6&#034; name=&#034;a6&#034;&gt;&lt;/a&gt;email pixel trackers&lt;/h3&gt; &lt;p&gt;&lt;a href=&#034;https://www.theverge.com/22288190/email-pixel-trackers-how-to-stop-images-automatic-download&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.theverge.com/22288190/email-pixel-trackers-how-to-stop-images-automatic-download&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-ligne-10&#034; name=&#034;mode-configuration-ligne-10&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a7&#034; name=&#034;a7&#034;&gt;&lt;/a&gt;Plus d'envoi de mail.&lt;/h3&gt; &lt;p&gt;erreur dans les logs :&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;postfix/smtp[6318]: fatal: unknown service: smtp/tcp postfix/qmgr[6197]: warning: transport smtp failure -- see a previous warning/fatal/panic logfile record for the problem description&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Explications : le module smtp a d&#233;marr&#233; en chroot (par d&#233;faut dans Debian) est a donc son r&#233;pertoire dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/var/spool/postfix/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;v&#233;rification qu'il est bien chroot&#233; :&lt;br class='autobr' /&gt;
Dans master.cf, dans la colonne chroot (y) il y a le y de yes.&lt;/p&gt;
&lt;p&gt;2 solutions :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; smtp va lire dans /etc ( aka son chroot &#8212;&gt; /var/spool/postfix/)&lt;/p&gt;
&lt;p&gt;voici ce qu'il doit contenir :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;https://files.spip.org/spip-zone/spip-contrib-extensions/intertitres_hierarchises_et_table_matieres-1bea2-intertitres_hierarchises_et_table_matieres-v1.1.0.zip&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Il peut manquer le fichier services, dans ce cas :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cp -f /etc/services /var/spool/postfix/etc/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2)&lt;/strong&gt; les droits de dossier ont changer...&lt;/p&gt;
&lt;p&gt;V&#233;rifier :&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; okhtak@2DB:~ $ ls -l /var/spool/postfix/ total 80 drwx------ 2 postfix root 4096 avril 25 13:55 active drwx------ 2 postfix root 4096 avril 19 08:40 bounce drwxr-xr-x 2 clamav root 4096 avril 21 20:17 clamav drwx------ 2 postfix root 4096 janv. 22 2021 corrupt drwx------ 18 postfix root 4096 f&#233;vr. 6 2021 defer drwx------ 18 postfix root 4096 f&#233;vr. 11 2021 deferred drw-r--r-- 2 postfix root 4096 avril 21 21:08 dev drwxr-xr-x 4 root root 4096 avril 22 08:44 etc drwx------ 2 postfix root 4096 janv. 22 2021 flush drwx------ 2 postfix root 4096 janv. 22 2021 hold drwx------ 2 postfix root 4096 avril 25 13:55 incoming drwxr-xr-x 3 root root 4096 janv. 22 2021 lib drwx-wx--- 2 postfix postdrop 4096 avril 25 13:55 maildrop drwxr-xr-x 2 opendkim root 4096 avril 21 20:50 opendkim drwxr-xr-x 2 root root 4096 juin 25 2021 pid drwx------ 2 postfix root 4096 avril 22 08:44 private drwx--s--- 2 postfix postdrop 4096 avril 22 08:44 public drwx------ 2 postfix root 4096 janv. 22 2021 saved drwx------ 2 postfix root 4096 mars 1 22:22 trace drw-r--r-- 3 postfix root 4096 janv. 22 2021 usr&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;resume-11&#034; name=&#034;resume-11&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a8&#034; name=&#034;a8&#034;&gt;&lt;/a&gt;forcer la r&#233;exp&#233;diciton de mails en queue :&lt;/h3&gt; &lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;postqueue -f &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour Flush, va vider la mailq et relancer les mails. Il n y a pas de delete &#224; l'nverse de postsuper -d ALL&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;configuration-routeur-12&#034; name=&#034;configuration-routeur-12&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a9&#034; name=&#034;a9&#034;&gt;&lt;/a&gt;erreur Opendkim / clamav ou autres &lt;/h3&gt; &lt;p&gt;lien opendkim&lt;br class='manualbr' /&gt;&lt;a href=&#034;https://wiki.evolix.org/HowtoOpenDKIM&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://wiki.evolix.org/HowtoOpenDKIM&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;warning: connect to Milter service unix:/opendkim/opendkim.sock: Connection refused&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;v&#233;rifier les droits d'acc&#232;s.&lt;/p&gt;
&lt;p&gt;(exemple avec opendkim)&lt;/p&gt;
&lt;p&gt;v&#233;rifier le socket de lecture et utilisateur utilis&#233; dans la conf :&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;#Socket local:/var/run/opendkim/opendkim.sock Socket local:/var/spool/postfix/opendkim/opendkim.sock UserID opendkim&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;puis :&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;okhtak@2DB:~ $ ls -la /var/spool/postfix/opendkim/ total 8 drwxr-xr-x 2 opendkim root 4096 avril 21 20:50 . drwxr-xr-x 22 root root 4096 f&#233;vr. 11 2021 .. srwxrwxr-x 1 opendkim opendkim 0 avril 21 20:50 opendkim.sock&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;pour clamav :&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;khtak@2DB:~ $ ls -la /var/spool/postfix/clamav/ total 8 drwxr-xr-x 2 clamav root 4096 avril 21 20:17 . drwxr-xr-x 22 root root 4096 f&#233;vr. 11 2021 .. srw-rw-rw- 1 clamav clamav 0 avril 21 20:17 clamav-milter.ctl&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;exemple-simple-13&#034; name=&#034;exemple-simple-13&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10&#034; name=&#034;a10&#034;&gt;&lt;/a&gt;Erreur lors de la r&#233;ception de mails.&lt;/h3&gt; &lt;p&gt;tournait en boucle sur cette erreur :&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;Apr 25 13:38:53 2DB postfix/smtpd[9119]: Anonymous TLS connection established from unknown[40.92.91.38]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) Apr 25 13:38:54 2DB policyd-spf[9127]: prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=40.92.91.38; helo=eur05-am6-obe.outbound.protection.outlook.com; envelope-from=albertduponfix@outlook.fr; receiver=&lt;UNKNOWN&gt; Apr 25 13:38:54 2DB postfix/smtpd[9119]: 5CB23C081A: client=unknown[40.92.91.38] Apr 25 13:43:54 2DB postfix/smtpd[9119]: timeout after RCPT from unknown[40.92.91.38] Apr 25 13:43:54 2DB postfix/smtpd[9119]: disconnect from unknown[40.92.91.38] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;V&#233;rifier les droits des dossiers&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;chmod -R ugo+x /var/spool/postfix/lib/ &amp;&amp; sudo chown root: /var/spool/postfix/lib/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;/var/spool :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;drwxr-xr-x 22 root root 4096 f&#233;vr. 11 2021 postfix&lt;/code&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;nommer-routeur-routeur1-14&#034; name=&#034;nommer-routeur-routeur1-14&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a11&#034; name=&#034;a11&#034;&gt;&lt;/a&gt;Envoyer un mail avec les ent&#234;tes perso.&lt;/h3&gt; &lt;p&gt;Ent&#234;tes additionnels (non pas les ent&#234;tes Mail FROM dans le DATA).&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;?php $from_mail = &#034;envoi@yopyop.pro&#034;; $mailto = &#034;rapsou@test.com&#034;; $replyto = &#034;envoi@yopyop.pro&#034;; $subject = &#034;test de sujet messagerie&#034;; $message = &#034;test de mail&#034;; $header = &#034;From: &#034;.$from_mail.&#034;\r\n&#034;; $header .= &#034;Reply-To: &#034;.$replyto.&#034;\r\n&#034;; $header .= &#034;MIME-Version: 1.0\r\n&#034;; $header .= $message; if (mail($mailto, $subject, &#034;&#034;, $header, &#034;-f &#034;.$from_mail)) { echo &#034;mail send ... OK&#034;; } else { echo &#034;mail send ... ERROR!&#034;; } ?&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-f &lt;/code&gt; permet de mettre les ent&#234;tes s&#233;lectionn&#233; pour lecture postfix / serveur de r&#233;ception.&lt;/p&gt;
&lt;p&gt;doc php :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.php.net/manual/fr/function.mail.php&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.php.net/manual/fr/function.mail.php&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;pour-afficher-config-routeur-15&#034; name=&#034;pour-afficher-config-routeur-15&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a12&#034; name=&#034;a12&#034;&gt;&lt;/a&gt;suite &#224; la mise &#224; jour de dovecot, le service ne red&#233;marre pas avec le message suivant :&lt;/h3&gt; &lt;p&gt;avril 06 10:05:02 christophe dovecot[2096] : imap-login : Error : Failed to initialize SSL server context : Can't load DH parameters : error:1408518A:SSL routines:ssl3_ctx_ctrl:dh key too small : user=&lt;&gt;, rip=128.204.214.7&lt;br class='autobr' /&gt;
avril 06 11:05:02 christophe dovecot[2096] : imap-login : Error : Failed to initialize SSL server context : Can't load DH parameters : error:1408518A:SSL routines:ssl3_ctx_ctrl:dh key too small : user=&lt;&gt;, rip=128.204.214.7&lt;/p&gt;
&lt;p&gt;Il faut g&#233;n&#233;rer si ce n'est pas le cas un fichier DH&lt;/p&gt;
&lt;p&gt;openssl dhparam -out /etc/dovecot/dh.pem 4096&lt;/p&gt;
&lt;p&gt;Ajouter la ligne suivante dans le fichier /etc/dovecot/conf.d/10-ssl.conf&lt;/p&gt;
&lt;p&gt;ssl_dh = &lt;/etc/dovecot/dh.pem&lt;/p&gt;
&lt;p&gt;Ensuite il faut red&#233;marrer dovecot&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;personnaliser-banniere-16&#034; name=&#034;personnaliser-banniere-16&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a13&#034; name=&#034;a13&#034;&gt;&lt;/a&gt;SMTPUTF8 is required, but was not offered by host &lt;/h3&gt; &lt;p&gt;Cette alerte est au niveau du serveur de r&#233;ception, cela veut dire que Postfix &#224; la variable SMTPUTF8 = yes, qui est activ&#233;. Cela veut dire qu'il rejette tous les mails qui ont dans leurs Sujet (subject) ou headers des caract&#232;res non ASCII.&lt;/p&gt;
&lt;p&gt;Afin de faire accepter la r&#233;ception de mails avec en Sujet des accents (par exemple), il faut le d&#233;sactiv&#233; :&lt;br class='autobr' /&gt;
SMTPUTF8 = no &lt;br class='autobr' /&gt;
dans /etc/postfix/main.cf.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://www.postfix.org/SMTPUTF8_README.html#compatibility&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.postfix.org/SMTPUTF8_README.html#compatibility&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;voir-liste-des-interfaces-reseau-17&#034; name=&#034;voir-liste-des-interfaces-reseau-17&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a14&#034; name=&#034;a14&#034;&gt;&lt;/a&gt;Rediriger un domaine ou une adresse&lt;/h3&gt; &lt;p&gt;dans main.cf :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;virtual_mailbox_domains = example.com&lt;/code&gt;&lt;br class='autobr' /&gt;
cette entr&#233;e va demander les domaines &#224; prendre en charge, par d&#233;fault c'est &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$virtual_mailbox_maps&lt;/code&gt;qui est utilis&#233;e, si le nom de domaine n'y figure pas, il sera rejet&#233;.&lt;br class='autobr' /&gt;
&lt;u&gt;&lt;strong&gt;PAR LA SUITE&lt;/strong&gt;&lt;/u&gt;, ce sera le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;virtual_alias_maps = hash:/etc/postfix/virtual&lt;/code&gt; qui dira quoi faire.&lt;/p&gt;
&lt;p&gt;sources : &lt;br class='autobr' /&gt;
&lt;a href=&#034;https://postfix.traduc.org/index.php/VIRTUAL_README.html#virtual_mailbox&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://postfix.traduc.org/index.php/VIRTUAL_README.html#virtual_mailbox&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://www.postfix.org/VIRTUAL_README.html#local&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.postfix.org/VIRTUAL_README.html#local&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://www.postfix.org/postconf.5.html#virtual_alias_maps&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.postfix.org/postconf.5.html#virtual_alias_maps&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;configurer-une-interface-reseau-18&#034; name=&#034;configurer-une-interface-reseau-18&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a15&#034; name=&#034;a15&#034;&gt;&lt;/a&gt;Restreindre l'envoi / la r&#233;ception &#224; une ou plusieurs adresse&lt;/h3&gt; &lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/restricted_senders, reject smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access hash:/etc/postfix/recipient_domains Allows me to send to thisserver.net from the accounts in restricted_senders and &#034;rcpt to:&#034; will deliver only to &#034;recipient_domain&#034;, inside there is info@thisserver.net Only.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;What I would like to achieve is that only 1 user of this email server (info@thisserver.net) is able to send and receive emails, any other must be rejected almost instantly. And this user can only receive mails from a few users and &#034;recipient_domains&#034;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;restricted_senders: info@thisserver.net permit recipient_domains: info@google.com permit user35@server.com permit thisserveronly.net permit&lt;/code&gt;&lt;br class='autobr' /&gt;
source :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://serverfault.com/questions/768005/restrict-sender-and-recipient-with-postfix&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://serverfault.com/questions/768005/restrict-sender-and-recipient-with-postfix&lt;/a&gt;&lt;/p&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;p&gt; &#224; &#034;nettoyer &#034;&lt;/p&gt;
&lt;p&gt;ou trouver le fichier postfix-script original car je l'ai remplacer par un autre et j'ai cette erreur : postfix/postfix-script[2783] : fatal : unable to create missing queue directories&lt;br class='autobr' /&gt;
ChatGPT a dit :&lt;br class='autobr' /&gt;
ChatGPT&lt;/p&gt;
&lt;p&gt;Le fichier postfix-script est un script utilis&#233; par Postfix pour g&#233;rer certaines op&#233;rations de maintenance, comme la cr&#233;ation des r&#233;pertoires de la file d'attente, la gestion des services, etc. Si vous avez remplac&#233; ce fichier par erreur, vous pouvez le restaurer en suivant ces &#233;tapes :&lt;br class='autobr' /&gt;
1. R&#233;installer le Paquet Postfix&lt;/p&gt;
&lt;p&gt;La mani&#232;re la plus simple de restaurer le fichier postfix-script est de r&#233;installer Postfix. Cela remplacera tous les fichiers du paquet, y compris les scripts par d&#233;faut.&lt;/p&gt;
&lt;p&gt;Ouvrez un terminal et ex&#233;cutez la commande suivante pour r&#233;installer Postfix :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo apt-get install &#8212;reinstall postfix&lt;/p&gt;
&lt;p&gt;Cela devrait restaurer le fichier postfix-script &#224; son &#233;tat d'origine.&lt;br class='autobr' /&gt;
2. V&#233;rifier le Fichier postfix-script&lt;/p&gt;
&lt;p&gt;Apr&#232;s la r&#233;installation, vous pouvez v&#233;rifier que le fichier postfix-script est revenu &#224; son &#233;tat d'origine. Le fichier se trouve g&#233;n&#233;ralement &#224; cet emplacement :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;/usr/lib/postfix/postfix-script&lt;/p&gt;
&lt;p&gt;V&#233;rifiez si le fichier est bien l&#224; et que les permissions sont correctes :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;ls -l /usr/lib/postfix/postfix-script&lt;/p&gt;
&lt;p&gt;3. V&#233;rifier les R&#233;pertoires de la File d'Attente de Postfix&lt;/p&gt;
&lt;p&gt;L'erreur que vous avez mentionn&#233;e indique que Postfix n'arrive pas &#224; cr&#233;er les r&#233;pertoires n&#233;cessaires pour sa file d'attente. Apr&#232;s avoir restaur&#233; le script, assurez-vous que les r&#233;pertoires de la file d'attente sont bien en place :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo postfix check&lt;/p&gt;
&lt;p&gt;Cette commande v&#233;rifie l'int&#233;grit&#233; de l'installation de Postfix et s'assure que tous les r&#233;pertoires requis existent.&lt;br class='autobr' /&gt;
4. Red&#233;marrer Postfix&lt;/p&gt;
&lt;p&gt;Une fois que vous avez restaur&#233; le script et v&#233;rifi&#233; les r&#233;pertoires, red&#233;marrez Postfix pour appliquer les modifications :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo systemctl restart postfix&lt;/p&gt;
&lt;p&gt;5. Alternative : Extraire le Fichier Depuis le Paquet Debian&lt;/p&gt;
&lt;p&gt;Si vous ne souhaitez pas r&#233;installer tout le paquet, vous pouvez extraire uniquement le fichier postfix-script depuis le paquet .deb de Postfix.&lt;/p&gt;
&lt;p&gt; T&#233;l&#233;charger le paquet Postfix :&lt;/p&gt;
&lt;p&gt; bash&lt;/p&gt;
&lt;p&gt;apt-get download postfix&lt;/p&gt;
&lt;p&gt;Extraire le fichier postfix-script :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;dpkg-deb -xv postfix*.deb ./postfix-files/&lt;/p&gt;
&lt;p&gt;Copier le fichier postfix-script extrait :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo cp ./postfix-files/usr/lib/postfix/postfix-script /usr/lib/postfix/postfix-script&lt;/p&gt;
&lt;p&gt;V&#233;rifier les permissions :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt; sudo chmod 755 /usr/lib/postfix/postfix-script&lt;br class='autobr' /&gt; sudo chown root:root /usr/lib/postfix/postfix-script&lt;/p&gt;
&lt;p&gt;Avec ces &#233;tapes, vous devriez &#234;tre en mesure de restaurer le fichier postfix-script et de corriger l'erreur li&#233;e &#224; la cr&#233;ation des r&#233;pertoires de la file d'attente de Postfix.&lt;br class='autobr' /&gt;
Vous avez dit :&lt;br class='autobr' /&gt;
/usr/lib/postfix/sbin/post-install : Error : /etc/postfix/postfix-files is not a file.&lt;br class='autobr' /&gt;
ChatGPT a dit :&lt;br class='autobr' /&gt;
ChatGPT&lt;/p&gt;
&lt;p&gt;L'erreur que vous rencontrez, indiquant que /etc/postfix/postfix-files n'est pas un fichier, sugg&#232;re que le fichier postfix-files est manquant ou a &#233;t&#233; corrompu. Ce fichier est essentiel pour la configuration de Postfix car il contient la liste des fichiers et des r&#233;pertoires que Postfix utilise et cr&#233;e lors de l'installation ou de la maintenance.&lt;/p&gt;
&lt;p&gt;Voici les &#233;tapes pour r&#233;soudre ce probl&#232;me :&lt;br class='autobr' /&gt;
1. R&#233;installer le Paquet Postfix&lt;/p&gt;
&lt;p&gt;La m&#233;thode la plus simple pour restaurer le fichier postfix-files et tous les autres fichiers essentiels de Postfix est de r&#233;installer le paquet Postfix. Cela va recr&#233;er tous les fichiers de configuration par d&#233;faut.&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo apt-get install &#8212;reinstall postfix&lt;/p&gt;
&lt;p&gt;2. V&#233;rifier l'Existence du Fichier postfix-files&lt;/p&gt;
&lt;p&gt;Apr&#232;s la r&#233;installation, assurez-vous que le fichier postfix-files a &#233;t&#233; restaur&#233; :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;ls -l /etc/postfix/postfix-files&lt;/p&gt;
&lt;p&gt;Le fichier devrait &#234;tre pr&#233;sent, avec des permissions appropri&#233;es (lecture pour l'utilisateur root).&lt;br class='autobr' /&gt;
3. Restaurer le Fichier postfix-files Manuellement&lt;/p&gt;
&lt;p&gt;Si vous ne souhaitez pas r&#233;installer tout le paquet, vous pouvez extraire le fichier postfix-files directement depuis le paquet .deb de Postfix.&lt;br class='autobr' /&gt;
&#201;tape 1 : T&#233;l&#233;charger le Paquet Postfix&lt;/p&gt;
&lt;p&gt;T&#233;l&#233;chargez le paquet Postfix correspondant &#224; votre version de Debian sans l'installer :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;apt-get download postfix&lt;/p&gt;
&lt;p&gt;&#201;tape 2 : Extraire le Fichier postfix-files&lt;/p&gt;
&lt;p&gt;Extrayez le contenu du paquet pour acc&#233;der au fichier postfix-files :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;dpkg-deb -xv postfix*.deb ./postfix-temp/&lt;/p&gt;
&lt;p&gt;Le fichier postfix-files se trouvera dans ./postfix-temp/etc/postfix/.&lt;br class='autobr' /&gt;
&#201;tape 3 : Copier le Fichier Restaur&#233;&lt;/p&gt;
&lt;p&gt;Copiez le fichier postfix-files extrait vers son emplacement correct :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo cp ./postfix-temp/etc/postfix/postfix-files /etc/postfix/postfix-files&lt;/p&gt;
&lt;p&gt;&#201;tape 4 : V&#233;rifier les Permissions&lt;/p&gt;
&lt;p&gt;Assurez-vous que le fichier a les bonnes permissions et appartient &#224; l'utilisateur root :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo chmod 644 /etc/postfix/postfix-files&lt;br class='autobr' /&gt;
sudo chown root:root /etc/postfix/postfix-files&lt;/p&gt;
&lt;p&gt;4. V&#233;rifier et Red&#233;marrer Postfix&lt;/p&gt;
&lt;p&gt;Une fois le fichier restaur&#233;, v&#233;rifiez la configuration de Postfix pour vous assurer qu'il n'y a pas d'autres probl&#232;mes :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo postfix check&lt;/p&gt;
&lt;p&gt;Ensuite, red&#233;marrez Postfix :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo systemctl restart postfix&lt;/p&gt;
&lt;p&gt;Ces &#233;tapes devraient r&#233;soudre l'erreur li&#233;e au fichier postfix-files manquant ou corrompu et permettre &#224; Postfix de fonctionner correctement.&lt;br class='autobr' /&gt;
Vous avez dit :&lt;br class='autobr' /&gt; postfix/postsuper[13454] : fatal : scan_dir_push : open directory hold : Permission denied&lt;br class='autobr' /&gt;
ChatGPT a dit :&lt;br class='autobr' /&gt;
ChatGPT&lt;/p&gt;
&lt;p&gt;L'erreur fatal : scan_dir_push : open directory hold : Permission denied dans Postfix indique que le processus Postfix n'a pas les permissions n&#233;cessaires pour acc&#233;der au r&#233;pertoire hold, qui fait partie de la file d'attente de Postfix. Cela peut &#234;tre d&#251; &#224; des permissions incorrectes sur le r&#233;pertoire ou &#224; un probl&#232;me avec les droits d'utilisateur.&lt;/p&gt;
&lt;p&gt;Voici les &#233;tapes pour r&#233;soudre ce probl&#232;me :&lt;br class='autobr' /&gt;
1. V&#233;rifier les Permissions des R&#233;pertoires de File d'Attente&lt;/p&gt;
&lt;p&gt;Les r&#233;pertoires de la file d'attente de Postfix doivent &#234;tre accessibles par l'utilisateur postfix. Commencez par v&#233;rifier les permissions des r&#233;pertoires, en particulier celui nomm&#233; hold.&lt;br class='autobr' /&gt;
&#201;tape 1 : Localiser le R&#233;pertoire de File d'Attente&lt;/p&gt;
&lt;p&gt;Les r&#233;pertoires de file d'attente de Postfix se trouvent g&#233;n&#233;ralement dans /var/spool/postfix/.&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo ls -ld /var/spool/postfix/hold&lt;/p&gt;
&lt;p&gt;Cela devrait vous montrer les permissions actuelles du r&#233;pertoire hold. Par exemple :&lt;/p&gt;
&lt;p&gt;plaintext&lt;/p&gt;
&lt;p&gt;drwx------ 2 postfix postfix 4096 Aug 30 12:34 /var/spool/postfix/hold&lt;/p&gt;
&lt;p&gt;&#201;tape 2 : Corriger les Permissions si N&#233;cessaire&lt;/p&gt;
&lt;p&gt;Si les permissions ou le propri&#233;taire ne sont pas corrects, vous pouvez les corriger avec les commandes suivantes :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo chown -R postfix:postfix /var/spool/postfix&lt;br class='autobr' /&gt;
sudo chmod -R 700 /var/spool/postfix&lt;/p&gt;
&lt;p&gt;Cela donne la propri&#233;t&#233; de tous les r&#233;pertoires de la file d'attente &#224; l'utilisateur et au groupe postfix, avec des permissions strictes (lecture, &#233;criture, ex&#233;cution uniquement pour le propri&#233;taire).&lt;br class='autobr' /&gt;
2. Red&#233;marrer Postfix&lt;/p&gt;
&lt;p&gt;Une fois les permissions corrig&#233;es, red&#233;marrez le service Postfix pour appliquer les changements :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo systemctl restart postfix&lt;/p&gt;
&lt;p&gt;3. V&#233;rifier SELinux ou AppArmor (Si Applicable)&lt;/p&gt;
&lt;p&gt;Si vous utilisez SELinux ou AppArmor, ils peuvent parfois restreindre l'acc&#232;s aux r&#233;pertoires de Postfix, m&#234;me si les permissions UNIX sont correctes.&lt;br class='autobr' /&gt;
SELinux :&lt;/p&gt;
&lt;p&gt; Si SELinux est actif, v&#233;rifiez les alertes et les permissions avec :&lt;/p&gt;
&lt;p&gt; bash&lt;/p&gt;
&lt;p&gt; sudo ausearch -m avc -ts recent&lt;/p&gt;
&lt;p&gt; Si n&#233;cessaire, ajustez les politiques SELinux pour permettre &#224; Postfix d'acc&#233;der aux r&#233;pertoires.&lt;/p&gt;
&lt;p&gt;AppArmor :&lt;/p&gt;
&lt;p&gt; Pour AppArmor, v&#233;rifiez les profils appliqu&#233;s &#224; Postfix :&lt;/p&gt;
&lt;p&gt; bash&lt;/p&gt;
&lt;p&gt; sudo aa-status&lt;/p&gt;
&lt;p&gt; Si n&#233;cessaire, ajustez ou d&#233;sactivez le profil AppArmor pour Postfix.&lt;/p&gt;
&lt;p&gt;4. V&#233;rifier le Fonctionnement de Postfix&lt;/p&gt;
&lt;p&gt;Apr&#232;s avoir effectu&#233; les corrections, vous pouvez v&#233;rifier si l'erreur persiste en consultant les journaux :&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;p&gt;sudo journalctl -xe | grep postfix&lt;/p&gt;
&lt;p&gt;Si tout est correct, l'erreur Permission denied ne devrait plus appara&#238;tre.&lt;/p&gt;
&lt;p&gt;En suivant ces &#233;tapes, vous devriez pouvoir r&#233;soudre le probl&#232;me de permissions qui emp&#234;che Postfix d'acc&#233;der au r&#233;pertoire hold.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>D&#233;pannage LVM</title>
		<link>https://documentation.leonardmercader.com/?Depannage-LVM</link>
		<guid isPermaLink="true">https://documentation.leonardmercader.com/?Depannage-LVM</guid>
		<dc:date>2022-02-23T10:38:24Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>leonard</dc:creator>



		<description>
&lt;p&gt;/usr/ &#233;cras&#233; par le nouveau lv cr&#233;&#233;. &lt;br class='autobr' /&gt;
Un LV a &#233;t&#233; cr&#233;&#233;, ce dernier est vide et a &#233;t&#233; mont&#233; sur /usr/ La partition /usr/ se retrouve &#233;cras&#233; par un dossier vide et toutes les commandes telles que mount, umount, vi, ls, cd, nano renvoient un : command not found in /usr/bin/... &lt;br class='autobr' /&gt;
1 - &gt; Si le fstab n'a pas &#233;t&#233; modifi&#233;, alors : reboot pour d&#233;monter. &lt;br class='autobr' /&gt;
2 -&gt; Sinon, la seule solution : monter un disque syst&#232;me pour r&#233;parer la chose. &lt;br class='autobr' /&gt;
si machine virtuelle : &lt;br class='autobr' /&gt;
t&#233;l&#233;charger sur son poste local une (&#8230;)&lt;/p&gt;


-
&lt;a href="https://documentation.leonardmercader.com/?-Informatique-" rel="directory"&gt;Informatique&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;/usr/ &#233;cras&#233; par le nouveau lv cr&#233;&#233;.&lt;/p&gt;
&lt;p&gt;Un LV a &#233;t&#233; cr&#233;&#233;, ce dernier est vide et a &#233;t&#233; mont&#233; sur /usr/&lt;br class='autobr' /&gt;
La partition /usr/ se retrouve &#233;cras&#233; par un dossier vide et toutes les commandes telles que mount, umount, vi, ls, cd, nano renvoient un : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;command not found in /usr/bin/...&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;1 - &gt; Si le fstab n'a pas &#233;t&#233; modifi&#233;, alors : reboot pour d&#233;monter.&lt;/p&gt;
&lt;p&gt;2 -&gt; Sinon, la seule solution : monter un disque syst&#232;me pour r&#233;parer la chose.&lt;/p&gt;
&lt;p&gt;si machine virtuelle :&lt;/p&gt;
&lt;p&gt;t&#233;l&#233;charger sur son poste local une image disque ISO du syst&#232;me.&lt;/p&gt;
&lt;p&gt;sur le vcenter :&lt;/p&gt;
&lt;p&gt;activer le lecteur CDROM&lt;br class='autobr' /&gt;
reboot la machine &#224; partir du bios -&gt; dire de d&#233;marre sur le cd.&lt;/p&gt;
&lt;p&gt;lancer le RMC Remote Console (et non web console).&lt;/p&gt;
&lt;p&gt;au niveau du VMRC -&gt; Removable Devices -&gt; CD/DVD Drive1 -&gt; Connect to disk image -&gt; s&#233;lectionner l'ISO t&#233;l&#233;charger sur poste local.&lt;br class='autobr' /&gt;
VMRC -&gt; Send ctrl+Alt+sup pour reboot.&lt;/p&gt;
&lt;p&gt;lors du boot sur le CD ISO &lt;br class='autobr' /&gt;
choisir advance options -&gt; Rescue mode.&lt;br class='autobr' /&gt;
l'id&#233;e est de d&#233;marrer sur un Shell. (ne pas booter sur la partition racine).&lt;/p&gt;
&lt;p&gt;une fois le shell (sera mont&#233; sur la racine du CD, la commande du style &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;passwd&lt;/code&gt; modifiera le mdp du root du CD et nom du syst&#232;me.)&lt;/p&gt;
&lt;p&gt;il faut monter le VG pour l'utiliser :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mount /dev/mapper/&lt;nom_du_vg&gt; /mnt/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;le VG est mont&#233; dans le /mnt/&lt;/p&gt;
&lt;p&gt;L&#224;, on peut faire un &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vi /mnt/etc/fstab&lt;/code&gt; pour commenter le montage.&lt;/p&gt;
&lt;p&gt;On reboot, mais pas sur le disque.&lt;/p&gt;
&lt;p&gt;Ps : pour modifier mdp ROOT du syst&#232;me :&lt;/p&gt;
&lt;p&gt;chroot /mnt/ (apr&#232;s le montage du VG) on dit de mettre la r&#233;pertoire racine dans /mnt/)&lt;br class='autobr' /&gt;
et l&#224; on peut passer le passwd.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>LVM</title>
		<link>https://documentation.leonardmercader.com/?LVM</link>
		<guid isPermaLink="true">https://documentation.leonardmercader.com/?LVM</guid>
		<dc:date>2021-04-21T10:10:42Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>leonard</dc:creator>



		<description>
&lt;p&gt;A NETTOYER !! &lt;br class='autobr' /&gt;
Th&#233;orie &lt;br class='autobr' /&gt;
https://www.informatiweb-pro.net/admin-systeme/linux/installer-et-utiliser-le-lvm-sous-linux.html https://www.learnlinux.tv/linux-logical-volume-manager-lvm-deep-dive-tutorial/ https://www.linuxtricks.fr/wiki/lvm-sous-linux-volumes-logiques &lt;br class='autobr' /&gt;
voir les types de FS (m&#234;me des LV) pour savoir en quel FS il est : blkid &lt;br class='autobr' /&gt;
Extension d'un volume logique. &lt;br class='autobr' /&gt;
1 - V&#233;rification de l'espace disponible &lt;br class='autobr' /&gt; lsblk # affiche tous les volumes logiques du (&#8230;)&lt;/p&gt;


-
&lt;a href="https://documentation.leonardmercader.com/?-Informatique-" rel="directory"&gt;Informatique&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;A NETTOYER !!&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;cisco-0&#034; name=&#034;cisco-0&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a1&#034; name=&#034;a1&#034;&gt;&lt;/a&gt;Th&#233;orie&lt;/h3&gt; &lt;p&gt;&lt;a href=&#034;https://www.informatiweb-pro.net/admin-systeme/linux/installer-et-utiliser-le-lvm-sous-linux.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.informatiweb-pro.net/admin-systeme/linux/installer-et-utiliser-le-lvm-sous-linux.html&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.learnlinux.tv/linux-logical-volume-manager-lvm-deep-dive-tutorial/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.learnlinux.tv/linux-logical-volume-manager-lvm-deep-dive-tutorial/&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.linuxtricks.fr/wiki/lvm-sous-linux-volumes-logiques&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.linuxtricks.fr/wiki/lvm-sous-linux-volumes-logiques&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;voir les types de FS (m&#234;me des LV) pour savoir en quel FS il est :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;blkid&lt;/code&gt;&lt;/p&gt;
&lt;div class='spip_document_99 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='https://documentation.leonardmercader.com/IMG/png/lvm.png' width='189' height='667' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;cli-commande-line-interface-1&#034; name=&#034;cli-commande-line-interface-1&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2&#034; name=&#034;a2&#034;&gt;&lt;/a&gt;Extension d'un volume logique.&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;1 - V&#233;rification de l'espace disponible&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; lsblk&lt;/code&gt; # affiche tous les volumes logiques du syst&#232;me avec leurs points de montage&lt;br class='autobr' /&gt; ## todo : v&#233;rifier l'espace libre sur /dev/sdX&lt;br class='autobr' /&gt; ## todo : v&#233;rifier l'espace libre sur le LV&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; pvs &lt;/code&gt; # v&#233;rifier Free PE pour obtenir l'espace dispo sur le PV (Physical Volume) &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; pvs /dev/sda5&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; vgs&lt;/code&gt; # v&#233;rifier Free PE pour obtenir l'espace dispo sur le VG (Volume Group)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; vgs my_vg&lt;/code&gt; # affiche l'espace disponible du groupe my_vg&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2 - Ajout de l'espace disque sur VMware&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; echo &#034;1&#034; &gt; /sys/class/block/sdX/device/rescan&lt;/code&gt; # (sdx = sda ou sdb) forcer le syst&#232;me &#224; scanner la nouvelle taille du disque sdX&lt;br class='autobr' /&gt; lsblk # v&#233;rifier que la taille du disque s'est bien mise &#224; jour&lt;/p&gt;
&lt;p&gt;3 - extension du volume logique&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; parted /dev/sdX&lt;/code&gt;&lt;br class='autobr' /&gt; SI on a une partition logical dans une partition extended dans une partition primary ALORS&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; print &lt;/code&gt; # affiche les partitions du disque : primary (sda1), extended (sda2) et logical (sda5)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; resizepart 2 100% &lt;/code&gt; # agrandi la partition extended (sda2) contenant la partition logical (sda5)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; print&lt;/code&gt;&lt;br class='autobr' /&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt; resizepart 5 100% &lt;/code&gt; # agrandi la partition logical lvm finale(sda5)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; print&lt;/code&gt;&lt;br class='autobr' /&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt; quit&lt;/code&gt;&lt;/p&gt;
&lt;p&gt; Si partition extended unique&lt;/p&gt;
&lt;p&gt; SINON SI partition LVM directement dans sdX ALORS (A COMPLETER)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4 - extension du PV (Physical Volume)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; pvs; vgs &lt;/code&gt; # check l'espace actuel&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; partprobe &lt;/code&gt; # rescan disk update&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; pvresize /dev/sda5&lt;/code&gt; # &#233;tend le PV (peut ne pas marcher du premier coups...)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; pvs; vgs&lt;/code&gt; # check la nouvelle taille du pv et du vg&lt;br class='autobr' /&gt; ou&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; pvs /dev/sda5&lt;/code&gt; # si besoin de filtrer la bonne partition&lt;/p&gt;
&lt;p&gt;5 - extension du LV (Logical Volume)&lt;/p&gt;
&lt;p&gt;/ !\ en place du lvextend le lvresize marche.&lt;/p&gt;
&lt;p&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lvextend -L -r +10G /dev/my_vg/my_lv&lt;/code&gt; # &#233;tend le LV de +10 GB&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; lvextend -L -r +10G /dev/mapper/my_vg-my_lv &lt;/code&gt; # syntaxe similaire alternative&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; lvresize -l +100%FREE /dev/mapper/vgsystem-usr --resizefs&lt;/code&gt; # Effet d'agrandissement similaire avec pris en compte du syst&#232;me &#8212;resizefs&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; lvextend -L -r +100%FREE /dev/my_vg/my_lv &lt;/code&gt; # &#233;tend le LV de tous l'espace dispo (pvs : PV FREE) du PV&lt;br class='autobr' /&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt; -r &lt;/code&gt; # r = &lt;strong&gt;resize2fs&lt;/strong&gt;/growfs, redimensionne automatiquement le FS ext4 prendre en compte la nouvelle taille du LV&lt;/p&gt;
&lt;p&gt;si oublie du -r, il faut augmenter le FS : &lt;br class='autobr' /&gt;
&lt;strong&gt;resize2fs&lt;/strong&gt; (Ext4) ou &lt;strong&gt;xfs_growfs&lt;/strong&gt; (xfs)&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;commandes-utiles-2&#034; name=&#034;commandes-utiles-2&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3&#034; name=&#034;a3&#034;&gt;&lt;/a&gt;Ajout d'un volume logique&lt;/h3&gt; &lt;p&gt;On souhaite cr&#233;er le volume my_lv appartenant au groupe my_vg qui sera mont&#233; sur /path/mount_point avec les droits userA:groupB&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1 - V&#233;rification de l'espace disponible&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; lsblk &lt;/code&gt; # affiche tous les volumes logiques du syst&#232;me avec leurs points de montage&lt;br class='autobr' /&gt; ## todo : v&#233;rifier l'espace libre sur /dev/sdX&lt;br class='autobr' /&gt; ## todo : v&#233;rifier l'espace libre sur le LV&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; vgs &lt;/code&gt; # afficher l'espace disponible du groupe my_vg si celui-ci est le seul pr&#233;sent&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; vgs my_vg&lt;/code&gt; # affiche seulement pour le group d&#233;finit&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2 - Ajout d'espace disque sur VMware&lt;br class='autobr' /&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; echo 1 &gt; /sys/class/block/sdx/device/rescan&lt;/code&gt; # forcer le syst&#232;me &#224; scanner la nouvelle taille du disque sdX&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; echo 1 &gt; /sys/class/scsi_device/0\:0\:0\:0/device/rescan&lt;/code&gt; # alternative si la commande pr&#233;c&#233;dente n'est pas reconnue&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; lsblk &lt;/code&gt; # v&#233;rifier que /dev/sdx s'est bien mis &#224; jour&lt;/p&gt;
&lt;p&gt;3 - Redimensionner la/les partitions du disque&lt;/p&gt;
&lt;p&gt; SI on a que des partitions lvm ALORS&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; parted /dev/sdx&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; print &lt;/code&gt; # affiche la liste des partition du &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;disque /dev/sdx&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; resizepart 3 100% &lt;/code&gt; # attribue tout l'espace libre de /dev/sdx &#224; /dev/sdx3&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; print&lt;/code&gt;&lt;/p&gt;
&lt;p&gt; SI &#034;parted /dev/sda print&#034; indique que que les partitions 2 et 5 (par exemple) font la m&#234;me taille et qu'il est indiqu&#233; que la 2 est extended et que la 5 est logical lvm ALORS&lt;br class='autobr' /&gt; SI on a une partition logical dans une partition extended dans une partition primary ALORS&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; print&lt;/code&gt; # affiche les partitions du disque : primary (sda1), extended (sda2) et logical (sda5)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; resizepart 2 100% &lt;/code&gt; # agrandi la partition extended (sda2) contenant la partition logical (sda5)&lt;br class='autobr' /&gt; print&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; resizepart 5 100% &lt;/code&gt; # agrandi la partition logical lvm finale(sda5)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; print&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; quit&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4 - extension du PV (Physical Volume)&lt;br class='autobr' /&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; pvs /dev/sda5&lt;/code&gt; # affiche l'espace libre dispo (PFree)&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; vgdisplay &lt;/code&gt; # v&#233;rifier l'espace dispo du VG&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; partprobe &lt;/code&gt; # rescan disk update&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; pvresize /dev/sda5 &lt;/code&gt; # &#233;tend le PV&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; pvs /dev/sda5 &lt;/code&gt; # v&#233;rifier si l'ajout c'est bien effectu&#233;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5 - Cr&#233;ation du volume logique&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;dans l'exemple, on cr&#233;&#233; le lv du nom de user, qui prendra 100% de l'espace libre (nouvellement cr&#233;&#233;).&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lvcreate --name user -l 100%FREE &lt;nom_vg&gt; --resizefs&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;ou&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; lvcreate -n my_lv -L 10G my_vg&lt;/code&gt; # on cr&#233;e un nouveau volume logique nomm&#233; my_lv de 10 GB dans le groupe my_vg&lt;br class='autobr' /&gt; ## a revoir : resize2fs /dev/mv_vg/my_lv # met &#224; jour la nouvelle taille du LV sur le FS ext4&lt;br class='autobr' /&gt; lsblk # on v&#233;rifie que le volume est bien pr&#233;sent&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6 - Cr&#233;ation du file system&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; ls -l /dev/my_vg/ &lt;/code&gt; # liste tous les volumes logiques du groupe my_vg, similaire &#224; la commande lsblk&lt;br class='autobr' /&gt; mkfs.ext4 /dev/my_vg/my_lv # on format my_lv en ext4 ! Ne pas se tromper de volume !&lt;/p&gt;
&lt;p&gt;dans notre exemple :&lt;br class='autobr' /&gt;
&lt;strong&gt;mkfs.ext4 /dev/tes-ordnctrlmpr-02-vg/user&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7 - Cr&#233;ation du dossier de montage&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; mkdir /path/mount_point&lt;/code&gt; # on cr&#233;e un dossier sur lequel sera mont&#233; notre volume logique my_lv&lt;/p&gt;
&lt;p&gt;Dans une des probl&#233;matiques, il fallait cr&#233;e un volume logique pour la partition existante /usr/ (&lt;a href='https://documentation.leonardmercader.com/?Depannage-LVM' class=&#034;spip_in&#034;&gt;voir incident LVM&lt;/a&gt;).&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;
&lt;br /&gt;&#8212; &gt; monter le nouveau lv dans un dossier lambda (exemple /mnt/usr)&lt;br class='autobr' /&gt;
mount /dev/mapper/&lt;vg&gt;/&lt;lv&gt; /mnt/usr/ &#8212;&gt; on monte le lv dans /mnt/usr&lt;br class='autobr' /&gt;
rsync -az /user/ /mnt/usr/ &#8212;&gt; synchronisation dans le dossier qui &#233;crira dans le lv (le lv est mont&#233; dans /mnt/usr/ dont tout ce qui s'y effectuera inscrira dans le lv.&lt;/p&gt;
&lt;p&gt;df -h -&gt; on voit que la partition grossit.&lt;/p&gt;
&lt;p&gt;on v&#233;rifie, on refait un rsync qui devrait &#234;tre rapide.&lt;/p&gt;
&lt;p&gt;Pour gagner de la place, on peut supprimer le /usr/ -&gt; si on est s&#251;r que l'&#233;tape fstab a &#233;t&#233; fait ; il faut rebooter par la suite.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;8 - Cr&#233;ation de l'entr&#233;e fstab&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; vim /etc/fstab /dev/mapper/my_vg-my_lv /path/mount_point ext4 defaults 0 2 # ligne &#224; copier dans fstab&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;dans notre exemple :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/dev/mapper/tes--ordnctrlmpr--02--vg-user /usr ext4 defaults 0 2&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;9 - Montage du volume logique&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; mount /path/mount_point&lt;/code&gt; # grace &#224; l'entr&#233;e fstab on peut directement monter &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mount -a&lt;/code&gt;&lt;br class='autobr' /&gt; # le file system /dev/mapper/my_vg-my_lv sans le sp&#233;cifier dans la commande&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; lsblk &lt;/code&gt; # on v&#233;rifie que le dossier est bien mont&#233;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;10 - Modification des droits d'acc&#232;s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; chown userA:groupB /path/mount_point&lt;/strong&gt; # on change le propri&#233;taire seulement si le dossier est correctement mont&#233;&lt;br class='autobr' /&gt;
&lt;strong&gt; chmod 775 /path/mount_point &lt;/strong&gt; # on peut aussi changer les permissions seulement apr&#232;s le montage du dossier&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;liens-interessants-3&#034; name=&#034;liens-interessants-3&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4&#034; name=&#034;a4&#034;&gt;&lt;/a&gt;shrink / r&#233;duction &lt;/h3&gt; &lt;p&gt;&lt;a href=&#034;https://www.rootusers.com/lvm-resize-how-to-decrease-an-lvm-partition/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.rootusers.com/lvm-resize-how-to-decrease-an-lvm-partition/&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;les-differents-modes-4&#034; name=&#034;les-differents-modes-4&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a5&#034; name=&#034;a5&#034;&gt;&lt;/a&gt;VIEU&lt;/h3&gt;
&lt;hr class=&#034;spip&#034; /&gt;
&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-utilisateur-user-exec-command-5&#034; name=&#034;mode-utilisateur-user-exec-command-5&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a6&#034; name=&#034;a6&#034;&gt;&lt;/a&gt;Augmentation de disque LVM &#171; simple &#187; sur la m&#234;me partition / Virtual Groupe&lt;/h3&gt; &lt;p&gt;&#8594; sur vmware, augmenter le disque de x GO&lt;/p&gt;
&lt;p&gt;puis snapshot.&lt;/p&gt;
&lt;p&gt;Sur le serveur :&lt;/p&gt;
&lt;p&gt;on rescanne les disques :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;for S in $(ls /sys/class/scsi_host/host*/scan) ; do echo &#034;- - -&#034; &gt; $S ; done &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;pour bonne prise en compte de la bonne taille de la partition par le FS :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pvresize /dev/sdb&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;on peut v&#233;rifier avec un lvs ou pvs&lt;/p&gt;
&lt;p&gt;puis on augmente la partition souhait&#233;e, exemple : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lvresize /dev/vg_data/data_ora --size +100G --resizefs&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;df -h&lt;/p&gt;
&lt;p&gt;voil&#224;.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-privilege-privileged-exec-command-6&#034; name=&#034;mode-privilege-privileged-exec-command-6&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a7&#034; name=&#034;a7&#034;&gt;&lt;/a&gt;Augmentation disque LVM avec nouvelle partition.&lt;/h3&gt; &lt;p&gt;&lt;span style=&#034;color:red;&#034;&gt;/ !&lt;/span&gt;&lt;strong&gt; s'assurer qu'il est possible de cr&#233;er une nouvelle partition primaire ! &lt;/strong&gt; &lt;br class='autobr' /&gt;
Max : 4 partition primaire. Si plus de place : cr&#233;er un nouveau disque.&lt;/p&gt;
&lt;p&gt;&#8594; sur vmware, augmenter le disque de x GO&lt;/p&gt;
&lt;p&gt;Si on ne sait pas quel disque mais qu'on conna&#238;t la partition (exemple /data/) :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;df -h &lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;/dev/mapper/VG_DOC-lvdocserv 344G 316G 29G 92% /data&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Lien complet de la LV (partition logique qui peut &#234;tre sur plusieurs disques)&lt;br class='autobr' /&gt;
on va justement voir sur quel disque est la partition :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; pvs -v --segments&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; /dev/sdb1 VG_DOC lvm2 a&#8212; 100,00g 0 0 25599 lvdocserv 0 linear /dev/sdb1:0-25598&lt;br class='autobr' /&gt; /dev/sdb2 VG_DOC lvm2 a&#8212; 50,00g 0 0 12799 lvdocserv 25599 linear /dev/sdb2:0-12798&lt;br class='autobr' /&gt; /dev/sdb3 VG_DOC lvm2 a&#8212; 200,00g 472,00m 0 51081 lvdocserv 38398 linear /dev/sdb3:0-51080&lt;br class='autobr' /&gt; /dev/sdb3 VG_DOC lvm2 a&#8212; 200,00g 472,00m 51081 118 0 free&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Il est sur le disque sdb.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fdisk -l |grep sdb&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;Disk /dev/sdb : 350 GiB, 375809638400 bytes, 734003200 sectors&lt;br class='autobr' /&gt;
/dev/sdb1 2048 209715199 209713152 100G 8e Linux LVM&lt;br class='autobr' /&gt;
/dev/sdb2 209715200 314572799 104857600 50G 8e Linux LVM&lt;br class='autobr' /&gt;
/dev/sdb3 314572800 734003199 419430400 200G 83 Linux&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Le disque fait 350GO. S'il y a plusieurs disques de 350GO alors :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;dmesg | grep -i 'Attached SCSI disk'&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;[ 1.529449] sd 0:0:1:0 : [sdb] Attached SCSI disk&lt;br class='autobr' /&gt;
[ 1.529998] sd 0:0:0:0 : [sda] Attached SCSI disk&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;On a la position pr&#233;cise du disque dans Vmware.&lt;/p&gt;
&lt;p&gt;On augmente le disque.&lt;/p&gt;
&lt;p&gt;puis &lt;span style=&#034;color:red;&#034;&gt;&lt;strong&gt;snapshot.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&#8594; sur le serveur :&lt;/p&gt;
&lt;p&gt;On cr&#233;&#233; la nouvelle partition :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fdisk /dev/sdb&lt;/code&gt;&lt;br class='autobr' /&gt;
option :&lt;br class='autobr' /&gt;
&lt;strong&gt; p&lt;/strong&gt; (print the partition table)&lt;br class='autobr' /&gt;
pour lister les partitions existantes.&lt;/p&gt;
&lt;p&gt;Puis &lt;strong&gt;n&lt;/strong&gt; pour une nouvelle partition.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;p&lt;/strong&gt; (pour partition primaire.)&lt;/p&gt;
&lt;p&gt;Device Boot Start End Sectors Size Id Type&lt;br class='autobr' /&gt;
/dev/sdb1 2048 209715199 209713152 100G 8e Linux LVM&lt;br class='autobr' /&gt;
/dev/sdb2 209715200 314572799 104857600 50G 8e Linux LVM&lt;br class='autobr' /&gt;
/dev/sdb3 314572800 734003199 419430400 200G 83 Linux&lt;br class='autobr' /&gt;
/dev/sdb4 734003200 943718399 209715200 100G 83 Linux&lt;/p&gt;
&lt;p&gt;Notre nouvelle partition est cr&#233;e Mais n'a pas de &#171; type &#187;&lt;/p&gt;
&lt;p&gt;faire :&lt;br class='autobr' /&gt;
&lt;strong&gt; t&lt;/strong&gt; (change a partition type)&lt;/p&gt;
&lt;p&gt;Choisir le n&#232;me partition &#224; modifier :&lt;/p&gt;
&lt;p&gt;Partition number (1-4, default 4) : 4&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;8e Linux LVM &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;L&lt;/strong&gt; pour avoir la liste compl&#232;te.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;p&lt;/strong&gt; pour lister encore les partitions :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;Device Boot Start End Sectors Size Id Type&lt;br class='autobr' /&gt;
/dev/sdb1 2048 209715199 209713152 100G 8e Linux LVM&lt;br class='autobr' /&gt;
/dev/sdb2 209715200 314572799 104857600 50G 8e Linux LVM&lt;br class='autobr' /&gt;
/dev/sdb3 314572800 734003199 419430400 200G 83 Linux&lt;br class='autobr' /&gt;
/dev/sdb4 734003200 943718399 209715200 100G 8e Linux LVM&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;jusqu'ici rien n'a &#233;t&#233; inscrit sur la table de partition.&lt;/p&gt;
&lt;p&gt;w &#233;crit sur la nouvelle table.&lt;/p&gt;
&lt;p&gt;Si erreur du style :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;The partition table has been altered.&lt;br class='autobr' /&gt;
Calling ioctl() to re-read partition table.&lt;br class='autobr' /&gt;
Re-reading the partition table failed. : P&#233;riph&#233;rique ou ressource occup&#233;&lt;/p&gt;
&lt;p&gt;The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C'est &#171; normal &#187;, le noyau ne peut r&#233;&#233;crire sur la taille de la partition car le disque est utilis&#233;.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;:~# partprobe&lt;/code&gt;&lt;br class='autobr' /&gt;
partprobe est la sonde qui permet de relire les partitions.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;:~# partx -v -a /dev/sdb&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;partition : none, disk : /dev/sdb, lower : 0, upper : 0&lt;br class='autobr' /&gt;
/dev/sdb : partition table type 'dos' detected&lt;br class='autobr' /&gt;
partx : /dev/sdb : adding partition #1 failed : P&#233;riph&#233;rique ou ressource occup&#233;&lt;br class='autobr' /&gt;
partx : /dev/sdb : adding partition #2 failed : P&#233;riph&#233;rique ou ressource occup&#233;&lt;br class='autobr' /&gt;
partx : /dev/sdb : adding partition #3 failed : P&#233;riph&#233;rique ou ressource occup&#233;&lt;br class='autobr' /&gt;
partx : /dev/sdb : adding partition #4 failed : P&#233;riph&#233;rique ou ressource occup&#233;&lt;br class='autobr' /&gt;
partx : /dev/sdb : error adding partitions 1-4&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;preuve que &#231;a semble en bonne voie :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fdisk -l&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;[&#8230;] &lt;br class='autobr' /&gt;
Device Boot Start End Sectors Size Id Type&lt;br class='autobr' /&gt;
/dev/sdb1 2048 209715199 209713152 100G 8e Linux LVM&lt;br class='autobr' /&gt;
/dev/sdb2 209715200 314572799 104857600 50G 8e Linux LVM&lt;br class='autobr' /&gt;
/dev/sdb3 314572800 734003199 419430400 200G 83 Linux&lt;br class='autobr' /&gt;
/dev/sdb4 734003200 943718399 209715200 100G 8e Linux LVM&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;dans :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cat /proc/partitions&lt;/code&gt;&lt;br class='autobr' /&gt;
on voit bien la partition.&lt;/p&gt;
&lt;p&gt;&#8212; &gt; permet de rescaner la taille du disque augment&#233;. (si problm de reconnaissance ?)&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;1&#034; &gt; /sys/class/block/sdb/device/rescan&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;partx -l /dev/sdb&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;# 1 : 2048-209715199 (209713152 sectors, 107373 MB)&lt;br class='autobr' /&gt;
# 2 : 209715200-314572799 (104857600 sectors, 53687 MB)&lt;br class='autobr' /&gt;
# 3 : 314572800-734003199 (419430400 sectors, 214748 MB)&lt;br class='autobr' /&gt;
# 4 : 734003200-943718399 (209715200 sectors, 107374 MB)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ok, tout semble cool malgr&#233; l'erreur :&lt;/p&gt;
&lt;p&gt;on cr&#233;&#233; le disque :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pvcreate /dev/sdb4&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; Physical volume &#034;/dev/sdb4&#034; successfully created&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pvscan&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; PV /dev/sdb1 VG VG_DOC lvm2 [100,00 GiB / 0 free]&lt;br class='autobr' /&gt; PV /dev/sdb2 VG VG_DOC lvm2 [50,00 GiB / 0 free]&lt;br class='autobr' /&gt; PV /dev/sdb3 VG VG_DOC lvm2 [200,00 GiB / 472,00 MiB free]&lt;br class='autobr' /&gt; PV /dev/sda5 VG vgavm lvm2 [49,53 GiB / 0 free]&lt;br class='autobr' /&gt; PV /dev/sdb4 lvm2 [100,00 GiB]&lt;br class='autobr' /&gt; Total : 5 [499,52 GiB] / in use : 4 [399,52 GiB] / in no VG : 1 [100,00 GiB]&lt;/p&gt;
&lt;p&gt;On va agrandir le Virtual Group (VG) en y incorporant le disque :&lt;br class='autobr' /&gt;
vgextend VG_DOC /dev/sdb4 &lt;br class='autobr' /&gt;
Nom du virtual group. Disque &#224; incorporer.&lt;br class='autobr' /&gt; Volume group &#034;VG_DOC&#034; successfully extended&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;:~# pvscan&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; PV /dev/sdb1 VG VG_DOC lvm2 [100,00 GiB / 0 free]&lt;br class='autobr' /&gt; PV /dev/sdb2 VG VG_DOC lvm2 [50,00 GiB / 0 free]&lt;br class='autobr' /&gt; PV /dev/sdb3 VG VG_DOC lvm2 [200,00 GiB / 472,00 MiB free]&lt;br class='autobr' /&gt; PV /dev/sdb4 VG VG_DOC lvm2 [100,00 GiB / 100,00 GiB free]&lt;br class='autobr' /&gt; PV /dev/sda5 VG vgavm lvm2 [49,53 GiB / 0 free]&lt;br class='autobr' /&gt; Total : 5 [499,52 GiB] / in use : 5 [499,52 GiB] / in no VG : 0 [0 ]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;vgdisplay&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; --- Volume group ---&lt;br class='autobr' /&gt; VG Name VG_DOC&lt;br class='autobr' /&gt; System ID&lt;br class='autobr' /&gt; Format lvm2&lt;br class='autobr' /&gt; Metadata Areas 4&lt;br class='autobr' /&gt; Metadata Sequence No 8&lt;br class='autobr' /&gt; VG Access read/write&lt;br class='autobr' /&gt; VG Status resizable&lt;br class='autobr' /&gt; MAX LV 0&lt;br class='autobr' /&gt; Cur LV 1&lt;br class='autobr' /&gt; Open LV 1&lt;br class='autobr' /&gt; Max PV 0&lt;br class='autobr' /&gt; Cur PV 4&lt;br class='autobr' /&gt; Act PV 4&lt;br class='autobr' /&gt; VG Size 449,98 GiB On voit bien l'augmentation de 100G par rapport au df du d&#233;but.&lt;br class='autobr' /&gt; PE Size 4,00 MiB&lt;br class='autobr' /&gt; Total PE 115196&lt;br class='autobr' /&gt; Alloc PE / Size 89479 / 349,53 GiB&lt;br class='autobr' /&gt; Free PE / Size 25717 / 100,46 GiB de libre.&lt;br class='autobr' /&gt; VG UUID E8SPMz-hU5r-pf6K-QTsI-FVjb-1V9O-AbfqdF&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&#233;tendons cette partition logique pour l'allouer au VG :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lvextend /dev/mapper/VG_DOC-lvdocserv -L +100G --resizefs&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On &#233;tend &lt;le lien complet du VG&gt; on y marque la taille en Gigas, si rien &#8594; octet ?:O&lt;br class='autobr' /&gt;
Le resizefs permet de modifier la taille sur le syst&#232;me.&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; Size of logical volume VG_DOC/lvdocserv changed from 349,53 GiB (89479 extents) to 449,53 GiB (115079 extents).&lt;br class='autobr' /&gt; Logical volume lvdocserv successfully resized&lt;br class='autobr' /&gt;
resize2fs 1.42.12 (29-Aug-2014)&lt;br class='autobr' /&gt;
Le syst&#232;me de fichiers de /dev/mapper/VG_DOC-lvdocserv est mont&#233; sur /data ; le changement de taille doit &#234;tre effectu&#233; en ligne&lt;br class='autobr' /&gt;
old_desc_blocks = 22, new_desc_blocks = 29&lt;br class='autobr' /&gt;
Le syst&#232;me de fichiers sur /dev/mapper/VG_DOC-lvdocserv a maintenant une taille de 117840896 blocs (4k).&lt;/p&gt;
&lt;p&gt;Vous avez du courrier dans /var/mail/root&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;V&#233;rifions :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;:~# vgdisplay&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; --- Volume group ---&lt;br class='autobr' /&gt; VG Name VG_DOC&lt;br class='autobr' /&gt; System ID&lt;br class='autobr' /&gt; Format lvm2&lt;br class='autobr' /&gt; Metadata Areas 4&lt;br class='autobr' /&gt; Metadata Sequence No 9&lt;br class='autobr' /&gt; VG Access read/write&lt;br class='autobr' /&gt; VG Status resizable&lt;br class='autobr' /&gt; MAX LV 0&lt;br class='autobr' /&gt; Cur LV 1&lt;br class='autobr' /&gt; Open LV 1&lt;br class='autobr' /&gt; Max PV 0&lt;br class='autobr' /&gt; Cur PV 4&lt;br class='autobr' /&gt; Act PV 4&lt;br class='autobr' /&gt; VG Size 449,98 GiB&lt;br class='autobr' /&gt; PE Size 4,00 MiB&lt;br class='autobr' /&gt; Total PE 115196&lt;br class='autobr' /&gt; Alloc PE / Size 115079 / 449,53 GiB&lt;br class='autobr' /&gt; Free PE / Size 117 / 468,00 MiB&lt;br class='autobr' /&gt; VG UUID E8SPMz-hU5r-pf6K-QtsI-Fvjb-1V9O-AbfqdF&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;V&#233;rifions :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;lvdisplay&lt;/code&gt;&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; --- Logical volume ---&lt;br class='autobr' /&gt; LV Path /dev/VG_DOC/lvdocserv Nom de la lv /data/ (dans df du d&#233;but)&lt;br class='autobr' /&gt; LV Name lvdocserv&lt;br class='autobr' /&gt; VG Name VG_DOC&lt;br class='autobr' /&gt; LV UUID AlK1Bq-FNsR-Vaoy-COWL-F0a7-cD8f-V480fG&lt;br class='autobr' /&gt; LV Write Access read/write&lt;br class='autobr' /&gt; LV Creation host, time ged-files-avm, 2017-06-20 13:47:33 +0200&lt;br class='autobr' /&gt; LV Status available&lt;br class='autobr' /&gt; # open 1&lt;br class='autobr' /&gt; LV Size 449,53 GiB Youpi !&lt;br class='autobr' /&gt; Current LE 115079&lt;br class='autobr' /&gt; Segments 4&lt;br class='autobr' /&gt; Allocation inherit&lt;br class='autobr' /&gt; Read ahead sectors auto&lt;br class='autobr' /&gt; - currently set to 256&lt;br class='autobr' /&gt; Block device 254:2&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;df -h&lt;/code&gt;&lt;br class='autobr' /&gt;
/dev/mapper/VG_DOC-lvdocserv 443G 316G 128G 72% /data&lt;/p&gt;
&lt;p&gt;Cr&#233;ation / ajout de partitions :&lt;/p&gt;
&lt;p&gt;agrandissement du bon disque sur vmware.&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;1&#034; &gt; /sys/class/block/sda/device/rescan lsblk parted /dev/sda pvs pvresize /dev/sda3 pvs vgs lvs lvcreate -L 10G -n opt_controlm vgsystem # on cr&#233;&#233; le LV au nom de opt_controlm dans le VG vgsystem lvcreate -L 30G -n exploitation vgsystem # on en cr&#233;&#233; un second lvs mount # pour voir les montage et surtout les syst&#232;mes de fichiers utilis&#233;s. mkfs.xfs /dev/mapper/vgsystem-opt_controlm # on cr&#233;&#233; le sys de fichiers mkfs.xfs /dev/mapper/vgsystem-exploitation # nomduVG-nomduLV cr&#233;&#233; plus haut. mkdir /opt/controlm # Les dossiers o&#249; les LV seront mont&#233;s mkdir /exploitation vi /etc/fstab # on met direct dans le fstab &lt;quote&gt;exemple : /dev/mapper/vgsystem-exploitation /exploitation xfs defaults 0 0&lt;/quote&gt; mount /exploitation/ # on monte en lisant le fstab pour telle partition mount /opt/controlm/ df -h #v&#233;rif&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Lien utile :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://geekpeek.net/rescan-scsi-bus-on-linux-system/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://geekpeek.net/rescan-scsi-bus-on-linux-system/&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.golinuxhub.com/2014/03/how-to-extendresize-lvm-and-volume/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.golinuxhub.com/2014/03/how-to-extendresize-lvm-and-volume/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Cr&#233;ation VG :&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/6/html/logical_volume_manager_administration/lvm_examples&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/6/html/logical_volume_manager_administration/lvm_examples&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Focus mode&lt;br class='autobr' /&gt;
Red Hat Training&lt;/p&gt;
&lt;p&gt;A Red Hat training course is available for Red Hat Enterprise Linux&lt;br class='autobr' /&gt;
Chapitre 5. Exemples de configuration LVM&lt;br class='autobr' /&gt;
Ce chapitre fournit des exemples de configuration LVM de base.&lt;br class='autobr' /&gt;
5.1. Cr&#233;ation d'un volume logique LVM sur trois disques&lt;br class='autobr' /&gt;
Cet exemple cr&#233;e un volume logique LVM appel&#233; new_logical_volume qui se compose des disques /dev/sda1, /dev/sdb1 et /dev/sdc1.&lt;br class='autobr' /&gt;
5.1.1. Cr&#233;ation de volumes physiques&lt;br class='autobr' /&gt;
Pour utiliser des disques dans un groupe de volumes, vous devez les &#233;tiqueter comme des volumes physiques.&lt;/p&gt;
&lt;p&gt;Avertissement&lt;br class='autobr' /&gt;
Cette commande supprime toutes les donn&#233;es sur /dev/sda1, /dev/sdb1 et /dev/sdc1.&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;[root@tng3-1 ~]# pvcreate /dev/sda1 /dev/sdb1 /dev/sdc1 Physical volume &#034;/dev/sda1&#034; successfully created Physical volume &#034;/dev/sdb1&#034; successfully created Physical volume &#034;/dev/sdc1&#034; successfully created&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;5.1.2. Cr&#233;ation d'un groupe de volumes&lt;br class='autobr' /&gt;
La commande suivante permet de cr&#233;er le groupe de volumes new_vol_group.&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;[root@tng3-1 ~]# vgcreate new_vol_group /dev/sda1 /dev/sdb1 /dev/sdc1 Volume group &#034;new_vol_group&#034; successfully created&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Vous pouvez utiliser la commande vgs pour afficher les attributs du nouveau groupe de volumes.&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;[root@tng3-1 ~]# vgs VG #PV #LV #SN Attr VSize VFree new_vol_group 3 0 0 wz--n- 51.45G 51.45G&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;5.1.3. Cr&#233;ation du volume logique&lt;br class='autobr' /&gt;
La commande suivante permet de cr&#233;er le volume logique new_logical_volume &#224; partir du groupe de volumes new_vol_group. Un volume logique qui utilise 2Go du groupe de volumes sera cr&#233;&#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;[root@tng3-1 ~]# lvcreate -L2G -n new_logical_volume new_vol_group Logical volume &#034;new_logical_volume&#034; created&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;5.1.4. Cr&#233;ation du syst&#232;me de fichiers&lt;br class='autobr' /&gt;
La commande suivante permet de cr&#233;er un syst&#232;me de fichiers GFS2 sur le volume logique.&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;[root@tng3-1 ~]# mkfs.gfs2 -plock_nolock -j 1 /dev/new_vol_group/new_logical_volume This will destroy any data on /dev/new_vol_group/new_logical_volume. Are you sure you want to proceed? [y/n] y Device: /dev/new_vol_group/new_logical_volume Blocksize: 4096 Filesystem Size: 491460 Journals: 1 Resource Groups: 8 Locking Protocol: lock_nolock Lock Table: Syncing... All Done&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Les commandes suivantes montent le volume logique et affichent l'utilisation d'espace disque du syst&#232;me de fichiers.&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;[root@tng3-1 ~]# mount /dev/new_vol_group/new_logical_volume /mnt [root@tng3-1 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/new_vol_group/new_logical_volume 1965840 20 1965820 1% /mnt&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>inkscape</title>
		<link>https://documentation.leonardmercader.com/?inkscape</link>
		<guid isPermaLink="true">https://documentation.leonardmercader.com/?inkscape</guid>
		<dc:date>2020-03-28T04:07:15Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>leonard</dc:creator>



		<description>
&lt;p&gt;Anatomie d'un SVG : &lt;br class='autobr' /&gt;
changer le fond en vide, mettre une bordure &#224; 1px et exporter avec une hauteur de 1000px avec un dpi de 300. &lt;br class='autobr' /&gt;
Tout est en format texte dans le fichier SVG. &lt;br class='autobr' /&gt;
exemple : &lt;br class='autobr' /&gt;
Un groupe d'objets est constitu&#233; d'une multitude d'objets, chaque balise repr&#233;sente un objet, une courbe qui a des propri&#233;t&#233;s diff&#233;rentes (positionnement, &#233;paisseur, couleurs...). Les groupes ont un id qui auront une lettre g qui pr&#233;c&#233;dera des chiffres. &lt;br class='autobr' /&gt;
au d&#233;but de la balise de groupe, nous avons (&#8230;)&lt;/p&gt;


-
&lt;a href="https://documentation.leonardmercader.com/?-Informatique-" rel="directory"&gt;Informatique&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;cisco-0&#034; name=&#034;cisco-0&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a1&#034; name=&#034;a1&#034;&gt;&lt;/a&gt;Anatomie d'un SVG :&lt;/h3&gt; &lt;p&gt;changer le fond en vide, mettre une bordure &#224; 1px et exporter avec une hauteur de 1000px avec un dpi de 300.&lt;/p&gt;
&lt;p&gt;Tout est en format texte dans le fichier SVG.&lt;/p&gt;
&lt;p&gt;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;&lt;g id=&#034;g8650&#034; inkscape:export-xdpi=&#034;300&#034; inkscape:export-ydpi=&#034;300&#034; transform=&#034;matrix(0.32184342,0,0,0.32184342,1137.8474,783.99775)&#034;&gt; &lt;path sodipodi:nodetypes=&#034;cccccccccc&#034; inkscape:export-ydpi=&#034;300&#034; inkscape:export-xdpi=&#034;300&#034; inkscape:export-filename=&#034;/home/mayoux/Bureau/Finsternis/Langue/Ozai/Glyphes/Grammaire/syllabes-taille/TOL.png&#034; inkscape:connector-curvature=&#034;0&#034; id=&#034;path5046-356-6&#034; d=&#034;m 293.72227,575.3864 c 11.5011,12.55473 31.6188,9.6936 45.3459,2.66121 18.3651,-9.77601 35.8284,-25.62177 40.3461,-46.67787 2.5905,-17.51463 -14.2083,-31.04631 -29.7876,-34.40211 -27.0441,-5.94186 -58.7337,10.78554 -65.1363,38.54997 -3.1275,13.58406 1.4016,30.95514 9.2319,39.8688 z m 56.2452,-28.79127 c -7.0425,11.31909 -25.3695,9.41289 -33.3951,0.0681 -7.3662,-5.89086 -11.064,-19.81605 -0.3879,-24.64071 16.84857,-8.73802 39.80407,11.57725 33.783,24.57261 z&#034; style=&#034;display:inline;fill:#000000;stroke-width:0.52973366&#034; /&gt; &lt;path sodipodi:nodetypes=&#034;ccscc&#034; inkscape:connector-curvature=&#034;0&#034; id=&#034;path5802-2&#034; d=&#034;m 389.61374,367.49195 c 0,0 -44.952,4.91667 -71.6424,-19.66649 -26.6901,-24.58317 -29.1783,17.23799 -3.8928,29.17838 25.2855,11.94039 33.714,12.64275 41.4402,11.23803 7.7262,-1.40478 34.095,-20.74992 34.095,-20.74992 z&#034; style=&#034;display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.27143574px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1&#034; /&gt; &lt;path sodipodi:nodetypes=&#034;ccsc&#034; inkscape:connector-curvature=&#034;0&#034; id=&#034;path18507&#034; d=&#034;m 291.14264,401.96186 c 0,0 82.1445,35.5479 155.16179,1.44114 -53.32199,61.96863 -183.15688,46.99317 -170.53378,31.22451 11.96009,-14.9409 14.84759,-33.19008 15.37199,-32.66565 z&#034; style=&#034;display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.35871124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1&#034; /&gt; &lt;path sodipodi:nodetypes=&#034;cccccccccccccccccccc&#034; inkscape:connector-curvature=&#034;0&#034; id=&#034;path8914-6&#034; d=&#034;m 428.00503,547.18056 c 7.4913,3.72864 6.9456,39.1474 -3.3942,45.02311 -0.255,-15.77379 -15.15519,-22.34466 -15.44409,-28.95597 -0.072,-9.48015 7.07949,-21.23725 18.83829,-16.06714 z m 17.81522,47.11123 c 14.8257,-15.70851 15.92008,-54.6975 -0.10112,-70.45512 -23.6295,-19.98585 -65.25543,11.61623 -62.25963,40.4309 2.367,19.14939 26.24272,26.96767 10.03643,36.77554 -23.5248,12.85244 -47.68339,10.97127 -69.20659,7.78749 -21.03225,-4.42211 -54.75086,-17.72167 -58.83596,-54.03925 -2.2719,-21.94419 6.17361,-43.69322 19.5479,-60.50423 6.8931,-10.94907 22.21068,-14.12399 30.68144,-13.01244 12.6954,2.08977 42.83189,8.47244 46.91055,-1.67258 3.6828,-13.28448 1.57297,-29.18826 3.71977,-42.6948 1.9212,-22.47954 29.9051,-43.03249 43.0007,-59.19898 10.9359,-10.41648 -14.5671,-13.32846 -21.8172,-9.89013 -64.7898,27.7488 -49.5128,58.09849 -58.9742,98.35087 -11.0319,-0.6594 -22.6077,-7.61703 -33.1098,-0.88995 -145.96438,70.15442 -61.57826,208.72479 56.61363,181.51917 31.0617,-8.2218 77.95128,-36.49618 93.79408,-52.50649 z&#034; style=&#034;display:inline;fill:#000000;fill-rule:evenodd;stroke-width:0.23788507&#034; /&gt; &lt;/g&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Un groupe d'objets est constitu&#233; d'une multitude d'objets, chaque balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;path&gt;&lt;/code&gt; repr&#233;sente un objet, une courbe qui a des propri&#233;t&#233;s diff&#233;rentes (positionnement, &#233;paisseur, couleurs...). &lt;br class='autobr' /&gt;
Les groupes ont un id qui auront une lettre g qui pr&#233;c&#233;dera des chiffres.&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;g id=&#034;g8650&#034; inkscape:export-xdpi=&#034;300&#034; inkscape:export-ydpi=&#034;300&#034;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;au d&#233;but de la balise de groupe, nous avons des infos concernant l'export.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fill:&lt;/code&gt; le fond de l'objet, mis &#224; none = vide. Format en #CMJN&#945;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;stroke:&lt;/code&gt; contour.&lt;/p&gt;
&lt;p&gt;j'ai modifi&#233; tout le fond des objets en faisant un simple sed :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sed -i 's/fill:#555555/fill:none/g' /home/mayoux/Bureau/Finsternis/Langue/Ozai/chant_lettres1.svg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;exporter avec une hauteur de 1000px (si l'objet en fin moins) :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;inkscape --export-id=path9381 --export-png=test.png -h1000 /home/mayoux/Bureau/Finsternis/Langue/Ozai/Glyphes/Grammaire/ligatures/ligatures.svg&lt;/code&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;cli-commande-line-interface-1&#034; name=&#034;cli-commande-line-interface-1&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2&#034; name=&#034;a2&#034;&gt;&lt;/a&gt;Redimensionner plusieurs objets ind&#233;pendant.&lt;/h3&gt; &lt;p&gt;&lt;a href=&#034;https://graphicdesign.stackexchange.com/questions/51806/inkscape-0-91-scaling-several-objects-while-keeping-their-original-location&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://graphicdesign.stackexchange.com/questions/51806/inkscape-0-91-scaling-several-objects-while-keeping-their-original-location&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En somme, il faut s&#233;lectionner tout les objets (qui ne sont pas dans un m&#234;me groupe.&lt;/p&gt;
&lt;p&gt;Objet &gt; transformer &gt; Dimensions&lt;/p&gt;
&lt;div class='spip_document_33 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='https://documentation.leonardmercader.com/IMG/png/inkscape1.png?1585583780' width='500' height='218' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Seul le % permet un redimensionnement avec respect du ratio !&lt;/p&gt;
&lt;p&gt;cocher appliquer &#224; tous les objets.&lt;/p&gt;
&lt;p&gt;Pour le d&#233;placement en masse, m&#234;me principe.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;commandes-utiles-2&#034; name=&#034;commandes-utiles-2&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3&#034; name=&#034;a3&#034;&gt;&lt;/a&gt;Redimensionner avec une hauteur sp&#233;cifique.&lt;/h3&gt;
&lt;div class='spip_document_34 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='https://documentation.leonardmercader.com/IMG/png/inkscape2.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/inkscape2.png?1585598654' width='500' height='416' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Nagios</title>
		<link>https://documentation.leonardmercader.com/?Nagios</link>
		<guid isPermaLink="true">https://documentation.leonardmercader.com/?Nagios</guid>
		<dc:date>2020-02-21T07:41:49Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>leonard</dc:creator>



		<description>&lt;p&gt;&lt;span class=commande&gt;commande&#224;passer&lt;/span&gt;&lt;br class='autobr' /&gt;
&lt;span class=dossier&gt;dossiers-ou-fichiers&lt;/span&gt;&lt;br class='autobr' /&gt;
&lt;span class=codetape&gt;code tap&#233;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;span style=&#034;color: #FF0040&#034;;&gt;&lt;span&gt;&lt;br class='autobr' /&gt;
&lt;span class=rouge&gt;&lt;/span&gt;&lt;br class='autobr' /&gt;
&lt;img src='https://documentation.leonardmercader.com/IMG/import/png/Apache' height=&#034;30&#034; /&gt;&lt;/p&gt;
&lt;a href='https://documentation.leonardmercader.com/spip.php?article1#vhost'&gt;

-
&lt;a href="https://documentation.leonardmercader.com/?-gnu-linux-" rel="directory"&gt;GNU/Linux&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;cisco-0&#034; name=&#034;cisco-0&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a1&#034; name=&#034;a1&#034;&gt;&lt;/a&gt;I - Install&lt;/h3&gt; &lt;p&gt;&lt;a href=&#034;https://openclassrooms.com/fr/courses/2035786-mettez-en-place-un-outil-de-supervision-de-production-avec-nagios/6050091-installez-nagios-core-sur-votre-serveur-debian&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://openclassrooms.com/fr/courses/2035786-mettez-en-place-un-outil-de-supervision-de-production-avec-nagios/6050091-installez-nagios-core-sur-votre-serveur-debian&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;compte :&lt;br class='autobr' /&gt;
openclass@leotxando.net&lt;/p&gt;
&lt;p&gt;&#192; ce jour il n y a pas de paquets dans les d&#233;p&#244;ts Debian, il faudra compiler le paquet.&lt;/p&gt;
&lt;p&gt;Pour la gestion du SSL avec le plugin check_http 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;./configure --with-nagios-user=nagios --with-nagios-group=nagcmd --with-openssl=/usr/bin/openssl make make install&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;cli-commande-line-interface-1&#034; name=&#034;cli-commande-line-interface-1&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a1.1&#034; name=&#034;a1.1&#034;&gt;&lt;/a&gt;I.1 - R&#233;pertoire par d&#233;faut&lt;/h4&gt; &lt;p&gt;&#192; l'installation tout se met dans &lt;span class=dossier&gt;/usr/local/nagios&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/configmain.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/configmain.html&lt;/a&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;commandes-utiles-2&#034; name=&#034;commandes-utiles-2&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a1.2&#034; name=&#034;a1.2&#034;&gt;&lt;/a&gt;I.2 - Erreur &#224; l'install&lt;/h4&gt; &lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;./configure --with-httpd-conf=/etc/apache2/sites-enabled --with-command-group=nagcmd&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Modifier dans le nagios.cfg et mettre : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;check_for_updates=0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; ! Ceci d&#233;sactivera les mises &#224; jour automatiques.&lt;/strong&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;liens-interessants-3&#034; name=&#034;liens-interessants-3&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2&#034; name=&#034;a2&#034;&gt;&lt;/a&gt;II - Introduction &lt;/h3&gt; &lt;p&gt;Les checks commandes sont lanc&#233;s par des plugins, binaires ou fichiers textes qui ont pour r&#244;le de s'ex&#233;cuter afin de faire remonter une valeur (warning, critique...)&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;les-differents-modes-4&#034; name=&#034;les-differents-modes-4&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.1&#034; name=&#034;a2.1&#034;&gt;&lt;/a&gt;II.1 - Fichiers et r&#233;pertoires principaux.&lt;/h4&gt; &lt;p&gt;&lt;span class=dossier&gt;/usr/local/nagios/libexec&lt;/span&gt;&lt;br class='autobr' /&gt;
contient tout les plugins standards compil&#233;s par d&#233;faut de Nagios.&lt;br class='autobr' /&gt;
&lt;span class=dossier&gt;/usr/local/nagios/etc&lt;/span&gt;&lt;br class='autobr' /&gt;
dossiers ayant les fichiers de conf suivant :&lt;br class='autobr' /&gt;
&lt;span class=dossier&gt;nagios.cfg&lt;/span&gt; est le fichier de configuration principal de Nagios. Au d&#233;marrage, c'est ce fichier que le programme Nagios va lire en premier.&lt;br class='autobr' /&gt;
&lt;span class=dossier&gt;resource.cfg&lt;/span&gt;, qui contient des param&#232;tres sp&#233;cifiques &#224; votre contexte, on y d&#233;finit des variables personnels pour faciliter des appels.&lt;br class='autobr' /&gt;
&lt;span class=dossier&gt;cgi.cfg&lt;/span&gt;, d&#233;di&#233; &#224; la configuration de l'interface d'administration (notamment des droits utilisateur).&lt;br class='autobr' /&gt;
&lt;span class=dossier&gt;objects&lt;/span&gt;. Il contient huit fichiers de configuration avec une extension .cfg. Ces fichiers contiennent des mod&#232;les de configuration fournis directement par Nagios, nomm&#233;s TEMPLATES. &lt;br class='autobr' /&gt;
&lt;span class=dossier&gt;share&lt;/span&gt; et &lt;span class=dossier&gt;sbin&lt;/span&gt; contiennent les &#233;l&#233;ments utiles &#224; l'interface d'administration de Nagios.&lt;br class='autobr' /&gt;
&lt;span class=dossier&gt;var&lt;/span&gt; contient toutes les donn&#233;es variables maintenues par Nagios. Nagios &#233;crit dans le fichier &lt;span class=dossier&gt;nagios.log&lt;/span&gt;&lt;br class='autobr' /&gt;
&lt;span class=dossier&gt;status.dat&lt;/span&gt; contient l'ensemble des donn&#233;es de supervision de Nagios. Ces donn&#233;es peuvent concerner le processus Nagios en tant que tel (nombres d'&#233;quipements/services supervis&#233;s, date de d&#233;marrage du programme, directives g&#233;n&#233;rales, etc.), mais aussi tous les &#233;quipements et services supervis&#233;s (dernier statut d&#233;tect&#233;, temps de latence et dur&#233;e d'ex&#233;cution des sondes pour chaque &#233;quipement/service, etc.). &lt;strong&gt;C'est un fichier tr&#232;s important : il appartient &#224; Nagios et vous ne devez pas le modifier &#224; la main&lt;/strong&gt;. Ce fichier est mis &#224; jour selon une directive inscrite dans le fichier nagios.cfg ;&lt;/p&gt;
&lt;p&gt;le fichier &lt;span class=dossier&gt;retention.dat&lt;/span&gt; est construit un peu sur le m&#234;me principe que status.dat. Cependant, ce fichier est g&#233;n&#233;ralement &lt;strong&gt;mis &#224; jour moins souvent&lt;/strong&gt;, car &lt;strong&gt;il sert uniquement lorsque le service Nagios red&#233;marre&lt;/strong&gt;. Le programme principal vient alors lire les valeurs inscrites dans ce fichier afin de positionner le statut et les donn&#233;es des &#233;quipements/services &#224; superviser par d&#233;faut. &lt;strong&gt;Cela &#233;vite que toutes vos sondes soient remises &#224; z&#233;ro &#224; chaque red&#233;marrage du service ! &lt;/strong&gt; Le comportement de Nagios vis-&#224;-vis de ce fichier est &#233;galement d&#233;fini dans nagios.cfg.&lt;/p&gt;
&lt;p&gt;Le fichier &lt;span class=dossier&gt;object.cache&lt;/span&gt; fonctionne sur le m&#234;me principe que les deux fichiers pr&#233;c&#233;dents, mais contient simplement le cache de toute la configuration de Nagios. &lt;strong&gt;Vous ne devez pas intervenir directement dans ce fichier&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span class=dossier&gt;rw&lt;/span&gt; contient notamment le pipe de Nagios.&lt;br class='autobr' /&gt;
Le fichier &lt;span class=dossier&gt;nagios.cmd&lt;/span&gt; est le &#171; pipe FIFO &#187; (First In First Out) de Nagios. C'est un fichier tr&#232;s important. Son attribut Linux, le petit &#171; p &#187;, vous indique que ce fichier est de type &#171; named pipe &#187;. Le principe est simple : c'est une connexion directe vers le processus Nagios, qui va lire de mani&#232;re continue les instructions pass&#233;es dans ce fichier et les ex&#233;cuter si elles sont compr&#233;hensibles. Les instructions pass&#233;es dans le fichier sont nomm&#233;es &#171; commandes externes &#187;, et c'est sur ce m&#233;canisme que s'appuie l'interface d'administration de Nagios pour discuter avec son processus. Je vous en reparlerai plus en d&#233;tail dans le chapitre 5.&lt;/p&gt;
&lt;p&gt;Le fichier &lt;span class=dossier&gt;nagios.qh&lt;/span&gt; est l'une des principales nouveaut&#233;s de la version 4 de Nagios. L'attribut Linux s indique que ce fichier est un &#171; socket &#187;. Il est notamment utilis&#233; par les processus fils cr&#233;&#233;s par Nagios pour discuter avec le processus principal, mais peut aussi &#234;tre utilis&#233; par un d&#233;veloppement sp&#233;cifique pour s'adresser &#224; Nagios.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-utilisateur-user-exec-command-5&#034; name=&#034;mode-utilisateur-user-exec-command-5&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3&#034; name=&#034;a3&#034;&gt;&lt;/a&gt;Mise en place d'un service et 1er check.&lt;/h3&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-privilege-privileged-exec-command-6&#034; name=&#034;mode-privilege-privileged-exec-command-6&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3.1&#034; name=&#034;a3.1&#034;&gt;&lt;/a&gt;II.2 - Les &#233;l&#233;ments principaux.&lt;/h4&gt; &lt;p&gt;Le &lt;strong&gt;host&lt;/strong&gt;. Cet objet appartient &#224; Nagios et repr&#233;sente tous les &#233;quipements &#224; superviser. Ils poss&#232;dent g&#233;n&#233;ralement une adresse IP et peuvent r&#233;pondre aux pings ICMP standards.&lt;/p&gt;
&lt;p&gt;La &lt;strong&gt;command&lt;/strong&gt;. Cet objet appartient &#224; Nagios et permet de d&#233;finir le lancement d'un &lt;i&gt;plugin&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Le &lt;strong&gt;service&lt;/strong&gt;. Cet objet appartient &#224; Nagios et repr&#233;sente toutes les donn&#233;es &#224; superviser sur un host. On peut citer, entre autres, les services r&#233;seaux, par exemple les ports ouverts d'un switch ou des services applicatifs, le service SSH ou HTTP d'un serveur, mais aussi la charge CPU.&lt;/p&gt;
&lt;p&gt;et enfin :&lt;/p&gt;
&lt;p&gt;Les &lt;strong&gt;plugins&lt;/strong&gt;. Ce sont des programmes ex&#233;cutables par Nagios : binaires compil&#233;s, script Perl, script Bash, etc. Ils sont autonomes et ind&#233;pendants et ont pour charge de lancer une commande afin de r&#233;cup&#233;rer l'&#233;tat d'un service (OK, Warn, Critique,...)&lt;br class='autobr' /&gt;
On peut lancer un plugin manuellement, exemple :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$ /usr/local/nagios/libexec/check_ping&lt;/code&gt;&lt;br class='autobr' /&gt;
en lan&#231;ant un plugin tel quel, il est possible de voir les options et param&#232;tres principaux, ici il en manque un principal :&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;nagios@NagiosDebian:/usr/local$ /usr/local/nagios/libexec/check_ping check_ping: Impossible de d&#233;composer les arguments Utilisation : check_ping -H &lt;host_address&gt; -w &lt;wrta&gt;,&lt;wpl&gt;% -c &lt;crta&gt;,&lt;cpl&gt;% [-p packets] [-t timeout] [-4|-6]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le plugin nous indique ici qu'il attend un minimum d'arguments, notamment l'adresse du host &#224; v&#233;rifier (adresse IP ou nom si Nagios a acc&#232;s &#224; un DNS), ainsi que les deux arguments :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;w, pour le seuil WARNING, et&lt;/p&gt;
&lt;p&gt; c, pour le seuil CRITICAL.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ces deux arguments prennent pour valeur le temps n&#233;cessaire au retour du ping et/ou le pourcentage de paquets perdus par le r&#233;seau.&lt;/p&gt;
&lt;p&gt;Relance de la commande avec les arguments :&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;nagios@NagiosDebian:/usr/local$ /usr/local/nagios/libexec/check_ping -H localhost -w 40,40% -c 60,60%&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-globale-global-configuration-7&#034; name=&#034;mode-configuration-globale-global-configuration-7&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3.2&#034; name=&#034;a3.2&#034;&gt;&lt;/a&gt;II.3 - Structure.&lt;/h4&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-interface-8&#034; name=&#034;mode-interface-8&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3.2.1&#034; name=&#034;a3.2.1&#034;&gt;&lt;/a&gt;II.3.1 - Plugin&lt;/h5&gt; &lt;p&gt;Ceux de base de nagios (qu'il faut t&#233;l&#233;charger) se mettent par d&#233;faut dans : &lt;br class='autobr' /&gt;
/usr/local/nagios/libexec/&lt;/p&gt;
&lt;p&gt;on peut en mettre des persos dans un autre r&#233;pertoire, dans ce cas, il faudra soit rajouter dans nagios.cfg :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; cfg_file=/usr/local/nagios/pluginsPerso/perso.cfg&lt;/code&gt;&lt;br class='autobr' /&gt;
ou&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;# Repertoire perso des checks cfg_dir=/usr/local/nagios/perso&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-routage-9&#034; name=&#034;mode-configuration-routage-9&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3.2.2&#034; name=&#034;a3.2.2&#034;&gt;&lt;/a&gt;II.3.2 - Command&lt;/h5&gt; &lt;p&gt;L'&#233;l&#233;ment &lt;strong&gt;Command appelle un Plugin&lt;/strong&gt;(&#224; mettre dans un fichier de conf).&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;define command { command_name check-ping-localhost command_line /usr/local/nagios/libexec/check_ping -H localhost -w 40,40% -c 60,60% }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Rappel : &lt;br class='autobr' /&gt;
/usr/local/nagios/libexec/ peut &#234;tre remplac&#233; par $USER1$ (voir &lt;span class=dossier&gt;ressource.cfg&lt;/span&gt;)&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-ligne-10&#034; name=&#034;mode-configuration-ligne-10&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3.2.3&#034; name=&#034;a3.2.3&#034;&gt;&lt;/a&gt;II.3.3 - host&lt;/h5&gt; &lt;p&gt;On peut rajouter un host, les param&#232;tres obligatoires :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;&lt;strong&gt;host_name&lt;/strong&gt; : c'est le nom de l'objet tel qu'il sera reconnu par Nagios. Le champ est libre, mais il faut &#234;tre le plus pr&#233;cis possible afin d'&#233;viter les confusions ;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; address &lt;/strong&gt; : l'adresse IP ou le nom pour joindre l'objet (par exemple, locahost,&lt;a href=&#034;http://www.unsupersite.com&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;www.unsupersite.com&lt;/a&gt;, etc.) ;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; max_check_attemps&lt;/strong&gt; : cette directive sp&#233;cifie &#224; Nagios le nombre de tentatives successives maximum renvoyant un r&#233;sultat n&#233;gatif avant que Nagios consid&#232;re ce r&#233;sultat comme fiable et passe l'objet au statut d&#233;clenchant des notifications. C'est une directive tr&#232;s importante sur laquelle vous devrez vous documenter s&#233;rieusement, notamment pour ma&#238;triser les notions de statut SOFT et HARD ;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; check_command&lt;/strong&gt; : c'est cette directive qui fait la liaison entre votre commande pr&#233;c&#233;demment d&#233;finie et cet objet host ! on met le nom de ce qu'on a d&#233;finit pour la command&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;et mettre dans un fichier de conf :&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;define host { host_name Nagios Server address localhost check_command check-ping-localhost max_check_attempts 3 }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;resume-11&#034; name=&#034;resume-11&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3.2.4&#034; name=&#034;a3.2.4&#034;&gt;&lt;/a&gt;II.3.4 - Service&lt;/h5&gt; &lt;p&gt;&lt;strong&gt; ! Avant de d&#233;finir un service il faut cr&#233;er la command associ&#233; !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;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;define command { command_name check-ssh-localhost command_line $USER1$/check_ssh localhost }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Directives minimales pour le service :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; &lt;strong&gt;service_description &lt;/strong&gt; : c'est l'identifiant du service. Il doit &#234;tre unique pour chaque host ;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt; host_name &lt;/strong&gt; : c'est la r&#233;f&#233;rence &#224; l'objet host h&#233;bergeant le service &#224; superviser. Attention : la valeur de cette directive doit correspondre &#224; celle de la directive host_name de l'objet host concern&#233; ;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;check_command&lt;/strong&gt; : cette directive permet d'indiquer la commande &#224; ex&#233;cuter pour effectuer la supervision ;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; max_check_attempt &lt;/strong&gt; : poss&#232;de la m&#234;me signification que pour le host.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;puis dans un fichier de conf :&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;define service { service_description SSH sur Nagios Server host_name Nagios Server check_command check-ssh-localhost max_check_attempts 3 }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;configuration-routeur-12&#034; name=&#034;configuration-routeur-12&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3.3&#034; name=&#034;a3.3&#034;&gt;&lt;/a&gt;II.4 - R&#233;sum&#233; de la mise en place :&lt;/h4&gt; &lt;p&gt;1- On cr&#233;&#233; le Plugin (code qui s'ex&#233;cutera pour r&#233;cup&#233;rer l'info).&lt;/p&gt;
&lt;p&gt;2- On cr&#233;&#233; la command qui appellera le Plugin.&lt;/p&gt;
&lt;p&gt;3- Un nouveau host (pas obligatoire) qui aura le service.&lt;/p&gt;
&lt;p&gt;4 - Le service associ&#233; au host concern&#233;.&lt;/p&gt;
&lt;p&gt;exemple dans un fichier de conf perso :&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;define command { command_name check-ping-localhost command_line $USER1$/usr/local/nagios/libexec/check_ping -H localhost -w 40,40% -c 60,60% } define command { command_name check-ssh-localhost command_line $USER1$/check_ssh localhost } define host { host_name Nagios Server address localhost check_command check-ping-localhost max_check_attempts 3 } define service { service_description SSH sur Nagios Server host_name Nagios Server check_command check-ssh-localhost max_check_attempts 3 }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;on test nagios avant red&#233;marrage :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg&lt;/code&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;exemple-simple-13&#034; name=&#034;exemple-simple-13&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4&#034; name=&#034;a4&#034;&gt;&lt;/a&gt;III - Les codes retour.&lt;/h3&gt; &lt;p&gt;Nagios renvoie des r&#233;ponses textes comme OK, Warn, Critique, Unknown. Mais il se fit avant tout au code retour de la commande.&lt;br class='autobr' /&gt;
Juste apr&#232;s la commande, il faut passer le &lt;strong&gt;$ ?&lt;/strong&gt; pour avoir le code retour r&#233;el.&lt;/p&gt;
&lt;p&gt;voici le tableau d'&#233;quivalence pour les services :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Code&lt;/td&gt;
&lt;td&gt;Signification&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;OK&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;WARNING&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;CRITICAL&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;UNKNOWN&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;nommer-routeur-routeur1-14&#034; name=&#034;nommer-routeur-routeur1-14&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4.1&#034; name=&#034;a4.1&#034;&gt;&lt;/a&gt; III.1 - Significations.&lt;/h4&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;pour-afficher-config-routeur-15&#034; name=&#034;pour-afficher-config-routeur-15&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4.1.1&#034; name=&#034;a4.1.1&#034;&gt;&lt;/a&gt;III.1.1 - erreur DNS&lt;/h5&gt; &lt;p&gt;Mettons en param&#232;tre l'adresse d'un site qui n'existe pas. mettons -H &lt;a href=&#034;http://www.ajihgfdryukjkkklyrgdh.io&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;www.ajihgfdryukjkkklyrgdh.io&lt;/a&gt;&lt;br class='autobr' /&gt;
Le r&#233;sultat renverra un UNKNOWN. Pourquoi ?&lt;br class='autobr' /&gt;
Car la requ&#234;te DNS vers le nom de domaine n'a donn&#233; aucun r&#233;sultat, ce qui fait que le plugin est dans l'incapacit&#233; de renvoyer une r&#233;ponse. Le code erreur est 3.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;personnaliser-banniere-16&#034; name=&#034;personnaliser-banniere-16&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4.1.2&#034; name=&#034;a4.1.2&#034;&gt;&lt;/a&gt; III.1.2 - erreur IP&lt;/h5&gt; &lt;p&gt;Concernant le param&#232;tre -I &lt;adresse_IP&gt;, si cette derni&#232;re n'existe pas, ce ne sera pas une non r&#233;ponse de resu&#234;te DNS mais une erreur r&#233;seau, le code sera 2.&lt;br class='autobr' /&gt;
L'IP n'existe pas ou il n y a pas de service http qui r&#233;pond au bout.&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;voir-liste-des-interfaces-reseau-17&#034; name=&#034;voir-liste-des-interfaces-reseau-17&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4.1.3&#034; name=&#034;a4.1.3&#034;&gt;&lt;/a&gt; III.1.3 - erreur 401 d&#251; &#224; un htaccess&lt;/h5&gt; &lt;p&gt;il faut passer le param&#232;tre &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-a username:pass&lt;/code&gt;&lt;/p&gt; &lt;h5 class=&#034;spip&#034;&gt;&lt;a id=&#034;configurer-une-interface-reseau-18&#034; name=&#034;configurer-une-interface-reseau-18&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4.1.4&#034; name=&#034;a4.1.4&#034;&gt;&lt;/a&gt; III.1.4 - Concernant les codes pour le host.&lt;/h5&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Code&lt;/td&gt;
&lt;td&gt;Signification&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;UP&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;UP&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;DOWN&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;DOWN (sauf si Nagios dispose de votre topologie et peut d&#233;terminer que le host est UNREACHABLE)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;(Il est possible de donner la typologie r&#233;seau &#224; Nagios, dans ce cas, si un serveur est not&#233; en &#233;tant en-dessous d'un routeur et que ce dernier est DOWN, alors le serveur sera en UNREACHABLE.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;explications-19&#034; name=&#034;explications-19&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a5&#034; name=&#034;a5&#034;&gt;&lt;/a&gt;IV - Mise en place et exploitation de check_http pour HTTP et HTTPS&lt;/h3&gt; &lt;p&gt;pour les redir 302 http -&gt; https la sonde renverra un OK&lt;br class='autobr' /&gt;
pour tester directement le httpS :&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/local/nagios/libexec $ ./check_http -S -H leotxando.net HTTP OK: HTTP/1.1 200 OK - 1244 octets en 0,109 secondes de temps de r&#233;ponse |time=0,109449s;;;0,000000 size=1244B;;;0&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;nagios@2DB:/usr/local/nagios/libexec$ ./check_http -H postfixadmin.leotxando.net -u /index.php; echo $? HTTP OK: HTTP/1.1 302 Found - 424 octets en 0,019 secondes de temps de r&#233;ponse |time=0,018702s;;;0,000000 size=424B;;;0 0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;raccourci-abreviations-20&#034; name=&#034;raccourci-abreviations-20&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a5.1&#034; name=&#034;a5.1&#034;&gt;&lt;/a&gt;IV.1 - V&#233;rification du plugin et ses param&#232;tres minimaux.&lt;/h4&gt; &lt;p&gt;V&#233;rifions son fonctionnement :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/local/nagios/libexec$ ./check_http&lt;/code&gt;&lt;br class='autobr' /&gt;
retour :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;check_http: Impossible de d&#233;composer les arguments&lt;br class='autobr' /&gt;
Utilisation :&lt;br class='autobr' /&gt;
check_http -H &lt;vhost&gt; | -I &lt;IP-address&gt; [-u &lt;uri&gt;] [-p &lt;port&gt;]&lt;br class='autobr' /&gt;
[-J &lt;client certificate file&gt;] [-K &lt;private key&gt;]&lt;br class='autobr' /&gt;
[-w &lt;warn time&gt;] [-c &lt;critical time&gt;] [-t &lt;timeout&gt;] [-L] [-E] [-a auth]&lt;br class='autobr' /&gt;
[-b proxy_auth] [-f &lt;ok|warning|critcal|follow|sticky|stickyport&gt;]&lt;br class='autobr' /&gt;
[-e &lt;expect&gt;] [-d string] [-s string] [-l] [-r &lt;regex&gt; | -R &lt;case-insensitive regex&gt;]&lt;br class='autobr' /&gt;
[-P string] [-m &lt;min_pg_size&gt; :&lt;max_pg_size&gt;] &lt;abbr title=&#034;-6&#034;&gt;-4&lt;/abbr&gt; [-N] [-M &lt;age&gt;]&lt;br class='autobr' /&gt;
[-A string] [-k string] [-S &lt;version&gt;] [&#8212;sni] [-C &lt;warn_age&gt;[,&lt;crit_age&gt;]]&lt;br class='autobr' /&gt;
[-T &lt;content-type&gt;] [-j method]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Rappel : tout ce qui est entre [ ] est optionnel.&lt;/p&gt;
&lt;p&gt;Il attend au moin un argument.&lt;br class='autobr' /&gt;
soit :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; -H &lt;vhost&gt;, pour indiquer une adresse de type URL,&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ou&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; -I &lt;IP-address&gt;, pour indiquer directement une adresse IP, si vous ne souhaitez pas effectuer une requ&#234;te DNS lors de l'ex&#233;cution du plugin. Ce choix n'est pas du tout anodin : s'il y a beaucoup de sondes HTTP, &#233;viter au serveur Nagios de faire des requ&#234;tes DNS pour chacune d'entre elles peut lui faire &#233;conomiser beaucoup de ressources.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;retentons avec un param&#232;tre obligatoire :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/usr/local/nagios/libexec$ ./check_http -H localhost&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;retour :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;HTTP OK : HTTP/1.1 200 OK - 10975 octets en 0,001 secondes de temps de r&#233;ponse |time=0,000928s ; ; ;0,000000 size=10975B ; ; ;0&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;raccourcis-clavier-21&#034; name=&#034;raccourcis-clavier-21&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a5.2&#034; name=&#034;a5.2&#034;&gt;&lt;/a&gt;IV.2 - Tests de pages et caract&#232;res.&lt;/h4&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;nagios@2DB:/usr/local/nagios/libexec$ ./check_http -H leotxando.net HTTP OK: HTTP/1.1 302 Found - 398 octets en 0,020 secondes de temps de r&#233;ponse |time=0,020368s;;;0,000000 size=398B;;;0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;testons une page particuli&#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;nagios@2DB:/usr/local/nagios/libexec$ ./check_http -H leotxando.net/index.php check_http: Adresse/Nom invalide - leotxando.net/index.php&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;En v&#233;rifiant les param&#232;tres principaux nous voyons qu'il faut des options pour pouvoir prendre en compte cette recherche :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; -u, &#8212;uri=PATH&lt;br class='autobr' /&gt;
URI pour le GET ou le POST&lt;/p&gt;
&lt;/blockquote&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;nagios@2DB:/usr/local/nagios/libexec$ ./check_http -H leotxando.net -u /index.php HTTP OK: HTTP/1.1 302 Found - 424 octets en 0,022 secondes de temps de r&#233;ponse |time=0,021536s;;;0,000000 size=424B;;;0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;il y a un 302 car redir http -&gt; https.&lt;/p&gt;
&lt;p&gt;maintenant cherchons un caract&#232;re sur la page :&lt;br class='autobr' /&gt;
l'option -s nous y aide.&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;./check_http -S -H leotxando.net -u /index.php -s leotxando HTTP OK: HTTP/1.1 200 OK - 1190 octets en 0,120 secondes de temps de r&#233;ponse |time=0,119945s;;;0,000000 size=1190B;;;0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;avec une erreur (faux positif) pour v&#233;rifier que la sonde est fonctionnelle :&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;./check_http -S -H leotxando.net -u /index.php -s toto HTTP CRITICAL: HTTP/1.1 200 OK - string 'toto' not found on 'https://leotxando.net:443/index.php' - 1190 octets en 0,118 secondes de temps de r&#233;ponse |time=0,118091s;;;0,000000 size=1190B;;;0 2&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;La suite de caract&#232;res toto n'existe pas.&lt;br class='autobr' /&gt;
&lt;strong&gt;Le code HTTP est de 200 mais le retour nagios est CRITICAL car le code retour est de 2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il est possible d'affiner la recherche avec des options particuli&#232;res :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; -r, &#8212;regex, &#8212;ereg=STRING&lt;br class='autobr' /&gt;
Search page for regex STRING
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; R, &#8212;eregi=STRING&lt;br class='autobr' /&gt;
Search page for case-insensitive regex STRING&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;abreviations-22&#034; name=&#034;abreviations-22&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a5.3&#034; name=&#034;a5.3&#034;&gt;&lt;/a&gt;IV.3 - Testons la validit&#233; du certificat SSL du site&lt;/h4&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;./check_http -S -H leotxando.net -C 10,5 SSL OK - Certificate 'leotxando.net' will expire in 81 days on 2022-08-21 10:23 +0200/CEST.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Critique &#224; 5 jours et Warn &#224; 10.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;sauvegarde-configuration-23&#034; name=&#034;sauvegarde-configuration-23&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a6&#034; name=&#034;a6&#034;&gt;&lt;/a&gt;V - Les Seuils&lt;/h3&gt; &lt;p&gt;Les seuils comme WARNING et CRITICAL peuvent &#234;tre personnalis&#233;s avec les options &lt;strong&gt;-w&lt;/strong&gt; et &lt;strong&gt;-c&lt;/strong&gt; mais ces seuils, au-del&#224; d'avoir une limite de % ou limite num&#233;rique, peuvent &#234;tre qualibr&#233;e selon le temps de r&#233;ponse d'une sonde donn&#233;e.&lt;/p&gt;
&lt;p&gt;doc nagios :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://nagios-plugins.org/doc/guidelines.html#THRESHOLDFORMAT&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://nagios-plugins.org/doc/guidelines.html#THRESHOLDFORMAT&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;voici le tableau principal concernant la syntaxe &#224; employer :&lt;/p&gt;
&lt;table class=&#034;table spip&#034;&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;Range definition&lt;/td&gt;
&lt;td&gt;Generate an alert if x...&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;&lt; 0 or &gt; 10, (outside the range of &lt;i&gt;0 .. 10&lt;/i&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;10 :&lt;/td&gt;
&lt;td&gt;&lt; 10, (outside &lt;i&gt;10 .. &#8734;&lt;/i&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt; :10&lt;/td&gt;
&lt;td&gt;&gt; 10, (outside the range of &lt;i&gt;-&#8734; .. 10&lt;/i&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td&gt;10:20&lt;/td&gt;
&lt;td&gt;&lt; 10 or &gt; 20, (outside the range of &lt;i&gt;10 .. 20&lt;/i&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td&gt;@10:20&lt;/td&gt;
&lt;td&gt;&#8805; 10 and &#8804; 20, (inside the range of &lt;i&gt;10 .. 20&lt;/i&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; la premi&#232;re ligne indique qu'un chiffre simple (10) d&#233;clenchera l'alerte si le r&#233;sultat du seuil est strictement inf&#233;rieur &#224; 0 et strictement sup&#233;rieur &#224; ce chiffre (10) ;&lt;/p&gt;
&lt;p&gt; la seconde ligne indique qu'un chiffre suivi de deux points (10) d&#233;clenchera l'alerte si le r&#233;sultat du seuil est strictement inf&#233;rieur &#224; ce chiffre (10), etc. Une autre fa&#231;on de lire ce tableau est d'utiliser des commandes.&lt;/p&gt;
&lt;p&gt;Par exemple :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;check_quelquechose -w 10 -c 20renvoie CRITICAL si&gt; 20, sinon WARNING si&gt; 10 check_quelquechose -w 10 : -c 20renvoie CRITICAL si&gt; 20, sinon WARNING si&lt; 10 check_quelquechose -w 10:20renvoie WARNING si&lt; 10 ou&gt; 20&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;exemples avec le plugin check_http qui offre 2 options (avec explications ) :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt; -w, &#8212;warning=DOUBLE&lt;br class='autobr' /&gt;
Temps de r&#233;ponse r&#233;sultant en un &#233;tat d'avertissement (secondes)
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; c, &#8212;critical=DOUBLE&lt;br class='autobr' /&gt;
Temps de r&#233;ponse r&#233;sultant en un &#233;tat critique (secondes)&lt;/p&gt;
&lt;/blockquote&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/local/nagios/libexec$ ./check_http --ssl -H mail.leotxando.net -u /index.php -a id-auth:PASS HTTP OK: HTTP/1.1 200 OK - 168283 octets en 0,333 secondes de temps de r&#233;ponse |time=0,333453s;;;0,000000 size=168283B;;;0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Ici le statut est en OK, on ne demande que si la page r&#233;pond correctement.&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;nagios@2DB:/usr/local/nagios/libexec$ ./check_http --ssl -H mail.leotxando.net -u /index.php -a mesCourriels:M3ss4ges -w 0.1 HTTP WARNING: HTTP/1.1 200 OK - 168283 octets en 0,172 secondes de temps de r&#233;ponse |time=0,172231s;0,000000;;0,000000 size=168283B;;;0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous avons un WARNING, le &lt;strong&gt;-w 0.1&lt;/strong&gt; est le seuil disant que si la page met + de 0.1 seconde &#224; r&#233;pondre, alors il se d&#233;clence, ici, la page r&#233;pond (code http 200) mais en 0.172 secondes !&lt;/p&gt;
&lt;p&gt;l'option -t donne un temps max de r&#233;ponse avant d&#233;clenchement.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;iii-vlan-24&#034; name=&#034;iii-vlan-24&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a6.1&#034; name=&#034;a6.1&#034;&gt;&lt;/a&gt;V.1 - R&#233;sum&#233; :&lt;/h4&gt; &lt;p&gt; &lt;strong&gt; /usr/local/nagios/libexec&lt;/strong&gt;, le chemin qui adresse le r&#233;pertoire d'installation des plugins standards Nagios. Nous avions d&#233;taill&#233; l'arborescence d'installation de Nagios dans la deuxi&#232;me partie de ce cours ;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;check_http&lt;/strong&gt;, le fichier qui est ex&#233;cut&#233; par cette commande ;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;-H&lt;/strong&gt; localhost, qui indique l'adresse de la machine h&#233;bergeant le site Web &#224; superviser ;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt; -u &lt;/strong&gt; /nagios/main.php, qui indique la ressource cible de la requ&#234;te HTTP ;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;-a &lt;/strong&gt; nagiosadmin:pass, qui permet de passer les param&#232;tres de l'authentification htaccess directement dans la requ&#234;te HTTP de la sonde ;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;-s&lt;/strong&gt; 4.4.2, qui sp&#233;cifie la cha&#238;ne de caract&#232;res que le plugin doit trouver dans la r&#233;ponse &#224; la requ&#234;te HTTP, dans le code de la page renvoy&#233;e ;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;-m&lt;/strong&gt; 8200, qui indique que le plugin attend une page ayant un poids sup&#233;rieur &#224; 8 200 octets ;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;-w&lt;/strong&gt; 0,1, qui indique le temps de r&#233;ponse &#224; partir duquel la sonde passera au statut &#171; WARNING &#187; ;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;-c&lt;/strong&gt; 0,2, qui indique le temps de r&#233;ponse &#224; partir duquel la sonde passera au statut &#171; CRITICAL &#187;.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;iii-trame-vlan-25&#034; name=&#034;iii-trame-vlan-25&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a7&#034; name=&#034;a7&#034;&gt;&lt;/a&gt;VI - Passages d'arguments.&lt;/h3&gt; &lt;p&gt;On a d&#233;j&#224; vu les macros $USER1$ etc. dans &lt;span class=dossier&gt;ressources.cfg &lt;/span&gt; ; il est possible de s'en cr&#233;er soit m&#234;me pour les arguments (options utilis&#233;es pour un check), en les passant par des macros $ARG1$, $ARG2$, etc.&lt;/p&gt;
&lt;p&gt;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;define command { command_name check-http-ltx command_line $USER1$/check_http -H $HOSTADDRESS$ -w 0,1 -c 0,2 -u $ARG1$ -s $ARG2$ -m $ARG3$ $ARG4$ } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;explications :&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;command_name&lt;/strong&gt;, qui porte le nom de la commande telle que Nagios la reconna&#238;tra. L'id&#233;e est de choisir un nom parlant, pour que le r&#244;le de la commande soit intelligible au premier coup d'&#339;il.&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;command_line&lt;/strong&gt;, directive qui contient l'appel &#224; l'ex&#233;cutable et qui se d&#233;compose de la sorte :&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;$USER1$&lt;/strong&gt;, USER MACRO que nous avons configur&#233;e dans le fichier/usr/local/nagios/etc/resource.cfg, qui contient notamment le chemin d'acc&#232;s vers le r&#233;pertoire des plugins de Nagios (/usr/local/nagios/libexec) ;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;check_http&lt;/strong&gt;, le plugin &#224; ex&#233;cuter ;&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;-H $HOSTADDRESS$&lt;/strong&gt;, est un standard macros qui permettra &#224; Nagios de remplacer la variable par les serveurs pr&#233;sents dans l'attribut host_address de l'objet concern&#233; :&lt;br class='autobr' /&gt;
&#171; This directive is used to define a short name used to identify the host. It is used in host group and service definitions to reference this particular host. Hosts can have multiple services (which are monitored) associated with them. When used properly, the $HOSTNAME$ macro will contain this short name. &#187; &lt;br class='autobr' /&gt;
&lt;span style=&#034;color: #FF0040&#034;;&gt;&lt;strong&gt;/ ! \ &lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;Le HOSTNAME doit &#234;tre r&#233;solu par le DNS ou le fichier /etc/hosts&lt;/strong&gt;, dans le cas contraire il y aura un critique. Si le hostname n'est pas r&#233;solu il faudra le modifier par &lt;strong&gt;$HOSTADRESS$ qui se r&#233;f&#232;rera &#224; la directive adress du fichier &lt;span class=dossier&gt;hosts.cfg&lt;/span&gt;&lt;/strong&gt; (voir section ajout hosts).&lt;/p&gt;
&lt;p&gt; &lt;strong&gt; -w 0,1 -c 0,2&lt;/strong&gt;, les arguments obligatoires et constants qui pourraient &#234;tre pr&#233;sents dans un cahier des charges.&lt;/p&gt;
&lt;p&gt; &lt;strong&gt;-u $ARG1$ -s $ARG2$ -m $ARG3$ $ARG4$&lt;/strong&gt;, les argument variables, obligatoires et facultatifs. Nagios propose un autre type de variables, les arguments. Ces variables, accessibles en lecture et en &#233;criture, sont toujours nomm&#233;es $ARGx$. Dans notre cas, $ARG1$ correspond &#224; l'URL de la ressource demand&#233;e.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;iii-configuration-vlan-26&#034; name=&#034;iii-configuration-vlan-26&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a7.1&#034; name=&#034;a7.1&#034;&gt;&lt;/a&gt;VI.1 - D&#233;finitions des variables :&lt;/h4&gt; &lt;p&gt;Les variables se d&#233;finissent dans un fichiers de configuration nagios (dossier perso de conf nagios)&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;define service { service_description HTTP sur ltx host_name nom_serveur check_command check-http-ltx!/index.php!'leotxando'!3450!-a loginendure:pass max_check_attempts 3 }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Les variables sont d&#233;finies avec un point d'exclamation en d&#233;but de d&#233;finition (&lt;strong&gt; !&lt;/strong&gt;).&lt;br class='autobr' /&gt;
&lt;strong&gt; !/index.php&lt;/strong&gt; fera donc r&#233;f&#233;rence &#224; : -u $ARG1$ &lt;br class='autobr' /&gt;
&lt;strong&gt; !'leotxando'&lt;/strong&gt; &#224; -s $ARG2$ (pour la supervision d'une chaine de caract&#232;res, toujours mettre les simple quotes (1 seul guillemet).&lt;br class='autobr' /&gt;
etc.&lt;br class='autobr' /&gt;
&lt;strong&gt;Rappel :&lt;/strong&gt; les $ARGx$ sont utilis&#233;s dans command_line&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;$ARG4$&lt;/strong&gt; est une variable &lt;strong&gt;optionnelle&lt;/strong&gt;, partons sur le principe que d'autres pages n'ont pas de htaccess, il faudra ainsi mettre l'option DANS la variable, ici, contrairement aux autres arguments &lt;strong&gt;on rajoute l'option -a&lt;/strong&gt; :&lt;br class='autobr' /&gt;
&lt;strong&gt; !-a loginendure:pass&lt;/strong&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;iii-stopper-vlan-27&#034; name=&#034;iii-stopper-vlan-27&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a8&#034; name=&#034;a8&#034;&gt;&lt;/a&gt;VI.2 - Liste des arguments Nagios (Macros)&lt;/h3&gt; &lt;p&gt;&lt;a href=&#034;https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/macrolist.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/macrolist.html&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;iii-faire-passer-plusieurs-vlan-sur-28&#034; name=&#034;iii-faire-passer-plusieurs-vlan-sur-28&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a9&#034; name=&#034;a9&#034;&gt;&lt;/a&gt;VII - Interface graphique.&lt;/h3&gt; &lt;p&gt;Sur la colonne de gauche en bas il est possible d'acc&#233;der &#224; la check_command en d&#233;tails dans &#034;configuration&#034;.&lt;/p&gt;
&lt;div class='spip_document_49 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='https://documentation.leonardmercader.com/IMG/png/nagios1.png' width='500' height='116' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;creer-des-acces-entre-vlan-29&#034; name=&#034;creer-des-acces-entre-vlan-29&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a10&#034; name=&#034;a10&#034;&gt;&lt;/a&gt;Documentation :&lt;/h3&gt; &lt;p&gt;pour les d&#233;butants :&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/beginners.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/beginners.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/configmain.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/configmain.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;forum d'aide (rtfm en 1er)&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://support.nagios.com/forum/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://support.nagios.com/forum/&lt;/a&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;creer-une-virtuelle-30&#034; name=&#034;creer-une-virtuelle-30&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a11&#034; name=&#034;a11&#034;&gt;&lt;/a&gt;Erreur dans les checks :&lt;/h3&gt; &lt;p&gt;wopr-naemon (nagios) &#8212;&gt; va ordonner &#224; wopr-leaf de lancer des checks &#8212;&gt; demande de lancer un worker sur &#8212;&gt; &lt;s&gt; le gearman worker sur la machine distante.&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;(service check orphaned, is the mod-gearman worker on queue 'hostgroup_WORKER_XXXXX' running ?)&lt;/p&gt;
&lt;p&gt;Ce message veut dire que le gearman worker rencontre un probl&#232;me, le miniwopr a un soucis pour contacter le worker.&lt;/p&gt;
&lt;p&gt;On relance le gearman worker sur le serveur final.&lt;/p&gt;
&lt;p&gt;&lt;s&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mod-gearman2-worker&lt;/code&gt;&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;On v&#233;rifie que le worker est bien remont&#233; sur le nagios :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;gearman_top&lt;/code&gt;&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;ajout-vlan-dans-trunk-31&#034; name=&#034;ajout-vlan-dans-trunk-31&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a12&#034; name=&#034;a12&#034;&gt;&lt;/a&gt;Cas Concret. - VAE&lt;/h3&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;communiquer-entre-vlan-via-routeur-32&#034; name=&#034;communiquer-entre-vlan-via-routeur-32&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a12.1&#034; name=&#034;a12.1&#034;&gt;&lt;/a&gt;Personnaliser les sondes&lt;/h4&gt; &lt;p&gt;Il faut tout d'abord sp&#233;cifier &#224; Nagios d'aller piocher nos propres sondes personnelles dans un r&#233;pertoire pr&#233;cis ; pour ce faire, nous allons modifier la configuration de nagios.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;****@2DB:/usr/local/nagios $ vi etc/nagios.cfg&lt;/code&gt;&lt;/p&gt;
&lt;div class='spip_document_53 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='https://documentation.leonardmercader.com/IMG/png/conf.1.png' width='500' height='454' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Dans cette configuration, la ligne suivante comporte la variable cfg_dir (dossier de configuration &#224; lire) avec le chemin d'acc&#232;s.&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;# Repertoire perso des checks cfg_dir=/usr/local/nagios/perso&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;span class=rouge&gt;&lt;strong&gt; !&lt;/strong&gt;&lt;/span&gt; cette variable n'est aucunement unique, pour les besoins organisationnels, on peut en mettre autant qu'on le souhaite.&lt;/p&gt;
&lt;p&gt;Dans ce dossier nous trouvons deux fichiers :&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;rw-r--r-- 1 nagios nagcmd 778 19 juil. 17:31 commands.cfg -rw-r--r-- 1 nagios nagcmd 119 29 mai 10:59 hosts.cfg&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le premier d&#233;tiendra nos commandes, et le second fichier le nom des serveurs supervis&#233;s.&lt;/p&gt;
&lt;div class='spip_document_60 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='https://documentation.leonardmercader.com/IMG/png/general.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/general.png' width='500' height='479' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;lancer-service-dhcp-33&#034; name=&#034;lancer-service-dhcp-33&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a12.2&#034; name=&#034;a12.2&#034;&gt;&lt;/a&gt;Mise en place de sondes&lt;/h4&gt; &lt;p&gt;Le but est de mettre en place une surveillance sur le site en HTTPS et sur la validit&#233; du certificat.&lt;/p&gt;
&lt;p&gt;Ceci permettra d'avoir une supervision sur la r&#233;ponse du site, de s'assurer que ce dernier r&#233;pond mais contr&#244;ler si le certificat est toujours valide. Ce dernier a &#233;t&#233; g&#233;n&#233;r&#233; avec &#034;Let's Encrypt&#034; qui est une solution de g&#233;n&#233;ration de certificat SSL pour une dur&#233;e de 90 jours. Sur le serveur a &#233;t&#233; install&#233; un cron (t&#226;che r&#233;currente) qui permet de renouveller automatiquement le certificat.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;check_http -S -H leotxando.net -u /index.php -s 'LeoTXando' -m 1180:1195 -w 0,5 -c 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Explication de la sonde : &lt;br class='autobr' /&gt;
options utilis&#233;es :&lt;br class='autobr' /&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-S&lt;/code&gt; : Pour tester le site en port 443 (SSL / HTTPS).&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; -H &lt;/code&gt; : L'adresse du site &#224; tester.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; -u&lt;/code&gt; : Va tester la requ&#234;te apr&#232;s le nom de domaine test&#233; par l'option -H. &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; -s&lt;/code&gt; : Va tester la chaine de caract&#232;res d&#233;finie.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-m &lt;/code&gt; : La taille de la page ne doit pas &#234;tre inf&#233;rieure &#224; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;1180:1195&lt;/code&gt;, ni sup&#233;rieure &#224; la seconde condition.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; -w 0,5 -c 1&lt;/code&gt; : Si le temps de r&#233;ponse du test est sup&#233;rieur &#224; 0.5 seconde, alors il y a un warning, sup&#233;rieure &#224; 1 seconde, il y a un critique.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;check_http -S -H leotxando.net -C 10,5&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Explication de la sonde : &lt;br class='autobr' /&gt;
options utilis&#233;es :&lt;br class='autobr' /&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-S&lt;/code&gt; : Pour tester le site en port 443 (SSL / HTTPS).&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; -H &lt;/code&gt; : L'adresse du site &#224; tester.&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; -C&lt;/code&gt; : va tester la validit&#233; du certificat SSL &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;10,5&lt;/code&gt; le warning se d&#233;clenchera 10 jours avant la fin de sa validit&#233; et le critique &#224; 5.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;lancer-service-ntp-34&#034; name=&#034;lancer-service-ntp-34&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a12.3&#034; name=&#034;a12.3&#034;&gt;&lt;/a&gt;Erreur sur une sonde&lt;/h4&gt; &lt;p&gt;Nagios nous renvoie un flapping sur notre sonde qui v&#233;rifie l'acc&#232;s &#224; notre site Internet.&lt;/p&gt;
&lt;div class='spip_document_50 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='https://documentation.leonardmercader.com/IMG/png/err-1.png' width='410' height='787' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Par exp&#233;rience, j'ai pu constater qu'un &#034;battement&#034; ou un changement de status soudain pouvait venir de plusieurs facteurs potentiels :&lt;/p&gt;
&lt;p&gt;1 -&gt; Un probl&#232;me acc&#232;s r&#233;seau, si un serveur Nagios essaie d'atteindre une cible qui r&#233;pond. (d&#251; &#224; des pertes de paquets). Mais le d&#233;tail de l'alerte nous orienterait vers cette piste.&lt;/p&gt;
&lt;p&gt;2 -&gt; Un serveur qui charge, par l'entremise d'un usage m&#233;moire SWAP, RAM ou CPU important ; Nagios a l'intelligence de laisser le syst&#232;me traiter ses processus et de ne pas notifier son &#233;tat, au risque de surcharger encore plus le syst&#232;me. Cette priorisation est astucieuse, la supervision se met &#034;en pause&#034; et priorise le passage d'une charge possiblement passag&#232;re.&lt;/p&gt;
&lt;p&gt;3 -&gt; Un service en difficult&#233; qui peut se retrouver en statut Deffered (D state), ici, Apache pourrait &#234;tre en attente de r&#233;ponse d'un autre service distant (une base de donn&#233;es h&#233;berg&#233;e &#224; distance qui ne r&#233;pond pas), n'ayant pas de r&#233;ponse, le service se met en &lt;i&gt;D state&lt;/i&gt; empillant d'autres processus enfants et ralentissant ainsi le temps de r&#233;ponse.&lt;/p&gt;
&lt;p&gt;4 -&gt; Une sonde mal qualibr&#233;e.&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;La seule r&#233;ponse se situerait, dans un premier temps, &#224; avoir un visuel hollistique de l'&#233;tat du serveur, ou de la plateforme (si cette derni&#232;re comprend plusieurs serveurs (&lt;i&gt;hosts&lt;/i&gt;) d&#233;pendants les uns des autres.&lt;/p&gt;
&lt;div class='spip_document_51 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='https://documentation.leonardmercader.com/IMG/png/err-3.png' width='500' height='586' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le serveur ne semble pas charger ou avoir d'autres probl&#232;mes ou incidents.&lt;/p&gt;
&lt;p&gt;L'interface de Nagios nous permet d'avoir un visuel sur l'historicit&#233; de ce bagotage.&lt;/p&gt;
&lt;div class='spip_document_52 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='https://documentation.leonardmercader.com/IMG/png/err-2.png' width='500' height='502' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Nous voyons que durant toute la journ&#233;e, et depuis des jours, le site r&#233;pond &#034;lentement&#034;, ainsi la sonde se d&#233;clenche au-del&#224; de 0.2 secondes.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;check_http -S -H leotxando.net -u /index.php -s 'LeoTXando' -m 1180:1195 -w 0,5 -c 0,2&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&#192; la lecture de la sonde, nous pouvons voir qu'elle est mal qualibr&#233;e.&lt;br class='autobr' /&gt;
Au-del&#224; d'une r&#233;ponse de 0.5 secondes, la sonde se met en alerte jaune (Warning) et au-del&#224; de 0.2 secondes, en critique.&lt;/p&gt;
&lt;p&gt;Les seuils sont modifi&#233;s :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;check_http -S -H leotxando.net -u /index.php -s 'LeoTXando' -m 1180:1195 -w 0,5 -c 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On relance Nagios et la sonde revient en OK :&lt;/p&gt;
&lt;div class='spip_document_61 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='https://documentation.leonardmercader.com/IMG/png/err-4.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/err-4.png' width='500' height='1028' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;vii-acces-entre-plusieurs-reseaux-internet-35&#034; name=&#034;vii-acces-entre-plusieurs-reseaux-internet-35&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a12.4&#034; name=&#034;a12.4&#034;&gt;&lt;/a&gt;Ajout d'un nom de serveur&lt;/h4&gt; &lt;p&gt;En r&#233;alit&#233; nous allons diff&#233;rencier les sondes par d&#233;faut de Nagios (supervision CPU, m&#233;moire, disque, service HTTP,etc.) des sondes personnelles et acc&#232;s sur le serveur personnel.&lt;/p&gt;
&lt;p&gt;Pour cela nous allons modifier le host_name de la balise host define en 2DB :&lt;/p&gt;
&lt;div class='spip_document_54 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='https://documentation.leonardmercader.com/IMG/png/cong_hosts.png' width='227' height='460' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Il faut aussi modifier en cons&#233;quences les liaisons avec nos services, nous allons aussi renomer certaines commandes pour plus de compr&#233;hension :&lt;/p&gt;
&lt;div class='spip_document_55 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='https://documentation.leonardmercader.com/IMG/png/cong_command.2.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/cong_command.2.png' width='500' height='607' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Nous allons tester notre configuration, avant d'appliquer les modifications en production :&lt;/p&gt;
&lt;div class='spip_document_56 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='https://documentation.leonardmercader.com/IMG/png/err.2.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/err.2.png' width='500' height='531' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Une erreur s'est gliss&#233;e :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;Error: Host check command 'check-ssh-localhost' specified for host '2DB' is not defined anywhere!&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Explication : Nagios cherche &#224; appliquer la commande de supervision nomm&#233; check-ssh-localhost, mais nous avons renomm&#233; la commande en check-ssh-2DB.&lt;br class='autobr' /&gt;
Modification et relance du test :&lt;/p&gt;
&lt;div class='spip_document_57 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='https://documentation.leonardmercader.com/IMG/png/cong_hosts.3.png' width='214' height='356' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;div class='spip_document_58 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='https://documentation.leonardmercader.com/IMG/png/tes-ok.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/tes-ok.png' width='500' height='561' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Et le r&#233;sultat via l'interface Nagios :&lt;/p&gt;
&lt;div class='spip_document_59 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='https://documentation.leonardmercader.com/IMG/png/interface-ok.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/interface-ok.png' width='500' height='967' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;vii-configurer-wan-36&#034; name=&#034;vii-configurer-wan-36&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a13&#034; name=&#034;a13&#034;&gt;&lt;/a&gt;Usage de Nconf&lt;/h3&gt; &lt;p&gt;Une surcouche &#224; Nagios existe afin de g&#233;rer via une interface graphique les alertes : Nconf (en autres).&lt;/p&gt;
&lt;div class='spip_document_62 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='https://documentation.leonardmercader.com/IMG/png/nconf0.png' width='500' height='159' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le menu permet de naviguer selon les diff&#233;rentes possibilit&#233;s, l'encart &#034;hosts -&gt; show&#034; permet de faire une recherche sur le nom d'un hosts pr&#233;cis.&lt;/p&gt;
&lt;p&gt;Une fois le serveur trouv&#233;, on clique sur le stylo &#224; droite et l'on se retrouve sur tous les services qui y sont param&#233;tr&#233;s :&lt;/p&gt;
&lt;div class='spip_document_63 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='https://documentation.leonardmercader.com/IMG/png/nconf1.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/nconf1.png' width='500' height='478' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Sur cette image plus pr&#233;cis on peut y voire les m&#234;mes options que sur toutes les r&#233;ponses de recherches Nconf (liste de serveurs, d'alertes (comme ici), de contacts...).&lt;/p&gt;
&lt;div class='spip_document_64 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='https://documentation.leonardmercader.com/IMG/png/nconf_tout_services.opt.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/nconf_tout_services.opt.png' width='500' height='771' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Dans le carr&#233; vert le symbole&lt;/p&gt;
&lt;div class='spip_document_65 spip_document spip_documents spip_document_image spip_documents_right spip_document_right'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/nconf_logo_clone.png' width='38' height='35' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt; &lt;p&gt;permet de cloner le service. de deux mani&#232;res diff&#233;rents : &lt;br class='manualbr' /&gt;Dans la liste de service, il le cl&#244;nera pour le m&#234;me host.&lt;br class='manualbr' /&gt;En haut &#224; droite nomm&#233; &lt;i&gt;clone service to other host(s)&lt;/i&gt;, il cl&#244;nera l'alerte (avec les seuils critiques et noms des contacts) vers d'autres serveurs. Cette option est utile lorsqu'on veut appliquer les m&#234;mes alertes &#224; des cluster.&lt;/p&gt;
&lt;p&gt;Dans le carr&#233; rouge, le stylo permet de rentrer dans le service pour modifier l'alerte.&lt;/p&gt;
&lt;p&gt;La croix rouge permet de supprimer le service.&lt;/p&gt;
&lt;p&gt;Quand l'on clique sur le stylo :&lt;/p&gt;
&lt;div class='spip_document_66 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='https://documentation.leonardmercader.com/IMG/png/nconf_services.png' width='500' height='337' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;On acc&#232;de &#224; cette page qui regroupe diff&#233;rents &#233;l&#233;ments que l'on retrouve losque l'on doit cr&#233;er &#034;manuellement&#034; un service :&lt;br class='autobr' /&gt;
Le service name (nom de l'alerte ) et le check commands (le nom de la commande qui sera passer), le contact et contact group &#224; informer, la p&#233;riodicit&#233; &#224; laquelle Nagios doit superviser les alertes, et les seuils en bas de page.&lt;/p&gt;
&lt;p&gt;Il est possible de cr&#233;er ais&#233;ment un contactgroupe ainsi qu'un contact et d'incorporer le contact dans le groupe :&lt;/p&gt;
&lt;div class='spip_document_67 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='https://documentation.leonardmercader.com/IMG/png/nconf_contact.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/nconf_contact.png' width='500' height='464' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Sed</title>
		<link>https://documentation.leonardmercader.com/?Sed</link>
		<guid isPermaLink="true">https://documentation.leonardmercader.com/?Sed</guid>
		<dc:date>2019-12-05T21:01:08Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>leonard</dc:creator>



		<description>
&lt;p&gt;**Liens https://likegeeks.com/sed-linux/ http://www.grymoire.com/Unix/Sed.html https://www.tutorialspoint.com/unix/unix-regular-expressions.htm https://www.theunixschool.com/2014/08/sed-examples-remove-delete-chars-from-line-file.html &lt;br class='autobr' /&gt;
https://www.commentcamarche.net/faq/6699-sed-trucs-et-astuces &lt;br class='autobr' /&gt;
http://sed.sourceforge.net/ https://catonmat.net/ftp/sed.stream.editor.cheat.sheet.pdf http://sed.sourceforge.net/sed1line_fr.html http://www.pement.org/sed/ifelse.txt (&#8230;)&lt;/p&gt;


-
&lt;a href="https://documentation.leonardmercader.com/?-gnu-linux-" rel="directory"&gt;GNU/Linux&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;cisco-0&#034; name=&#034;cisco-0&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.1&#034; name=&#034;a0.1&#034;&gt;&lt;/a&gt;Liens&lt;/h4&gt; &lt;p&gt;&lt;a href=&#034;https://likegeeks.com/sed-linux/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://likegeeks.com/sed-linux/&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://www.grymoire.com/Unix/Sed.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.grymoire.com/Unix/Sed.html&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.tutorialspoint.com/unix/unix-regular-expressions.htm&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.tutorialspoint.com/unix/unix-regular-expressions.htm&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.theunixschool.com/2014/08/sed-examples-remove-delete-chars-from-line-file.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.theunixschool.com/2014/08/sed-examples-remove-delete-chars-from-line-file.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://www.commentcamarche.net/faq/6699-sed-trucs-et-astuces&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.commentcamarche.net/faq/6699-sed-trucs-et-astuces&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;http://sed.sourceforge.net/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://sed.sourceforge.net/&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://catonmat.net/ftp/sed.stream.editor.cheat.sheet.pdf&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://catonmat.net/ftp/sed.stream.editor.cheat.sheet.pdf&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://sed.sourceforge.net/sed1line_fr.html&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://sed.sourceforge.net/sed1line_fr.html&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://www.pement.org/sed/ifelse.txt&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://www.pement.org/sed/ifelse.txt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://www.geeksforgeeks.org/sed-command-in-linux-unix-with-examples/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.geeksforgeeks.org/sed-command-in-linux-unix-with-examples/&lt;/a&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;cli-commande-line-interface-1&#034; name=&#034;cli-commande-line-interface-1&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.2&#034; name=&#034;a0.2&#034;&gt;&lt;/a&gt;Modifier le s&#233;parateur &#034;/&#034;&lt;/h4&gt; &lt;p&gt;Il suffit de le notifier juste apr&#232;s le 's...'&lt;/p&gt;
&lt;p&gt;sed 's#blaba/hjj#jjhh/blabla#g'&lt;/p&gt;
&lt;p&gt;Les / ont &#233;t&#233; chang&#233;s par des #.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://opensource.com/article/22/8/automate-file-edits-sed-linux?sc_cid=7013a000002i8GwAAI&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://opensource.com/article/22/8/automate-file-edits-sed-linux?sc_cid=7013a000002i8GwAAI&lt;/a&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;commandes-utiles-2&#034; name=&#034;commandes-utiles-2&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.3&#034; name=&#034;a0.3&#034;&gt;&lt;/a&gt;Remplacement dans des vhost d'une entr&#233;e dans les fichiers&lt;/h4&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/bash # #-- Script pour passer tous les +Indexes en -Indexes des vhost enabled. # # lmercader GPL # ##on liste les vhost ls /etc/apache2/sites-available/ &gt; liste.vhost chemin=&#034;/etc/apache2/sites-available/&#034; # pour chaque vhost faire la modif souhait&#233;e: # --- on remplace les +Indexes par -Indexes while read v do echo &#034;$chemin$v&#034; sed -i 's/+Indexes/-Indexes/g' $chemin$v done &lt; liste.vhost ~ ~&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;exemple de sed utilis&#233; :&lt;br class='autobr' /&gt;
le -i fait qu'on r&#233;&#233;crit le r&#233;sultat dans le fichier / !\ faire des tests avant sans le -i&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;	sed -i 's/|/ - /' TXT.txt&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;je remplace le | par un tiret.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; sed -i &#034;s/'/''/g&#034; TXT.txt&lt;/code&gt;&lt;br class='autobr' /&gt;
Je remplace le simple quote ' par le double quote &#034;. &lt;strong&gt;Sous sqlite double &#034; est symbole d'&#233;chappement.&lt;/strong&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; sed -i 's/,/\\,/' TXT.txt&lt;/code&gt;&lt;br class='autobr' /&gt;
je remplace la virgule par un \virgule.&lt;br class='autobr' /&gt;
&lt;strong&gt;L'antislash &#233;tant aussi un marqueur d'&#233;chapement pour sed, il faut donc en mettre 2 avant le slash qu'on veut garder.&lt;/strong&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; sed -i 's/ /_/' telecharge.txt&lt;/code&gt;&lt;br class='autobr' /&gt;
Je remplace l'espace par un _ il faut parfois mettre une deuxi&#232;me fois cette op&#233;ration :D&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt; sed -i &#034;s/\//_/&#034; telecharge.txt&lt;/code&gt;&lt;br class='autobr' /&gt;
Je remplace le \ par un _&lt;/p&gt;
&lt;p&gt;Supprimer tout un encard esntre balise &gt;.&lt;/p&gt;
&lt;p&gt;exemple :&lt;br class='autobr' /&gt;
Je souhaite ne garder que &#034;la phrase dedans&#034;&lt;/p&gt;
&lt;h3 id=&#034;toto&#034;&gt;la phrase dedans&lt;/h3&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sed 's/&lt;[^&gt;]*&gt;//g' test&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Regex toute faite qui met une exclusion [^&gt;] sur le caract&#232;re &gt;.&lt;br class='autobr' /&gt;
cela &#233;quivat &#224; supprimer tout ce qui y a entre les &lt;...&gt; et pas ce qu'il y a &#224; l'ext&#233;rieur...&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;liens-interessants-3&#034; name=&#034;liens-interessants-3&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.4&#034; name=&#034;a0.4&#034;&gt;&lt;/a&gt;Pour les joker&lt;/h4&gt; &lt;p&gt;toujours utiliser :&lt;br class='autobr' /&gt;
^.*&lt;br class='autobr' /&gt;
point &#233;toile.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;les-differents-modes-4&#034; name=&#034;les-differents-modes-4&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.5&#034; name=&#034;a0.5&#034;&gt;&lt;/a&gt;nbre ligne &lt;/h4&gt; &lt;p&gt; To just print 3rd line use the sed command :&lt;br class='autobr' /&gt;
sed -n 3p /etc/resolv.conf&lt;/p&gt;
&lt;p&gt;To just print 3rd and 5th line use the sed command :&lt;br class='autobr' /&gt;
sed -n -e 3p -e 5p /etc/resolv.conf&lt;/p&gt;
&lt;p&gt;To see specific range, say show lines between 3 to 5, run :&lt;br class='autobr' /&gt;
sed -n 3,5p /etc/resolv.conf&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-utilisateur-user-exec-command-5&#034; name=&#034;mode-utilisateur-user-exec-command-5&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.6&#034; name=&#034;a0.6&#034;&gt;&lt;/a&gt;Modifier la &#233;ni&#232;me occurence :&lt;/h4&gt; &lt;p&gt;ici, la 2eme :&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;sed 's/o/-/2' test&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-privilege-privileged-exec-command-6&#034; name=&#034;mode-privilege-privileged-exec-command-6&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.7&#034; name=&#034;a0.7&#034;&gt;&lt;/a&gt;Modifier derni&#232;re occurence :&lt;/h4&gt; &lt;p&gt;The following sed statement can be used to only replace the last occurrence of &#034;Hello&#034;.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;~]# echo &#034;Hello John Hello Amy Hello Sal&#034; | sed &#034;s|\(.*\)Hello|\1Goodbye|&#034;&lt;/code&gt;&lt;br class='autobr' /&gt;
Hello John Hello Amy Goodbye Sal&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-globale-global-configuration-7&#034; name=&#034;mode-configuration-globale-global-configuration-7&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.8&#034; name=&#034;a0.8&#034;&gt;&lt;/a&gt;Ajouter des caract&#232;res en t&#234;te d'un nom de fichier :&lt;/h4&gt; &lt;p&gt;admettons une liste de fichiers dans un dossier. &lt;br class='autobr' /&gt;
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;ARK.png A&#207;RK.png ... etc. ...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Nous voulons ajouter l'ent&#234;te &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ind-&lt;/code&gt; avant le reste du nom :&lt;/p&gt;
&lt;p&gt;faisons une boucle sur un fichier qui a list&#233; ligne par ligne le nom des dossiers :&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/bash # # Renommer les fichiers de ARK.png en '$1 - Ark.png' # # $1 &#233;tant les trigramme pour le nom du cas dont appartiendrait le glyphe. # $2 le dossier (avec chemin si besoin) ############### NE PAS OUBLIER DE MODIFIER $1 en fonction de $2 ############### ls $2 &gt; /tmp/nom cd ./$2 nb=0 while read n do nb=$((nb+1)) echo &#034;$n&#034; &gt; /tmp/g2 sed -i &#034;s/[A-Z]*/$1-&amp;/&#034; /tmp/g2 nn=$(cat /tmp/g2) echo &#034;$nb le nouveau titre : $n devient $nn&#034; mv $n ../../$nn done &lt; /tmp/nom&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-interface-8&#034; name=&#034;mode-interface-8&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.9&#034; name=&#034;a0.9&#034;&gt;&lt;/a&gt;retirer des caract&#232;res en t&#234;te d'un nom de fichier :&lt;/h4&gt; &lt;p&gt;nous voulons faire l'inverse de ce qu'il y a pr&#233;c&#233;demment :&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; sed -i 's/[a-z]-'//' /tmp/g2&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;sur une seule ligne :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;while read n; do sed 's/[a-] -//'; done &lt; /tmp/test ;&lt;/code&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-routage-9&#034; name=&#034;mode-configuration-routage-9&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.10&#034; name=&#034;a0.10&#034;&gt;&lt;/a&gt;Supprimer tout sauf la 1&#232;re et derni&#232;re ligne.&lt;/h4&gt; &lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sed -n '1p;$p' file&lt;/code&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-ligne-10&#034; name=&#034;mode-configuration-ligne-10&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.11&#034; name=&#034;a0.11&#034;&gt;&lt;/a&gt;insertions de lignes&lt;/h4&gt; &lt;p&gt;&lt;a href=&#034;https://fabianlee.org/2018/10/28/linux-using-sed-to-insert-lines-before-or-after-a-match/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://fabianlee.org/2018/10/28/linux-using-sed-to-insert-lines-before-or-after-a-match/&lt;/a&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;resume-11&#034; name=&#034;resume-11&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.12&#034; name=&#034;a0.12&#034;&gt;&lt;/a&gt;Afficher des lignes &lt;/h4&gt; &lt;p&gt;&lt;a href=&#034;https://unix.stackexchange.com/questions/288521/with-the-linux-cat-command-how-do-i-show-only-certain-lines-by-number&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://unix.stackexchange.com/questions/288521/with-the-linux-cat-command-how-do-i-show-only-certain-lines-by-number&lt;/a&gt;&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;configuration-routeur-12&#034; name=&#034;configuration-routeur-12&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a0.13&#034; name=&#034;a0.13&#034;&gt;&lt;/a&gt;Remplacer toute une ligne qui commence par un m&#234;me mot.&lt;/h4&gt; &lt;p&gt;Pour remplacer toutes les lignes qui commencent par un mot sp&#233;cifique dans un fichier sous Debian (ou toute autre distribution Linux), vous pouvez utiliser la commande sed, qui est un puissant &#233;diteur de flux pour effectuer des recherches et des remplacements.&lt;/p&gt;
&lt;p&gt;Supposons que vous vouliez remplacer toutes les lignes qui commencent par le mot mot par une nouvelle ligne nouvelle_ligne, voici comment vous pouvez proc&#233;der :&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sed -i '/^mot/c\nouvelle_ligne' fichier.txt&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Voici l'explication de chaque partie de la commande :&lt;/p&gt;
&lt;p&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;-i&lt;/code&gt; : Modifie le fichier directement sur place (in-place). Si vous voulez cr&#233;er une sauvegarde avant la modification, vous pouvez sp&#233;cifier une extension, par exemple -i.bak pour cr&#233;er une sauvegarde avec l'extension .bak.&lt;br class='autobr' /&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/^mot/&lt;/code&gt; : Correspond &#224; toutes les lignes qui commencent par mot. Le ^ indique le d&#233;but de la ligne.&lt;br class='autobr' /&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;c : Indique que les lignes correspondantes doivent &#234;tre remplac&#233;es par le texte qui suit.&lt;/code&gt;nouvelle_ligne&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;: Le texte par lequel vous voulez remplacer la ligne enti&#232;re.&lt;/code&gt; fichier.txt&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;: Le fichier dans lequel vous voulez effectuer les remplacements. Exemple concret, si vous voulez remplacer toutes les lignes qui commencent par Erreur par Alerte critique, vous utiliseriez :&lt;/code&gt;sed -i '/^Erreur/c\Alerte critique' fichier.txt`&lt;/p&gt;
&lt;p&gt;Cette commande modifie directement le fichier fichier.txt en rempla&#231;ant toutes les lignes qui commencent par &#034;Erreur&#034; par &#034;Alerte critique&#034;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Expressions R&#233;guli&#232;res - RegEx</title>
		<link>https://documentation.leonardmercader.com/?Expressions-Regulieres-RegEx</link>
		<guid isPermaLink="true">https://documentation.leonardmercader.com/?Expressions-Regulieres-RegEx</guid>
		<dc:date>2019-12-02T10:05:26Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>leonard</dc:creator>



		<description>
&lt;p&gt;site de test : https://regexr.com/ http://regex101.com/ http://regexpal.com/ &lt;br class='autobr' /&gt;
notes m&#233;tacaract&#232;res PCRE (utiliser grep -P pour qu'ils soient utilis&#233;s) : PCRE est un standard de fait, ce sont les expressions r&#233;guli&#232;res de Perl. &lt;br class='autobr' /&gt;
La norme Posix &#224; 3 standard : BRE (Basic Regular Expressions) pour les expressions r&#233;guli&#232;res basiques. C'est par exemple le standard par d&#233;faut pour sed et grep ERE (Extended Regular Expressions) pour les expressions r&#233;guli&#232;res &#233;tendues. SRE (Simple (&#8230;)&lt;/p&gt;


-
&lt;a href="https://documentation.leonardmercader.com/?-Informatique-" rel="directory"&gt;Informatique&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;site de test :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://regexr.com/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://regexr.com/&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://regex101.com/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://regex101.com/&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;a href=&#034;http://regexpal.com/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://regexpal.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;notes m&#233;tacaract&#232;res PCRE (utiliser &lt;strong&gt;grep -P&lt;/strong&gt; pour qu'ils soient utilis&#233;s) :&lt;br class='autobr' /&gt;
PCRE est un standard de fait, ce sont les expressions r&#233;guli&#232;res de Perl.&lt;/p&gt;
&lt;p&gt;La norme Posix &#224; 3 standard :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; BRE (Basic Regular Expressions) pour les expressions r&#233;guli&#232;res basiques. C'est par exemple le standard par d&#233;faut pour sed et grep&lt;/li&gt;&lt;li&gt; ERE (Extended Regular Expressions) pour les expressions r&#233;guli&#232;res &#233;tendues.&lt;/li&gt;&lt;li&gt; SRE (Simple Regular Expressions) qui est devenu obsol&#232;te.&lt;/li&gt;&lt;/ul&gt;
&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;cisco-0&#034; name=&#034;cisco-0&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a1&#034; name=&#034;a1&#034;&gt;&lt;/a&gt;Groupes :&lt;/h3&gt; &lt;p&gt;entre parenth&#232;se &lt;strong&gt;(&lt;/strong&gt;[a-z][2-3]&lt;strong&gt;)&lt;/strong&gt;.-[0-9]&lt;strong&gt;\/1&lt;/strong&gt; veut dire que l'on cr&#233;&#233; un groupe pour la simplicit&#233; de lecture mais aussi pour rappeler le r&#233;sultat de ce groupe dans le &lt;strong&gt;/1&lt;/strong&gt;. Le&lt;strong&gt; /1&lt;/strong&gt; fonctionne comme une &#034;variable&#034; qui se r&#233;f&#232;re au premier groupe, le /2 au deuxi&#232;me, etc.&lt;/p&gt;
&lt;p&gt;Par simplicit&#233; on peut renommer les groupes, pour des raisons d'organisation.&lt;/p&gt;
&lt;div class='spip_document_17 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='https://documentation.leonardmercader.com/IMG/jpg/regex_groupe.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/jpg/regex_groupe.jpg?1575290580' width='500' height='205' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le PCRE a cette simplicit&#233; que de r&#233;cup&#233;rer les m&#233;thodes de nommage des groupes de Python et .NET. &lt;br class='autobr' /&gt;
Si l'on nome un groupe avec une m&#233;thode, il faudra le rappeler avec cette m&#234;me m&#233;thode.&lt;/p&gt;
&lt;p&gt;Exemple :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;cr&#233;ation du groupe 'tag' :&lt;/strong&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(?'tag'[Hh][2-3]).+?&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;strong&gt;rappelle du groupe :&lt;/strong&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\k'tag'&lt;/code&gt; ou l'usage g&#233;n&#233;rique : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;\g{tag}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;en langage perl, on peut exclure des groupes :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(?:[Hh][2-3]).+?&lt;/code&gt; Le &lt;strong&gt; ? :&lt;/strong&gt; n'inclue pas le groupe dans une variable $1 par exemple, celle-ci se r&#233;f&#232;rera &#224; un autre groupe.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;cli-commande-line-interface-1&#034; name=&#034;cli-commande-line-interface-1&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2&#034; name=&#034;a2&#034;&gt;&lt;/a&gt;Lookhead / Lookbehind- comparaison avec ce qu'il y a devant / derri&#232;re l'&#233;l&#233;ment test&#233;.&lt;/h3&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;commandes-utiles-2&#034; name=&#034;commandes-utiles-2&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.1&#034; name=&#034;a2.1&#034;&gt;&lt;/a&gt;Lookhead&lt;/h4&gt; &lt;p&gt;On cherche 5 chiffres qui sont suivis par un tiret et quatre chiffres.&lt;/p&gt;
&lt;p&gt;on cr&#233;&#233; un premier groupe de recherche : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(\d{5})&lt;/code&gt; puis la &#034;condition&#034; qui sera dans un deuxi&#232;me groupe qui ne sera pas pris en compte par la recherche, cette &#034;condition&#034; positive (qu'il y ait...) s'&#233;crit :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(?=-\d{4})&lt;/code&gt;&lt;/p&gt;
&lt;div class='spip_document_18 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='https://documentation.leonardmercader.com/IMG/jpg/regex_poslh.j.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/jpg/regex_poslh.j.jpg?1575369388' width='500' height='112' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;pour un &#233;l&#233;ment n&#233;gatif : qu'il n'y ait pas...&lt;br class='autobr' /&gt;
on recherche l'url qui n'a pas de /blog.&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;linux.com(?!\/blog)&lt;/code&gt;&lt;/p&gt;
&lt;div class='spip_document_19 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='https://documentation.leonardmercader.com/IMG/jpg/regex_neglh.j.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/jpg/regex_neglh.j.jpg?1575369498' width='500' height='78' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;liens-interessants-3&#034; name=&#034;liens-interessants-3&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a2.2&#034; name=&#034;a2.2&#034;&gt;&lt;/a&gt;Lookbehind&lt;/h4&gt; &lt;p&gt;Pour mettre une &#034;condition&#034; de ce qu'il y a avant.&lt;/p&gt;
&lt;p&gt;On aimerait avoir le texte de tout ce qu'il y a dans une balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;code&gt;&lt;/code&gt; a &#034;condition&#034; qu'elle ait avant une balise&lt;/p&gt;
&lt;li&gt; :
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(?&lt;=&lt;li&gt;&lt;code&gt;).+?(?=&lt;\/code&gt;)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;pour cette &#034;condition&#034; positive il faut utiliser l'&#233;l&#233;ment :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;?&lt;=&lt;/code&gt; dans un groupe.&lt;/p&gt;
&lt;div class='spip_document_20 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='https://documentation.leonardmercader.com/IMG/jpg/regex_lookbe.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/jpg/regex_lookbe.jpg?1575378056' width='500' height='93' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;pour la &#034;condition&#034; n&#233;gative :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;?&lt;!&lt;/code&gt; dans un 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;(?&lt;!&lt;li&gt;&lt;code&gt;)(?=&lt;code&gt;).+?(?=&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;)&lt;br class='autobr' /&gt;
&lt;/code&gt;&lt;br class='autobr' /&gt;
Je veux les informations qui ne sont pas dans la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt; qui a &lt;li&gt; avant MAIS uniquement la balise &lt;code&gt;&lt;code&gt;&lt;/code&gt; sans rien devant jusqu'&#224; la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;code&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;div class='spip_document_21 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='https://documentation.leonardmercader.com/IMG/jpg/regex_lookbeneg.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/jpg/regex_lookbeneg.jpg?1575378124' width='500' height='94' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;les-differents-modes-4&#034; name=&#034;les-differents-modes-4&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3&#034; name=&#034;a3&#034;&gt;&lt;/a&gt;if / else.&lt;/h3&gt; &lt;p&gt;Il est possible de faire des conditions if - else. &lt;br class='autobr' /&gt;
Exemple :&lt;/p&gt;
&lt;div class='spip_document_22 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='https://documentation.leonardmercader.com/IMG/png/if-conditions.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/if-conditions.png?1575482100' width='500' height='225' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;On cherche tout ce qui est ID ou Function (mis dans un groupe) suivi de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;:&lt;/code&gt; &lt;strong&gt;espace&lt;/strong&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;(?(2)&lt;/code&gt; &lt;- ceci est le if du 2&#232;me groupe. Celui de &lt;i&gt;function&lt;/i&gt; (qui est le groupe dans le 1er groupe, donc est le groupe 2.) Si &lt;i&gt;function&lt;/i&gt; a des caract&#232;res suivi d'un point et de caract&#232;res, alors le prendre, SINON &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|&lt;/code&gt;&lt;strong&gt; (le pipe dans un if est reconnu comme &#233;tant un else)&lt;/strong&gt; prendre tout les caract&#232;res.&lt;/p&gt; &lt;h4 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-utilisateur-user-exec-command-5&#034; name=&#034;mode-utilisateur-user-exec-command-5&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a3.1&#034; name=&#034;a3.1&#034;&gt;&lt;/a&gt;Noms et conditions imbriqu&#233;es.&lt;/h4&gt;
&lt;div class='spip_document_23 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='https://documentation.leonardmercader.com/IMG/png/conditions-imbriquees.png' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/png&#034;&gt; &lt;img src='https://documentation.leonardmercader.com/IMG/png/conditions-imbriquees.png?1575485560' width='500' height='104' alt='' /&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;dans cet exemple on a nomm&#233; le groupe &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;fn&lt;/code&gt; et un deuxi&#232;me groupe nomm&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;dur&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La condition est ici imbriqu&#233;e. (&#224; tester)&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-privilege-privileged-exec-command-6&#034; name=&#034;mode-privilege-privileged-exec-command-6&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a4&#034; name=&#034;a4&#034;&gt;&lt;/a&gt;glossaire :&lt;/h3&gt; &lt;p&gt;&lt;strong&gt;\b&lt;/strong&gt; -&gt; s&#233;lectionne un caract&#232;re entre un caract&#232;re-mot (a-z) et un caract&#232;re non mot (espace, point)&lt;br class='autobr' /&gt;
exemple : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;grep -Po '\b[a-z]' toto.txt&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;RegExr &lt;strong&gt;w&lt;/strong&gt;as &lt;strong&gt;c&lt;/strong&gt;reated &lt;strong&gt;b&lt;/strong&gt;y &lt;strong&gt;g&lt;/strong&gt;skinner.&lt;strong&gt;c&lt;/strong&gt;om, &lt;strong&gt;a&lt;/strong&gt;nd &lt;strong&gt;i&lt;/strong&gt;s &lt;strong&gt;p&lt;/strong&gt;roudly &lt;strong&gt;h&lt;/strong&gt;osted by Media Temple.&lt;/p&gt;
&lt;p&gt;en gras ce que le grep s&#233;lectionne.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;\s&lt;/strong&gt; -&gt; s&#233;lectionne les espaces.&lt;br class='autobr' /&gt;
&lt;strong&gt;\S&lt;/strong&gt; -&gt; s&#233;lectionne ce qui n'est pas un espace.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;^&lt;/strong&gt;-&gt; d&#233;but de ligne&lt;br class='autobr' /&gt;
&lt;strong&gt;[^A]&lt;/strong&gt; -&gt; exclure A.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; ?&lt;/strong&gt; -&gt; pr&#233;sence de 0 &#224; 1 du caract&#232;re pr&#233;c&#233;dent (pr&#233;sence du caract&#232;re pas s&#251;r) &lt;br class='autobr' /&gt;
exemple : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;([a-z]-[0-9])\.?&lt;/code&gt; -&gt; traduction : je cherche un caract&#232;re avec un tiret et un chiffre qui se termine par un point (non obligatoire).&lt;/p&gt;
&lt;p&gt;Le &lt;strong&gt; ?&lt;/strong&gt; peut aussi servir &#224; faire une recherche limit&#233;e.&lt;br class='autobr' /&gt;
&lt;strong&gt;exemple :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dans la phrase &lt;/strong&gt; :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;RegExr was created by gskinner.com&gt;, &lt;and is proudly hosted by Media Temple.&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;[a-zA-Z].*&gt;&lt;/code&gt;&lt;br class='autobr' /&gt;
&lt;strong&gt;r&#233;sultat :&lt;/strong&gt;&lt;br class='autobr' /&gt;
&lt;i&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;RegExr was created by gskinner.com&gt;, &lt;and is proudly hosted by Media Temple.&gt;&lt;/code&gt;&lt;/i&gt;&lt;br class='autobr' /&gt;
Toute la phrase est s&#233;lectionn&#233;e alors qu'on ne voulait QUE les entr&#233;es dans les &lt;strong&gt;&lt; &gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;solution :&lt;/strong&gt;&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;[a-z].{{+?}}&gt;&lt;/code&gt; ou &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&lt;[a-z].{{*?}}&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;r&#233;sultat :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{&lt;RegExr&gt;} was created by gskinner.com, {&lt;and is proudly&gt;} hosted by Media Temple.&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; / !}&lt;/i&gt; quand on utilise l'expression r&#233;guli&#232;re '&#233;toile' * comme ceci :&lt;br class='autobr' /&gt;
en gros le &#233;toile va chercher TOUS les caract&#232;re jusqu'au DERNIER &#034;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&gt;&lt;/code&gt;&#034; qu'il rencontrera dans le texte. Il aura donc sortie de sa recherche trop de r&#233;sultat.&lt;br class='autobr' /&gt;
afin de palier &#224; ce probl&#232;me et de s&#233;lectionner QUE le contenu qui nous int&#233;resse et non trop d'infos, il faudra donc utiliser le point d'interrogation avant le dernier caract&#232;re recherch&#233; :&lt;br class='autobr' /&gt;
va chercher tous les et et uniquement eux, et pas tous le texte entre le premier &lt; et le dernier &gt; d'un texte.&lt;/p&gt; &lt;h3 class=&#034;spip&#034;&gt;&lt;a id=&#034;mode-configuration-globale-global-configuration-7&#034; name=&#034;mode-configuration-globale-global-configuration-7&#034;&gt;&lt;/a&gt;&lt;a id=&#034;a5&#034; name=&#034;a5&#034;&gt;&lt;/a&gt;Tableaux de comparaison de caract&#232;res utilis&#233;s :&lt;/h3&gt; &lt;p&gt;&lt;a href=&#034;https://fr.wikipedia.org/wiki/Expression_r%C3%A9guli%C3%A8re#Standardisation_et_application&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;sources Wikipedia&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Contenaire</title>
		<link>https://documentation.leonardmercader.com/?Contenaire</link>
		<guid isPermaLink="true">https://documentation.leonardmercader.com/?Contenaire</guid>
		<dc:date>2019-11-18T06:32:01Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>leonard</dc:creator>



		<description>
&lt;p&gt;https://itnext.io/breaking-down-containers-part-0-system-architecture-37afe0e51770&lt;/p&gt;


-
&lt;a href="https://documentation.leonardmercader.com/?-gnu-linux-" rel="directory"&gt;GNU/Linux&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;a href=&#034;https://itnext.io/breaking-down-containers-part-0-system-architecture-37afe0e51770&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://itnext.io/breaking-down-containers-part-0-system-architecture-37afe0e51770&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
