<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>AJLSM  - Modifications récentes [fr]</title>
		<link>https://mediawiki.ajlsm.com/wiki/Sp%C3%A9cial:Modifications_r%C3%A9centes</link>
		<description>Suivez les dernières modifications du wiki dans ce flux.</description>
		<language>fr</language>
		<generator>MediaWiki 1.46.2</generator>
		<lastBuildDate>Fri, 06 Nov 2026 18:56:12 GMT</lastBuildDate>
		<item>
			<title>MediaWiki:Sidebar</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=MediaWiki:Sidebar&amp;diff=6532&amp;oldid=1140</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=MediaWiki:Sidebar&amp;diff=6532&amp;oldid=1140</guid>
			<description>&lt;p&gt;Ajout liens pages spéciales&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 6 novembre 2026 à 12:54&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;Ligne 13 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 13 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** helppage|help&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** helppage|help&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Special:UserLogin|Créer un utilisateur&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Special:UserLogin|Créer un utilisateur&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* administration&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;** Special:SpecialPages|Pages spéciales&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;** Special:Version|Version de MediaWiki&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;** Special:UserRights|Droits des utilisateurs&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;** Special:CreateForm|Créer un formulaire&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* SEARCH&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* SEARCH&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 06 Nov 2026 12:54:48 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion_MediaWiki:Sidebar</comments>
		</item>
		<item>
			<title>MediaWiki:AJLSM-WikiEditor.js</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=MediaWiki:AJLSM-WikiEditor.js&amp;diff=6531&amp;oldid=6528</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=MediaWiki:AJLSM-WikiEditor.js&amp;diff=6531&amp;oldid=6528</guid>
			<description>&lt;p&gt;Restauration des 14 boutons historiques AJLSM&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.ajlsm.com/index.php?title=MediaWiki:AJLSM-WikiEditor.js&amp;amp;diff=6531&amp;amp;oldid=6528&quot;&gt;Voir les modifications&lt;/a&gt;</description>
			<pubDate>Fri, 06 Nov 2026 12:30:22 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion_MediaWiki:AJLSM-WikiEditor.js</comments>
		</item>
		<item>
			<title>MediaWiki:Common.js</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=MediaWiki:Common.js&amp;diff=6529&amp;oldid=1631</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=MediaWiki:Common.js&amp;diff=6529&amp;oldid=1631</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 6 novembre 2026 à 12:25&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l463&quot;&gt;Ligne 463 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 463 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/* DO NOT ADD CODE BELOW THIS LINE */&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/* DO NOT ADD CODE BELOW THIS LINE */&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/* AJLSM - Boutons personnalises de WikiEditor */&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mw.loader.load( mw.util.getUrl( &#039;MediaWiki:AJLSM-WikiEditor.js&#039;, {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    action: &#039;raw&#039;,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    ctype: &#039;text/javascript&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;} ) );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 06 Nov 2026 12:25:20 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion_MediaWiki:Common.js</comments>
		</item>
		<item>
			<title>MediaWiki:AJLSM-WikiEditor.js</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=MediaWiki:AJLSM-WikiEditor.js&amp;diff=6528&amp;oldid=0</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=MediaWiki:AJLSM-WikiEditor.js&amp;diff=6528&amp;oldid=0</guid>
			<description>&lt;p&gt;Restauration des boutons WikiEditor AJLSM - premier test&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
mw.hook( &amp;#039;wikiEditor.toolbarReady&amp;#039; ).add( function ( $textarea ) {&lt;br /&gt;
    $textarea.wikiEditor( &amp;#039;addToToolbar&amp;#039;, {&lt;br /&gt;
        section: &amp;#039;advanced&amp;#039;,&lt;br /&gt;
        group: &amp;#039;insert&amp;#039;,&lt;br /&gt;
        tools: {&lt;br /&gt;
            ajlsmPath: {&lt;br /&gt;
                label: &amp;#039;Ajouter un chemin vers un fichier/dossier&amp;#039;,&lt;br /&gt;
                type: &amp;#039;button&amp;#039;,&lt;br /&gt;
                icon: mw.config.get( &amp;#039;wgScriptPath&amp;#039; ) + &amp;#039;/images/9/96/Toolbar-path.svg&amp;#039;,&lt;br /&gt;
                action: {&lt;br /&gt;
                    type: &amp;#039;encapsulate&amp;#039;,&lt;br /&gt;
                    options: {&lt;br /&gt;
                        pre: &amp;#039;{{path|&amp;#039;,&lt;br /&gt;
                        peri: &amp;#039;/path/to/dir-or-file&amp;#039;,&lt;br /&gt;
                        post: &amp;#039;}}&amp;#039;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    } );&lt;br /&gt;
} );&lt;/div&gt;</description>
			<pubDate>Fri, 06 Nov 2026 12:23:29 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion_MediaWiki:AJLSM-WikiEditor.js</comments>
		</item>
		<item>
			<title>Utilisateur:Jlarvers</title>
			<link>https://mediawiki.ajlsm.com/wiki/Utilisateur:Jlarvers</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/wiki/Utilisateur:Jlarvers</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=Utilisateur:Jlarvers&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;Utilisateur:Jlarvers (page inexistante)&quot;&gt;&lt;bdi&gt;Jlarvers&lt;/bdi&gt;&lt;/a&gt; a modifié l’appartenance aux groupes de &lt;a href=&quot;/index.php?title=Utilisateur:Jlarvers&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Utilisateur:Jlarvers (page inexistante)&quot;&gt;Jlarvers&lt;/a&gt; : Ajout de administrateur d’interface ; Mantien de bureaucrate et administrateur Administration des scripts JavaScript AJLSM (migration MediaWiki 1.46)&lt;/p&gt;
</description>
			<pubDate>Fri, 06 Nov 2026 12:21:52 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion_utilisateur:Jlarvers</comments>
		</item>
		<item>
			<title>WAF 2026</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=WAF_2026&amp;diff=6525&amp;oldid=6406</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=WAF_2026&amp;diff=6525&amp;oldid=6406</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Certificats automatiques (SSL Lets Encrypt) via Haproxy : &lt;/span&gt; &lt;/p&gt;
&lt;a href=&quot;https://mediawiki.ajlsm.com/index.php?title=WAF_2026&amp;amp;diff=6525&amp;amp;oldid=6406&quot;&gt;Voir les modifications&lt;/a&gt;</description>
			<pubDate>Thu, 05 Nov 2026 14:32:40 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:WAF_2026</comments>
		</item>
		<item>
			<title>Sécurité PHP – CVE-2026-109618 / CVE-2026-109619 – Interventions des 21 et 22 octobre 2026</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=S%C3%A9curit%C3%A9_PHP_%E2%80%93_CVE-2026-109618_/_CVE-2026-109619_%E2%80%93_Interventions_des_21_et_22_octobre_2026&amp;diff=6523&amp;oldid=6522</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=S%C3%A9curit%C3%A9_PHP_%E2%80%93_CVE-2026-109618_/_CVE-2026-109619_%E2%80%93_Interventions_des_21_et_22_octobre_2026&amp;diff=6523&amp;oldid=6522</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;1.1. Tableau de suivi : &lt;/span&gt; &lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 22 octobre 2026 à 15:11&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l124&quot;&gt;Ligne 124 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 124 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Important :&amp;#039;&amp;#039;&amp;#039; ce tableau reprend les machines dont les interventions ont été identifiées dans le suivi. Il ne constitue pas, à lui seul, un inventaire exhaustif de toutes les VM Proxmox.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Important :&amp;#039;&amp;#039;&amp;#039; ce tableau reprend les machines dont les interventions ont été identifiées dans le suivi. Il ne constitue pas, à lui seul, un inventaire exhaustif de toutes les VM Proxmox.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Machines à réintégrer au bilan des 21 et 22 octobre 2026 ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{| class=&quot;wikitable&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! Machine&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! Version PHP&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! Intervention réalisée&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! Vérifications restantes&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Basse-Bretagne&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| À retrouver dans les journaux d&#039;intervention&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Intervention du chantier de sécurité PHP à documenter&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Confirmer versions, correctifs et redémarrage éventuel&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| ENS Lyon&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| À retrouver dans les journaux d&#039;intervention&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Intervention du chantier de sécurité PHP à documenter&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Confirmer versions, correctifs et redémarrage éventuel&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| APBP&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| À retrouver dans les journaux d&#039;intervention&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Intervention du chantier de sécurité PHP à documenter&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| Confirmer versions, correctifs et redémarrage éventuel&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;Attention :&#039;&#039;&#039; APBP et APBP2 sont deux machines distinctes. Les opérations effectuées sur APBP2 ne doivent pas être attribuées automatiquement à APBP.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 2. Origine de l&amp;#039;intervention ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 2. Origine de l&amp;#039;intervention ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 22 Oct 2026 15:11:52 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:S%C3%A9curit%C3%A9_PHP_%E2%80%93_CVE-2026-109618_/_CVE-2026-109619_%E2%80%93_Interventions_des_21_et_22_octobre_2026</comments>
		</item>
		<item>
			<title>Sécurité PHP – CVE-2026-109618 / CVE-2026-109619 – Interventions des 21 et 22 octobre 2026</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=S%C3%A9curit%C3%A9_PHP_%E2%80%93_CVE-2026-109618_/_CVE-2026-109619_%E2%80%93_Interventions_des_21_et_22_octobre_2026&amp;diff=6522&amp;oldid=0</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=S%C3%A9curit%C3%A9_PHP_%E2%80%93_CVE-2026-109618_/_CVE-2026-109619_%E2%80%93_Interventions_des_21_et_22_octobre_2026&amp;diff=6522&amp;oldid=0</guid>
			<description>&lt;p&gt;Page créée avec «  = Sécurité PHP – CVE-2026-109618 / CVE-2026-109619 – Interventions des 21 et 22 octobre 2026 =  {| class=&amp;quot;wikitable&amp;quot; ! Élément ! Information |- | Période | 21 et... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= Sécurité PHP – CVE-2026-109618 / CVE-2026-109619 – Interventions des 21 et 22 octobre 2026 =&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Élément&lt;br /&gt;
! Information&lt;br /&gt;
|-&lt;br /&gt;
| Période&lt;br /&gt;
| 21 et 22 octobre 2026&lt;br /&gt;
|-&lt;br /&gt;
| Infrastructure&lt;br /&gt;
| AJLSM – Machines virtuelles, HAProxy et OPNsense&lt;br /&gt;
|-&lt;br /&gt;
| Objet&lt;br /&gt;
| Correction ou atténuation des vulnérabilités PHP et mises à jour des systèmes&lt;br /&gt;
|-&lt;br /&gt;
| Nature des travaux&lt;br /&gt;
| Maintenance de sécurité, contrôles applicatifs, haute disponibilité&lt;br /&gt;
|-&lt;br /&gt;
| État&lt;br /&gt;
| Partiellement terminé – maintenance OPNsense et systèmes anciens à poursuivre&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 1. Synthèse ultra-courte ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bilan :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Les vulnérabilités PHP &amp;#039;&amp;#039;&amp;#039;CVE-2026-109618&amp;#039;&amp;#039;&amp;#039; et &amp;#039;&amp;#039;&amp;#039;CVE-2026-109619&amp;#039;&amp;#039;&amp;#039; ont été identifiées.&lt;br /&gt;
* Les VM utilisant des versions PHP corrigées ont été mises à jour lorsque les paquets étaient disponibles.&lt;br /&gt;
* Les VM utilisant d&amp;#039;anciennes versions de PHP ont reçu une &amp;#039;&amp;#039;&amp;#039;atténuation provisoire&amp;#039;&amp;#039;&amp;#039; par désactivation de &amp;lt;code&amp;gt;session.upload_progress.enabled&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Les deux HAProxy ont été mis à jour ; leur fonctionnement Keepalived/VRRP a été corrigé et contrôlé.&lt;br /&gt;
* Les deux OPNsense ont reçu la même atténuation PHP provisoire.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Les mises à jour complètes des deux OPNsense restent à effectuer.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* La version PHP 8.3.31 proposée par le dépôt OPNsense ne corrige pas les deux CVE selon FreeBSD VuXML.&lt;br /&gt;
* Les anciennes branches PHP devront faire l&amp;#039;objet d&amp;#039;un suivi particulier : l&amp;#039;atténuation ne constitue pas un correctif définitif.&lt;br /&gt;
&lt;br /&gt;
=== 1.1. Tableau de suivi ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Machine&lt;br /&gt;
! VMID&lt;br /&gt;
! PHP / système&lt;br /&gt;
! Intervention&lt;br /&gt;
! État&lt;br /&gt;
|-&lt;br /&gt;
| TEMPLATE3&lt;br /&gt;
| 506&lt;br /&gt;
| Ubuntu 26.04.1 ; PHP 8.4.27 / 8.5.12&lt;br /&gt;
| Versions PHP corrigées ; contrôles et redémarrage&lt;br /&gt;
| Terminé&lt;br /&gt;
|-&lt;br /&gt;
| AD64&lt;br /&gt;
| 507&lt;br /&gt;
| Ubuntu 26.04.1 ; PHP 8.4.27 / 8.5.12&lt;br /&gt;
| Versions PHP corrigées ; contrôles et redémarrage&lt;br /&gt;
| Terminé&lt;br /&gt;
|-&lt;br /&gt;
| DEVTOOLS2 / pleade.com&lt;br /&gt;
| 508&lt;br /&gt;
| PHP 7.2&lt;br /&gt;
| Mise à jour disponible + atténuation provisoire&lt;br /&gt;
| Atténué ; PHP ancien&lt;br /&gt;
|-&lt;br /&gt;
| APBP2&lt;br /&gt;
| 510&lt;br /&gt;
| Ubuntu 26.04.1 ; PHP 8.4.27 / 8.5.12&lt;br /&gt;
| Versions PHP corrigées ; contrôles et redémarrage&lt;br /&gt;
| Terminé&lt;br /&gt;
|-&lt;br /&gt;
| DEVTOOLS&lt;br /&gt;
| 513&lt;br /&gt;
| PHP 5.6&lt;br /&gt;
| Atténuation provisoire&lt;br /&gt;
| PHP ancien – suivi nécessaire&lt;br /&gt;
|-&lt;br /&gt;
| ENCELADE&lt;br /&gt;
| 514&lt;br /&gt;
| PHP 7.4&lt;br /&gt;
| Atténuation provisoire&lt;br /&gt;
| PHP ancien – suivi nécessaire&lt;br /&gt;
|-&lt;br /&gt;
| MERCURE&lt;br /&gt;
| 515&lt;br /&gt;
| Ubuntu 20.04.6 ; PHP 7.2 / 7.4 / 8.0 / 8.1&lt;br /&gt;
| Atténuation provisoire sur les quatre branches&lt;br /&gt;
| Migration vers MERCURE3 à poursuivre&lt;br /&gt;
|-&lt;br /&gt;
| CENTREON-R8&lt;br /&gt;
| 520&lt;br /&gt;
| PHP 8.2.35&lt;br /&gt;
| Mise à jour PHP et contrôles Centreon&lt;br /&gt;
| PHP corrigé ; reboot noyau restant&lt;br /&gt;
|-&lt;br /&gt;
| AD53&lt;br /&gt;
| —&lt;br /&gt;
| PHP 7.2 / 7.3 / 8.0&lt;br /&gt;
| Atténuation provisoire dans les configurations PHP&lt;br /&gt;
| Atténué ; PHP ancien&lt;br /&gt;
|-&lt;br /&gt;
| HAProxy-01&lt;br /&gt;
| —&lt;br /&gt;
| Ubuntu 24.04 LTS&lt;br /&gt;
| Mise à jour OS, HAProxy et Keepalived&lt;br /&gt;
| Opérationnel&lt;br /&gt;
|-&lt;br /&gt;
| HAProxy-02&lt;br /&gt;
| —&lt;br /&gt;
| Ubuntu 24.04 LTS&lt;br /&gt;
| Mise à jour OS, HAProxy et Keepalived&lt;br /&gt;
| Opérationnel&lt;br /&gt;
|-&lt;br /&gt;
| SaturneFW1&lt;br /&gt;
| —&lt;br /&gt;
| OPNsense 26.1 ; PHP 8.3&lt;br /&gt;
| Atténuation PHP provisoire&lt;br /&gt;
| Mise à jour OPNsense restante&lt;br /&gt;
|-&lt;br /&gt;
| SaturneFW2&lt;br /&gt;
| —&lt;br /&gt;
| OPNsense 26.1.6 ; PHP 8.3.30&lt;br /&gt;
| Audit et atténuation PHP provisoire&lt;br /&gt;
| Mise à jour OPNsense restante&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important :&amp;#039;&amp;#039;&amp;#039; ce tableau reprend les machines dont les interventions ont été identifiées dans le suivi. Il ne constitue pas, à lui seul, un inventaire exhaustif de toutes les VM Proxmox.&lt;br /&gt;
&lt;br /&gt;
== 2. Origine de l&amp;#039;intervention ==&lt;br /&gt;
&lt;br /&gt;
=== 2.1. Vulnérabilités PHP ===&lt;br /&gt;
&lt;br /&gt;
Deux vulnérabilités critiques ont motivé l&amp;#039;intervention :&lt;br /&gt;
&lt;br /&gt;
* CVE-2026-109618&lt;br /&gt;
* CVE-2026-109619&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;avis FreeBSD VuXML publié le 21 octobre 2026 indique que ces vulnérabilités peuvent permettre une exécution de code à distance sans authentification, selon les conditions d&amp;#039;exploitation.&lt;br /&gt;
&lt;br /&gt;
Référence :&lt;br /&gt;
&lt;br /&gt;
https://vuxml.FreeBSD.org/freebsd/d8e16d08-cd2f-11f1-8135-8447094a420f.html&lt;br /&gt;
&lt;br /&gt;
=== 2.2. Versions corrigées ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Branche PHP&lt;br /&gt;
! Première version corrigée&lt;br /&gt;
|-&lt;br /&gt;
| PHP 8.2&lt;br /&gt;
| 8.2.35&lt;br /&gt;
|-&lt;br /&gt;
| PHP 8.3&lt;br /&gt;
| 8.3.36&lt;br /&gt;
|-&lt;br /&gt;
| PHP 8.4&lt;br /&gt;
| 8.4.27&lt;br /&gt;
|-&lt;br /&gt;
| PHP 8.5&lt;br /&gt;
| 8.5.12&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les versions plus anciennes, notamment PHP 5.6, 7.2, 7.3, 7.4, 8.0 et 8.1, ne disposent pas d&amp;#039;une version corrigée dans les branches officielles encore maintenues.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Conséquence :&amp;#039;&amp;#039;&amp;#039; sur les serveurs anciens, la désactivation de la progression des téléversements PHP est une atténuation provisoire, et non une correction complète.&lt;br /&gt;
&lt;br /&gt;
== 3. Méthode de traitement ==&lt;br /&gt;
&lt;br /&gt;
Les interventions ont été organisées machine par machine :&lt;br /&gt;
&lt;br /&gt;
# Identifier la version de l&amp;#039;OS.&lt;br /&gt;
# Identifier toutes les versions PHP installées.&lt;br /&gt;
# Déterminer les versions réellement utilisées par Apache ou PHP-FPM.&lt;br /&gt;
# Vérifier la disponibilité des mises à jour.&lt;br /&gt;
# Appliquer les correctifs PHP disponibles.&lt;br /&gt;
# Lorsque les correctifs ne sont pas disponibles, désactiver la progression des téléversements PHP.&lt;br /&gt;
# Redémarrer ou recharger les services concernés.&lt;br /&gt;
# Vérifier les versions PHP effectives.&lt;br /&gt;
# Contrôler le fonctionnement des applications.&lt;br /&gt;
# Identifier les redémarrages système encore nécessaires.&lt;br /&gt;
&lt;br /&gt;
=== 3.1. Commandes générales de diagnostic ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/os-release&lt;br /&gt;
&lt;br /&gt;
php -v&lt;br /&gt;
&lt;br /&gt;
php -i | grep -E \&lt;br /&gt;
  &amp;#039;Loaded Configuration File|Scan this dir|session.upload_progress.enabled&amp;#039;&lt;br /&gt;
&lt;br /&gt;
systemctl --type=service --state=running \&lt;br /&gt;
  | grep -Ei &amp;#039;apache|php.*fpm&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Ubuntu :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt list --upgradable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La disponibilité d&amp;#039;un correctif ne doit pas être déduite uniquement du numéro de version PHP lorsque la distribution applique des correctifs rétroportés.&lt;br /&gt;
&lt;br /&gt;
== 4. Atténuation provisoire PHP ==&lt;br /&gt;
&lt;br /&gt;
=== 4.1. Principe ===&lt;br /&gt;
&lt;br /&gt;
La mesure retenue consiste à désactiver :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
session.upload_progress.enabled = Off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Elle empêche PHP d&amp;#039;utiliser le mécanisme de suivi de progression des téléversements.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Limites :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Elle réduit l&amp;#039;exposition à certains chemins d&amp;#039;exploitation.&lt;br /&gt;
* Elle ne corrige pas nécessairement les deux CVE.&lt;br /&gt;
* Elle ne remplace pas une mise à jour de sécurité.&lt;br /&gt;
* Elle doit être appliquée à toutes les configurations PHP réellement utilisées par le serveur Web.&lt;br /&gt;
* Une vérification en PHP CLI ne garantit pas, à elle seule, la configuration effective des processus Web.&lt;br /&gt;
&lt;br /&gt;
=== 4.2. Contrôle ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -i | grep session.upload_progress.enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Résultat attendu :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
session.upload_progress.enabled =&amp;gt; Off =&amp;gt; Off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur les systèmes utilisant plusieurs versions PHP, chaque branche doit être contrôlée séparément.&lt;br /&gt;
&lt;br /&gt;
== 5. Interventions sur les machines virtuelles ==&lt;br /&gt;
&lt;br /&gt;
=== 5.1. TEMPLATE3 – VM 506 ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Système :&amp;#039;&amp;#039;&amp;#039; Ubuntu 26.04.1 LTS.&lt;br /&gt;
&lt;br /&gt;
Versions PHP présentes après intervention :&lt;br /&gt;
&lt;br /&gt;
* PHP 8.4.27&lt;br /&gt;
* PHP 8.5.12&lt;br /&gt;
&lt;br /&gt;
Ces versions correspondent aux premières versions corrigées identifiées dans l&amp;#039;avis de sécurité.&lt;br /&gt;
&lt;br /&gt;
Contrôles effectués :&lt;br /&gt;
&lt;br /&gt;
* Versions PHP installées.&lt;br /&gt;
* Utilisation de PHP 8.4 par Apache.&lt;br /&gt;
* Vérification des configurations.&lt;br /&gt;
* Redémarrage de la VM.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;État :&amp;#039;&amp;#039;&amp;#039; intervention terminée pour les vulnérabilités PHP concernées.&lt;br /&gt;
&lt;br /&gt;
=== 5.2. AD64 – VM 507 ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Système :&amp;#039;&amp;#039;&amp;#039; Ubuntu 26.04.1 LTS.&lt;br /&gt;
&lt;br /&gt;
Versions PHP :&lt;br /&gt;
&lt;br /&gt;
* PHP 8.4.27&lt;br /&gt;
* PHP 8.5.12&lt;br /&gt;
&lt;br /&gt;
Interventions :&lt;br /&gt;
&lt;br /&gt;
* Mise à jour des versions PHP.&lt;br /&gt;
* Contrôle de la configuration Apache.&lt;br /&gt;
* Vérification de la version PHP utilisée par le serveur Web.&lt;br /&gt;
* Redémarrage de la VM.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;État :&amp;#039;&amp;#039;&amp;#039; versions PHP corrigées installées.&lt;br /&gt;
&lt;br /&gt;
Les contrôles fonctionnels Drupal/Pleade doivent rester intégrés à la validation des prochaines maintenances.&lt;br /&gt;
&lt;br /&gt;
=== 5.3. APBP2 – VM 510 ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Système :&amp;#039;&amp;#039;&amp;#039; Ubuntu 26.04.1 LTS.&lt;br /&gt;
&lt;br /&gt;
Versions PHP :&lt;br /&gt;
&lt;br /&gt;
* PHP 8.4.27&lt;br /&gt;
* PHP 8.5.12&lt;br /&gt;
&lt;br /&gt;
Interventions :&lt;br /&gt;
&lt;br /&gt;
* Mise à jour PHP.&lt;br /&gt;
* Vérification de la configuration Apache utilisant PHP 8.4.&lt;br /&gt;
* Contrôle des services.&lt;br /&gt;
* Redémarrage de la VM.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;État :&amp;#039;&amp;#039;&amp;#039; versions PHP corrigées installées.&lt;br /&gt;
&lt;br /&gt;
=== 5.4. DEVTOOLS2 / pleade.com – VM 508 ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Version PHP :&amp;#039;&amp;#039;&amp;#039; branche 7.2.&lt;br /&gt;
&lt;br /&gt;
Mise à jour constatée :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
PHP 7.2 -&amp;gt; 7.2.24.17&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La branche PHP 7.2 étant ancienne, cette mise à jour ne doit pas être assimilée à une correction définitive des deux CVE.&lt;br /&gt;
&lt;br /&gt;
Atténuation appliquée :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
session.upload_progress.enabled = Off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contrôles réalisés :&lt;br /&gt;
&lt;br /&gt;
* Configuration PHP.&lt;br /&gt;
* Fonctionnement d&amp;#039;Apache.&lt;br /&gt;
* Fonctionnement de Mantis.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;État :&amp;#039;&amp;#039;&amp;#039; service fonctionnel avec atténuation provisoire.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;À faire :&amp;#039;&amp;#039;&amp;#039; planifier le remplacement de PHP 7.2 par une branche maintenue, sous réserve de compatibilité applicative.&lt;br /&gt;
&lt;br /&gt;
=== 5.5. DEVTOOLS – VM 513 ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Version PHP :&amp;#039;&amp;#039;&amp;#039; PHP 5.6.&lt;br /&gt;
&lt;br /&gt;
Mesure appliquée :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
session.upload_progress.enabled = Off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;État :&amp;#039;&amp;#039;&amp;#039; atténuation provisoire.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;À faire :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Identifier les dépendances applicatives à PHP 5.6.&lt;br /&gt;
* Préparer une migration vers une version PHP maintenue.&lt;br /&gt;
* Vérifier les autres mécanismes de réduction d&amp;#039;exposition disponibles.&lt;br /&gt;
&lt;br /&gt;
=== 5.6. ENCELADE – VM 514 ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Version PHP :&amp;#039;&amp;#039;&amp;#039; PHP 7.4.&lt;br /&gt;
&lt;br /&gt;
Atténuation appliquée :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
session.upload_progress.enabled = Off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;État :&amp;#039;&amp;#039;&amp;#039; atténuation provisoire.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;À faire :&amp;#039;&amp;#039;&amp;#039; migration vers une version PHP maintenue ou remplacement de l&amp;#039;environnement ancien.&lt;br /&gt;
&lt;br /&gt;
=== 5.7. MERCURE – VM 515 ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Système :&amp;#039;&amp;#039;&amp;#039; Ubuntu 20.04.6 LTS.&lt;br /&gt;
&lt;br /&gt;
Versions PHP-FPM identifiées :&lt;br /&gt;
&lt;br /&gt;
* PHP 7.2&lt;br /&gt;
* PHP 7.4&lt;br /&gt;
* PHP 8.0&lt;br /&gt;
* PHP 8.1&lt;br /&gt;
&lt;br /&gt;
La mesure provisoire a été appliquée aux quatre branches.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
session.upload_progress.enabled = Off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contrôles réalisés :&lt;br /&gt;
&lt;br /&gt;
* Services PHP-FPM actifs.&lt;br /&gt;
* Vérification des configurations.&lt;br /&gt;
* Contrôle HTTP : réponse 200.&lt;br /&gt;
* Vérification de l&amp;#039;état applicatif.&lt;br /&gt;
&lt;br /&gt;
Aucune mise à jour de paquet n&amp;#039;a été réalisée pendant cette intervention.&lt;br /&gt;
&lt;br /&gt;
Des extensions manquantes avaient également été relevées pour PHP 7.2, notamment concernant memcache et uploadprogress.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;État :&amp;#039;&amp;#039;&amp;#039; atténuation appliquée ; applications accessibles.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Suite prévue :&amp;#039;&amp;#039;&amp;#039; poursuivre la migration vers MERCURE3, plutôt que maintenir durablement cet environnement PHP ancien.&lt;br /&gt;
&lt;br /&gt;
=== 5.8. CENTREON-R8 – VM 520 ===&lt;br /&gt;
&lt;br /&gt;
Mise à jour PHP effectuée :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
PHP 8.2.30 -&amp;gt; PHP 8.2.35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contrôles réalisés :&lt;br /&gt;
&lt;br /&gt;
* PHP-FPM 8.2.35 opérationnel.&lt;br /&gt;
* Extension SourceGuardian opérationnelle.&lt;br /&gt;
* Interface Centreon fonctionnelle.&lt;br /&gt;
* Métriques Centreon disponibles.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;État :&amp;#039;&amp;#039;&amp;#039; PHP corrigé.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reste à faire :&amp;#039;&amp;#039;&amp;#039; redémarrage de la VM pour activer le noyau système mis à jour.&lt;br /&gt;
&lt;br /&gt;
=== 5.9. AD53 ===&lt;br /&gt;
&lt;br /&gt;
Versions PHP concernées :&lt;br /&gt;
&lt;br /&gt;
* PHP 7.2&lt;br /&gt;
* PHP 7.3&lt;br /&gt;
* PHP 8.0&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;intervention a porté sur &amp;#039;&amp;#039;&amp;#039;11 fichiers php.ini&amp;#039;&amp;#039;&amp;#039; correspondant aux différentes versions et aux différents contextes d&amp;#039;exécution.&lt;br /&gt;
&lt;br /&gt;
Mesure appliquée :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
session.upload_progress.enabled = Off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contrôles réalisés :&lt;br /&gt;
&lt;br /&gt;
* Vérification des configurations PHP.&lt;br /&gt;
* Redémarrage ou rechargement des services PHP-FPM concernés.&lt;br /&gt;
* Contrôle d&amp;#039;Apache.&lt;br /&gt;
* Vérification du fonctionnement applicatif.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;État :&amp;#039;&amp;#039;&amp;#039; atténuation provisoire appliquée.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attention :&amp;#039;&amp;#039;&amp;#039; ces versions PHP restent anciennes. La désactivation de la progression des téléversements ne constitue pas une correction complète des vulnérabilités.&lt;br /&gt;
&lt;br /&gt;
== 6. HAProxy-01 et HAProxy-02 ==&lt;br /&gt;
&lt;br /&gt;
=== 6.1. Architecture ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Serveur&lt;br /&gt;
! Adresse&lt;br /&gt;
! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| HAProxy-01&lt;br /&gt;
| 10.0.0.30&lt;br /&gt;
| MASTER nominal&lt;br /&gt;
|-&lt;br /&gt;
| HAProxy-02&lt;br /&gt;
| 10.0.0.31&lt;br /&gt;
| BACKUP nominal&lt;br /&gt;
|-&lt;br /&gt;
| VIP&lt;br /&gt;
| 10.0.0.32&lt;br /&gt;
| Adresse virtuelle Keepalived&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 6.2. Mises à jour ===&lt;br /&gt;
&lt;br /&gt;
Les deux serveurs ont été mis à jour vers un état Ubuntu 24.04 LTS cohérent.&lt;br /&gt;
&lt;br /&gt;
Versions vérifiées :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Ubuntu 24.04 LTS&lt;br /&gt;
Linux 6.8.0-147-generic&lt;br /&gt;
HAProxy 2.8.16&lt;br /&gt;
Keepalived 2.2.8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les mises à jour ont concerné environ 182 et 177 paquets selon les opérations examinées.&lt;br /&gt;
&lt;br /&gt;
Six paquets étaient temporairement retenus dans les résultats APT.&lt;br /&gt;
&lt;br /&gt;
Les services suivants ont été contrôlés :&lt;br /&gt;
&lt;br /&gt;
* HAProxy&lt;br /&gt;
* Keepalived&lt;br /&gt;
* systemd-networkd&lt;br /&gt;
&lt;br /&gt;
Aucun PHP installé par APT n&amp;#039;a été identifié sur ces deux machines.&lt;br /&gt;
&lt;br /&gt;
=== 6.3. Incident Keepalived ===&lt;br /&gt;
&lt;br /&gt;
Pendant les mises à jour, des redémarrages de Keepalived ont provoqué des changements temporaires de rôle VRRP.&lt;br /&gt;
&lt;br /&gt;
Un problème de droits a également été identifié dans le script de contrôle HAProxy.&lt;br /&gt;
&lt;br /&gt;
Le script &amp;lt;code&amp;gt;chk_haproxy&amp;lt;/code&amp;gt; était exécuté sous un compte ne disposant pas des permissions nécessaires pour contrôler les processus HAProxy.&lt;br /&gt;
&lt;br /&gt;
Correction :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
user root&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette directive a été ajoutée dans le bloc &amp;lt;code&amp;gt;vrrp_script chk_haproxy&amp;lt;/code&amp;gt;, en conservant les autres paramètres existants.&lt;br /&gt;
&lt;br /&gt;
Priorités VRRP :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
HAProxy-01 : 103&lt;br /&gt;
HAProxy-02 : 102&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
État final :&lt;br /&gt;
&lt;br /&gt;
* HAProxy-01 : MASTER.&lt;br /&gt;
* HAProxy-02 : BACKUP.&lt;br /&gt;
* VIP présente sur HAProxy-01.&lt;br /&gt;
&lt;br /&gt;
=== 6.4. Test fonctionnel ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl --resolve archives.lamayenne.fr:443:10.0.0.32 \&lt;br /&gt;
  https://archives.lamayenne.fr/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
HTTP 200&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;État :&amp;#039;&amp;#039;&amp;#039; fonctionnement confirmé pour le service testé.&lt;br /&gt;
&lt;br /&gt;
=== 6.5. Points restant à vérifier ===&lt;br /&gt;
&lt;br /&gt;
* Examiner les paquets APT retenus.&lt;br /&gt;
* Confirmer la stabilité de Keepalived lors des prochaines mises à jour.&lt;br /&gt;
* Refaire un test de bascule VRRP dans une fenêtre de maintenance.&lt;br /&gt;
* Vérifier la cohérence des configurations et certificats sur les deux HAProxy.&lt;br /&gt;
&lt;br /&gt;
Les certificats et certaines configurations sont déployés séparément sur HAProxy-01 et HAProxy-02 : leur synchronisation ne doit pas être présumée automatique.&lt;br /&gt;
&lt;br /&gt;
== 7. OPNsense – SaturneFW1 et SaturneFW2 ==&lt;br /&gt;
&lt;br /&gt;
=== 7.1. Architecture ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pare-feu&lt;br /&gt;
! Adresse&lt;br /&gt;
! Fonction&lt;br /&gt;
|-&lt;br /&gt;
| SaturneFW1&lt;br /&gt;
| 10.0.0.2&lt;br /&gt;
| Principal&lt;br /&gt;
|-&lt;br /&gt;
| SaturneFW2&lt;br /&gt;
| 10.0.0.3&lt;br /&gt;
| Secondaire&lt;br /&gt;
|-&lt;br /&gt;
| Interface Web&lt;br /&gt;
| TCP 453&lt;br /&gt;
| Administration HTTPS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;accès distant d&amp;#039;administration dépend notamment d&amp;#039;un VPN OpenVPN hébergé sur FW1.&lt;br /&gt;
&lt;br /&gt;
Cette dépendance doit être prise en compte avant toute mise à jour ou redémarrage de FW1.&lt;br /&gt;
&lt;br /&gt;
=== 7.2. État des versions ===&lt;br /&gt;
&lt;br /&gt;
Sur FW2, les versions suivantes ont été constatées :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
OPNsense 26.1.6&lt;br /&gt;
FreeBSD 14 amd64&lt;br /&gt;
PHP 8.3.30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mise à jour proposée par le dépôt OPNsense :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
OPNsense 26.1.11_10&lt;br /&gt;
79 paquets&lt;br /&gt;
307,5 Mio à télécharger&lt;br /&gt;
Redémarrage requis&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette mise à jour reste dans la branche 26.1.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Décision :&amp;#039;&amp;#039;&amp;#039; reporter la mise à jour complète pour disposer d&amp;#039;une fenêtre de maintenance suffisante.&lt;br /&gt;
&lt;br /&gt;
=== 7.3. Accès d&amp;#039;administration à FW2 ===&lt;br /&gt;
&lt;br /&gt;
Tunnel fonctionnel depuis le Mac via HAProxy-02 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh -N -o ExitOnForwardFailure=yes \&lt;br /&gt;
  -L 8453:10.0.0.3:453 \&lt;br /&gt;
  hpr@10.0.0.31&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accès navigateur :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
https://127.0.0.1:8453/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un problème a été constaté avec le même tunnel via HAProxy-01 :&lt;br /&gt;
&lt;br /&gt;
* FW2 répond au ping depuis HAProxy-01.&lt;br /&gt;
* Le port TCP 453 de FW2 ne répond pas depuis HAProxy-01.&lt;br /&gt;
* Le même port est accessible depuis HAProxy-02.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;À diagnostiquer :&amp;#039;&amp;#039;&amp;#039; éventuelle règle de filtrage ou blocage dynamique de la source &amp;lt;code&amp;gt;10.0.0.30&amp;lt;/code&amp;gt; sur FW2.&lt;br /&gt;
&lt;br /&gt;
=== 7.4. Audit PHP sur FW2 ===&lt;br /&gt;
&lt;br /&gt;
Inventaire :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
pkg info -x &amp;#039;^php83&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version principale :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
php83-8.3.30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simulation de mise à jour :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
pkg upgrade -n -g &amp;#039;php83*&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
23 paquets concernés&lt;br /&gt;
19 Mio à télécharger&lt;br /&gt;
4 Mio supplémentaires sur disque&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Principaux paquets :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Paquet&lt;br /&gt;
! Installé&lt;br /&gt;
! Proposé&lt;br /&gt;
|-&lt;br /&gt;
| php83&lt;br /&gt;
| 8.3.30&lt;br /&gt;
| 8.3.31&lt;br /&gt;
|-&lt;br /&gt;
| php83-phalcon&lt;br /&gt;
| 5.10.0&lt;br /&gt;
| 5.16.0&lt;br /&gt;
|-&lt;br /&gt;
| php83-phpseclib&lt;br /&gt;
| 3.0.50&lt;br /&gt;
| 3.0.55&lt;br /&gt;
|-&lt;br /&gt;
| openssl&lt;br /&gt;
| 3.0.20&lt;br /&gt;
| 3.0.21&lt;br /&gt;
|-&lt;br /&gt;
| curl&lt;br /&gt;
| 8.19.0_2&lt;br /&gt;
| 8.21.0&lt;br /&gt;
|-&lt;br /&gt;
| sqlite3&lt;br /&gt;
| 3.50.4_2&lt;br /&gt;
| 3.53.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Une mise à jour PHP isolée aurait donc également modifié plusieurs bibliothèques système.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Décision :&amp;#039;&amp;#039;&amp;#039; ne pas effectuer cette mise à jour partielle.&lt;br /&gt;
&lt;br /&gt;
=== 7.5. Audit des vulnérabilités ===&lt;br /&gt;
&lt;br /&gt;
Commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
pkg audit -F&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
28 problem(s) in 11 package(s) found.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paquets concernés :&lt;br /&gt;
&lt;br /&gt;
* unbound&lt;br /&gt;
* openssl&lt;br /&gt;
* ldns&lt;br /&gt;
* python313&lt;br /&gt;
* openvpn&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* curl&lt;br /&gt;
* php83&lt;br /&gt;
* openssh-portable&lt;br /&gt;
* strongswan&lt;br /&gt;
* expat&lt;br /&gt;
&lt;br /&gt;
Ces résultats justifient de ne pas différer indéfiniment la maintenance OPNsense.&lt;br /&gt;
&lt;br /&gt;
=== 7.6. Vérification du correctif PHP proposé ===&lt;br /&gt;
&lt;br /&gt;
Test de la version 8.3.31 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
pkg audit -f /var/db/pkg/vuln.xml php83-8.3.31&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
php83-8.3.31 is vulnerable:&lt;br /&gt;
  CVE-2026-109619&lt;br /&gt;
  CVE-2026-109618&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;avis FreeBSD VuXML indique que la première version corrigée de PHP 8.3 est &amp;#039;&amp;#039;&amp;#039;8.3.36&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Conclusion :&amp;#039;&amp;#039;&amp;#039; le dépôt OPNsense examiné ne proposait pas encore une version PHP reconnue comme corrigée pour ces deux CVE.&lt;br /&gt;
&lt;br /&gt;
Une mise à jour complète d&amp;#039;OPNsense reste nécessaire pour les autres vulnérabilités, mais ne doit pas être considérée comme suffisante pour PHP tant que ce point n&amp;#039;est pas vérifié.&lt;br /&gt;
&lt;br /&gt;
=== 7.7. Identification du serveur Web OPNsense ===&lt;br /&gt;
&lt;br /&gt;
Sur FW2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
service php_fpm status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
php_fpm is not running.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Recherche des processus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
ps auxww | grep -E &amp;#039;[l]ighttpd|[p]hp-cgi|[p]hp-fpm&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Processus identifiés :&lt;br /&gt;
&lt;br /&gt;
* lighttpd&lt;br /&gt;
* php-cgi&lt;br /&gt;
&lt;br /&gt;
Fichier de configuration :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/usr/local/etc/lighttpd_webgui/lighttpd.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration FastCGI observée :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;max-procs&amp;quot; =&amp;gt; 8,&lt;br /&gt;
&amp;quot;bin-environment&amp;quot; =&amp;gt; (&lt;br /&gt;
    &amp;quot;PHP_FCGI_CHILDREN&amp;quot; =&amp;gt; &amp;quot;5&amp;quot;,&lt;br /&gt;
    &amp;quot;PHP_FCGI_MAX_REQUESTS&amp;quot; =&amp;gt; &amp;quot;100&amp;quot;&lt;br /&gt;
),&lt;br /&gt;
&amp;quot;bin-path&amp;quot; =&amp;gt; &amp;quot;/usr/local/bin/php-cgi&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Conclusion :&amp;#039;&amp;#039;&amp;#039; l&amp;#039;interface d&amp;#039;administration OPNsense utilise lighttpd avec PHP-CGI, et non PHP-FPM.&lt;br /&gt;
&lt;br /&gt;
=== 7.8. Atténuation appliquée sur FW2 ===&lt;br /&gt;
&lt;br /&gt;
État initial :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Loaded Configuration File =&amp;gt; /usr/local/etc/php.ini&lt;br /&gt;
session.upload_progress.enabled =&amp;gt; On =&amp;gt; On&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le paramètre n&amp;#039;était défini explicitement ni dans &amp;lt;code&amp;gt;php.ini&amp;lt;/code&amp;gt; ni dans les fichiers complémentaires examinés.&lt;br /&gt;
&lt;br /&gt;
Sauvegarde :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
cp -p /usr/local/etc/php.ini \&lt;br /&gt;
  /usr/local/etc/php.ini.bak-20261022&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modification :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
printf &amp;#039;\n; Mitigation provisoire PHP2Shell\nsession.upload_progress.enabled = Off\n&amp;#039; &amp;gt;&amp;gt; /usr/local/etc/php.ini&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contrôle :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
php -i | grep session.upload_progress.enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
session.upload_progress.enabled =&amp;gt; Off =&amp;gt; Off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le redémarrage classique de lighttpd a été refusé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Cannot &amp;#039;restart&amp;#039; lighttpd.&lt;br /&gt;
Set lighttpd_enable to YES in /etc/rc.conf&lt;br /&gt;
or use &amp;#039;onerestart&amp;#039; instead of &amp;#039;restart&amp;#039;.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commande de redémarrage retenue :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
service lighttpd onerestart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;intervention a été signalée comme terminée.&lt;br /&gt;
&lt;br /&gt;
=== 7.9. Atténuation appliquée sur FW1 ===&lt;br /&gt;
&lt;br /&gt;
La console OPNsense utilise &amp;lt;code&amp;gt;csh&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Les commandes saisies avec &amp;lt;code&amp;gt;&amp;amp;amp;&amp;amp;amp;&amp;lt;/code&amp;gt; en fin de ligne ont provoqué :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Invalid null command.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les commandes ont donc été exécutées séparément.&lt;br /&gt;
&lt;br /&gt;
Sauvegarde :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
cp -p /usr/local/etc/php.ini \&lt;br /&gt;
  /usr/local/etc/php.ini.bak-20261022&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modification :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
printf &amp;#039;\n; Mitigation provisoire PHP2Shell\nsession.upload_progress.enabled = Off\n&amp;#039; &amp;gt;&amp;gt; /usr/local/etc/php.ini&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Contrôle :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
php -i | grep session.upload_progress.enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Résultat :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
session.upload_progress.enabled =&amp;gt; Off =&amp;gt; Off&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrage demandé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
service lighttpd onerestart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;intervention a été confirmée comme terminée.&lt;br /&gt;
&lt;br /&gt;
=== 7.10. État des deux pare-feu ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Contrôle&lt;br /&gt;
! FW1&lt;br /&gt;
! FW2&lt;br /&gt;
|-&lt;br /&gt;
| Sauvegarde php.ini&lt;br /&gt;
| Effectuée&lt;br /&gt;
| Effectuée&lt;br /&gt;
|-&lt;br /&gt;
| upload_progress désactivé&lt;br /&gt;
| Oui&lt;br /&gt;
| Oui&lt;br /&gt;
|-&lt;br /&gt;
| Vérification PHP CLI&lt;br /&gt;
| Off&lt;br /&gt;
| Off&lt;br /&gt;
|-&lt;br /&gt;
| Redémarrage lighttpd&lt;br /&gt;
| Signalé terminé&lt;br /&gt;
| Signalé terminé&lt;br /&gt;
|-&lt;br /&gt;
| Vérification indépendante PHP-CGI&lt;br /&gt;
| À compléter&lt;br /&gt;
| À compléter&lt;br /&gt;
|-&lt;br /&gt;
| Mise à jour complète OPNsense&lt;br /&gt;
| Restante&lt;br /&gt;
| Restante&lt;br /&gt;
|-&lt;br /&gt;
| Correctif PHP définitif&lt;br /&gt;
| À vérifier&lt;br /&gt;
| Non disponible dans le dépôt examiné&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 8. Proposition de protection Coraza ==&lt;br /&gt;
&lt;br /&gt;
Des règles de filtrage supplémentaires ont été envisagées sur les deux HAProxy, notamment :&lt;br /&gt;
&lt;br /&gt;
* Blocage des cookies contenant &amp;lt;code&amp;gt;PHPSESSID&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Blocage de &amp;lt;code&amp;gt;PHPSESSID&amp;lt;/code&amp;gt; dans la chaîne de requête.&lt;br /&gt;
* Blocage des requêtes &amp;lt;code&amp;gt;multipart/form-data&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Décision : ne pas déployer globalement ces règles.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Motifs :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;PHPSESSID&amp;lt;/code&amp;gt; est un identifiant de session PHP légitime.&lt;br /&gt;
* Le blocage de &amp;lt;code&amp;gt;multipart/form-data&amp;lt;/code&amp;gt; empêcherait des téléversements et formulaires légitimes.&lt;br /&gt;
* Les règles globales pourraient perturber Drupal, Pleade et d&amp;#039;autres applications.&lt;br /&gt;
* Les interfaces OPNsense accessibles directement ne traversent pas nécessairement Coraza.&lt;br /&gt;
* Ces règles ne constituent pas une garantie de protection contre les deux CVE.&lt;br /&gt;
&lt;br /&gt;
Une protection WAF ciblée pourra être réétudiée après analyse des chemins d&amp;#039;exploitation concernés.&lt;br /&gt;
&lt;br /&gt;
== 9. Travaux restant à effectuer ==&lt;br /&gt;
&lt;br /&gt;
=== 9.1. Priorité haute – OPNsense ===&lt;br /&gt;
&lt;br /&gt;
# Préparer une fenêtre de maintenance.&lt;br /&gt;
# Sauvegarder les configurations FW1 et FW2.&lt;br /&gt;
# Vérifier l&amp;#039;accès console ou un accès indépendant du VPN hébergé sur FW1.&lt;br /&gt;
# Mettre à jour FW2 vers une version OPNsense officiellement prise en charge.&lt;br /&gt;
# Contrôler les services, l&amp;#039;administration Web, les VPN et la haute disponibilité.&lt;br /&gt;
# Mettre à jour FW1 après validation de FW2.&lt;br /&gt;
# Vérifier les versions PHP réellement installées.&lt;br /&gt;
# Vérifier la disponibilité de PHP 8.3.36 ou d&amp;#039;un correctif rétroporté équivalent.&lt;br /&gt;
# Relancer &amp;lt;code&amp;gt;pkg audit -F&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Vérifier la persistance de l&amp;#039;atténuation &amp;lt;code&amp;gt;session.upload_progress.enabled = Off&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Ne supprimer l&amp;#039;atténuation qu&amp;#039;après validation d&amp;#039;une correction définitive.&lt;br /&gt;
&lt;br /&gt;
=== 9.2. Priorité haute – Anciennes versions PHP ===&lt;br /&gt;
&lt;br /&gt;
Machines concernées notamment :&lt;br /&gt;
&lt;br /&gt;
* AD53 : PHP 7.2 / 7.3 / 8.0.&lt;br /&gt;
* DEVTOOLS2 : PHP 7.2.&lt;br /&gt;
* DEVTOOLS : PHP 5.6.&lt;br /&gt;
* ENCELADE : PHP 7.4.&lt;br /&gt;
* MERCURE : PHP 7.2 / 7.4 / 8.0 / 8.1.&lt;br /&gt;
&lt;br /&gt;
Actions :&lt;br /&gt;
&lt;br /&gt;
# Conserver les atténuations provisoires.&lt;br /&gt;
# Vérifier leur application effective dans les processus Web.&lt;br /&gt;
# Identifier les contraintes applicatives empêchant la montée de version.&lt;br /&gt;
# Préparer les migrations vers des versions PHP maintenues.&lt;br /&gt;
# Suivre les éventuels correctifs de sécurité fournis par les distributions ou mainteneurs concernés.&lt;br /&gt;
# Réaliser des tests applicatifs avant toute migration majeure.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attention :&amp;#039;&amp;#039;&amp;#039; les versions PHP anciennes peuvent présenter d&amp;#039;autres vulnérabilités indépendantes des deux CVE traitées ici.&lt;br /&gt;
&lt;br /&gt;
=== 9.3. Priorité moyenne – CENTREON-R8 ===&lt;br /&gt;
&lt;br /&gt;
* Effectuer le redémarrage nécessaire pour activer le nouveau noyau.&lt;br /&gt;
* Vérifier Centreon après redémarrage.&lt;br /&gt;
* Contrôler la collecte des métriques et les services associés.&lt;br /&gt;
&lt;br /&gt;
=== 9.4. Priorité moyenne – HAProxy ===&lt;br /&gt;
&lt;br /&gt;
* Examiner les paquets APT retenus.&lt;br /&gt;
* Contrôler la stabilité de Keepalived.&lt;br /&gt;
* Refaire un test de bascule VRRP.&lt;br /&gt;
* Vérifier la cohérence des configurations sur HAProxy-01 et HAProxy-02.&lt;br /&gt;
* Diagnostiquer le blocage d&amp;#039;accès au port 453 de FW2 depuis HAProxy-01.&lt;br /&gt;
&lt;br /&gt;
=== 9.5. Vérifications transversales ===&lt;br /&gt;
&lt;br /&gt;
* Contrôler les versions PHP réellement utilisées par Apache, PHP-FPM et PHP-CGI.&lt;br /&gt;
* Vérifier les applications après les prochaines mises à jour.&lt;br /&gt;
* Vérifier la persistance des modifications manuelles après régénération de configuration.&lt;br /&gt;
* Conserver les sauvegardes de configuration jusqu&amp;#039;à validation complète.&lt;br /&gt;
* Actualiser l&amp;#039;inventaire des VM et leur état de sécurité.&lt;br /&gt;
&lt;br /&gt;
== 10. Commandes de contrôle ==&lt;br /&gt;
&lt;br /&gt;
=== 10.1. Ubuntu – Versions et mises à jour ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/os-release&lt;br /&gt;
&lt;br /&gt;
apt list --upgradable&lt;br /&gt;
&lt;br /&gt;
php -v&lt;br /&gt;
&lt;br /&gt;
php -i | grep session.upload_progress.enabled&lt;br /&gt;
&lt;br /&gt;
systemctl --failed&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10.2. OPNsense – Versions et vulnérabilités ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
pkg info -x &amp;#039;^php83&amp;#039;&lt;br /&gt;
&lt;br /&gt;
pkg audit -F&lt;br /&gt;
&lt;br /&gt;
php -v&lt;br /&gt;
&lt;br /&gt;
php -i | grep session.upload_progress.enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simulation de mise à jour PHP, sans installation :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
pkg upgrade -n -g &amp;#039;php83*&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10.3. OPNsense – Processus Web ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
ps auxww | grep -E &amp;#039;[l]ighttpd|[p]hp-cgi|[p]hp-fpm&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redémarrage de lighttpd lorsque nécessaire :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
service lighttpd onerestart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10.4. OPNsense – Retour arrière de la mitigation ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;À utiliser uniquement si la modification doit être annulée.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
cp -p /usr/local/etc/php.ini.bak-20261022 \&lt;br /&gt;
  /usr/local/etc/php.ini&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
service lighttpd onerestart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attention :&amp;#039;&amp;#039;&amp;#039; ce retour arrière réactive potentiellement le mécanisme PHP ayant motivé l&amp;#039;atténuation.&lt;br /&gt;
&lt;br /&gt;
== 11. Plan de reprise des interventions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ordre&lt;br /&gt;
! Machine(s)&lt;br /&gt;
! Action&lt;br /&gt;
! Validation attendue&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| FW2&lt;br /&gt;
| Sauvegarde et mise à jour OPNsense&lt;br /&gt;
| Services et administration fonctionnels&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| FW2&lt;br /&gt;
| Contrôle PHP et audit de sécurité&lt;br /&gt;
| Vulnérabilités restantes identifiées&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| FW1&lt;br /&gt;
| Sauvegarde et mise à jour OPNsense&lt;br /&gt;
| VPN, routage et administration fonctionnels&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| FW1 / FW2&lt;br /&gt;
| Vérification HA et configurations PHP&lt;br /&gt;
| Bascule et mitigation contrôlées&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| CENTREON-R8&lt;br /&gt;
| Redémarrage noyau&lt;br /&gt;
| Centreon et métriques fonctionnels&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| MERCURE&lt;br /&gt;
| Poursuite migration MERCURE3&lt;br /&gt;
| Réduction des dépendances PHP anciennes&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| AD53 / DEVTOOLS / ENCELADE&lt;br /&gt;
| Planification migration PHP&lt;br /&gt;
| Applications compatibles avec une branche maintenue&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| HAProxy-01 / HAProxy-02&lt;br /&gt;
| Contrôles VRRP et paquets retenus&lt;br /&gt;
| Haute disponibilité stable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 12. Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Les interventions des 21 et 22 octobre 2026 ont permis :&lt;br /&gt;
&lt;br /&gt;
* De corriger les versions PHP sur plusieurs VM récentes.&lt;br /&gt;
* De mettre en place une atténuation provisoire sur les environnements PHP anciens.&lt;br /&gt;
* De sécuriser provisoirement les interfaces PHP des deux OPNsense.&lt;br /&gt;
* De mettre à jour les deux HAProxy et de corriger leur surveillance Keepalived.&lt;br /&gt;
* D&amp;#039;identifier les vulnérabilités restant présentes sur OPNsense.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Les travaux ne sont pas terminés.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Les deux priorités restantes sont :&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Effectuer les mises à jour complètes des deux OPNsense dans une fenêtre de maintenance sécurisée.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Remplacer progressivement les anciennes versions PHP, dont la mitigation actuelle ne constitue pas un correctif définitif.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
La correction des CVE PHP devra être vérifiée à partir des versions réellement installées, des éventuels correctifs rétroportés et des avis de sécurité officiels.&lt;/div&gt;</description>
			<pubDate>Thu, 22 Oct 2026 15:09:59 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:S%C3%A9curit%C3%A9_PHP_%E2%80%93_CVE-2026-109618_/_CVE-2026-109619_%E2%80%93_Interventions_des_21_et_22_octobre_2026</comments>
		</item>
		<item>
			<title>Matomo/Maintenance</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=Matomo/Maintenance&amp;diff=6521&amp;oldid=6519</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=Matomo/Maintenance&amp;diff=6521&amp;oldid=6519</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Exemple de tâche cron : &lt;/span&gt; &lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 20 octobre 2026 à 11:06&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;fr&quot;&gt;(Une version intermédiaire par le même utilisateur non affichée)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l21&quot;&gt;Ligne 21 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 21 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Matomo/HAProxy]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Matomo/HAProxy]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Matomo/Debug]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Matomo/Debug]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Portée de cette documentation ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Cette procédure est générique et s&#039;applique aux installations Matomo&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hébergées sur les VM AJLSM.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Les références à &#039;&#039;&#039;AD64&#039;&#039;&#039; correspondent à un exemple réel&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;d&#039;installation, vérifié en octobre 2026.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Elles illustrent les choix techniques effectués sur ce projet,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mais ne constituent pas des paramètres obligatoires pour les&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;futures installations.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Les versions logicielles, chemins, domaines, fréquences d&#039;archivage&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;et modalités de sauvegarde doivent être adaptés à chaque environnement.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 1. Vérifications courantes ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 1. Vérifications courantes ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l248&quot;&gt;Ligne 248 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 262 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Exemple de configuration pour un archivage toutes les heures :&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Exemple de configuration pour un archivage toutes les heures :&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cron&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bash&lt;/ins&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;0 * * * * /usr/bin/php /var/www/matomo/console core:archive --url=https://matomo.exemple.fr/ &amp;gt;&amp;gt; /var/log/matomo-archive.log 2&amp;gt;&amp;amp;1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;0 * * * * /usr/bin/php /var/www/matomo/console core:archive --url=https://matomo.exemple.fr/ &amp;gt;&amp;gt; /var/log/matomo-archive.log 2&amp;gt;&amp;amp;1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 20 Oct 2026 11:06:50 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:Matomo/Maintenance</comments>
		</item>
		<item>
			<title>Matomo/Maintenance</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=Matomo/Maintenance&amp;diff=6519&amp;oldid=0</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=Matomo/Maintenance&amp;diff=6519&amp;oldid=0</guid>
			<description>&lt;p&gt;Page créée avec « = Maintenance de Matomo =  == Objectif ==  Cette procédure décrit la maintenance des installations Matomo hébergées sur les VM AJLSM.  Elle couvre :  * La surveillance... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Maintenance de Matomo =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Cette procédure décrit la maintenance des installations Matomo hébergées sur les VM AJLSM.&lt;br /&gt;
&lt;br /&gt;
Elle couvre :&lt;br /&gt;
&lt;br /&gt;
* La surveillance des services.&lt;br /&gt;
* Les mises à jour de Matomo.&lt;br /&gt;
* Les sauvegardes et la restauration.&lt;br /&gt;
* L&amp;#039;archivage des statistiques.&lt;br /&gt;
* La vérification de la collecte.&lt;br /&gt;
* Les contrôles de sécurité.&lt;br /&gt;
&lt;br /&gt;
Voir également :&lt;br /&gt;
&lt;br /&gt;
* [[Matomo/Installation]]&lt;br /&gt;
* [[Matomo/Apache]]&lt;br /&gt;
* [[Matomo/Drupal]]&lt;br /&gt;
* [[Matomo/HAProxy]]&lt;br /&gt;
* [[Matomo/Debug]]&lt;br /&gt;
&lt;br /&gt;
== 1. Vérifications courantes ==&lt;br /&gt;
&lt;br /&gt;
=== Version de Matomo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/www/matomo&lt;br /&gt;
sudo -u www-data php console core:version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Services Apache et MariaDB ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl is-active apache2&lt;br /&gt;
systemctl is-active mariadb&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si la VM utilise PHP-FPM, vérifier également le service correspondant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl is-active php8.4-fpm&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important :&amp;#039;&amp;#039;&amp;#039; PHP-FPM n&amp;#039;est pas nécessaire lorsque PHP est exécuté par Apache avec `mod_php`, comme sur AD64.&lt;br /&gt;
&lt;br /&gt;
=== Espace disque ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
df -h&lt;br /&gt;
du -sh /var/www/matomo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Taille de la base Matomo ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mariadb -t -e &amp;quot;&lt;br /&gt;
SELECT&lt;br /&gt;
    table_schema AS base,&lt;br /&gt;
    ROUND(SUM(data_length + index_length)/1024/1024, 2) AS taille_Mo&lt;br /&gt;
FROM information_schema.tables&lt;br /&gt;
WHERE table_schema = &amp;#039;matomo&amp;#039;&lt;br /&gt;
GROUP BY table_schema;&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La taille de la base doit être surveillée, notamment lorsque le nombre de visites et la durée de conservation des données augmentent.&lt;br /&gt;
&lt;br /&gt;
== 2. Mise à jour de Matomo ==&lt;br /&gt;
&lt;br /&gt;
=== Méthode habituelle AJLSM ===&lt;br /&gt;
&lt;br /&gt;
Les mises à jour de Matomo sont proposées directement dans son interface d&amp;#039;administration.&lt;br /&gt;
&lt;br /&gt;
Sur AD64, les précédentes mises à jour ont été réalisées depuis cette interface, sans passer par le terminal.&lt;br /&gt;
&lt;br /&gt;
Cette méthode est retenue comme procédure habituelle.&lt;br /&gt;
&lt;br /&gt;
=== Avant la mise à jour ===&lt;br /&gt;
&lt;br /&gt;
# Vérifier la compatibilité de la nouvelle version avec PHP et MariaDB.&lt;br /&gt;
# Vérifier l&amp;#039;espace disque disponible.&lt;br /&gt;
# Effectuer une sauvegarde de la base MariaDB.&lt;br /&gt;
# Sauvegarder les fichiers de configuration et les éventuels plugins personnalisés.&lt;br /&gt;
# Vérifier que les sauvegardes sont exploitables.&lt;br /&gt;
&lt;br /&gt;
Exemple de sauvegarde manuelle de la base :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mariadb-dump --single-transaction \&lt;br /&gt;
  --routines --triggers --events \&lt;br /&gt;
  matomo &amp;gt; &amp;quot;$HOME/matomo-$(date +%Y%m%d-%H%M%S).sql&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attention :&amp;#039;&amp;#039;&amp;#039; cette commande crée une sauvegarde ponctuelle dans le répertoire personnel de l&amp;#039;utilisateur courant. Elle ne remplace pas la stratégie de sauvegarde générale de la VM.&lt;br /&gt;
&lt;br /&gt;
Vérifier également les sauvegardes existantes avant toute intervention importante.&lt;br /&gt;
&lt;br /&gt;
=== Effectuer la mise à jour ===&lt;br /&gt;
&lt;br /&gt;
# Se connecter à l&amp;#039;administration Matomo depuis une adresse IP autorisée.&lt;br /&gt;
# Ouvrir la notification de nouvelle version.&lt;br /&gt;
# Lire les informations et les prérequis.&lt;br /&gt;
# Lancer la mise à jour depuis l&amp;#039;interface.&lt;br /&gt;
# Effectuer, si demandé, la mise à jour de la base de données.&lt;br /&gt;
# Attendre la confirmation de fin d&amp;#039;opération.&lt;br /&gt;
&lt;br /&gt;
Ne pas interrompre une mise à jour en cours.&lt;br /&gt;
&lt;br /&gt;
=== Après la mise à jour ===&lt;br /&gt;
&lt;br /&gt;
Vérifier :&lt;br /&gt;
&lt;br /&gt;
* La version affichée par Matomo.&lt;br /&gt;
* L&amp;#039;accès à l&amp;#039;interface d&amp;#039;administration.&lt;br /&gt;
* L&amp;#039;absence d&amp;#039;erreurs dans les journaux.&lt;br /&gt;
* Le fonctionnement des rapports.&lt;br /&gt;
* La réception de nouvelles visites.&lt;br /&gt;
* Le fonctionnement des plugins installés.&lt;br /&gt;
&lt;br /&gt;
Commande de vérification :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/www/matomo&lt;br /&gt;
sudo -u www-data php console core:version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. Sauvegardes ==&lt;br /&gt;
&lt;br /&gt;
=== Éléments à sauvegarder ===&lt;br /&gt;
&lt;br /&gt;
Une sauvegarde exploitable doit couvrir :&lt;br /&gt;
&lt;br /&gt;
* La base MariaDB `matomo`.&lt;br /&gt;
* Le fichier `/var/www/matomo/config/config.ini.php`.&lt;br /&gt;
* Les plugins ou personnalisations non fournis par l&amp;#039;installation standard.&lt;br /&gt;
* Les autres fichiers spécifiques à l&amp;#039;installation, s&amp;#039;il en existe.&lt;br /&gt;
&lt;br /&gt;
Le code standard de Matomo peut être réinstallé, mais la base de données et la configuration sont indispensables à la restitution de l&amp;#039;installation.&lt;br /&gt;
&lt;br /&gt;
=== Sauvegarde de la base ===&lt;br /&gt;
&lt;br /&gt;
Exemple de sauvegarde compressée :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mariadb-dump --single-transaction \&lt;br /&gt;
  --routines --triggers --events \&lt;br /&gt;
  matomo | gzip &amp;gt; &amp;quot;$HOME/matomo-$(date +%Y%m%d-%H%M%S).sql.gz&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Protéger les sauvegardes : elles peuvent contenir des informations sur les visiteurs et des données de configuration sensibles.&lt;br /&gt;
&lt;br /&gt;
=== Sauvegarde de la configuration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo tar -czf &amp;quot;$HOME/matomo-config-$(date +%Y%m%d-%H%M%S).tar.gz&amp;quot; \&lt;br /&gt;
  -C /var/www/matomo \&lt;br /&gt;
  config&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les archives doivent être conservées dans un emplacement protégé, idéalement distinct de la VM.&lt;br /&gt;
&lt;br /&gt;
=== Sauvegardes de l&amp;#039;infrastructure ===&lt;br /&gt;
&lt;br /&gt;
Avant d&amp;#039;ajouter une sauvegarde spécifique, vérifier si Matomo est déjà couvert par :&lt;br /&gt;
&lt;br /&gt;
* Les sauvegardes de la VM Proxmox.&lt;br /&gt;
* Les sauvegardes applicatives existantes.&lt;br /&gt;
* Les sauvegardes MariaDB éventuellement configurées sur la VM.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important :&amp;#039;&amp;#039;&amp;#039; la présence d&amp;#039;une sauvegarde ne garantit pas sa restaurabilité. Un test de restauration doit être prévu.&lt;br /&gt;
&lt;br /&gt;
=== Restauration ===&lt;br /&gt;
&lt;br /&gt;
Une restauration doit être préparée en fonction de l&amp;#039;incident.&lt;br /&gt;
&lt;br /&gt;
La procédure générale consiste à :&lt;br /&gt;
&lt;br /&gt;
# Préserver l&amp;#039;état actuel avant toute intervention.&lt;br /&gt;
# Identifier une sauvegarde cohérente de la base et des fichiers.&lt;br /&gt;
# Restaurer dans un environnement de test lorsque cela est possible.&lt;br /&gt;
# Vérifier la compatibilité entre la version du code Matomo et le schéma de la base restaurée.&lt;br /&gt;
# Restaurer les données et la configuration.&lt;br /&gt;
# Vérifier les permissions.&lt;br /&gt;
# Tester l&amp;#039;interface et la collecte.&lt;br /&gt;
&lt;br /&gt;
Ne pas restaurer directement une ancienne base sur une installation Matomo plus récente sans avoir vérifié la compatibilité.&lt;br /&gt;
&lt;br /&gt;
== 4. Archivage des statistiques ==&lt;br /&gt;
&lt;br /&gt;
=== Principe ===&lt;br /&gt;
&lt;br /&gt;
Matomo calcule des rapports statistiques à partir des données de visites.&lt;br /&gt;
&lt;br /&gt;
Deux méthodes principales sont possibles :&lt;br /&gt;
&lt;br /&gt;
* Archivage déclenché par la consultation des rapports dans le navigateur.&lt;br /&gt;
* Archivage automatique par une tâche planifiée exécutant `core:archive`.&lt;br /&gt;
&lt;br /&gt;
=== Méthode 1 : archivage depuis le navigateur ===&lt;br /&gt;
&lt;br /&gt;
Cette méthode est utilisée sur AD64 en octobre 2026.&lt;br /&gt;
&lt;br /&gt;
Dans l&amp;#039;administration Matomo :&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Administration → Système → Paramètres généraux → Paramètres d&amp;#039;archivage&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Configuration constatée :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Paramètre&lt;br /&gt;
! Valeur AD64&lt;br /&gt;
|-&lt;br /&gt;
| Archiver les rapports lorsqu&amp;#039;ils sont affichés depuis le navigateur&lt;br /&gt;
| Oui&lt;br /&gt;
|-&lt;br /&gt;
| Archiver les rapports au plus toutes les X secondes&lt;br /&gt;
| 900 secondes (15 minutes)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les rapports peuvent donc être calculés lors de leur consultation.&lt;br /&gt;
&lt;br /&gt;
Cette configuration convient à une installation de faible volume, notamment lors de la mise en service.&lt;br /&gt;
&lt;br /&gt;
Elle peut cependant provoquer des calculs au moment où un utilisateur consulte les statistiques.&lt;br /&gt;
&lt;br /&gt;
=== Méthode 2 : archivage automatique ===&lt;br /&gt;
&lt;br /&gt;
Pour une installation plus sollicitée, un archivage planifié est préférable.&lt;br /&gt;
&lt;br /&gt;
Matomo fournit la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo -u www-data php /var/www/matomo/console core:archive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attention :&amp;#039;&amp;#039;&amp;#039; cette commande lance réellement l&amp;#039;archivage. Ne pas l&amp;#039;exécuter pour une simple vérification.&lt;br /&gt;
&lt;br /&gt;
Pour afficher les options sans lancer de traitement :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo -u www-data php /var/www/matomo/console core:archive --help&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exemple de tâche cron ===&lt;br /&gt;
&lt;br /&gt;
Exemple de configuration pour un archivage toutes les heures :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cron&amp;quot;&amp;gt;&lt;br /&gt;
0 * * * * /usr/bin/php /var/www/matomo/console core:archive --url=https://matomo.exemple.fr/ &amp;gt;&amp;gt; /var/log/matomo-archive.log 2&amp;gt;&amp;amp;1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette ligne est un &amp;#039;&amp;#039;&amp;#039;exemple de configuration&amp;#039;&amp;#039;&amp;#039;, et non une tâche déjà installée sur AD64.&lt;br /&gt;
&lt;br /&gt;
Elle doit être adaptée avant utilisation :&lt;br /&gt;
&lt;br /&gt;
* À l&amp;#039;URL réelle de Matomo.&lt;br /&gt;
* À l&amp;#039;utilisateur d&amp;#039;exécution PHP.&lt;br /&gt;
* Aux permissions du fichier journal.&lt;br /&gt;
* À la fréquence d&amp;#039;archivage souhaitée.&lt;br /&gt;
* Aux restrictions réseau ou HAProxy.&lt;br /&gt;
&lt;br /&gt;
Le processus d&amp;#039;archivage doit pouvoir joindre les ressources Matomo nécessaires. Une interface d&amp;#039;administration protégée par HAProxy peut imposer une configuration particulière de l&amp;#039;URL utilisée.&lt;br /&gt;
&lt;br /&gt;
=== Passage à l&amp;#039;archivage automatique ===&lt;br /&gt;
&lt;br /&gt;
Avant de mettre en service une tâche planifiée :&lt;br /&gt;
&lt;br /&gt;
# Vérifier le bon fonctionnement de la commande `core:archive`.&lt;br /&gt;
# Vérifier que l&amp;#039;URL utilisée est accessible depuis la VM.&lt;br /&gt;
# Configurer une tâche planifiée sous l&amp;#039;utilisateur approprié.&lt;br /&gt;
# Vérifier les journaux d&amp;#039;exécution.&lt;br /&gt;
# Contrôler que les rapports sont correctement actualisés.&lt;br /&gt;
# Désactiver ensuite l&amp;#039;archivage déclenché par le navigateur dans les paramètres généraux de Matomo, conformément à la configuration retenue.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ne pas désactiver l&amp;#039;archivage depuis le navigateur avant d&amp;#039;avoir confirmé le fonctionnement de l&amp;#039;archivage automatique.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== 5. Vérification de la collecte ==&lt;br /&gt;
&lt;br /&gt;
=== Tests HTTP ===&lt;br /&gt;
&lt;br /&gt;
Depuis une connexion extérieure au réseau AJLSM :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
MATOMO_URL=&amp;quot;https://matomo.exemple.fr&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for RESOURCE in matomo.js matomo.php; do&lt;br /&gt;
    echo &amp;quot;===== /$RESOURCE =====&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    curl -sS -o /dev/null -w &amp;quot;HTTP %{http_code}\n&amp;quot; \&lt;br /&gt;
      &amp;quot;$MATOMO_URL/$RESOURCE&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour une installation utilisant les ACL HAProxy décrites dans [[Matomo/HAProxy]], les ressources de collecte doivent rester accessibles publiquement.&lt;br /&gt;
&lt;br /&gt;
=== Vérification en base ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT&lt;br /&gt;
    idsite,&lt;br /&gt;
    COUNT(*) AS visites,&lt;br /&gt;
    MAX(visit_last_action_time) AS derniere_activite&lt;br /&gt;
FROM matomo_log_visit&lt;br /&gt;
GROUP BY idsite;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La présence de visites récentes confirme que des données sont enregistrées.&lt;br /&gt;
&lt;br /&gt;
Cette requête ne permet cependant pas, à elle seule, de vérifier l&amp;#039;exactitude de tous les rapports.&lt;br /&gt;
&lt;br /&gt;
=== Vérification depuis Drupal ===&lt;br /&gt;
&lt;br /&gt;
Consulter une page publique de l&amp;#039;application Drupal suivie.&lt;br /&gt;
&lt;br /&gt;
Vérifier ensuite :&lt;br /&gt;
&lt;br /&gt;
* Que le script Matomo est chargé.&lt;br /&gt;
* Qu&amp;#039;une requête de suivi est transmise.&lt;br /&gt;
* Qu&amp;#039;aucune erreur de suivi n&amp;#039;apparaît.&lt;br /&gt;
* Que la visite est enregistrée sur le bon identifiant de site Matomo.&lt;br /&gt;
&lt;br /&gt;
Voir [[Matomo/Drupal]].&lt;br /&gt;
&lt;br /&gt;
== 6. Certificats et sécurité ==&lt;br /&gt;
&lt;br /&gt;
=== HTTPS ===&lt;br /&gt;
&lt;br /&gt;
Pour les installations publiées par HAProxy, le certificat public est généralement géré sur les répartiteurs.&lt;br /&gt;
&lt;br /&gt;
Vérifier la date d&amp;#039;expiration :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
openssl s_client \&lt;br /&gt;
  -connect matomo.exemple.fr:443 \&lt;br /&gt;
  -servername matomo.exemple.fr &amp;lt;/dev/null 2&amp;gt;/dev/null \&lt;br /&gt;
  | openssl x509 -noout -subject -issuer -dates&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifier également le renouvellement automatique et le déploiement effectif du certificat.&lt;br /&gt;
&lt;br /&gt;
Voir [[Matomo/HAProxy]].&lt;br /&gt;
&lt;br /&gt;
=== Restrictions d&amp;#039;accès ===&lt;br /&gt;
&lt;br /&gt;
Lorsque l&amp;#039;administration est réservée à AJLSM :&lt;br /&gt;
&lt;br /&gt;
* L&amp;#039;interface Matomo doit être inaccessible depuis une IP extérieure non autorisée.&lt;br /&gt;
* Les points de collecte nécessaires doivent rester accessibles.&lt;br /&gt;
* L&amp;#039;accès à l&amp;#039;administration doit rester possible depuis le réseau autorisé.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
&lt;br /&gt;
Vérifier périodiquement les permissions des fichiers sensibles :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
stat -c &amp;#039;%A %a %U:%G %n&amp;#039; \&lt;br /&gt;
  /var/www/matomo \&lt;br /&gt;
  /var/www/matomo/config/config.ini.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir [[Matomo/Installation]] pour les permissions recommandées.&lt;br /&gt;
&lt;br /&gt;
== 7. Journaux et diagnostic ==&lt;br /&gt;
&lt;br /&gt;
En cas de dysfonctionnement, consulter les journaux Apache :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo journalctl -u apache2 --since &amp;quot;1 hour ago&amp;quot; --no-pager&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers de logs Apache peuvent également être consultés dans `/var/log/apache2/`, selon la configuration du VirtualHost.&lt;br /&gt;
&lt;br /&gt;
Pour MariaDB :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo journalctl -u mariadb --since &amp;quot;1 hour ago&amp;quot; --no-pager&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifier aussi les journaux et messages d&amp;#039;erreur propres à Matomo.&lt;br /&gt;
&lt;br /&gt;
Voir [[Matomo/Debug]].&lt;br /&gt;
&lt;br /&gt;
== 8. Retour d&amp;#039;expérience AD64 — octobre 2026 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Élément&lt;br /&gt;
! Situation constatée&lt;br /&gt;
|-&lt;br /&gt;
| Matomo&lt;br /&gt;
| Version 5.10.1&lt;br /&gt;
|-&lt;br /&gt;
| Serveur&lt;br /&gt;
| ad64&lt;br /&gt;
|-&lt;br /&gt;
| Répertoire&lt;br /&gt;
| /var/www/matomo&lt;br /&gt;
|-&lt;br /&gt;
| Serveur web&lt;br /&gt;
| Apache avec mod_php et mpm_prefork&lt;br /&gt;
|-&lt;br /&gt;
| Base de données&lt;br /&gt;
| MariaDB, base matomo&lt;br /&gt;
|-&lt;br /&gt;
| Taille de la base&lt;br /&gt;
| 5,70 Mo au 20 octobre 2026&lt;br /&gt;
|-&lt;br /&gt;
| Mise à jour Matomo&lt;br /&gt;
| Depuis l&amp;#039;interface d&amp;#039;administration&lt;br /&gt;
|-&lt;br /&gt;
| Archivage&lt;br /&gt;
| Déclenché depuis le navigateur&lt;br /&gt;
|-&lt;br /&gt;
| Fréquence d&amp;#039;archivage configurée&lt;br /&gt;
| 900 secondes&lt;br /&gt;
|-&lt;br /&gt;
| Cron core:archive&lt;br /&gt;
| Aucune tâche identifiée dans les emplacements examinés&lt;br /&gt;
|-&lt;br /&gt;
| Sites suivis&lt;br /&gt;
| Drupal Internet et Salle de lecture&lt;br /&gt;
|-&lt;br /&gt;
| Administration&lt;br /&gt;
| Restreinte par HAProxy aux adresses AJLSM autorisées&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Points restant à vérifier ===&lt;br /&gt;
&lt;br /&gt;
* La couverture exacte de Matomo par les sauvegardes existantes.&lt;br /&gt;
* La présence éventuelle d&amp;#039;une sauvegarde MariaDB indépendante.&lt;br /&gt;
* Le test de restauration.&lt;br /&gt;
* Le renouvellement effectif du certificat public lors de sa prochaine échéance.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Conclusion :&amp;#039;&amp;#039;&amp;#039; AD64 fonctionne actuellement avec un archivage à la demande et des mises à jour réalisées depuis l&amp;#039;interface Matomo. Il n&amp;#039;est pas nécessaire de modifier immédiatement cette configuration. Pour les futures installations, les sauvegardes et l&amp;#039;archivage automatique devront être évalués selon le volume et les exigences du projet.&lt;/div&gt;</description>
			<pubDate>Tue, 20 Oct 2026 11:04:34 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:Matomo/Maintenance</comments>
		</item>
		<item>
			<title>Matomo/Installation</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=Matomo/Installation&amp;diff=6518&amp;oldid=6503</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=Matomo/Installation&amp;diff=6518&amp;oldid=6503</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;1. Environnement technique : &lt;/span&gt; &lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 20 octobre 2026 à 10:56&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;fr&quot;&gt;(2 versions intermédiaires par le même utilisateur non affichées)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot;&gt;Ligne 16 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 16 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 1. Environnement technique ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 1. Environnement technique ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Versions &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;d&#039;Ubuntu et de &lt;/del&gt;PHP ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Matomo fonctionne avec Apache 2.4, PHP et MariaDB/MySQL.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Deux modes d&#039;exécution de PHP sont possibles :&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;mod_php&#039;&#039;&#039; : PHP est exécuté directement par Apache.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;PHP-FPM&#039;&#039;&#039; : PHP est exécuté par un service indépendant auquel Apache transmet les requêtes PHP.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Le choix dépend de la configuration de la VM. Il n&#039;est pas nécessaire d&#039;installer PHP-FPM lorsque Matomo fonctionne déjà avec mod_php.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Versions PHP ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Ubuntu&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Ubuntu&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! PHP&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Version &lt;/ins&gt;PHP &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;de référence&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Statut documentaire&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Observations&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Ubuntu 18.04&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Ubuntu 18.04&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| PHP 8.1 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;via PHP-FPM&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| PHP 8.1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Installation historique&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, hors support standard&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Installation historique &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;avec version PHP ajoutée séparément&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Ubuntu 24.04&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Ubuntu 24.04&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| PHP 8.3 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;via PHP-FPM&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| PHP 8.3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Installation existante&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Version fournie par Ubuntu&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Ubuntu 26.04&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Ubuntu 26.04&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| PHP 8.4 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;via PHP-FPM&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| PHP 8.4&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Environnement utilisé pour &lt;/del&gt;AD64 en octobre 2026&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Version utilisée sur &lt;/ins&gt;AD64 en octobre 2026&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;Important :&#039;&#039;&#039; vérifier &lt;/del&gt;la compatibilité entre la version de Matomo &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;et celle de PHP avant toute nouvelle installation ou mise à jour&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Vérifier systématiquement &lt;/ins&gt;la compatibilité entre &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PHP et &lt;/ins&gt;la version de Matomo &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;installée&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Composants nécessaires ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Composants nécessaires ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Apache 2.4&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Apache 2.4&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* PHP-FPM&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PHP avec &#039;&#039;&#039;mod_php&#039;&#039;&#039; ou &#039;&#039;&#039;&lt;/ins&gt;PHP-FPM&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* MariaDB ou MySQL&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* MariaDB ou MySQL&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Extensions PHP requises par Matomo&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Extensions PHP requises par Matomo&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l74&quot;&gt;Ligne 74 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 83 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 3. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Activation de &lt;/del&gt;PHP-FPM ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 3. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Configuration PHP avec Apache ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Identifier le mode PHP utilisé ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;bash&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;apache2ctl -M 2&amp;gt;/dev/null | grep -E &#039;php_module|proxy_fcgi_module|mpm_&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;systemctl list-units --all &#039;php*-fpm.service&#039; --no-pager&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;php -v&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;Attention :&#039;&#039;&#039; la présence du module proxy_fcgi_module ne signifie pas nécessairement que &lt;/ins&gt;PHP-FPM &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;est utilisé. Il faut également vérifier les VirtualHosts et les gestionnaires PHP configurés.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Cas 1 : Apache avec mod_php &lt;/ins&gt;==&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dans cette configuration, PHP est exécuté directement par Apache.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Exemple observé sur AD64 :&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;text&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mpm_prefork_module (shared)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;php_module (shared)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Aucun service PHP-FPM n&#039;est nécessaire.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Vérifier qu&#039;Apache fonctionne :&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;bash&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;systemctl is-active apache2&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pour une nouvelle installation utilisant ce mode, installer le module Apache correspondant à la version PHP disponible, par exemple :&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;bash&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sudo apt install libapache2-mod-php&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Ne pas modifier le mode d&#039;exécution PHP d&#039;une VM existante sans vérifier les autres applications hébergées.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Exemple &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pour &lt;/del&gt;PHP 8.4 :&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Cas 2 : Apache avec PHP-FPM ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PHP-FPM est une autre architecture possible, notamment lorsqu&#039;une VM utilise plusieurs pools PHP.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Exemple &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;avec &lt;/ins&gt;PHP 8.4 :&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo apt install php8.4-fpm&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo apt install php8.4-fpm&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo a2enmod proxy_fcgi setenvif&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo a2enmod proxy_fcgi setenvif&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo a2enconf php8.4-fpm&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo a2enconf php8.4-fpm&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sudo apache2ctl configtest&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo systemctl reload apache2&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo systemctl reload apache2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Vérifier &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;le service &lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Vérifier &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ensuite &lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;systemctl &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;status &lt;/del&gt;php8.4-fpm&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;systemctl &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;is-active &lt;/ins&gt;php8.4-fpm&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Attention &lt;/del&gt;:&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sur une VM hébergeant &lt;/del&gt;plusieurs applications PHP, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vérifier les configurations Apache existantes avant &lt;/del&gt;d&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;activer &lt;/del&gt;une configuration PHP-FPM &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;globale&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Important &lt;/ins&gt;:&#039;&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;si &lt;/ins&gt;plusieurs applications &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;utilisent différentes versions de &lt;/ins&gt;PHP, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;privilégier une configuration explicite par VirtualHost ou par pool plutôt que l&#039;activation systématique &lt;/ins&gt;d&#039;une configuration &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;globale.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Retour d&#039;expérience AD64 — octobre 2026 ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;L&#039;installation Matomo 5.10.1 sur AD64 utilise :&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Apache 2.4&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PHP 8.4&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mod_php&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mpm_prefork&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;MariaDB&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Aucun service &lt;/ins&gt;PHP-FPM &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;n&#039;est actif.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Cette configuration est fonctionnelle et ne nécessite aucune modification&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 4. Préparation de MariaDB ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 4. Préparation de MariaDB ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 20 Oct 2026 10:56:09 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:Matomo/Installation</comments>
		</item>
		<item>
			<title>Matomo/HAProxy</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=Matomo/HAProxy&amp;diff=6515&amp;oldid=6507</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=Matomo/HAProxy&amp;diff=6515&amp;oldid=6507</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Exemple générique : &lt;/span&gt; &lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 20 octobre 2026 à 10:51&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;fr&quot;&gt;(7 versions intermédiaires par le même utilisateur non affichées)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l106&quot;&gt;Ligne 106 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 106 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ajouter les règles suivantes dans le frontend HAProxy approprié :&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ajouter les règles suivantes dans le frontend HAProxy approprié :&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;haproxy&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;yaml&lt;/ins&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# MATOMO - PROJET&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# MATOMO - PROJET&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;acl host_projet_matomo hdr(host),host_only -i matomo.exemple.fr&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;acl host_projet_matomo hdr(host),host_only -i matomo.exemple.fr&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l133&quot;&gt;Ligne 133 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 133 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Exemple HTTPS ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Exemple HTTPS ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;haproxy&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;yaml&lt;/ins&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;backend back_ssl_projet_matomo&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;backend back_ssl_projet_matomo&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     server SSLPROJETMATOMO 10.0.0.X:443 check ssl verify none sni str(matomo.exemple.fr)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     server SSLPROJETMATOMO 10.0.0.X:443 check ssl verify none sni str(matomo.exemple.fr)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l148&quot;&gt;Ligne 148 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 148 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Un backend HTTP peut également être utilisé sur un réseau interne maîtrisé :&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Un backend HTTP peut également être utilisé sur un réseau interne maîtrisé :&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;haproxy&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;yaml&lt;/ins&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;backend back_projet_matomo&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;backend back_projet_matomo&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     server PROJETMATOMO 10.0.0.X:80 check&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     server PROJETMATOMO 10.0.0.X:80 check&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l178&quot;&gt;Ligne 178 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 178 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 7. Déploiement avec Ansible ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 7. Déploiement avec Ansible ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Voir aussi la configuration du WAF avec ansible : [[WAF_2026#Ansible|WAF 2026]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Modification ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Modification ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l327&quot;&gt;Ligne 327 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 327 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Configuration HAProxy ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Configuration HAProxy ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;haproxy&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;yaml&lt;/ins&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# AD64 MATOMO&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# AD64 MATOMO&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;acl host_ad64_matomo hdr(host),host_only -i ad64-matomo.pleade.com&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;acl host_ad64_matomo hdr(host),host_only -i ad64-matomo.pleade.com&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l344&quot;&gt;Ligne 344 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 344 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Backend HTTPS existant :&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Backend HTTPS existant :&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;haproxy&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;yaml&lt;/ins&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;backend back_ssl_ad64_matomo&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;backend back_ssl_ad64_matomo&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     server SSLAD64MATOMO 10.0.0.41:443 check ssl verify none sni str(ad64-matomo.pleade.com)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     server SSLAD64MATOMO 10.0.0.41:443 check ssl verify none sni str(ad64-matomo.pleade.com)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 20 Oct 2026 10:51:01 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:Matomo/HAProxy</comments>
		</item>
		<item>
			<title>Matomo/HAProxy</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=Matomo/HAProxy&amp;diff=6507&amp;oldid=0</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=Matomo/HAProxy&amp;diff=6507&amp;oldid=0</guid>
			<description>&lt;p&gt;Page créée avec « = Publication et sécurisation de Matomo avec HAProxy =  == Objectif ==  Cette procédure décrit la publication d&amp;#039;une instance Matomo derrière les répartiteurs HAProxy ... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Publication et sécurisation de Matomo avec HAProxy =&lt;br /&gt;
&lt;br /&gt;
== Objectif ==&lt;br /&gt;
&lt;br /&gt;
Cette procédure décrit la publication d&amp;#039;une instance Matomo derrière les répartiteurs HAProxy d&amp;#039;AJLSM.&lt;br /&gt;
&lt;br /&gt;
Elle permet de :&lt;br /&gt;
&lt;br /&gt;
* Publier Matomo en HTTPS.&lt;br /&gt;
* Autoriser les requêtes de collecte des statistiques provenant des visiteurs.&lt;br /&gt;
* Réserver l&amp;#039;interface d&amp;#039;administration aux adresses IP autorisées.&lt;br /&gt;
* Déployer une configuration identique sur les deux HAProxy à l&amp;#039;aide d&amp;#039;Ansible.&lt;br /&gt;
* Vérifier le fonctionnement depuis une connexion extérieure.&lt;br /&gt;
&lt;br /&gt;
Cette procédure complète :&lt;br /&gt;
&lt;br /&gt;
* [[Matomo/Installation]]&lt;br /&gt;
* [[Matomo/Apache]]&lt;br /&gt;
* [[Matomo/Drupal]]&lt;br /&gt;
* [[Matomo/Debug]]&lt;br /&gt;
&lt;br /&gt;
== 1. Architecture ==&lt;br /&gt;
&lt;br /&gt;
Dans l&amp;#039;infrastructure AJLSM, le trafic suit généralement le chemin suivant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Navigateur du visiteur&lt;br /&gt;
        |&lt;br /&gt;
        | HTTPS&lt;br /&gt;
        v&lt;br /&gt;
HAProxy (haproxy-01 / haproxy-02)&lt;br /&gt;
        |&lt;br /&gt;
        | HTTPS ou HTTP interne&lt;br /&gt;
        v&lt;br /&gt;
VM applicative&lt;br /&gt;
        |&lt;br /&gt;
        v&lt;br /&gt;
Apache + PHP-FPM + Matomo&lt;br /&gt;
        |&lt;br /&gt;
        v&lt;br /&gt;
MariaDB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le navigateur charge le JavaScript Matomo et transmet les données de fréquentation au serveur Matomo.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important :&amp;#039;&amp;#039;&amp;#039; la collecte des statistiques doit fonctionner pour les visiteurs extérieurs, même lorsque l&amp;#039;interface d&amp;#039;administration Matomo est réservée à AJLSM.&lt;br /&gt;
&lt;br /&gt;
== 2. Prérequis ==&lt;br /&gt;
&lt;br /&gt;
Avant de modifier HAProxy, vérifier :&lt;br /&gt;
&lt;br /&gt;
* Que Matomo fonctionne sur la VM applicative.&lt;br /&gt;
* Que le VirtualHost Apache est configuré.&lt;br /&gt;
* Que le nom DNS public de Matomo est défini.&lt;br /&gt;
* Que le certificat HTTPS public est disponible sur HAProxy.&lt;br /&gt;
* Que le backend Matomo est joignable depuis les répartiteurs.&lt;br /&gt;
* Que l&amp;#039;adresse IP ou le réseau autorisé pour l&amp;#039;administration est connu.&lt;br /&gt;
&lt;br /&gt;
La configuration HAProxy est gérée par Ansible. Les modifications doivent être réalisées dans les fichiers sources du dépôt `ansible-ajlsm`, et non directement dans `/etc/haproxy/haproxy.cfg` sur les serveurs.&lt;br /&gt;
&lt;br /&gt;
== 3. Paramètres à personnaliser ==&lt;br /&gt;
&lt;br /&gt;
Pour chaque nouvelle installation, identifier les paramètres suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Paramètre&lt;br /&gt;
! Exemple&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Domaine Matomo&lt;br /&gt;
| matomo.exemple.fr&lt;br /&gt;
| Nom DNS public de Matomo&lt;br /&gt;
|-&lt;br /&gt;
| Backend&lt;br /&gt;
| back_ssl_projet_matomo&lt;br /&gt;
| Nom du backend HAProxy&lt;br /&gt;
|-&lt;br /&gt;
| Adresse de la VM&lt;br /&gt;
| 10.0.0.X&lt;br /&gt;
| Adresse privée de la VM hébergeant Matomo&lt;br /&gt;
|-&lt;br /&gt;
| Port backend&lt;br /&gt;
| 443&lt;br /&gt;
| Port HTTPS interne, si utilisé&lt;br /&gt;
|-&lt;br /&gt;
| ACL des administrateurs&lt;br /&gt;
| allowed_ajlsm&lt;br /&gt;
| Adresses IP autorisées à accéder à l&amp;#039;interface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 4. Configuration des ACL ==&lt;br /&gt;
&lt;br /&gt;
=== Principe ===&lt;br /&gt;
&lt;br /&gt;
Deux chemins sont nécessaires au suivi Matomo standard :&lt;br /&gt;
&lt;br /&gt;
* `/matomo.js` : chargement du JavaScript de suivi.&lt;br /&gt;
* `/matomo.php` : réception des données de fréquentation.&lt;br /&gt;
&lt;br /&gt;
Ces deux chemins doivent rester accessibles publiquement.&lt;br /&gt;
&lt;br /&gt;
Les autres chemins de l&amp;#039;interface Matomo sont réservés aux adresses IP autorisées.&lt;br /&gt;
&lt;br /&gt;
=== Exemple générique ===&lt;br /&gt;
&lt;br /&gt;
Ajouter les règles suivantes dans le frontend HAProxy approprié :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;haproxy&amp;quot;&amp;gt;&lt;br /&gt;
# MATOMO - PROJET&lt;br /&gt;
acl host_projet_matomo hdr(host),host_only -i matomo.exemple.fr&lt;br /&gt;
&lt;br /&gt;
# Ressources de collecte accessibles publiquement&lt;br /&gt;
acl projet_matomo_tracking path -i /matomo.js /matomo.php&lt;br /&gt;
&lt;br /&gt;
# Interface Matomo réservée à AJLSM&lt;br /&gt;
http-request deny if host_projet_matomo !allowed_ajlsm !projet_matomo_tracking&lt;br /&gt;
&lt;br /&gt;
# Redirection HTTP vers HTTPS&lt;br /&gt;
http-request redirect scheme https if host_projet_matomo !{ ssl_fc }&lt;br /&gt;
&lt;br /&gt;
# Routage vers le backend Matomo&lt;br /&gt;
use_backend back_ssl_projet_matomo if host_projet_matomo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attention :&amp;#039;&amp;#039;&amp;#039; cet exemple utilise l&amp;#039;ACL `allowed_ajlsm` déjà présente dans l&amp;#039;infrastructure AJLSM. Vérifier son existence et son contenu avant de déployer la configuration.&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;ACL `path -i` effectue une correspondance exacte des chemins. Elle ne rend pas accessibles les autres pages de l&amp;#039;administration Matomo.&lt;br /&gt;
&lt;br /&gt;
Cette configuration est adaptée au suivi JavaScript standard. Si des fonctionnalités supplémentaires nécessitent d&amp;#039;autres points d&amp;#039;accès, leurs chemins doivent être étudiés séparément avant toute ouverture.&lt;br /&gt;
&lt;br /&gt;
== 5. Configuration du backend ==&lt;br /&gt;
&lt;br /&gt;
=== Exemple HTTPS ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;haproxy&amp;quot;&amp;gt;&lt;br /&gt;
backend back_ssl_projet_matomo&lt;br /&gt;
    server SSLPROJETMATOMO 10.0.0.X:443 check ssl verify none sni str(matomo.exemple.fr)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remplacer l&amp;#039;adresse IP, le nom du serveur et le nom de domaine par les paramètres du projet.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Sécurité :&amp;#039;&amp;#039;&amp;#039; `verify none` désactive la vérification du certificat présenté par le backend. Cette configuration existe sur AD64, mais ne doit pas être considérée comme une recommandation générale.&lt;br /&gt;
&lt;br /&gt;
Pour une nouvelle installation, privilégier une validation TLS du backend avec une autorité de certification appropriée lorsque l&amp;#039;architecture le permet.&lt;br /&gt;
&lt;br /&gt;
=== Backend HTTP ===&lt;br /&gt;
&lt;br /&gt;
Un backend HTTP peut également être utilisé sur un réseau interne maîtrisé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;haproxy&amp;quot;&amp;gt;&lt;br /&gt;
backend back_projet_matomo&lt;br /&gt;
    server PROJETMATOMO 10.0.0.X:80 check&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le choix entre HTTP et HTTPS interne dépend de l&amp;#039;architecture du projet et des exigences de sécurité.&lt;br /&gt;
&lt;br /&gt;
== 6. Certificats HTTPS ==&lt;br /&gt;
&lt;br /&gt;
Dans l&amp;#039;infrastructure AJLSM, les certificats publics HAProxy peuvent être gérés par `acme.sh`.&lt;br /&gt;
&lt;br /&gt;
Sur les serveurs HAProxy concernés, vérifier :&lt;br /&gt;
&lt;br /&gt;
* L&amp;#039;existence du certificat pour le domaine Matomo.&lt;br /&gt;
* Sa date d&amp;#039;expiration.&lt;br /&gt;
* La configuration de renouvellement automatique.&lt;br /&gt;
* Le mécanisme de déploiement du certificat dans HAProxy.&lt;br /&gt;
&lt;br /&gt;
Exemple de vérification depuis un poste client :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
openssl s_client \&lt;br /&gt;
  -connect matomo.exemple.fr:443 \&lt;br /&gt;
  -servername matomo.exemple.fr &amp;lt;/dev/null 2&amp;gt;/dev/null \&lt;br /&gt;
  | openssl x509 -noout -subject -issuer -dates&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La présence d&amp;#039;une tâche automatique de renouvellement ne garantit pas à elle seule que le déploiement d&amp;#039;un nouveau certificat fonctionnera. Le renouvellement et le rechargement effectif du certificat doivent être contrôlés.&lt;br /&gt;
&lt;br /&gt;
== 7. Déploiement avec Ansible ==&lt;br /&gt;
&lt;br /&gt;
=== Modification ===&lt;br /&gt;
&lt;br /&gt;
Depuis le Mac d&amp;#039;administration :&lt;br /&gt;
&lt;br /&gt;
# Ouvrir le dépôt `ansible-ajlsm`.&lt;br /&gt;
# Modifier la configuration HAProxy dans les sources Ansible.&lt;br /&gt;
# Ajouter les ACL et le routage du nouveau domaine Matomo.&lt;br /&gt;
# Vérifier que les backends sont définis.&lt;br /&gt;
# Ne pas modifier directement les configurations générées sur les deux serveurs.&lt;br /&gt;
&lt;br /&gt;
=== Vérification de la syntaxe du playbook ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ansible-playbook -i inventory ./plays/deploy.haproxy.yml \&lt;br /&gt;
  --limit ajlsm_loadbalancer --syntax-check&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Simulation du déploiement ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ansible-playbook -i inventory ./plays/deploy.haproxy.yml \&lt;br /&gt;
  --limit ajlsm_loadbalancer --check --diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifier :&lt;br /&gt;
&lt;br /&gt;
* Que les modifications sont identiques sur les deux HAProxy.&lt;br /&gt;
* Que seuls les blocs attendus changent.&lt;br /&gt;
* Qu&amp;#039;aucune configuration d&amp;#039;un autre client n&amp;#039;est modifiée.&lt;br /&gt;
* Qu&amp;#039;aucune erreur n&amp;#039;est signalée.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important :&amp;#039;&amp;#039;&amp;#039; le mode `--check` est une simulation. Il ne garantit pas à lui seul le succès du déploiement réel ni le comportement des ACL en production.&lt;br /&gt;
&lt;br /&gt;
=== Déploiement réel ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ansible-playbook -i inventory ./plays/deploy.haproxy.yml \&lt;br /&gt;
  --limit ajlsm_loadbalancer --diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifier le résultat du playbook sur les deux serveurs.&lt;br /&gt;
&lt;br /&gt;
Si le playbook prévoit un redémarrage ou un rechargement HAProxy, contrôler ensuite que les services restent actifs et que les applications existantes répondent normalement.&lt;br /&gt;
&lt;br /&gt;
== 8. Vérification depuis une connexion extérieure ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important :&amp;#039;&amp;#039;&amp;#039; effectuer les tests depuis une connexion qui n&amp;#039;utilise ni l&amp;#039;adresse IP publique du bureau ni le VPN AJLSM.&lt;br /&gt;
&lt;br /&gt;
Une connexion autorisée ne permet pas de vérifier correctement le refus d&amp;#039;accès à l&amp;#039;administration.&lt;br /&gt;
&lt;br /&gt;
=== Tester les ressources de suivi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
MATOMO_URL=&amp;quot;https://matomo.exemple.fr&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for RESOURCE in matomo.js matomo.php; do&lt;br /&gt;
    echo &amp;quot;===== /$RESOURCE =====&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    curl -sS -o /dev/null -w &amp;quot;HTTP %{http_code}\n&amp;quot; \&lt;br /&gt;
        &amp;quot;$MATOMO_URL/$RESOURCE&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Résultats attendus pour l&amp;#039;installation standard :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ressource&lt;br /&gt;
! Résultat attendu&lt;br /&gt;
|-&lt;br /&gt;
| /matomo.js&lt;br /&gt;
| HTTP 200&lt;br /&gt;
|-&lt;br /&gt;
| /matomo.php&lt;br /&gt;
| Accessible sans HTTP 403 HAProxy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Remarque :&amp;#039;&amp;#039;&amp;#039; une réponse HTTP 200 de `matomo.php` sans paramètres de suivi ne constitue pas une preuve de collecte effective.&lt;br /&gt;
&lt;br /&gt;
=== Tester la protection de l&amp;#039;administration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -sS -o /dev/null -w &amp;quot;HTTP %{http_code}\n&amp;quot; \&lt;br /&gt;
    &amp;quot;$MATOMO_URL/&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Résultat attendu depuis une adresse IP extérieure non autorisée :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
HTTP 403&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tester depuis une adresse autorisée ===&lt;br /&gt;
&lt;br /&gt;
Depuis le réseau AJLSM ou un accès VPN autorisé, vérifier que l&amp;#039;interface Matomo reste accessible et que l&amp;#039;authentification Matomo fonctionne.&lt;br /&gt;
&lt;br /&gt;
== 9. Vérification de la collecte ==&lt;br /&gt;
&lt;br /&gt;
Une fois les règles HAProxy appliquées :&lt;br /&gt;
&lt;br /&gt;
# Ouvrir une application Drupal ou Pleade suivie par Matomo.&lt;br /&gt;
# Naviguer sur plusieurs pages publiques.&lt;br /&gt;
# Vérifier l&amp;#039;envoi des requêtes de suivi dans les outils réseau du navigateur.&lt;br /&gt;
# Vérifier l&amp;#039;apparition des visites dans l&amp;#039;interface Matomo.&lt;br /&gt;
&lt;br /&gt;
Pour une vérification directe en base :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT&lt;br /&gt;
    idsite,&lt;br /&gt;
    COUNT(*) AS visites,&lt;br /&gt;
    MAX(visit_last_action_time) AS derniere_activite&lt;br /&gt;
FROM matomo_log_visit&lt;br /&gt;
GROUP BY idsite;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette requête doit être exécutée dans la base Matomo avec un compte disposant des droits nécessaires.&lt;br /&gt;
&lt;br /&gt;
Voir [[Matomo/Drupal]] et [[Matomo/Debug]].&lt;br /&gt;
&lt;br /&gt;
== 10. Exemple validé : AD64 — octobre 2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Environnement ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Élément&lt;br /&gt;
! Valeur&lt;br /&gt;
|-&lt;br /&gt;
| Serveur Matomo&lt;br /&gt;
| ad64&lt;br /&gt;
|-&lt;br /&gt;
| Domaine&lt;br /&gt;
| ad64-matomo.pleade.com&lt;br /&gt;
|-&lt;br /&gt;
| Adresse privée de la VM&lt;br /&gt;
| 10.0.0.41&lt;br /&gt;
|-&lt;br /&gt;
| Backend HTTPS&lt;br /&gt;
| back_ssl_ad64_matomo&lt;br /&gt;
|-&lt;br /&gt;
| Répartiteurs&lt;br /&gt;
| haproxy-01 et haproxy-02&lt;br /&gt;
|-&lt;br /&gt;
| Applications suivies&lt;br /&gt;
| Drupal Internet et Drupal Salle de lecture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Configuration HAProxy ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;haproxy&amp;quot;&amp;gt;&lt;br /&gt;
# AD64 MATOMO&lt;br /&gt;
acl host_ad64_matomo hdr(host),host_only -i ad64-matomo.pleade.com&lt;br /&gt;
&lt;br /&gt;
# Points de collecte accessibles publiquement&lt;br /&gt;
acl ad64_matomo_tracking path -i /matomo.js /matomo.php&lt;br /&gt;
&lt;br /&gt;
# Administration réservée à AJLSM&lt;br /&gt;
http-request deny if host_ad64_matomo !allowed_ajlsm !ad64_matomo_tracking&lt;br /&gt;
&lt;br /&gt;
http-request redirect scheme https if host_ad64_matomo !{ ssl_fc }&lt;br /&gt;
&lt;br /&gt;
use_backend back_ssl_ad64_matomo if host_ad64_matomo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Backend HTTPS existant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;haproxy&amp;quot;&amp;gt;&lt;br /&gt;
backend back_ssl_ad64_matomo&lt;br /&gt;
    server SSLAD64MATOMO 10.0.0.41:443 check ssl verify none sni str(ad64-matomo.pleade.com)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;ancien backend HTTP `back_ad64_matomo` a été conservé sans modification, bien qu&amp;#039;il ne soit plus utilisé par ce routage.&lt;br /&gt;
&lt;br /&gt;
=== Résultats des tests ===&lt;br /&gt;
&lt;br /&gt;
Les vérifications réalisées le 20 octobre 2026 depuis une connexion extérieure au bureau ont donné :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Test&lt;br /&gt;
! Résultat&lt;br /&gt;
|-&lt;br /&gt;
| https://ad64-matomo.pleade.com/matomo.js&lt;br /&gt;
| HTTP 200&lt;br /&gt;
|-&lt;br /&gt;
| https://ad64-matomo.pleade.com/matomo.php&lt;br /&gt;
| HTTP 200&lt;br /&gt;
|-&lt;br /&gt;
| https://ad64-matomo.pleade.com/&lt;br /&gt;
| HTTP 403&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les visites Drupal Internet et Salle de lecture avaient également été enregistrées dans MariaDB, avec les identifiants Matomo 2 et 3.&lt;br /&gt;
&lt;br /&gt;
La collecte et la restriction d&amp;#039;accès ont donc été vérifiées.&lt;br /&gt;
&lt;br /&gt;
== 11. Points de vigilance ==&lt;br /&gt;
&lt;br /&gt;
* Ne jamais ouvrir toute l&amp;#039;interface Matomo à Internet uniquement pour permettre la collecte.&lt;br /&gt;
* Ne pas autoriser systématiquement les adresses IP du client à accéder à l&amp;#039;administration.&lt;br /&gt;
* Ne pas bloquer les points de collecte nécessaires aux visiteurs.&lt;br /&gt;
* Ne pas modifier directement les fichiers HAProxy générés par Ansible.&lt;br /&gt;
* Tester depuis une véritable connexion extérieure.&lt;br /&gt;
* Vérifier le certificat HTTPS et son renouvellement.&lt;br /&gt;
* Vérifier que la collecte réelle fonctionne, au-delà du simple chargement du JavaScript.&lt;br /&gt;
&lt;br /&gt;
== 12. Maintenance et diagnostic ==&lt;br /&gt;
&lt;br /&gt;
En cas d&amp;#039;anomalie, vérifier successivement :&lt;br /&gt;
&lt;br /&gt;
# La résolution DNS du domaine Matomo.&lt;br /&gt;
# Le certificat HTTPS présenté par HAProxy.&lt;br /&gt;
# La correspondance de l&amp;#039;ACL `host`.&lt;br /&gt;
# Les règles `http-request deny`.&lt;br /&gt;
# Les chemins autorisés pour le suivi.&lt;br /&gt;
# L&amp;#039;état du backend HAProxy.&lt;br /&gt;
# La disponibilité d&amp;#039;Apache et PHP-FPM sur la VM.&lt;br /&gt;
# La réception effective des visites dans Matomo.&lt;br /&gt;
&lt;br /&gt;
Voir [[Matomo/Debug]] et [[Matomo/Maintenance]].&lt;/div&gt;</description>
			<pubDate>Tue, 20 Oct 2026 10:40:43 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:Matomo/HAProxy</comments>
		</item>
		<item>
			<title>Matomo</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=Matomo&amp;diff=6506&amp;oldid=6326</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=Matomo&amp;diff=6506&amp;oldid=6326</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Matomo – Portails d&amp;#039;archives numériques : &lt;/span&gt; &lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 20 octobre 2026 à 10:35&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot;&gt;Ligne 6 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 6 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Ubuntu 18.04 et sur Ubuntu 24.04&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Ubuntu 18.04 et sur Ubuntu 24.04&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Apache&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Apache&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Haproxy&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* PHP-FPM&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* PHP-FPM&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Drupal 10&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Drupal 10&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot;&gt;Ligne 16 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 17 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Matomo/Apache]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Matomo/Apache]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Matomo/Drupal]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Matomo/Drupal]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Matomo/HAProxy]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Matomo/Maintenance]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Matomo/Recherche]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Matomo/Recherche]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Matomo/Pleade]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Matomo/Pleade]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 20 Oct 2026 10:35:23 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:Matomo</comments>
		</item>
		<item>
			<title>Matomo/Drupal</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=Matomo/Drupal&amp;diff=6505&amp;oldid=5990</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=Matomo/Drupal&amp;diff=6505&amp;oldid=5990</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.ajlsm.com/index.php?title=Matomo/Drupal&amp;amp;diff=6505&amp;amp;oldid=5990&quot;&gt;Voir les modifications&lt;/a&gt;</description>
			<pubDate>Tue, 20 Oct 2026 10:30:22 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:Matomo/Drupal</comments>
		</item>
		<item>
			<title>Matomo/Apache</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=Matomo/Apache&amp;diff=6504&amp;oldid=5989</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=Matomo/Apache&amp;diff=6504&amp;oldid=5989</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.ajlsm.com/index.php?title=Matomo/Apache&amp;amp;diff=6504&amp;amp;oldid=5989&quot;&gt;Voir les modifications&lt;/a&gt;</description>
			<pubDate>Tue, 20 Oct 2026 10:29:59 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:Matomo/Apache</comments>
		</item>
		<item>
			<title>Matomo/Installation</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=Matomo/Installation&amp;diff=6503&amp;oldid=6338</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=Matomo/Installation&amp;diff=6503&amp;oldid=6338</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;5. Installation des fichiers Matomo : &lt;/span&gt; &lt;/p&gt;
&lt;a href=&quot;https://mediawiki.ajlsm.com/index.php?title=Matomo/Installation&amp;amp;diff=6503&amp;amp;oldid=6338&quot;&gt;Voir les modifications&lt;/a&gt;</description>
			<pubDate>Tue, 20 Oct 2026 10:28:13 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:Matomo/Installation</comments>
		</item>
		<item>
			<title>AJLSM-DEPLOY — Version 1.0.2</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=AJLSM-DEPLOY_%E2%80%94_Version_1.0.2&amp;diff=6501&amp;oldid=0</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=AJLSM-DEPLOY_%E2%80%94_Version_1.0.2&amp;diff=6501&amp;oldid=0</guid>
			<description>&lt;p&gt;Page créée avec « = AJLSM-DEPLOY — Version 1.0.2 =  Mise à jour : 19 octobre 2026. Ce guide décrit les scripts du dossier &amp;#039;&amp;#039;&amp;#039;ajlsm-deploy-v1.0.2&amp;#039;&amp;#039;&amp;#039;, à installer dans &amp;#039;&amp;#039;&amp;#039;/opt/ajlsm-depl... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= AJLSM-DEPLOY — Version 1.0.2 =&lt;br /&gt;
&lt;br /&gt;
Mise à jour : 19 octobre 2026. Ce guide décrit les scripts du dossier&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ajlsm-deploy-v1.0.2&amp;#039;&amp;#039;&amp;#039;, à installer dans &amp;#039;&amp;#039;&amp;#039;/opt/ajlsm-deploy/v1&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
Ce chemin est le répertoire définitif de lancement sur le nœud Proxmox ;&lt;br /&gt;
les anciennes copies de /usr/local/sbin ne sont pas remplacées implicitement.&lt;br /&gt;
Les lots NFS, Apache et Matomo précédents sont historiques. Garder scripts,&lt;br /&gt;
modules et modèles du même lot. Rotation des logs et update.sh hors périmètre.&lt;br /&gt;
&lt;br /&gt;
== Périmètre et architecture ==&lt;br /&gt;
&lt;br /&gt;
Les scripts tournent sur le nœud Proxmox. Ils configurent le clone depuis un&lt;br /&gt;
projet YAML strict, utilisent QEMU Guest Agent pour les opérations invitées,&lt;br /&gt;
et SSH pour certaines vérifications/postconfigurations. Le moteur principal&lt;br /&gt;
orchestre les phases ; les modules spécialisés traitent racine, postconfiguration,&lt;br /&gt;
NFS, Apache, SQL Matomo, activation Matomo et inventaire des tâches planifiées.&lt;br /&gt;
Les helpers communs valident le YAML et affichent les commandes suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ce n&amp;#039;est pas un gestionnaire complet de l&amp;#039;infrastructure externe.&amp;#039;&amp;#039;&amp;#039; DNS,&lt;br /&gt;
OPNsense, Ansible, autorisation Eole3 et certificats publics ont leurs procédures.&lt;br /&gt;
Le script ne détruit pas la VM existante et ne modifie pas TEMPLATE3.&lt;br /&gt;
&lt;br /&gt;
== Répertoire définitif et exemple MERCURE3 ==&lt;br /&gt;
&lt;br /&gt;
Les cinq programmes affichent la version 1.0.2 avec --version.&lt;br /&gt;
Leur --help rappelle le même répertoire et le même exemple que cette page.&lt;br /&gt;
Ces valeurs sont centralisées dans ajlsm_deploy_version.py.&lt;br /&gt;
Les suggestions visent les programmes du dossier réellement exécuté :&lt;br /&gt;
utiliser le lot installé ci-dessous, pas un ancien dossier de recette.&lt;br /&gt;
&lt;br /&gt;
Sur Saturne3, après installation du lot complet selon INSTALLATION-V1.txt :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /opt/ajlsm-deploy/v1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toutes les commandes ./ de cette page se lancent depuis ce répertoire.&lt;br /&gt;
Depuis un autre répertoire du même nœud, utiliser le chemin absolu du&lt;br /&gt;
programme sous /opt/ajlsm-deploy/v1 et celui du YAML.&lt;br /&gt;
Les YAML opérationnels restent sous /etc/ajlsm/deploy/projets/,&lt;br /&gt;
les journaux sous /var/lib/ajlsm-deploy/cycles/. Les archives/recettes&lt;br /&gt;
sous /root/ajlsm-deploy ne sont plus le répertoire de lancement v1.&lt;br /&gt;
Ne pas mélanger les modules ou changer de lot pendant un cycle.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;exemples/mercure3-exemple.yaml&amp;#039;&amp;#039;&amp;#039; est un exemple renseigné avec les IP&lt;br /&gt;
réelles de MERCURE3, pas une préconfiguration générique.&lt;br /&gt;
Les commandes MERCURE3 de ce guide sont des exemples à adapter au projet.&lt;br /&gt;
Le nom de la VM, ses DNS et ses fichiers YAML opérationnels existants ne sont&lt;br /&gt;
pas renommés. En particulier, conserver le chemin du YAML pour la reprise :&lt;br /&gt;
le journal est indexé par ce chemin absolu.&lt;br /&gt;
modeles/projet-vierge.yaml demeure le modèle générique sans valeurs.&lt;br /&gt;
&lt;br /&gt;
== Prérequis impératif : OS de TEMPLATE3 à jour ==&lt;br /&gt;
&lt;br /&gt;
Avant TOUT nouveau clonage, maintenir l’OS Ubuntu de TEMPLATE3 à jour.&lt;br /&gt;
La VM clonée hérite de cet état. Maintenance manuelle distincte : les scripts&lt;br /&gt;
de déploiement ne mettent pas le modèle à jour. Prévoir une sauvegarde&lt;br /&gt;
récupérable et une fenêtre sans conflit d’IP avec les clones existants.&lt;br /&gt;
Ne pas démarrer ni convertir à l’aveugle un modèle marqué template Proxmox.&lt;br /&gt;
&lt;br /&gt;
Dans la console de TEMPLATE3, après vérification de son identité :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
hostname -f&lt;br /&gt;
cat /etc/os-release&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade&lt;br /&gt;
apt list --upgradable&lt;br /&gt;
if [ -f /var/run/reboot-required ]; then&lt;br /&gt;
  cat /var/run/reboot-required&lt;br /&gt;
  cat /var/run/reboot-required.pkgs 2&amp;gt;/dev/null || true&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examiner toutes les erreurs, messages APT et paquets retenus/différés.&lt;br /&gt;
apt update seul ne met pas les paquets à jour. Pas de -y, full-upgrade,&lt;br /&gt;
do-release-upgrade ou update.sh automatique. Si un redémarrage est demandé :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attendre le retour du modèle, puis dans sa console :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
hostname -f&lt;br /&gt;
uname -r&lt;br /&gt;
systemctl --failed&lt;br /&gt;
apt list --upgradable&lt;br /&gt;
test ! -f /var/run/reboot-required&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examiner les résultats, noter date/OS/noyau dans le registre de maintenance.&lt;br /&gt;
Après validation, arrêter proprement TEMPLATE3 :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo shutdown -h now&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis sur Saturne3 :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
qm status 506&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
506 correspond au template_vmid de cette recette : vérifier la valeur du YAML.&lt;br /&gt;
Le modèle doit être arrêté avant le clonage. Ni le lanceur ni les précontrôles&lt;br /&gt;
ne certifient automatiquement sa fraîcheur APT. Cette maintenance n’a pas&lt;br /&gt;
été réalisée par les scripts livrés. Saturne3 et HAProxy ont leur maintenance&lt;br /&gt;
distincte, non demandée ici.&lt;br /&gt;
Voir PREREQUIS-OS-ET-PUBLICATION.txt et les documentations Ubuntu :&lt;br /&gt;
[https://ubuntu.com/server/docs/how-to/software/package-management/ Gestion des paquets]&lt;br /&gt;
et [https://ubuntu.com/server/docs/how-to/software/automatic-updates/ Mises à jour automatiques].&lt;br /&gt;
&lt;br /&gt;
== Paramètres prévus avant la création ==&lt;br /&gt;
&lt;br /&gt;
* Identité projet, environnement et tags : interne, client, prod ; types YAML stricts.&lt;br /&gt;
* Ressources, template, stockage, IP privées/VPN/publique, passerelle et DNS.&lt;br /&gt;
* Domaines principal, préprod et Matomo définitifs, sans https:// ni chemin.&lt;br /&gt;
* NFS existant et droits accordés par l&amp;#039;administrateur du serveur.&lt;br /&gt;
* Activation des vhosts distincte de l&amp;#039;installation des logiciels.&lt;br /&gt;
* Noms SQL dédiés Matomo, sans secret dans le YAML.&lt;br /&gt;
&lt;br /&gt;
Référence MERCURE3 : hostname mercure3.ajlsm.com, VPN 10.0.0.43,&lt;br /&gt;
réseau données 192.168.123.27, publique 51.83.117.113. Matomo :&lt;br /&gt;
mercure3-matomo.pleade.com ; préprod : mercure3-preprod.pleade.com.&lt;br /&gt;
Ne pas conserver deux VM avec ces mêmes adresses.&lt;br /&gt;
&lt;br /&gt;
Chez OVH, principal A vers 51.83.117.113, domaines secondaires CNAME vers&lt;br /&gt;
mercure3.ajlsm.com dans la recette. Ne pas publier d&amp;#039;AAAA sans IPv6 opérationnel.&lt;br /&gt;
Pour un domaine secondaire sur la même IP, réutiliser la VIP/NAT existante si&lt;br /&gt;
elle et le filtrage traitent déjà le flux requis ; ne pas dupliquer OPNsense.&lt;br /&gt;
Le trafic public passe par la VIP HAProxy 10.0.0.32, nœuds .30 et .31.&lt;br /&gt;
&lt;br /&gt;
== Préconfiguration et contrôle ==&lt;br /&gt;
&lt;br /&gt;
modeles/projet-vierge.yaml contient des null, jamais une liste [à renseigner].&lt;br /&gt;
null est valide pour proxmox.vmid automatique, pas pour un champ obligatoire.&lt;br /&gt;
Les sections métier peuvent être omises, mais doivent être complètes si présentes.&lt;br /&gt;
exemples/mercure3-exemple.yaml prépare une recréation volontaire, pas une VM parallèle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ajlsm-deploy-yaml ./modeles/projet-vierge.yaml --with-metier --output /etc/ajlsm/deploy/projets/mercure3-initial.yaml&lt;br /&gt;
./ajlsm-deploy-yaml /etc/ajlsm/deploy/projets/mercure3-initial.yaml --check&lt;br /&gt;
./ajlsm-deploy-cycle /etc/ajlsm/deploy/projets/mercure3-initial.yaml --plan&lt;br /&gt;
./ajlsm-deploy-check /etc/ajlsm/deploy/projets/mercure3-initial.yaml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le parcours complet de l&amp;#039;assistant est désormais &amp;#039;&amp;#039;&amp;#039;--with-metier&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
NFS, domaines Matomo/Apache et SQL dédiés dans le même YAML initial.&lt;br /&gt;
Sans modèle, utiliser --new --with-metier avec un chemin inexistant.&lt;br /&gt;
Les valeurs valides existantes sont conservées ; --review les revoit aussi.&lt;br /&gt;
Le guide détaillé GUIDE-YAML.txt décrit les questions et les activations :&lt;br /&gt;
Drupal seulement si vérifié, Pleade préprod désactivé en son absence,&lt;br /&gt;
Matomo Apache false jusqu&amp;#039;à publication-matomo après pause externe.&lt;br /&gt;
Le mode --with-matomo-site reste une activation MANUELLE distincte,&lt;br /&gt;
incompatible avec --with-metier ; inutile au cycle guidé actuel.&lt;br /&gt;
OS du modèle, DNS, OPNsense, ACME sur les deux HAProxy, Ansible/whitelist&lt;br /&gt;
et autorisation NFS sont rappelés mais pas vérifiés ni enregistrés comme tels.&lt;br /&gt;
&lt;br /&gt;
Les options individuelles restent disponibles : --with-nfs, --with-matomo, --with-apache et&lt;br /&gt;
--with-matomo-sql ; --review revoit aussi les valeurs valides. --new crée un&lt;br /&gt;
nouveau chemin. Les fichiers existants ne sont pas écrasés. --check et&lt;br /&gt;
--yaml-only sont des contrôles locaux, pas une vérification d&amp;#039;infrastructure.&lt;br /&gt;
Prévoir apache.matomo.activer=false pour le cycle initial ; un projet&lt;br /&gt;
d&amp;#039;activation true est refusé par le cycle avant toute phase passant par Apache.&lt;br /&gt;
&lt;br /&gt;
== Cycle initial : dix-sept étapes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Étape !! Simulation / lecture !! Exécution&lt;br /&gt;
|-&lt;br /&gt;
| clonage || --dry-run || --clone&lt;br /&gt;
|-&lt;br /&gt;
| ressources || --resources-dry-run || --configure-resources&lt;br /&gt;
|-&lt;br /&gt;
| premier-demarrage || --first-boot-dry-run || --first-boot-apply&lt;br /&gt;
|-&lt;br /&gt;
| extension-racine || --root-grow-dry-run || --root-grow-apply&lt;br /&gt;
|-&lt;br /&gt;
| identite || --system-dry-run || --system-apply&lt;br /&gt;
|-&lt;br /&gt;
| netplan || --network-dry-run || --network-apply&lt;br /&gt;
|-&lt;br /&gt;
| activation-reseau || --network-enable-dry-run || --network-enable&lt;br /&gt;
|-&lt;br /&gt;
| audit-ssh || --ssh-audit || audit, pas de simulation distincte&lt;br /&gt;
|-&lt;br /&gt;
| securisation-ssh || aucune || --ssh-secure&lt;br /&gt;
|-&lt;br /&gt;
| mot-de-passe || aucune || --password-ajlsm&lt;br /&gt;
|-&lt;br /&gt;
| tls || aucune || --tls-apply&lt;br /&gt;
|-&lt;br /&gt;
| nfs || --nfs-dry-run puis --nfs-check || --nfs-apply&lt;br /&gt;
|-&lt;br /&gt;
| apache || --apache-dry-run || --apache-apply&lt;br /&gt;
|-&lt;br /&gt;
| matomo-sql || --matomo-sql-dry-run || --matomo-sql-prepare&lt;br /&gt;
|-&lt;br /&gt;
| tomcat-cron || --scheduled-dry-run || --scheduled-apply&lt;br /&gt;
|-&lt;br /&gt;
| taches-planifiees || --scheduled-audit || aucune modification&lt;br /&gt;
|-&lt;br /&gt;
| publication-matomo || --matomo-guided-dry-run || --matomo-guided&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Le clone est isolé avant premier démarrage. L&amp;#039;extension racine suit le premier&lt;br /&gt;
démarrage et ne doit pas être confondue avec le disque virtuel déjà agrandi.&lt;br /&gt;
Puis identité, réseau, SSH, mot de passe et certificat interne sont traités.&lt;br /&gt;
Les phases métier non demandées sont ignorées explicitement.&lt;br /&gt;
&lt;br /&gt;
=== Attente réseau pendant l&amp;#039;isolation ===&lt;br /&gt;
&lt;br /&gt;
Le journal MERCURE3 transmis montre wait-online en attente 120 secondes avant&lt;br /&gt;
activation des carriers ; le réseau est ensuite online sur les deux cartes.&lt;br /&gt;
Le lot ajoute une dispense conditionnelle liée à l&amp;#039;UUID pendant l&amp;#039;isolation,&lt;br /&gt;
dès que QGA est disponible. Les phases first-boot et system l&amp;#039;installent après&lt;br /&gt;
les confirmations et gardes ; network-enable la retire après ses contrôles&lt;br /&gt;
puis vérifie le fonctionnement normal de wait-online avant onboot.&lt;br /&gt;
Le repli réseau remet la dispense après réisolation. Pas de mask/disable,&lt;br /&gt;
pas de changement Netplan optional ou de TEMPLATE3. Les simulations n&amp;#039;écrivent&lt;br /&gt;
aucun fichier. Ce correctif reste à recetter sur un clone ; il ne nécessite&lt;br /&gt;
pas de reconstruire la VM actuelle pour continuer les étapes métier.&lt;br /&gt;
Voir CORRECTIF-WAIT-ONLINE.txt pour les deux fichiers gérés, limites et reprise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ajlsm-deploy-cycle /etc/ajlsm/deploy/projets/mercure3-initial.yaml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les confirmations OUI/NON, défaut NON, et saisies natives restent interactives.&lt;br /&gt;
Pas d&amp;#039;arrêt entre commandes réussies ; arrêt au premier refus ou erreur.&lt;br /&gt;
--agent-timeout est transmis aux phases, défaut 300 secondes, pas un timeout global.&lt;br /&gt;
Après diagnostic, --from reprend l&amp;#039;étape incluse sans refaire les précédentes.&lt;br /&gt;
Un --plan n&amp;#039;exécute rien mais ne garantit ni Proxmox ni l&amp;#039;infrastructure externe.&lt;br /&gt;
&lt;br /&gt;
== NFS : autorisation manuelle guidée ==&lt;br /&gt;
&lt;br /&gt;
Dépôt d&amp;#039;exemples : 192.168.123.202:/var/data/pleade.com-data/data,&lt;br /&gt;
point local identique, mode ro. Un autre dépôt est paramétrable ; plusieurs&lt;br /&gt;
dépôts de MERCURE3 restent une exception manuelle. Le script affiche le fichier&lt;br /&gt;
exports et la ligne à adapter sur Eole3, sans s&amp;#039;y connecter en administrateur.&lt;br /&gt;
L&amp;#039;autorisation de 192.168.123.27 en ro a été réalisée dans la recette.&lt;br /&gt;
Les autres exports et données doivent être conservés. Pas de chmod/chown récursif.&lt;br /&gt;
&lt;br /&gt;
== Apache, Drupal et Pleade ==&lt;br /&gt;
&lt;br /&gt;
Six fichiers gérés sous /etc/apache2/sites-available : HTTP et TLS pour Drupal,&lt;br /&gt;
préprod et Matomo ; fichier robots préprod séparé. Activation par symlinks selon&lt;br /&gt;
le YAML, manifeste, sauvegarde, syntaxe candidate et reload avec tentative de&lt;br /&gt;
restauration locale sur erreur. Une interruption brutale demande un diagnostic.&lt;br /&gt;
Un vhost préparé n&amp;#039;installe pas un logiciel et ne valide pas une application.&lt;br /&gt;
Les fichiers gérés modifiés hors déploiement provoquent un refus, pas un écrasement.&lt;br /&gt;
&lt;br /&gt;
Drupal hérité a été vérifié utilisable avec MariaDB et drupal_template ; son&lt;br /&gt;
vhost principal est actif dans la recette. Pas de personnalisation SQL Drupal&lt;br /&gt;
dédiée dans ce lot. Pleade n&amp;#039;est pas installé, sa préprod reste désactivée ;&lt;br /&gt;
pas d&amp;#039;appel à update.sh. Les futurs slecture et internet ne sont pas publiés.&lt;br /&gt;
&lt;br /&gt;
== Matomo : préparation SQL puis activation coordonnée ==&lt;br /&gt;
&lt;br /&gt;
Base et compte locaux dédiés : matomo_mercure3, sans adoption de matomo_template.&lt;br /&gt;
Configuration préparée root privée dans /var/lib/ajlsm-matomo-sql ; ne pas&lt;br /&gt;
transmettre ces fichiers. En fin de cycle, publication-matomo affiche la pause&lt;br /&gt;
externe, demande une attestation OUI/NON puis active Matomo avec le MÊME YAML.&lt;br /&gt;
Il passe activer=true en mémoire uniquement ; le YAML initial reste intact.&lt;br /&gt;
En mode manuel, après SQL :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ajlsm-deploy /etc/ajlsm/deploy/projets/mercure3-initial.yaml --matomo-guided-dry-run&lt;br /&gt;
./ajlsm-deploy /etc/ajlsm/deploy/projets/mercure3-initial.yaml --matomo-guided&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L’activation coordonnée conserve Drupal/Pleade. Le mode historique reste&lt;br /&gt;
possible : --with-matomo-site crée une copie d’activation, ensuite utilisée par&lt;br /&gt;
--matomo-site-dry-run puis --matomo-site-apply.&lt;br /&gt;
Ne pas utiliser --apache-apply seul pour cette transition et ne pas relancer&lt;br /&gt;
le clonage avec la copie d&amp;#039;activation. Le module désactive les anciens vhosts&lt;br /&gt;
Matomo connus, sauvegarde le cache, installe la configuration privée et active&lt;br /&gt;
le projet avec contrôle HTTPS local. Les sauvegardes peuvent contenir des secrets.&lt;br /&gt;
&lt;br /&gt;
== Certificats en prérequis et pause avant activation ==&lt;br /&gt;
&lt;br /&gt;
Recommandation : DNS puis challenge ACME stateless prêts, émettre/déployer les&lt;br /&gt;
certificats publics en prérequis, avant même le clonage backend. Le challenge&lt;br /&gt;
HAProxy ne dépend pas de Matomo. Une pause reste obligatoire à publication-matomo&lt;br /&gt;
pour vérifier les certificats et le routage restreint sur LES DEUX nœuds.&lt;br /&gt;
NON arrête proprement le cycle ; --resume reprend après préparation externe.&lt;br /&gt;
Aucune commande ACME/Ansible n’est exécutée par le script et l’attestation&lt;br /&gt;
humaine ne constitue pas une vérification automatisée.&lt;br /&gt;
&lt;br /&gt;
Le certificat interne généré dans le clone n&amp;#039;est pas le certificat public.&lt;br /&gt;
Les certificats publics sont vérifiés/générés avec acme.sh sous l&amp;#039;utilisateur&lt;br /&gt;
acme sur les deux HAProxy, l&amp;#039;un après l&amp;#039;autre. Connexion hpr puis sudo -i,&lt;br /&gt;
pas root SSH. Conserver le challenge HTTP-01 stateless avant la whitelist.&lt;br /&gt;
Émission et déploiement Matomo ont réussi sur les deux nœuds lors de la recette.&lt;br /&gt;
Un certificat valide pour le même domaine n&amp;#039;est pas à refaire parce que le&lt;br /&gt;
backend est recréé ; revérifier validité, déploiement et renouvellement.&lt;br /&gt;
&lt;br /&gt;
Ansible ajoute ACL du domaine, refus hors whitelist, redirection HTTPS et&lt;br /&gt;
backend SNI vers 10.0.0.43:443. Matomo interne MERCURE3 : allowed_ajlsm uniquement.&lt;br /&gt;
Pour un client, prévoir AJLSM et whitelist client selon les règles préprod.&lt;br /&gt;
Le backend conserve ssl verify none : l&amp;#039;identité du backend n&amp;#039;est pas validée.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ansible-playbook -i inventory ./plays/deploy.haproxy.yml --syntax-check&lt;br /&gt;
ansible-playbook -i inventory ./plays/deploy.haproxy.yml --limit haproxy01.ajlsm.lan --check --diff&lt;br /&gt;
ansible-playbook -i inventory ./plays/deploy.haproxy.yml --limit haproxy02.ajlsm.lan --check --diff&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examiner tous les diffs puis appliquer séparément en retirant --check, attendre&lt;br /&gt;
le succès du premier nœud avant le second. Aucun lancement Ansible automatique&lt;br /&gt;
depuis Proxmox. Le check-mode n&amp;#039;est pas l&amp;#039;application réelle.&lt;br /&gt;
Recette transmise : deux applications réussies, validation et restart signalés,&lt;br /&gt;
aucun failed/unreachable. Avertissement Python découvert /usr/bin/python3.10,&lt;br /&gt;
non bloquant dans ces exécutions. Aucun changement d&amp;#039;interpréteur ici.&lt;br /&gt;
&lt;br /&gt;
Tester HTTPS sans -k depuis l&amp;#039;IP autorisée puis hors whitelist. Résultats&lt;br /&gt;
transmis : 200 avec en-tête Matomo via VPN bureau, 403 hors whitelist.&lt;br /&gt;
Un HTTP 200 n&amp;#039;est pas une validation d&amp;#039;installation fonctionnelle.&lt;br /&gt;
&lt;br /&gt;
== Tâches planifiées : correction ciblée puis audit ==&lt;br /&gt;
&lt;br /&gt;
--scheduled-audit inventorie crontabs root/ajlsm/www-data, fichiers système,&lt;br /&gt;
noms des scripts périodiques, timers systemd et instances Tomcat. Les commandes&lt;br /&gt;
et arguments privés ne sont pas affichés. L&amp;#039;audit historique et l&amp;#039;inventaire&lt;br /&gt;
avant traitement confirment 13 lignes Tomcat et trois processus, sans Pleade détecté.&lt;br /&gt;
Après cycle du 18 octobre : zéro tâche Tomcat active pour les trois instances&lt;br /&gt;
vides ; processus déjà lancés conservés et archivage mensuel inchangé.&lt;br /&gt;
Les tâches des autres comptes, timers utilisateurs et contenus des scripts&lt;br /&gt;
restent hors audit. L&amp;#039;inventaire seul n&amp;#039;effectue aucune désactivation.&lt;br /&gt;
Code 0 = inventaire obtenu, pas tâches approuvées. Rotation des logs inchangée.&lt;br /&gt;
&lt;br /&gt;
La phase &amp;#039;&amp;#039;&amp;#039;tomcat-cron&amp;#039;&amp;#039;&amp;#039; a été autorisée pour ne pas reproduire ces tâches&lt;br /&gt;
inutiles sur les nouveaux clones. --scheduled-dry-run affiche les lignes&lt;br /&gt;
reconnues à commenter ; --scheduled-apply demande OUI/NON, sauvegarde la crontab&lt;br /&gt;
ajlsm et commente ces seules lignes avec un marqueur réversible. Elle ne lance&lt;br /&gt;
aucune commande de démarrage, arrêt ou nettoyage Tomcat. Le cycle l&amp;#039;exécute en&lt;br /&gt;
étape 15, puis audite le résultat en étape 16.&lt;br /&gt;
&lt;br /&gt;
Critères conservateurs : répertoire Pleade présent et entièrement vide,&lt;br /&gt;
webapps absent d&amp;#039;autre application et lien pleade vers le chemin attendu,&lt;br /&gt;
pas de contexte externe dans conf/Catalina/localhost. Une implantation non&lt;br /&gt;
vérifiable ou un contenu partiel conserve les tâches. Une commande inconnue&lt;br /&gt;
visant une instance vide bloque la phase, sans modification partielle.&lt;br /&gt;
Seules les formes exactes des commandes héritées auditées sont reconnues.&lt;br /&gt;
&lt;br /&gt;
Sauvegarde privée : /var/backups/ajlsm-scheduled/transaction-* ; journal :&lt;br /&gt;
/var/lib/ajlsm-scheduled/transaction.json. Vérification identité/UUID et&lt;br /&gt;
empreinte de la crontab avant application, relecture après installation.&lt;br /&gt;
Restauration tentée sur erreur contrôlée si elle n&amp;#039;écrase pas un changement&lt;br /&gt;
concurrent détecté. Sinon journal conservé et reprise bloquée pour examen manuel.&lt;br /&gt;
Le verrou ne protège pas contre crontab -e dans un autre terminal : ne pas&lt;br /&gt;
modifier simultanément les tâches ou déployer une application pendant la phase.&lt;br /&gt;
L&amp;#039;interface crontab ne fournit pas de comparaison-installation atomique face&lt;br /&gt;
aux outils extérieurs. Les @reboot des premiers démarrages du clone peuvent&lt;br /&gt;
déjà avoir lancé Tomcat : seuls les lancements futurs sont neutralisés.&lt;br /&gt;
Pas de réactivation automatique lors d&amp;#039;une installation Pleade ultérieure.&lt;br /&gt;
&lt;br /&gt;
== Finalisation fonctionnelle, hors déploiement piloté ==&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;installateur Matomo a confirmé « Tables créées » dans la recette. Création&lt;br /&gt;
du superadministrateur, premier site, fin de l&amp;#039;assistant et intégration du suivi&lt;br /&gt;
restent manuelles. Ne pas laisser un installateur inachevé ouvert durablement.&lt;br /&gt;
Lire FINALISATION-MATOMO.txt : reprise directe tablesCreation et avertissement&lt;br /&gt;
sur systemCheck qui supprime la configuration locale préparée en version auditée.&lt;br /&gt;
Diagnostics applicatifs non annoncés comme faits. Ne pas partager de secrets.&lt;br /&gt;
&lt;br /&gt;
== Point d’arrêt et reprise depuis tout répertoire ==&lt;br /&gt;
&lt;br /&gt;
Le nouveau lanceur conserve un journal privé sur Saturne3 dans&lt;br /&gt;
/var/lib/ajlsm-deploy/cycles/, mode 600, historique par exécution.&lt;br /&gt;
Il n’enregistre ni mots de passe, ni sortie complète des phases.&lt;br /&gt;
Il suit étape courante, dernière réussite, dates UTC, codes de sortie,&lt;br /&gt;
empreintes du YAML/lot, hôte et identité VMID/UUID de la cible.&lt;br /&gt;
Un verrou protège ce journal, pas les interventions d’un autre administrateur.&lt;br /&gt;
&lt;br /&gt;
Avec chemins absolus, depuis n’importe quel répertoire &amp;#039;&amp;#039;&amp;#039;du même nœud&amp;#039;&amp;#039;&amp;#039; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/opt/ajlsm-deploy/v1/ajlsm-deploy-cycle /etc/ajlsm/deploy/projets/mercure3-initial.yaml --status&lt;br /&gt;
/opt/ajlsm-deploy/v1/ajlsm-deploy-cycle /etc/ajlsm/deploy/projets/mercure3-initial.yaml --resume&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--status ne contacte pas Proxmox et ne crée aucun journal. --resume reprend&lt;br /&gt;
la première étape non réussie, avec contrôles et confirmations habituels.&lt;br /&gt;
Une faute « ouii » à tls se reprend donc à tls sans reclonage.&lt;br /&gt;
La reprise refuse les changements de nœud, YAML, code/ordre ou d’identité&lt;br /&gt;
VM enregistrée. Elle ne relance pas un cycle déjà terminé.&lt;br /&gt;
Après coupure brutale, en_cours signifie résultat inconnu : examiner les&lt;br /&gt;
journaux transactionnels, l’état et les processus avant reprise.&lt;br /&gt;
Le journal n’est pas une preuve de conformité permanente de l’infrastructure.&lt;br /&gt;
&lt;br /&gt;
--from étape reste une reprise explicite après diagnostic, qui démarre un&lt;br /&gt;
nouveau journal et marque les étapes antérieures ignorées, pas vérifiées.&lt;br /&gt;
Ne pas effacer les journaux pour contourner une erreur.&lt;br /&gt;
Les anciens lots sans journal ne permettent pas --resume rétroactif :&lt;br /&gt;
consulter leur sortie console puis reprendre avec --from.&lt;br /&gt;
Pour la VM actuelle, l’application de la dernière simulation Matomo n’est&lt;br /&gt;
pas confirmée. Contrôler avant de reprendre à publication-matomo, sans clonage.&lt;br /&gt;
&lt;br /&gt;
== Détails de sécurité conservés de la documentation du 16 octobre ==&lt;br /&gt;
&lt;br /&gt;
L’audit SSH lit la clé ED25519 via QEMU, vérifie son format binaire, puis&lt;br /&gt;
compare indépendamment celle exposée par ssh-keyscan. Une divergence refuse&lt;br /&gt;
la suite. Après concordance seulement, sauvegarde et remplacement atomique&lt;br /&gt;
possible de /root/.ssh/known_hosts sur Saturne3 ; les autres hôtes sont conservés,&lt;br /&gt;
y compris traitement ciblé des anciennes entrées hachées de l’IP du clone.&lt;br /&gt;
--ssh-audit n’est donc pas entièrement sans écriture.&lt;br /&gt;
--ssh-secure vérifie la syntaxe/effectivité et les connexions par clé avant/après&lt;br /&gt;
reload ; le mot de passe local reste utile à sudo.&lt;br /&gt;
--password-ajlsm utilise passwd interactif masqué ; aucun secret dans le YAML.&lt;br /&gt;
&lt;br /&gt;
La personnalisation système conserve dans la VM&lt;br /&gt;
/var/lib/ajlsm/system-personalisation/state.json et backup/. Ce journal décrit&lt;br /&gt;
une transaction, pas le cycle global. Ne pas l’effacer pour forcer une reprise.&lt;br /&gt;
La phase TLS vérifie le certificat interne /etc/ssl/ajlsm/server.crt, utilise&lt;br /&gt;
si nécessaire /usr/local/sbin/ajlsm-init-tls.sh déjà présent dans le modèle,&lt;br /&gt;
puis contrôle Apache. Cela ne valide pas les applications ou le TLS public.&lt;br /&gt;
Le README applicatif /home/ajlsm/README ne doit pas être remplacé par le&lt;br /&gt;
README-ajlsm-deploy de l’outil. Le document README-TEMPLATE3.txt est proposé&lt;br /&gt;
séparément, pas installé automatiquement.&lt;br /&gt;
&lt;br /&gt;
Validation YAML stricte : clés inconnues/répétées et types incorrects refusés ;&lt;br /&gt;
environnement/tags interne, client, prod, sans doublons ; tags [] admis ;&lt;br /&gt;
entiers positifs, mémoire minimale &amp;lt;= maximale, booléens true/false ;&lt;br /&gt;
interfaces netN/ensN uniques, IPv4/CIDR, loopback /32, DNS sans préfixe.&lt;br /&gt;
Passerelle dans le sous-réseau de son interface et distincte de la VM.&lt;br /&gt;
Serveur, bridge et stockage sont à adapter à l’infrastructure, sans liste&lt;br /&gt;
fermée inventée. Les sections métier sont désormais prises en charge :&lt;br /&gt;
l’interdiction historique d’ajouter metier ne s’applique plus à ce schéma.&lt;br /&gt;
&lt;br /&gt;
== Manuels, reprise et validation du lot ==&lt;br /&gt;
&lt;br /&gt;
Pages section 8 de la version 1.0.2 du 19 octobre : deploy, cycle, yaml, check, resources.&lt;br /&gt;
Lecture locale avec man ./man8/ajlsm-deploy.8 ; sauvegarde et installation&lt;br /&gt;
optionnelle décrites dans INSTALLATION-MANUELS.txt, sans copier les scripts.&lt;br /&gt;
Le lancement définitif se fait dans /opt/ajlsm-deploy/v1, sans copier les&lt;br /&gt;
programmes du nœud dans /usr/local/sbin. La commande invitée&lt;br /&gt;
/usr/local/sbin/ajlsm-init-tls.sh reste distincte et n&amp;#039;est pas déplacée.&lt;br /&gt;
Conserver le lot complet, modules et modèles, sans mélanger les versions.&lt;br /&gt;
Une installation du lot ne remplace pas une recette complète sur Proxmox.&lt;br /&gt;
Tests locaux sous tests/, résultats dans RAPPORT-TESTS.txt ; QGA, SQL, PHP&lt;br /&gt;
et services simulés. Ils ne prouvent pas la réussite d&amp;#039;un déploiement distant.&lt;br /&gt;
Une restauration de phase n&amp;#039;annule pas SQL ni les actions web ultérieures.&lt;br /&gt;
Ne pas effacer un journal transaction.json pour forcer une reprise.&lt;br /&gt;
&lt;br /&gt;
== Réconciliation de la page reçue du 16 octobre et état de recette ==&lt;br /&gt;
&lt;br /&gt;
Cette procédure remplace les indications historiques « 11 étapes »,&lt;br /&gt;
« NFS/Apache/Matomo hors cycle » et « aucun journal global ». Le nouveau lot&lt;br /&gt;
compte 17 étapes avec publication protégée, mais la finalisation fonctionnelle&lt;br /&gt;
Matomo reste indépendante. L’ancien man reproduit intégralement dans la page&lt;br /&gt;
du 16 octobre n’est pas recopié ici : les cinq sources man8 de ce lot sont&lt;br /&gt;
la référence de version, sans procédure concurrente.&lt;br /&gt;
Les anciens chemins du 16 octobre restent des archives, pas le lot courant.&lt;br /&gt;
&lt;br /&gt;
Le cycle 16 étapes du lot consolide-taches a été exécuté sur un clone recréé&lt;br /&gt;
le 18 octobre, reprise TLS après faute de saisie incluse. Hostname et racine&lt;br /&gt;
ext4 97 Gio confirmés. Tâches Tomcat neutralisées pour les instances vides ;&lt;br /&gt;
les processus déjà lancés n’ont pas été arrêtés. Le correctif wait-online et&lt;br /&gt;
le nouveau cycle 17 étapes avec journal restent à valider sur Proxmox.&lt;br /&gt;
Les tests locaux ne sont pas une nouvelle recette distante.&lt;br /&gt;
La capture « Tables créées » et la première activation Matomo concernent le&lt;br /&gt;
clone antérieur : ne pas les attribuer automatiquement au clone actuel.&lt;br /&gt;
Le succès nominal ne valide pas le repli réseau après panne.&lt;br /&gt;
&lt;br /&gt;
Le modèle TEMPLATE3 n’a pas été modifié par ces scripts. Cela ne démontre&lt;br /&gt;
pas l’absence de toute autre intervention. Sa mise à jour OS demandée est&lt;br /&gt;
une maintenance à réaliser/valider séparément avant le prochain clonage.&lt;br /&gt;
Aucun nettoyage serveur ni envoi SVN n’est exécuté par cette livraison.&lt;br /&gt;
&lt;br /&gt;
[[Category:Proxmox]][[Category:AJLSM]][[Category:Déploiement]]&lt;/div&gt;</description>
			<pubDate>Mon, 19 Oct 2026 07:36:46 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:AJLSM-DEPLOY_%E2%80%94_Version_1.0.2</comments>
		</item>
		<item>
			<title>Déploiement technique d’une VM AJLSM</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=D%C3%A9ploiement_technique_d%E2%80%99une_VM_AJLSM&amp;diff=6500&amp;oldid=6491</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=D%C3%A9ploiement_technique_d%E2%80%99une_VM_AJLSM&amp;diff=6500&amp;oldid=6491</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.ajlsm.com/index.php?title=D%C3%A9ploiement_technique_d%E2%80%99une_VM_AJLSM&amp;amp;diff=6500&amp;amp;oldid=6491&quot;&gt;Voir les modifications&lt;/a&gt;</description>
			<pubDate>Mon, 19 Oct 2026 07:35:35 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:D%C3%A9ploiement_technique_d%E2%80%99une_VM_AJLSM</comments>
		</item>
		<item>
			<title>AJLSM-DEPLOY — Déploiement automatisé des VM Proxmox</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=AJLSM-DEPLOY_%E2%80%94_D%C3%A9ploiement_automatis%C3%A9_des_VM_Proxmox&amp;diff=6492&amp;oldid=6481</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=AJLSM-DEPLOY_%E2%80%94_D%C3%A9ploiement_automatis%C3%A9_des_VM_Proxmox&amp;diff=6492&amp;oldid=6481</guid>
			<description>&lt;p&gt;Contenu remplacé par « Obsolète :  Voir &lt;a href=&quot;/wiki/D%C3%A9ploiement_technique_d%E2%80%99une_VM_AJLSM&quot; title=&quot;Déploiement technique d’une VM AJLSM&quot;&gt;Déploiement_technique_d’une_VM_AJLSM&lt;/a&gt; »&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.ajlsm.com/index.php?title=AJLSM-DEPLOY_%E2%80%94_D%C3%A9ploiement_automatis%C3%A9_des_VM_Proxmox&amp;amp;diff=6492&amp;amp;oldid=6481&quot;&gt;Voir les modifications&lt;/a&gt;</description>
			<pubDate>Fri, 16 Oct 2026 16:18:24 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:AJLSM-DEPLOY_%E2%80%94_D%C3%A9ploiement_automatis%C3%A9_des_VM_Proxmox</comments>
		</item>
		<item>
			<title>Déploiement technique d’une VM AJLSM</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=D%C3%A9ploiement_technique_d%E2%80%99une_VM_AJLSM&amp;diff=6491&amp;oldid=6490</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=D%C3%A9ploiement_technique_d%E2%80%99une_VM_AJLSM&amp;diff=6491&amp;oldid=6490</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.ajlsm.com/index.php?title=D%C3%A9ploiement_technique_d%E2%80%99une_VM_AJLSM&amp;amp;diff=6491&amp;amp;oldid=6490&quot;&gt;Voir les modifications&lt;/a&gt;</description>
			<pubDate>Fri, 16 Oct 2026 15:44:55 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:D%C3%A9ploiement_technique_d%E2%80%99une_VM_AJLSM</comments>
		</item>
		<item>
			<title>Déploiement technique d’une VM AJLSM</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=D%C3%A9ploiement_technique_d%E2%80%99une_VM_AJLSM&amp;diff=6490&amp;oldid=0</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=D%C3%A9ploiement_technique_d%E2%80%99une_VM_AJLSM&amp;diff=6490&amp;oldid=0</guid>
			<description>&lt;p&gt;Page créée avec « = Déploiement technique d’une VM AJLSM =  Document du 16 octobre 2026. Référence : scripts reçus de Saturne3, puis lot de recette avec lanceur du cycle et assistant ... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Déploiement technique d’une VM AJLSM =&lt;br /&gt;
&lt;br /&gt;
Document du 16 octobre 2026. Référence : scripts reçus de Saturne3, puis lot de recette avec lanceur du cycle et assistant YAML.&lt;br /&gt;
&lt;br /&gt;
== 1. Périmètre et résultat de la recette ==&lt;br /&gt;
&lt;br /&gt;
Le cycle technique a été exécuté sur MERCURE3 sans erreur signalée. Les vérifications finales transmises confirment :&lt;br /&gt;
* connexion SSH avec le compte ajlsm ;&lt;br /&gt;
* élévation sudo avec le mot de passe défini pendant le cycle ;&lt;br /&gt;
* hostname mercure3.ajlsm.com ;&lt;br /&gt;
* volume racine ext4 de 97 Gio, dont 85 Gio disponibles lors du contrôle.&lt;br /&gt;
&lt;br /&gt;
Le cycle couvre le clonage, les ressources, l’initialisation du clone, l’extension de la racine, l’identité système, le réseau, SSH, le mot de passe et le certificat TLS interne.&lt;br /&gt;
&lt;br /&gt;
NFS, les configurations applicatives Apache2, Pleade, Drupal et Matomo ne font pas encore partie de ce cycle. Certains logiciels peuvent déjà être présents dans le modèle : leur présence ne constitue pas une configuration applicative du projet.&lt;br /&gt;
&lt;br /&gt;
== 2. Où exécuter les commandes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Machine !! Rôle !! Exemple d’invite&lt;br /&gt;
|-&lt;br /&gt;
| Mac de l’administrateur || Transfert des archives par scp || Invite locale du Mac&lt;br /&gt;
|-&lt;br /&gt;
| Saturne3 || Préparation YAML, scripts Proxmox et cycle || root@Saturne3&lt;br /&gt;
|-&lt;br /&gt;
| MERCURE3 || Vérifications dans la VM || ajlsm@mercure3 ou root@mercure3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les scripts de déploiement sont exécutés sur Saturne3, pas dans MERCURE3.&lt;br /&gt;
Après « ssh ajlsm@10.0.0.43 », attendre l’invite de la VM avant de saisir les commandes suivantes.&lt;br /&gt;
Pour revenir de root@mercure3 à Saturne3 : un exit quitte sudo, puis un second exit ferme SSH.&lt;br /&gt;
&lt;br /&gt;
== 3. Organisation des fichiers ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/root/ajlsm-deploy/&lt;br /&gt;
  archives/                         Archives reçues, conservées comme références&lt;br /&gt;
  recettes/20261016/&lt;br /&gt;
    ajlsm-deploy-cycle/             Lot technique validé et assistant ajouté&lt;br /&gt;
    ajlsm-deploy-assistant/         Distribution de l’assistant et tests&lt;br /&gt;
    ajlsm-deploy-documentation/     Présent guide et modèles YAML&lt;br /&gt;
&lt;br /&gt;
/etc/ajlsm/deploy/projets/mercure3.yaml   Configuration actuellement utilisée&lt;br /&gt;
/usr/local/sbin/                        Scripts installés antérieurement&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le lot de recette contient ajlsm-deploy, ajlsm-deploy-check, ajlsm-deploy-resources, ajlsm-deploy-cycle et les modules ajlsm_deploy_common.py, ajlsm_deploy_rootgrow.py et ajlsm_deploy_postconfig.py. L’assistant ajlsm-deploy-yaml a été ajouté à ce même dossier.&lt;br /&gt;
&lt;br /&gt;
Conserver exécutables et modules ensemble. Utiliser les chemins ./ depuis le dossier de recette pour ne pas appeler une ancienne version de /usr/local/sbin.&lt;br /&gt;
Les anciennes archives « ajlsm-deploy-revise » et « correction-suggestions » ne sont pas la référence courante : elles précèdent les phases supplémentaires reçues dans l’archive serveur.&lt;br /&gt;
&lt;br /&gt;
Prérequis : Python 3.9 ou supérieur, PyYAML 6, outils Proxmox sur le nœud cible et prérequis du modèle AJLSM. Les phases invitées utilisent notamment l’agent QEMU, ajlsm-clone-init, Python, systemd et Netplan. L’extension actuelle cible ext4/LVM sur /dev/sda3, avec un seul PV et un seul LV.&lt;br /&gt;
&lt;br /&gt;
== 4. Les deux fichiers de préconfiguration ==&lt;br /&gt;
&lt;br /&gt;
=== 4.1. projet-vierge.yaml ===&lt;br /&gt;
&lt;br /&gt;
Ce modèle reprend toute la structure actuelle sans valeur opérationnelle préremplie. Chaque champ doit être renseigné. Seul proxmox.vmid peut rester null : il signifie alors attribution automatique.&lt;br /&gt;
&lt;br /&gt;
Le modèle comporte deux interfaces dont les valeurs sont null. Adapter le nombre d’interfaces avant la saisie si nécessaire. Pour déterminer ce nombre par les questions de l’assistant, utiliser plutôt le mode --new.&lt;br /&gt;
&lt;br /&gt;
Un modèle vierge est volontairement refusé par --check. Il ne doit jamais être passé directement au lanceur du cycle.&lt;br /&gt;
&lt;br /&gt;
=== 4.2. mercure3-reference.yaml ===&lt;br /&gt;
&lt;br /&gt;
Ce fichier conserve les valeurs du projet validé : modèle 506 sur Saturne3, nom MERCURE3, 8 vCPU, 24576 Mio de RAM maximale, 16384 Mio minimale, disque 100 Gio, extension racine activée et paramètres réseau du projet.&lt;br /&gt;
&lt;br /&gt;
Il permet de reconstruire une nouvelle VM avec la même configuration technique si le modèle, le stockage, les bridges et les préparatifs externes sont toujours disponibles. Il ne sauvegarde ni les données de l’ancienne VM, ni ses UUID, machine-id, clés hôte SSH ou mots de passe. Ces identités sont traitées par le cycle et ne sont pas à recopier.&lt;br /&gt;
&lt;br /&gt;
Avec vmid: null, le VMID de remplacement peut différer de celui de l’ancienne VM. Le VMID 505 observé pendant la recette n’est pas une réservation permanente.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ne pas lancer cette référence tant que MERCURE3 existe encore.&amp;#039;&amp;#039;&amp;#039; Le clonage refuse un nom déjà présent. Pour tester une deuxième VM en parallèle, définir un autre nom, hostname, des IP distinctes et préparer DNS/OPNsense/Ansible en conséquence.&lt;br /&gt;
&lt;br /&gt;
=== 4.3. Valeurs acceptées ===&lt;br /&gt;
&lt;br /&gt;
* projet.environnement et tags : interne, client, prod. Les tags sont une liste sans doublons ; [] est admis.&lt;br /&gt;
* CPU, mémoire et taille du disque : entiers strictement positifs ; mémoire minimale inférieure ou égale à la maximale.&lt;br /&gt;
* Booléens : utiliser true ou false sans guillemets.&lt;br /&gt;
* Interfaces Proxmox : net suivi de chiffres ; interfaces invitées : ens suivi de chiffres.&lt;br /&gt;
* Adresses d’interfaces : IPv4/CIDR. Loopback : IPv4/32. Passerelle et DNS : IPv4 sans préfixe.&lt;br /&gt;
* Passerelle : interface déclarée et adresse appartenant à son sous-réseau, distincte des adresses de la VM.&lt;br /&gt;
* Hostname : nom DNS en minuscules.&lt;br /&gt;
* Serveur, bridge et stockage : valeurs adaptées à l’infrastructure ; aucune liste fermée inventée.&lt;br /&gt;
&lt;br /&gt;
Les clés inconnues ou répétées sont refusées. Ne pas ajouter de sections applicatives avant l’évolution coordonnée du schéma et des scripts. Ne pas utiliser [à renseigner] : les crochets créent une liste YAML.&lt;br /&gt;
&lt;br /&gt;
== 5. Préparer et valider le YAML ==&lt;br /&gt;
&lt;br /&gt;
Sur Saturne3, se placer dans le lot de recette :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /root/ajlsm-deploy/recettes/20261016/ajlsm-deploy-cycle&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5.1. Vérifier un fichier existant sans le modifier ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ajlsm-deploy-yaml /etc/ajlsm/deploy/projets/mercure3.yaml --check&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le message de succès signifie que les valeurs et leur cohérence locale sont conformes. Il ne certifie pas la préparation des services externes.&lt;br /&gt;
&lt;br /&gt;
=== 5.2. Compléter le modèle vierge ===&lt;br /&gt;
&lt;br /&gt;
Après extraction du présent lot documentaire :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ajlsm-deploy-yaml \&lt;br /&gt;
  /root/ajlsm-deploy/recettes/20261016/ajlsm-deploy-documentation/projet-vierge.yaml \&lt;br /&gt;
  --output /root/ajlsm-deploy/recettes/20261016/nouveau-projet.yaml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toutes les valeurs obligatoires seront demandées. Pour saisir de nouveau le projet MERCURE3, consulter mercure3-reference.yaml comme fiche de paramètres, sans lancer de déploiement.&lt;br /&gt;
&lt;br /&gt;
=== 5.3. Créer sans modèle ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ajlsm-deploy-yaml /root/ajlsm-deploy/recettes/20261016/nouveau-projet.yaml --new&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette commande est une alternative à la précédente : le chemin doit être inexistant. L’assistant pose les questions, y compris le nombre d’interfaces, sans reprendre implicitement les valeurs de MERCURE3.&lt;br /&gt;
&lt;br /&gt;
=== 5.4. Revoir un projet renseigné ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ajlsm-deploy-yaml /etc/ajlsm/deploy/projets/mercure3.yaml --review \&lt;br /&gt;
  --output /root/ajlsm-deploy/recettes/20261016/mercure3-relecture.yaml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Entrée conserve une valeur existante valide.&lt;br /&gt;
* ANNULER, Ctrl-C ou fin d’entrée abandonnent sans enregistrer.&lt;br /&gt;
* Tags et DNS sont saisis séparés par des virgules ; [] ou aucun signifie tags vides.&lt;br /&gt;
* Saisir auto ou null pour un VMID automatique.&lt;br /&gt;
* Après une incohérence, donner le chemin du champ à corriger ; ? affiche les chemins.&lt;br /&gt;
* Le résumé complet est présenté avant confirmation OUI/NON d’enregistrement.&lt;br /&gt;
&lt;br /&gt;
L’original reste intact, avec ses commentaires. La copie est réécrite en YAML, sans reprise des commentaires. Aucun fichier existant n’est écrasé. Si une destination existe, choisir un nouveau nom avec --output.&lt;br /&gt;
&lt;br /&gt;
=== 5.5. Préparatifs externes ===&lt;br /&gt;
&lt;br /&gt;
Avant une création, vérifier séparément la réservation des IP, les déclarations DNS, les règles/routes/NAT nécessaires dans OPNsense et l’inventaire ou les préparatifs Ansible. Ne pas inscrire de mots de passe dans le YAML ; conserver les secrets dans le dispositif prévu pour leur gestion.&lt;br /&gt;
&lt;br /&gt;
L’assistant actuel ne vérifie pas automatiquement ces services et ne marque pas un projet « prêt à déployer » sur cette seule base. Leur intégration reste à réaliser.&lt;br /&gt;
&lt;br /&gt;
Le contrôle Proxmox autonome examine notamment le modèle, ses ressources, le stockage et les bridges. Il concerne une nouvelle création et peut refuser un projet déjà déployé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ajlsm-deploy-check /chemin/vers/projet.yaml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6. Afficher le plan puis lancer le cycle ==&lt;br /&gt;
&lt;br /&gt;
=== 6.1. Plan sans exécution ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ajlsm-deploy-cycle /chemin/vers/projet.yaml --plan&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le plan valide le YAML et affiche les commandes, sans exécuter les phases ni vérifier l’infrastructure. Il doit contenir les 11 étapes, toutes dans le dossier de recette.&lt;br /&gt;
&lt;br /&gt;
=== 6.2. Cycle réel pour une nouvelle VM ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ajlsm-deploy-cycle /chemin/vers/projet.yaml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le lanceur exécute les phases réelles, sans simulation automatique. Il attend seulement les confirmations, les saisies nécessaires et la fin de chaque commande. Il s’arrête sur refus ou erreur. Il ne répond pas à la place de l’administrateur et ne capture pas les mots de passe.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! N° !! Étape !! Commande réelle !! Simulation facultative&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Clonage || --clone || --dry-run&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Ressources || --configure-resources || --resources-dry-run&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Premier démarrage isolé || --first-boot-apply || --first-boot-dry-run&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Extension partition/LVM/ext4 || --root-grow-apply || --root-grow-dry-run&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Identité système || --system-apply || --system-dry-run&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Préparation Netplan || --network-apply || --network-dry-run&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Activation réseau || --network-enable || --network-enable-dry-run&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Audit SSH || --ssh-audit || Aucune option dédiée&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Sécurisation SSH || --ssh-secure || Aucune option dédiée&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Mot de passe ajlsm || --password-ajlsm || Aucune option dédiée&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Certificat TLS interne || --tls-apply || Aucune option dédiée&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
L’extension racine est indispensable quand etendre_volume_racine vaut true. Agrandir le disque Proxmox ne suffit pas : la partition, le PV LVM, le LV et ext4 doivent aussi être étendus. Cette phase doit figurer après le premier démarrage, avant la personnalisation système. Avec false, la phase annonce sa désactivation.&lt;br /&gt;
&lt;br /&gt;
Le démarrage et la personnalisation se font réseau isolé. Netplan est préparé avant activation des liens. La phase d’activation contrôle le réseau et applique demarrage_auto.&lt;br /&gt;
&lt;br /&gt;
Le certificat TLS interne ne constitue pas, à lui seul, une configuration des applications du projet ou un certificat publiquement reconnu.&lt;br /&gt;
&lt;br /&gt;
=== 6.3. Mode manuel ===&lt;br /&gt;
&lt;br /&gt;
Chaque phase peut être lancée séparément avec ./ajlsm-deploy suivi du YAML et de son option. Après succès, le lot courant affiche deux lignes pour l’étape suivante : Simulation et Exécution. Si la simulation n’existe pas, il le signale. Aucune suggestion n’est exécutée automatiquement.&lt;br /&gt;
&lt;br /&gt;
Les simulations peuvent consulter l’invité et émettre des sondes ARP selon la phase : elles ne sont pas toutes des contrôles hors ligne. L’absence de réponse ARP ne remplace pas la réservation des adresses dans l’inventaire réseau.&lt;br /&gt;
&lt;br /&gt;
== 7. Erreur, annulation et reprise ==&lt;br /&gt;
&lt;br /&gt;
Conserver la sortie complète et diagnostiquer la phase fautive avant de reprendre. Une phase peut être partiellement effectuée ; le lanceur n’effectue ni suppression de VM ni restauration globale automatique.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./ajlsm-deploy-cycle /chemin/vers/projet.yaml --from extension-racine&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--from inclut l’étape indiquée et saute les précédentes à la demande de l’administrateur. Il ne certifie pas leur état. Les contrôles propres aux phases restent actifs. Le lanceur ne possède pas de journal persistant global de progression.&lt;br /&gt;
&lt;br /&gt;
Ne pas relancer le cycle depuis le clonage sur une VM existante pour terminer une étape. Ne pas relancer des étapes déjà terminées uniquement parce qu’une commande manuelle les suggère. Les suggestions suivent l’ordre théorique et ne constituent pas un inventaire de l’état de la VM.&lt;br /&gt;
&lt;br /&gt;
Codes de sortie : 0 succès, 1 annulation, 2 erreur. Le lanceur normalise les autres codes d’échec de ses sous-processus en erreur et ne poursuit pas.&lt;br /&gt;
&lt;br /&gt;
== 8. Vérifications finales ==&lt;br /&gt;
&lt;br /&gt;
Sur Saturne3, avec le VMID réellement annoncé au clonage :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
qm list&lt;br /&gt;
qm status VMID&lt;br /&gt;
qm config VMID&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remplacer VMID par l’identifiant vérifié. Contrôler le nom, les CPU, la RAM, le disque, les liens réseau et onboot selon le YAML.&lt;br /&gt;
&lt;br /&gt;
Depuis Saturne3, ouvrir la connexion et attendre l’invite de la VM :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh ajlsm@10.0.0.43&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans MERCURE3, saisir sudo -i, attendre l’authentification et l’invite root, puis :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
hostname&lt;br /&gt;
lsblk&lt;br /&gt;
df -hT /&lt;br /&gt;
ip -br addr&lt;br /&gt;
ip route&lt;br /&gt;
resolvectl status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Résultat vérifié pendant la recette : hostname mercure3.ajlsm.com, racine ext4 97 Gio. Les tailles disponibles évoluent avec l’utilisation. Les commandes SSH et TLS du cycle vérifient leurs propres résultats ; compléter par les tests d’accès attendus dans le réseau cible.&lt;br /&gt;
&lt;br /&gt;
== 9. Reconstruire MERCURE3 ultérieurement ==&lt;br /&gt;
&lt;br /&gt;
# Conserver le fichier mercure3-reference.yaml, le lot de scripts validé et l’identification du modèle utilisé.&lt;br /&gt;
# Comparer la référence au YAML effectivement utilisé avant reconstruction ; actualiser les changements d’infrastructure.&lt;br /&gt;
# Identifier et sauvegarder les données à conserver : le YAML n’est pas une sauvegarde de VM.&lt;br /&gt;
# Vérifier explicitement l’identité de l’ancienne VM et traiter séparément son arrêt et sa suppression volontaire. Le cycle ne détruit jamais automatiquement une VM existante.&lt;br /&gt;
# Contrôler DNS, OPNsense, Ansible et les réservations d’IP. Ne pas laisser deux VM actives avec les mêmes adresses.&lt;br /&gt;
# Valider la référence avec --check, afficher le --plan, puis lancer le cycle sur la référence après libération de la cible.&lt;br /&gt;
# Relever le nouveau VMID et effectuer les vérifications finales.&lt;br /&gt;
&lt;br /&gt;
On retrouve ainsi les paramètres de la VM, sans chercher à reproduire ses anciennes identités techniques.&lt;br /&gt;
&lt;br /&gt;
== 10. Suites prévues ==&lt;br /&gt;
&lt;br /&gt;
Prévoir les paramètres NFS, sites Apache2, Pleade, Drupal et Matomo dans le même YAML lorsque leurs exigences seront définies. Modifier ensemble le schéma, l’assistant, les modèles, les précontrôles, les phases et leur documentation. Documenter les références aux secrets plutôt que leurs valeurs.&lt;br /&gt;
&lt;br /&gt;
L’intégration des contrôles DNS, OPNsense et Ansible précédera une déclaration automatisée de disponibilité du projet. Le modèle actuel ne contient pas encore ces nouvelles sections.&lt;/div&gt;</description>
			<pubDate>Fri, 16 Oct 2026 15:37:53 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:D%C3%A9ploiement_technique_d%E2%80%99une_VM_AJLSM</comments>
		</item>
		<item>
			<title>EOLE3 — Accès, sécurité et pare-feu</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=EOLE3_%E2%80%94_Acc%C3%A8s,_s%C3%A9curit%C3%A9_et_pare-feu&amp;diff=6489&amp;oldid=6484</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=EOLE3_%E2%80%94_Acc%C3%A8s,_s%C3%A9curit%C3%A9_et_pare-feu&amp;diff=6489&amp;oldid=6484</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 16 octobre 2026 à 12:37&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= EOLE3 — Accès, sécurité et pare-feu =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= EOLE3 — Accès, sécurité et pare-feu =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Voir aussi [[Eole3_–_Checklist_mensuelle_de_sécurité]] : &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Sommaire}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 1. Objet du document ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 1. Objet du document ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 16 Oct 2026 12:37:39 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:EOLE3_%E2%80%94_Acc%C3%A8s,_s%C3%A9curit%C3%A9_et_pare-feu</comments>
		</item>
		<item>
			<title>EOLE3 — Accès et sécurité</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=EOLE3_%E2%80%94_Acc%C3%A8s_et_s%C3%A9curit%C3%A9&amp;diff=6488&amp;oldid=6483</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=EOLE3_%E2%80%94_Acc%C3%A8s_et_s%C3%A9curit%C3%A9&amp;diff=6488&amp;oldid=6483</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 16 octobre 2026 à 12:36&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Obsolète :&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Voir : &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# http://mw.ajlsm.com/wiki/Eole3_%E2%80%93_Checklist_mensuelle_de_s%C3%A9curit%C3%A9&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# http://mw.ajlsm.com/wiki/EOLE3_%E2%80%94_Acc%C3%A8s,_s%C3%A9curit%C3%A9_et_pare-feu&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 16 Oct 2026 12:36:10 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:EOLE3_%E2%80%94_Acc%C3%A8s_et_s%C3%A9curit%C3%A9</comments>
		</item>
		<item>
			<title>Sécurité Eole3 – Règles à ne pas oublier</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=S%C3%A9curit%C3%A9_Eole3_%E2%80%93_R%C3%A8gles_%C3%A0_ne_pas_oublier&amp;diff=6487&amp;oldid=6482</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=S%C3%A9curit%C3%A9_Eole3_%E2%80%93_R%C3%A8gles_%C3%A0_ne_pas_oublier&amp;diff=6487&amp;oldid=6482</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 16 octobre 2026 à 12:35&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;fr&quot;&gt;(Une version intermédiaire par le même utilisateur non affichée)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Obsolète :&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Voir : &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# http://mw.ajlsm.com/wiki/Eole3_%E2%80%93_Checklist_mensuelle_de_s%C3%A9curit%C3%A9&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# http://mw.ajlsm.com/wiki/EOLE3_%E2%80%94_Acc%C3%A8s,_s%C3%A9curit%C3%A9_et_pare-feu&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 16 Oct 2026 12:35:47 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:S%C3%A9curit%C3%A9_Eole3_%E2%80%93_R%C3%A8gles_%C3%A0_ne_pas_oublier</comments>
		</item>
		<item>
			<title>Eole3 – Checklist mensuelle de sécurité</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=Eole3_%E2%80%93_Checklist_mensuelle_de_s%C3%A9curit%C3%A9&amp;diff=6485&amp;oldid=6204</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=Eole3_%E2%80%93_Checklist_mensuelle_de_s%C3%A9curit%C3%A9&amp;diff=6485&amp;oldid=6204</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.ajlsm.com/index.php?title=Eole3_%E2%80%93_Checklist_mensuelle_de_s%C3%A9curit%C3%A9&amp;amp;diff=6485&amp;amp;oldid=6204&quot;&gt;Voir les modifications&lt;/a&gt;</description>
			<pubDate>Fri, 16 Oct 2026 12:34:39 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:Eole3_%E2%80%93_Checklist_mensuelle_de_s%C3%A9curit%C3%A9</comments>
		</item>
		<item>
			<title>EOLE3 — Accès, sécurité et pare-feu</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=EOLE3_%E2%80%94_Acc%C3%A8s,_s%C3%A9curit%C3%A9_et_pare-feu&amp;diff=6484&amp;oldid=0</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=EOLE3_%E2%80%94_Acc%C3%A8s,_s%C3%A9curit%C3%A9_et_pare-feu&amp;diff=6484&amp;oldid=0</guid>
			<description>&lt;p&gt;Page créée avec « = EOLE3 — Accès, sécurité et pare-feu =  {{Sommaire}}  == 1. Objet du document ==  Cette documentation décrit l&amp;#039;organisation des accès et les mécanismes de sécuri... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= EOLE3 — Accès, sécurité et pare-feu =&lt;br /&gt;
&lt;br /&gt;
{{Sommaire}}&lt;br /&gt;
&lt;br /&gt;
== 1. Objet du document ==&lt;br /&gt;
&lt;br /&gt;
Cette documentation décrit l&amp;#039;organisation des accès et les mécanismes de sécurité du serveur EOLE3.&lt;br /&gt;
&lt;br /&gt;
Elle couvre notamment :&lt;br /&gt;
&lt;br /&gt;
* les comptes d&amp;#039;administration ;&lt;br /&gt;
* les comptes techniques nominatifs ;&lt;br /&gt;
* les comptes clients SFTP ;&lt;br /&gt;
* les accès réseau publics et privés ;&lt;br /&gt;
* le pare-feu nftables ;&lt;br /&gt;
* Fail2ban ;&lt;br /&gt;
* les procédures de maintenance et de retour arrière.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Principe général :&amp;#039;&amp;#039;&amp;#039; n&amp;#039;exposer sur Internet que les services strictement nécessaires.&lt;br /&gt;
&lt;br /&gt;
Voir également :&lt;br /&gt;
&lt;br /&gt;
* [[EOLE3 — Administration, maintenance et flux de données]]&lt;br /&gt;
* [[EOLE3 — Checklist mensuelle de sécurité]]&lt;br /&gt;
&lt;br /&gt;
== 2. Architecture réseau ==&lt;br /&gt;
&lt;br /&gt;
=== 2.1 Interfaces ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Interface&lt;br /&gt;
! Adresse&lt;br /&gt;
! Utilisation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;enp9s0f0np0&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;51.178.110.230&amp;lt;/code&amp;gt;&lt;br /&gt;
| Réseau public OVH&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;enp9s0f1np1&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;192.168.123.202/24&amp;lt;/code&amp;gt;&lt;br /&gt;
| Réseau privé OVH vRack&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
EOLE3 dispose également d&amp;#039;une connectivité IPv6 publique.&lt;br /&gt;
&lt;br /&gt;
Le réseau privé vRack est utilisé pour les échanges techniques entre serveurs, notamment les accès NFS et la supervision.&lt;br /&gt;
&lt;br /&gt;
=== 2.2 Politique de sécurité ===&lt;br /&gt;
&lt;br /&gt;
Les flux entrants sont refusés par défaut.&lt;br /&gt;
&lt;br /&gt;
Seuls sont autorisés :&lt;br /&gt;
&lt;br /&gt;
* les connexions déjà établies ;&lt;br /&gt;
* les communications locales ;&lt;br /&gt;
* les communications du réseau privé vRack ;&lt;br /&gt;
* les services publics explicitement autorisés ;&lt;br /&gt;
* les connexions SSH provenant des adresses administratives autorisées ;&lt;br /&gt;
* les protocoles nécessaires au fonctionnement réseau, notamment ICMP et ICMPv6.&lt;br /&gt;
&lt;br /&gt;
Les flux sortants ne sont pas filtrés par la configuration AJLSM actuelle.&lt;br /&gt;
&lt;br /&gt;
== 3. Politique des accès ==&lt;br /&gt;
&lt;br /&gt;
Les comptes sont répartis en quatre catégories :&lt;br /&gt;
&lt;br /&gt;
# compte système root ;&lt;br /&gt;
# compte d&amp;#039;administration ubuntu ;&lt;br /&gt;
# comptes techniques nominatifs ;&lt;br /&gt;
# comptes clients SFTP.&lt;br /&gt;
&lt;br /&gt;
Cette séparation évite de mélanger les usages d&amp;#039;administration, de maintenance et de transfert de fichiers.&lt;br /&gt;
&lt;br /&gt;
=== 3.1 Compte root ===&lt;br /&gt;
&lt;br /&gt;
Le compte &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; dispose de tous les privilèges système.&lt;br /&gt;
&lt;br /&gt;
Il est utilisé pour :&lt;br /&gt;
&lt;br /&gt;
* l&amp;#039;administration du système ;&lt;br /&gt;
* la gestion ZFS ;&lt;br /&gt;
* les modifications de configuration ;&lt;br /&gt;
* les opérations de migration ;&lt;br /&gt;
* la maintenance et le dépannage ;&lt;br /&gt;
* la gestion des droits et propriétaires ;&lt;br /&gt;
* les opérations critiques sur les données clients.&lt;br /&gt;
&lt;br /&gt;
Son utilisation doit rester réservée aux opérations nécessitant réellement des privilèges administratifs.&lt;br /&gt;
&lt;br /&gt;
=== 3.2 Compte ubuntu ===&lt;br /&gt;
&lt;br /&gt;
Le compte &amp;lt;code&amp;gt;ubuntu&amp;lt;/code&amp;gt; constitue un point d&amp;#039;entrée pour l&amp;#039;administration distante.&lt;br /&gt;
&lt;br /&gt;
Il permet notamment :&lt;br /&gt;
&lt;br /&gt;
* la connexion SSH ;&lt;br /&gt;
* l&amp;#039;utilisation de &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* les opérations courantes d&amp;#039;administration.&lt;br /&gt;
&lt;br /&gt;
Il ne doit pas être utilisé comme compte client ou compte de dépôt.&lt;br /&gt;
&lt;br /&gt;
=== 3.3 Comptes techniques nominatifs ===&lt;br /&gt;
&lt;br /&gt;
Les comptes techniques sont individuels.&lt;br /&gt;
&lt;br /&gt;
Principes :&lt;br /&gt;
&lt;br /&gt;
* un compte par personne ;&lt;br /&gt;
* authentification par clé SSH ;&lt;br /&gt;
* droits attribués selon les besoins ;&lt;br /&gt;
* utilisation de &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; lorsque nécessaire ;&lt;br /&gt;
* traçabilité des interventions.&lt;br /&gt;
&lt;br /&gt;
Les comptes nominatifs ne doivent pas être partagés.&lt;br /&gt;
&lt;br /&gt;
=== 3.4 Comptes clients SFTP ===&lt;br /&gt;
&lt;br /&gt;
Les comptes clients servent aux dépôts et récupérations de fichiers.&lt;br /&gt;
&lt;br /&gt;
Exemple : &amp;lt;code&amp;gt;ad53&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ils sont associés à la logique métier Pleade et au confinement SFTP.&lt;br /&gt;
&lt;br /&gt;
La configuration OpenSSH documentée utilise notamment :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;apache&amp;quot;&amp;gt;&lt;br /&gt;
Match Group eole3-sftp&lt;br /&gt;
    ChrootDirectory %h&lt;br /&gt;
    ForceCommand internal-sftp -P setstat,fsetstat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les restrictions complémentaires de transfert et de tunnel doivent être vérifiées dans la configuration SSH effective.&lt;br /&gt;
&lt;br /&gt;
Les comptes clients concernés :&lt;br /&gt;
&lt;br /&gt;
* ne disposent pas d&amp;#039;un shell interactif ;&lt;br /&gt;
* sont confinés dans leur environnement ;&lt;br /&gt;
* ne peuvent pas accéder librement aux données des autres clients ;&lt;br /&gt;
* restent soumis aux permissions Unix.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attention :&amp;#039;&amp;#039;&amp;#039; ces comptes SFTP OpenSSH ne doivent pas être confondus avec les utilisateurs gérés par le service SFTPGo sur le port 2022.&lt;br /&gt;
&lt;br /&gt;
=== 3.5 Permissions des données ===&lt;br /&gt;
&lt;br /&gt;
Les permissions d&amp;#039;écriture sont définies par les droits Unix et les ACL éventuelles.&lt;br /&gt;
&lt;br /&gt;
Dans l&amp;#039;organisation documentée, les zones de travail comprennent notamment :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/data/pleade&lt;br /&gt;
/data/projets&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les répertoires suivants ne doivent pas devenir librement accessibles en écriture :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/data&lt;br /&gt;
/data/data-private&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les droits réels doivent être contrôlés avant toute modification.&lt;br /&gt;
&lt;br /&gt;
== 4. Pare-feu nftables ==&lt;br /&gt;
&lt;br /&gt;
=== 4.1 Solution retenue ===&lt;br /&gt;
&lt;br /&gt;
EOLE3 utilise nftables pour le filtrage réseau.&lt;br /&gt;
&lt;br /&gt;
Le pare-feu AJLSM est indépendant de Fail2ban.&lt;br /&gt;
&lt;br /&gt;
Il utilise exclusivement :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
table inet ajlsm_eole3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fail2ban conserve sa propre table :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
table inet f2b-table&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ne jamais utiliser &amp;lt;code&amp;gt;flush ruleset&amp;lt;/code&amp;gt; pour administrer le pare-feu AJLSM.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Cette commande pourrait supprimer les règles de Fail2ban.&lt;br /&gt;
&lt;br /&gt;
Le service standard &amp;lt;code&amp;gt;nftables.service&amp;lt;/code&amp;gt; n&amp;#039;est pas utilisé pour charger la configuration AJLSM.&lt;br /&gt;
&lt;br /&gt;
=== 4.2 Fichiers de configuration ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Fichier&lt;br /&gt;
! Fonction&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/nftables/ajlsm-eole3.nft&amp;lt;/code&amp;gt;&lt;br /&gt;
| Configuration principale du pare-feu&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/nftables/ajlsm-eole3-reload.nft&amp;lt;/code&amp;gt;&lt;br /&gt;
| Rechargement atomique des règles&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/etc/systemd/system/ajlsm-firewall.service&amp;lt;/code&amp;gt;&lt;br /&gt;
| Service systemd dédié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/root/ajlsm-eole3.nft&amp;lt;/code&amp;gt;&lt;br /&gt;
| Copie de travail historique&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La configuration de référence est celle située dans &amp;lt;code&amp;gt;/etc/nftables/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 4.3 Ports publics autorisés ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Port&lt;br /&gt;
! Protocole&lt;br /&gt;
! Service&lt;br /&gt;
! Origine autorisée&lt;br /&gt;
|-&lt;br /&gt;
| 80&lt;br /&gt;
| TCP&lt;br /&gt;
| Apache HTTP&lt;br /&gt;
| Internet&lt;br /&gt;
|-&lt;br /&gt;
| 443&lt;br /&gt;
| TCP&lt;br /&gt;
| Apache HTTPS&lt;br /&gt;
| Internet&lt;br /&gt;
|-&lt;br /&gt;
| 2022&lt;br /&gt;
| TCP&lt;br /&gt;
| SFTPGo&lt;br /&gt;
| Internet&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| TCP / IPv4&lt;br /&gt;
| SSH administration&lt;br /&gt;
| Adresses administratives autorisées&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 4.4 Adresses administratives autorisées ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Adresse IPv4&lt;br /&gt;
! Usage&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;109.190.129.96&amp;lt;/code&amp;gt;&lt;br /&gt;
| Bureau AJLSM&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;82.66.151.165&amp;lt;/code&amp;gt;&lt;br /&gt;
| Domicile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Toute modification de ces adresses nécessite une mise à jour du fichier nftables.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ne jamais remplacer une adresse administrative sans avoir vérifié la possibilité de conserver un accès au serveur.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== 4.5 Ports interdits depuis Internet ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Port&lt;br /&gt;
! Service&lt;br /&gt;
! Politique&lt;br /&gt;
|-&lt;br /&gt;
| 111&lt;br /&gt;
| RPC&lt;br /&gt;
| Réseau privé uniquement&lt;br /&gt;
|-&lt;br /&gt;
| 2049&lt;br /&gt;
| NFS&lt;br /&gt;
| Réseau privé uniquement&lt;br /&gt;
|-&lt;br /&gt;
| 9001&lt;br /&gt;
| Lighttpd&lt;br /&gt;
| Réseau privé uniquement&lt;br /&gt;
|-&lt;br /&gt;
| 9090&lt;br /&gt;
| Cockpit&lt;br /&gt;
| Non accessible publiquement&lt;br /&gt;
|-&lt;br /&gt;
| 4330&lt;br /&gt;
| PCP&lt;br /&gt;
| Non accessible publiquement&lt;br /&gt;
|-&lt;br /&gt;
| 44321–44323&lt;br /&gt;
| PCP&lt;br /&gt;
| Non accessibles publiquement&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Le pare-feu autorise les communications provenant du réseau privé &amp;lt;code&amp;gt;192.168.123.0/24&amp;lt;/code&amp;gt; lorsqu&amp;#039;elles arrivent par l&amp;#039;interface vRack.&lt;br /&gt;
&lt;br /&gt;
=== 4.6 Configuration nftables ===&lt;br /&gt;
&lt;br /&gt;
Le fichier principal est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/nftables/ajlsm-eole3.nft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration validée lors des tests du 16 octobre 2026 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nft&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/sbin/nft -f&lt;br /&gt;
&lt;br /&gt;
table inet ajlsm_eole3 {&lt;br /&gt;
&lt;br /&gt;
    define WAN = &amp;quot;enp9s0f0np0&amp;quot;&lt;br /&gt;
    define VRACK = &amp;quot;enp9s0f1np1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    define ADMIN_IPS = {&lt;br /&gt;
        109.190.129.96,&lt;br /&gt;
        82.66.151.165&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    chain input {&lt;br /&gt;
        type filter hook input priority filter;&lt;br /&gt;
        policy drop;&lt;br /&gt;
&lt;br /&gt;
        ct state established,related accept&lt;br /&gt;
        ct state invalid drop&lt;br /&gt;
&lt;br /&gt;
        iifname &amp;quot;lo&amp;quot; accept&lt;br /&gt;
&lt;br /&gt;
        iifname $VRACK ip saddr 192.168.123.0/24 accept&lt;br /&gt;
&lt;br /&gt;
        iifname $WAN ip protocol udp \&lt;br /&gt;
            udp sport 67 udp dport 68 accept&lt;br /&gt;
&lt;br /&gt;
        ip protocol icmp accept&lt;br /&gt;
        meta l4proto ipv6-icmp accept&lt;br /&gt;
&lt;br /&gt;
        iifname $WAN tcp dport { 80, 443 } accept&lt;br /&gt;
&lt;br /&gt;
        iifname $WAN tcp dport 2022 accept&lt;br /&gt;
&lt;br /&gt;
        iifname $WAN ip saddr $ADMIN_IPS tcp dport 22 accept&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette configuration applique une politique de refus par défaut aux connexions entrantes.&lt;br /&gt;
&lt;br /&gt;
Elle n&amp;#039;ajoute pas de règles aux chaînes &amp;lt;code&amp;gt;forward&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 4.7 Rechargement atomique ===&lt;br /&gt;
&lt;br /&gt;
Le fichier :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/etc/nftables/ajlsm-eole3-reload.nft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
contient :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nft&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/sbin/nft -f&lt;br /&gt;
&lt;br /&gt;
destroy table inet ajlsm_eole3&lt;br /&gt;
include &amp;quot;/etc/nftables/ajlsm-eole3.nft&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;instruction &amp;lt;code&amp;gt;destroy&amp;lt;/code&amp;gt; et le chargement de la nouvelle table sont exécutés dans une même transaction nftables.&lt;br /&gt;
&lt;br /&gt;
Le rechargement ne modifie pas la table Fail2ban.&lt;br /&gt;
&lt;br /&gt;
=== 4.8 Service systemd ===&lt;br /&gt;
&lt;br /&gt;
Le pare-feu est géré par :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ajlsm-firewall.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commandes principales :&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;État :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl status ajlsm-firewall.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Démarrage :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl start ajlsm-firewall.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Arrêt :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl stop ajlsm-firewall.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rechargement :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl reload ajlsm-firewall.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Activation au démarrage :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl enable ajlsm-firewall.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Désactivation au démarrage :&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl disable ajlsm-firewall.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important :&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;enable&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;disable&amp;lt;/code&amp;gt; modifient uniquement le comportement au démarrage. Ils ne démarrent ni n&amp;#039;arrêtent immédiatement le pare-feu.&lt;br /&gt;
&lt;br /&gt;
=== 4.9 Vérifications ===&lt;br /&gt;
&lt;br /&gt;
Lister les tables :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nft list tables&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avec le pare-feu actif, les tables attendues sont :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
table inet f2b-table&lt;br /&gt;
table inet ajlsm_eole3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Afficher les règles AJLSM :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nft list table inet ajlsm_eole3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifier la syntaxe avant toute modification :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nft -c -f /etc/nftables/ajlsm-eole3-reload.nft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifier le service :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl is-active ajlsm-firewall.service&lt;br /&gt;
systemctl is-enabled ajlsm-firewall.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Procédure de modification du pare-feu ==&lt;br /&gt;
&lt;br /&gt;
=== 5.1 Précautions obligatoires ===&lt;br /&gt;
&lt;br /&gt;
Avant toute modification :&lt;br /&gt;
&lt;br /&gt;
# conserver une session SSH administrative ouverte ;&lt;br /&gt;
# disposer d&amp;#039;un accès de secours au serveur ;&lt;br /&gt;
# vérifier les adresses administratives autorisées ;&lt;br /&gt;
# sauvegarder la configuration précédente ;&lt;br /&gt;
# vérifier la syntaxe ;&lt;br /&gt;
# programmer un retour arrière automatique ;&lt;br /&gt;
# tester les services après modification.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ne jamais modifier les règles de filtrage à distance sans possibilité de retour arrière.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== 5.2 Sauvegarder la configuration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp -a /etc/nftables/ajlsm-eole3.nft \&lt;br /&gt;
  /etc/nftables/ajlsm-eole3.nft.bak&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les interventions successives, utiliser de préférence des sauvegardes horodatées.&lt;br /&gt;
&lt;br /&gt;
=== 5.3 Vérifier les règles ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nft -c -f /etc/nftables/ajlsm-eole3-reload.nft&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette commande ne modifie pas le pare-feu actif.&lt;br /&gt;
&lt;br /&gt;
=== 5.4 Programmer un retour arrière ===&lt;br /&gt;
&lt;br /&gt;
Exemple : arrêt automatique du service après 15 minutes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemd-run \&lt;br /&gt;
  --unit=ajlsm-firewall-rollback \&lt;br /&gt;
  --on-active=15min \&lt;br /&gt;
  /usr/bin/systemctl stop ajlsm-firewall.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérification :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl list-timers --all | grep ajlsm-firewall-rollback&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attention : un retour arrière qui arrête uniquement le service ne restaure pas automatiquement une ancienne configuration.&lt;br /&gt;
&lt;br /&gt;
Pour une modification de règles, prévoir également la restauration du fichier précédent si nécessaire.&lt;br /&gt;
&lt;br /&gt;
=== 5.5 Appliquer les modifications ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl reload ajlsm-firewall.service&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puis :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl status ajlsm-firewall.service --no-pager&lt;br /&gt;
nft list tables&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5.6 Vérifier les accès ===&lt;br /&gt;
&lt;br /&gt;
Tester notamment :&lt;br /&gt;
&lt;br /&gt;
* une nouvelle connexion SSH depuis une adresse administrative ;&lt;br /&gt;
* les accès HTTP et HTTPS ;&lt;br /&gt;
* SFTPGo ;&lt;br /&gt;
* les échanges NFS sur le vRack ;&lt;br /&gt;
* la supervision Centreon ;&lt;br /&gt;
* le blocage des ports internes depuis une connexion extérieure.&lt;br /&gt;
&lt;br /&gt;
== 6. Tests de sécurité réalisés le 16 octobre 2026 ==&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Origine du test ===&lt;br /&gt;
&lt;br /&gt;
Les tests ont été réalisés depuis un Mac connecté au partage de connexion mobile d&amp;#039;un iPhone.&lt;br /&gt;
&lt;br /&gt;
Adresse IPv4 publique utilisée :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
176.135.13.221&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette adresse n&amp;#039;appartient pas à la liste des adresses administratives autorisées.&lt;br /&gt;
&lt;br /&gt;
=== 6.2 Résultats ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Port&lt;br /&gt;
! Résultat observé&lt;br /&gt;
! Conforme&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| Bloqué&lt;br /&gt;
| Oui&lt;br /&gt;
|-&lt;br /&gt;
| 80&lt;br /&gt;
| Accessible&lt;br /&gt;
| Oui&lt;br /&gt;
|-&lt;br /&gt;
| 443&lt;br /&gt;
| Accessible&lt;br /&gt;
| Oui&lt;br /&gt;
|-&lt;br /&gt;
| 2022&lt;br /&gt;
| Accessible&lt;br /&gt;
| Oui&lt;br /&gt;
|-&lt;br /&gt;
| 111&lt;br /&gt;
| Bloqué&lt;br /&gt;
| Oui&lt;br /&gt;
|-&lt;br /&gt;
| 2049&lt;br /&gt;
| Bloqué&lt;br /&gt;
| Oui&lt;br /&gt;
|-&lt;br /&gt;
| 9001&lt;br /&gt;
| Bloqué&lt;br /&gt;
| Oui&lt;br /&gt;
|-&lt;br /&gt;
| 9090&lt;br /&gt;
| Bloqué&lt;br /&gt;
| Oui&lt;br /&gt;
|-&lt;br /&gt;
| 4330&lt;br /&gt;
| Bloqué&lt;br /&gt;
| Oui&lt;br /&gt;
|-&lt;br /&gt;
| 44321–44323&lt;br /&gt;
| Bloqués&lt;br /&gt;
| Oui&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Les résultats confirment le comportement attendu des règles IPv4 pour les ports TCP testés.&lt;br /&gt;
&lt;br /&gt;
=== 6.3 Tests internes ===&lt;br /&gt;
&lt;br /&gt;
Les vérifications précédentes ont confirmé :&lt;br /&gt;
&lt;br /&gt;
* les accès NFS depuis les serveurs du vRack ;&lt;br /&gt;
* le fonctionnement de Lighttpd ;&lt;br /&gt;
* le fonctionnement de la supervision Centreon ;&lt;br /&gt;
* les accès publics Apache et SFTPGo ;&lt;br /&gt;
* l&amp;#039;accès SSH depuis le bureau.&lt;br /&gt;
&lt;br /&gt;
=== 6.4 Limites des tests ===&lt;br /&gt;
&lt;br /&gt;
Les tests extérieurs ont principalement porté sur IPv4 et TCP.&lt;br /&gt;
&lt;br /&gt;
Ils ne constituent pas un audit exhaustif de l&amp;#039;exposition IPv6, des services UDP ou de la configuration applicative.&lt;br /&gt;
&lt;br /&gt;
Ces points doivent faire l&amp;#039;objet de contrôles complémentaires.&lt;br /&gt;
&lt;br /&gt;
== 7. Fail2ban ==&lt;br /&gt;
&lt;br /&gt;
=== 7.1 Principe ===&lt;br /&gt;
&lt;br /&gt;
Fail2ban complète le pare-feu en bloquant temporairement certaines adresses IP à partir des événements détectés dans les journaux.&lt;br /&gt;
&lt;br /&gt;
Il ne remplace pas la politique de filtrage nftables.&lt;br /&gt;
&lt;br /&gt;
Les règles Fail2ban sont gérées indépendamment dans :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
table inet f2b-table&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7.2 Vérification ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl status fail2ban&lt;br /&gt;
fail2ban-client status&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérification de la jail SSH :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
fail2ban-client status sshd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les autres jails doivent être contrôlées selon la configuration réellement active.&lt;br /&gt;
&lt;br /&gt;
Ne pas considérer qu&amp;#039;une jail SFTPGo ou Cockpit existe sans l&amp;#039;avoir vérifié.&lt;br /&gt;
&lt;br /&gt;
=== 7.3 Précautions ===&lt;br /&gt;
&lt;br /&gt;
* Ne pas supprimer la table Fail2ban.&lt;br /&gt;
* Ne pas utiliser &amp;lt;code&amp;gt;flush ruleset&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Vérifier les exclusions d&amp;#039;adresses administratives.&lt;br /&gt;
* Contrôler régulièrement les bannissements.&lt;br /&gt;
* Vérifier les journaux en cas d&amp;#039;activité inhabituelle.&lt;br /&gt;
&lt;br /&gt;
== 8. SSH ==&lt;br /&gt;
&lt;br /&gt;
=== 8.1 Politique réseau ===&lt;br /&gt;
&lt;br /&gt;
Le port SSH 22 est accessible depuis les adresses administratives autorisées.&lt;br /&gt;
&lt;br /&gt;
Il est bloqué depuis les autres adresses publiques IPv4.&lt;br /&gt;
&lt;br /&gt;
Le pare-feu ne prévoit pas d&amp;#039;ouverture publique SSH en IPv6.&lt;br /&gt;
&lt;br /&gt;
=== 8.2 Authentification ===&lt;br /&gt;
&lt;br /&gt;
La configuration d&amp;#039;authentification SSH doit être contrôlée séparément.&lt;br /&gt;
&lt;br /&gt;
Commandes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sshd -T | grep -E \&lt;br /&gt;
  &amp;#039;^(port|permitrootlogin|passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication) &amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les restrictions par groupe doivent également être vérifiées dans les fichiers de configuration SSH.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attention :&amp;#039;&amp;#039;&amp;#039; le filtrage réseau et l&amp;#039;authentification SSH sont deux mécanismes distincts.&lt;br /&gt;
&lt;br /&gt;
== 9. SFTPGo ==&lt;br /&gt;
&lt;br /&gt;
SFTPGo est accessible publiquement sur le port TCP 2022.&lt;br /&gt;
&lt;br /&gt;
Son exposition est volontaire pour permettre les transferts clients.&lt;br /&gt;
&lt;br /&gt;
La sécurité repose notamment sur :&lt;br /&gt;
&lt;br /&gt;
* l&amp;#039;authentification des utilisateurs ;&lt;br /&gt;
* les permissions des comptes ;&lt;br /&gt;
* la limitation des accès aux données ;&lt;br /&gt;
* la journalisation ;&lt;br /&gt;
* les éventuelles protections Fail2ban effectivement configurées.&lt;br /&gt;
&lt;br /&gt;
Vérification :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl status sftpgo&lt;br /&gt;
journalctl -u sftpgo --since &amp;quot;24 hours ago&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les interfaces d&amp;#039;administration de SFTPGo ne doivent pas être exposées publiquement sans justification et protection adaptées.&lt;br /&gt;
&lt;br /&gt;
== 10. NFS et vRack ==&lt;br /&gt;
&lt;br /&gt;
Les échanges NFS sont autorisés sur le réseau privé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
192.168.123.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les ports NFS et RPC ne sont pas accessibles depuis Internet lorsque le pare-feu AJLSM est actif.&lt;br /&gt;
&lt;br /&gt;
Vérifications :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
exportfs -v&lt;br /&gt;
showmount -e localhost&lt;br /&gt;
ss -tulpen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les exports NFS doivent conserver leurs propres restrictions d&amp;#039;accès.&lt;br /&gt;
&lt;br /&gt;
Le pare-feu ne remplace pas les contrôles définis dans la configuration NFS.&lt;br /&gt;
&lt;br /&gt;
== 11. Supervision Centreon ==&lt;br /&gt;
&lt;br /&gt;
La supervision d&amp;#039;EOLE3 doit utiliser son adresse privée vRack :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
192.168.123.202&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette configuration permet de superviser les services internes sans ouvrir leurs ports sur Internet.&lt;br /&gt;
&lt;br /&gt;
Lors des tests du 16 octobre 2026, la supervision a été adaptée pour utiliser cette adresse.&lt;br /&gt;
&lt;br /&gt;
== 12. Tests réseau depuis l&amp;#039;extérieur ==&lt;br /&gt;
&lt;br /&gt;
Pour tester réellement les restrictions Internet, il faut utiliser une connexion extérieure indépendante du bureau et des VPN.&lt;br /&gt;
&lt;br /&gt;
=== 12.1 Particularité du Mac AJLSM ===&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;adaptateur Ethernet USB du Mac utilise :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
en7&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le Wi-Fi utilise :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
en0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
macOS peut continuer à privilégier Ethernet même lorsque le partage de connexion de l&amp;#039;iPhone est activé.&lt;br /&gt;
&lt;br /&gt;
=== 12.2 Procédure ===&lt;br /&gt;
&lt;br /&gt;
# Désactiver les VPN.&lt;br /&gt;
# Désactiver temporairement l&amp;#039;adaptateur Ethernet &amp;lt;code&amp;gt;en7&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Connecter le Mac au partage de connexion de l&amp;#039;iPhone.&lt;br /&gt;
# Vérifier la route et l&amp;#039;adresse publique.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
route -n get 1.1.1.1&lt;br /&gt;
curl -4 https://api.ipify.org&lt;br /&gt;
echo&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;interface attendue est &amp;lt;code&amp;gt;en0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;adresse publique doit être différente de celle du bureau.&lt;br /&gt;
&lt;br /&gt;
=== 12.3 Tester les ports ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for port in 22 80 443 2022 111 2049 9001 9090 4330 44321 44322 44323; do&lt;br /&gt;
    nc -vz -G 3 51.178.110.230 &amp;quot;$port&amp;quot; 2&amp;gt;&amp;amp;1&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Après les tests, réactiver Ethernet.&lt;br /&gt;
&lt;br /&gt;
== 13. Contrôles après redémarrage ==&lt;br /&gt;
&lt;br /&gt;
Après chaque redémarrage d&amp;#039;EOLE3 :&lt;br /&gt;
&lt;br /&gt;
# vérifier le service AJLSM ;&lt;br /&gt;
# vérifier Fail2ban ;&lt;br /&gt;
# contrôler les tables nftables ;&lt;br /&gt;
# tester une nouvelle connexion SSH ;&lt;br /&gt;
# vérifier Apache et SFTPGo ;&lt;br /&gt;
# vérifier les échanges NFS ;&lt;br /&gt;
# contrôler Centreon.&lt;br /&gt;
&lt;br /&gt;
Commandes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl is-active ajlsm-firewall.service&lt;br /&gt;
systemctl is-enabled ajlsm-firewall.service&lt;br /&gt;
&lt;br /&gt;
systemctl is-active fail2ban.service&lt;br /&gt;
&lt;br /&gt;
nft list tables&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 14. Règles à ne jamais oublier ==&lt;br /&gt;
&lt;br /&gt;
* Ne jamais utiliser &amp;lt;code&amp;gt;flush ruleset&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Ne jamais activer UFW en parallèle sans étude préalable.&lt;br /&gt;
* Ne jamais exposer NFS sur Internet.&lt;br /&gt;
* Ne jamais ouvrir Cockpit publiquement.&lt;br /&gt;
* Ne jamais modifier les adresses SSH autorisées sans accès de secours.&lt;br /&gt;
* Toujours conserver un mécanisme de retour arrière.&lt;br /&gt;
* Toujours tester depuis une véritable connexion extérieure.&lt;br /&gt;
* Toujours vérifier Fail2ban après une modification du pare-feu.&lt;br /&gt;
* Toujours vérifier les services internes après modification.&lt;br /&gt;
&lt;br /&gt;
== 15. Historique ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Date&lt;br /&gt;
! Intervention&lt;br /&gt;
|-&lt;br /&gt;
| 16/10/2026&lt;br /&gt;
| Création et validation des règles nftables AJLSM&lt;br /&gt;
|-&lt;br /&gt;
| 16/10/2026&lt;br /&gt;
| Validation des accès publics et des restrictions depuis le réseau mobile&lt;br /&gt;
|-&lt;br /&gt;
| 16/10/2026&lt;br /&gt;
| Validation du démarrage, de l&amp;#039;arrêt et du rechargement via systemd&lt;br /&gt;
|-&lt;br /&gt;
| 16/10/2026&lt;br /&gt;
| Activation du service au démarrage ; vérification finale de persistance à confirmer&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Eole3]]&lt;br /&gt;
[[Catégorie:Sécurité]]&lt;br /&gt;
[[Catégorie:Infrastructure]]&lt;/div&gt;</description>
			<pubDate>Fri, 16 Oct 2026 12:33:46 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:EOLE3_%E2%80%94_Acc%C3%A8s,_s%C3%A9curit%C3%A9_et_pare-feu</comments>
		</item>
		<item>
			<title>EOLE3 — Accès et sécurité</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=EOLE3_%E2%80%94_Acc%C3%A8s_et_s%C3%A9curit%C3%A9&amp;diff=6483&amp;oldid=6221</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=EOLE3_%E2%80%94_Acc%C3%A8s_et_s%C3%A9curit%C3%A9&amp;diff=6483&amp;oldid=6221</guid>
			<description>&lt;p&gt;Page blanchie&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 16 octobre 2026 à 12:33&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= EOLE3 — Accès et sécurité =&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[category:eole3]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== 1. Principe ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Séparer les usages :&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* administration&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* SFTP clients&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* comptes nominatifs&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== 2. Comptes ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== root ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* accès total&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* réservé maintenance&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== ubuntu ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* accès SSH principal&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* sudo vers root&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== SFTP ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* pas de shell&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* accès limité au dataset&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== comptes nominatifs ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* accès SSH personnel&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* traçabilité&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== 3. Configuration SSH ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Fichier :&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/etc/ssh/sshd_config.d/20-eole3-sftp.conf&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Contenu :&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Match Group eole3-sftp&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    ChrootDirectory %h&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    ForceCommand internal-sftp&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    AllowTcpForwarding no&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    PermitTunnel no&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    X11Forwarding no&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== 4. Règles ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* ne jamais ajouter admin dans eole3-sftp&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* ne jamais donner de shell aux clients&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* toujours utiliser chroot&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== 5. Sécurité réseau ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* exposer uniquement Apache (443)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* ne pas exposer ports internes (9090, 8080)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* restreindre par IP si possible&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== 6. Bonnes pratiques ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* authentification par clé SSH&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* comptes nominatifs obligatoires&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* logs actifs&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 16 Oct 2026 12:33:02 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:EOLE3_%E2%80%94_Acc%C3%A8s_et_s%C3%A9curit%C3%A9</comments>
		</item>
		<item>
			<title>Sécurité Eole3 – Règles à ne pas oublier</title>
			<link>https://mediawiki.ajlsm.com/index.php?title=S%C3%A9curit%C3%A9_Eole3_%E2%80%93_R%C3%A8gles_%C3%A0_ne_pas_oublier&amp;diff=6482&amp;oldid=6184</link>
			<guid isPermaLink="false">https://mediawiki.ajlsm.com/index.php?title=S%C3%A9curit%C3%A9_Eole3_%E2%80%93_R%C3%A8gles_%C3%A0_ne_pas_oublier&amp;diff=6482&amp;oldid=6184</guid>
			<description>&lt;p&gt;Page blanchie&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.ajlsm.com/index.php?title=S%C3%A9curit%C3%A9_Eole3_%E2%80%93_R%C3%A8gles_%C3%A0_ne_pas_oublier&amp;amp;diff=6482&amp;amp;oldid=6184&quot;&gt;Voir les modifications&lt;/a&gt;</description>
			<pubDate>Fri, 16 Oct 2026 12:31:34 GMT</pubDate>
			<dc:creator>Jlarvers</dc:creator>
			<comments>https://mediawiki.ajlsm.com/wiki/Discussion:S%C3%A9curit%C3%A9_Eole3_%E2%80%93_R%C3%A8gles_%C3%A0_ne_pas_oublier</comments>
		</item>
</channel></rss>