<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MUTT &#8211; erwan.guillemard</title>
	<atom:link href="https://erwanguillemard.com/tag/mutt/feed/" rel="self" type="application/rss+xml" />
	<link>https://erwanguillemard.com</link>
	<description></description>
	<lastBuildDate>Tue, 05 Mar 2024 22:18:09 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8</generator>

<image>
	<url>https://erwanguillemard.com/wp-content/uploads/2024/02/cropped-Logo-sans-baseline-32x32.png</url>
	<title>MUTT &#8211; erwan.guillemard</title>
	<link>https://erwanguillemard.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>LINUX – MCO &#038; Update</title>
		<link>https://erwanguillemard.com/linux-mco-update/</link>
		
		<dc:creator><![CDATA[Erwan Guillemard]]></dc:creator>
		<pubDate>Wed, 24 Jan 2024 21:17:06 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[MCO]]></category>
		<category><![CDATA[Projets]]></category>
		<category><![CDATA[MUTT]]></category>
		<guid isPermaLink="false">https://erwanguillemard.com/?p=1314</guid>

					<description><![CDATA[J’ai toujours été emmerdé par le sujet des mises à jour système que ce soit sur les environnements WINDOWS ou LINUX. Faut-il les passer en automatique ou manuellement&#160;? Que faire si jamais une mise à jour est foireuse, est ce compatible avec les applications métiers, est ce que je réponds à la correction de vulnérabilité...]]></description>
										<content:encoded><![CDATA[
<p>J’ai toujours été emmerdé par le sujet des mises à jour système que ce soit sur les environnements WINDOWS ou LINUX. Faut-il les passer en automatique ou manuellement&nbsp;? Que faire si jamais une mise à jour est foireuse, est ce compatible avec les applications métiers, est ce que je réponds à la correction de vulnérabilité ect ? </p>



<p>Je pense que la liste pourrait être longue&#8230;</p>



<p>Pour ma part je ne suis pas un grand partisan de l’application des mises à jour automatique. Les raisons ? Avoir subi des aléas système avec WINDOWS et des aléas d’application tierce sous LINUX.</p>



<p>Le temps passé à diagnostiquer, refuser et désinstaller la, les mises à jour (quand c’est possible et que le SE à décider de boot jusqu’au bout) ou alors de réparer le système (restauration de la sauvegarde précédente pour le système, application de fix nébuleux pour ne pas dire opaque) couplé au temps d’interruption de service que subit les utilisateurs cela peut vite s’avérer un casse-tête et une source de stress…</p>



<p>L’un des meilleurs exemples qui me vient en tête&nbsp;:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>Souviens toi, souviens toi du 15 Octobre 2021, de la conspiration de MICROSOFT et de VMWare car la mise à jour du pilote pvscsi à débugger jamais je ne pourrai me résoudre…</em></p>
<cite>Erwan GUILLEMARD (sur la base de <a href="https://en.wikipedia.org/wiki/V_for_Vendetta_(film)"><em>V for Vendetta</em> 2005</a>) </cite></blockquote>



<p>Je fais de le drama&nbsp;! Le dysfonctionnement a été corrigé dans la matinée pour l’ensemble des serveurs concernées. Toutefois ça a été long et fastidieux. (cf </p>



<p>Afin d’éviter ce cas de figure, je me suis posé la question que préconise les éditeurs, les distributeurs de SE&nbsp;?</p>



<p>Dans la logique il conviendrait d’avoir un miroir de son environnement de production en préproduction. Cela demande d’avoir les ressources de stockage et calcul nécessaire, d’avoir une réplication des données à J-1. Bref, c’est beaucoup de contrainte humaine, financière et matérielle pour des PMEs.</p>



<p>Il existe selon moi trois alternatives sans consommer trop de ressources&nbsp;:</p>



<ol class="wp-block-list">
<li>Ne pas mettre à jour ces environnements (ça solde rapidement le problème)</li>



<li>Avoir un environnement de préproduction minimaliste avec les SEs les plus présent et au moins un de chaque. Appliquer les mises à jour en amont et si tout est correct appliquer les changements en production</li>



<li>Appliquer les mises à jour sur l’environnement de production en lissant ces dernières dans le temps. Application des mises à jour sur un AD la deuxième semaine du mois puis la troisième semaine pour les autres serveurs d’authentifications par exemple.</li>
</ol>



<p>Sans m’étendre sur le scénario numéro un qui est pour moi celui le plus présent malheureusement (même si ce n&rsquo;est pas empirique). J’ai tendance à préférer le cas de figure numéro 3. Il a des inconvénients, avantages et je trouve pour ma part une efficience à l’administrer au quotidien.</p>



<p>Cependant, pour les environnements critiques ou métiers à fort impact je préfére l’option 2. C’est le cas des environnements LINUX pour lesquelles je garde un historique des actions effectuées ainsi qu’une application dans un environnement de préproduction/test au préalable.</p>



<p>J’ajoute ceinture, bretelle et parachute avec une sauvegarde de la veille, dump des bdds et snapshot à froid si possible. Nous ne sommes jamais trop sûr, sait on jamais&#8230;</p>





<h2 class="wp-block-heading">Prérequis</h2>



<ul class="wp-block-list">
<li><strong>SE:</strong> RHEL, Debian, Ubuntu</li>



<li><strong>Apps:</strong> Mutt, cyrus-sasl-plain</li>



<li><strong>Autres:</strong> Sauvegarde fonctionnelle et/ou sauvegarde des fichiers de configurations au préalable</li>
</ul>



<h1 class="wp-block-heading">Update Notifications</h1>



<h2 class="wp-block-heading">Installation et configuration de MUTT</h2>



<p>Concernant cette partie, je vous invite à parcourir la section déjà documentée dans l&rsquo;article <a href="https://erwanguillemard.com/apps-mutt/" data-type="link" data-id="https://erwanguillemard.com/apps-mutt/">Apps &#8211; MUTT</a>.</p>



<h2 class="wp-block-heading">Configuration et installation du Script</h2>



<p>J’ai pour habitude de positionner mes scripts à la racine du système dans un répertoire à part avec des droits spécifiques. L’objectif étant de toujours garantir un niveau de sécurité suffisant et d’éviter une escalade potentiel des droits.</p>



<pre class="wp-block-code"><code><strong>$ sudo mkdir /script</strong>
<strong>$ sudo mkdir /script/SS_023_LINUX_UpdatesNotifications</strong></code></pre>



<p class="has-text-align-center"><strong><em>SS_023_</em> t&rsquo;es allé la cherché loin ta p****n de convention de nommage !</strong></p>



<p>Effectivement, au premier abord, le nom peut paraitre compliqué, je vous explique. Et non, nous n’effleurerons pas le point G (Godwin) dans cet article. J’ai nommé mes projets suivant une convention personnelle&nbsp;depuis un grand nombre d&rsquo;année déjà.</p>



<ul class="wp-block-list">
<li><strong>GS&nbsp;: GraphicalScript</strong></li>



<li><strong>SS&nbsp;: SystemScript</strong></li>



<li><strong>XX&nbsp;: Le numéro du projet suivi du nom du projet</strong></li>
</ul>



<p>Editez le fichier ou copiez le fichier suivant&nbsp;: <em>SS_023_D_LINUX_UpdatesNotification.sh</em></p>



<p>A ce jour le fichier en version D est construit de la manière suivante&nbsp;:</p>



<ul class="wp-block-list">
<li>Les constantes</li>



<li>Une fonction vérifiant l’OS</li>



<li>Une fonction vérifiant les mises à jour</li>



<li>Une fonction d’envoi de mail</li>



<li>Une fonction pour forger le mail en html</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="481" height="437" src="https://erwanguillemard.com/wp-content/uploads/2024/01/003_6_egu_ss027.png" alt="" class="wp-image-1322" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/003_6_egu_ss027.png 481w, https://erwanguillemard.com/wp-content/uploads/2024/01/003_6_egu_ss027-300x273.png 300w" sizes="(max-width: 481px) 100vw, 481px" /></figure></div>


<p>Dans un premier temps, par fainéantise un simple mail en texte brut me suffisait amplement. Puis il a fallu mettre en service tout ça et rendre lisible le rapport. C’est pourquoi il y a dans le script la possibilité de générer le rapport au format HTML ou TXT.</p>



<p class="has-text-align-center"><strong>«&nbsp;T’es mignon, mais sans le script on ne peut pas aller bien loin… Ce n’est pas dans l’esprit communautaire ce que tu fais nanani nana&nbsp;»</strong></p>



<p>Ouvrons une parenthèse et faisons <a href="https://www.youtube.com/watch?v=vPtggMc8U9U&amp;ab_channel=MonteCarloMusic">une mise au point</a>,</p>



<p>Oui j’en ai bien conscience, je n’ai tout simplement pas envie non plus de donner les fruits de mon travail et réflexion facilement. Il y a plusieurs raisons pour lesquelles je ne délivre pas mes scripts.</p>



<ul class="wp-block-list">
<li>Il est nécessaire d’assurer le support et la correction des bugs. Cela demande du temps et la communauté pour l’avoir plusieurs fois constaté sur d’autres forums on put se montrer malveillante et désobligeante bien que cela ne soit pas une généralité.</li>



<li>Cela repose sur une personne et donc il y a un risque quant à la durée de vie et du fonctionnement de ma solution (MCO et MCS). J’ai peut-être réinventé la roue, mais c’est ma roue avec ces petits défauts et je ne peux et ne veux pas être tenu pour responsable de tous dysfonctionnements éventuels sur vos SIs.</li>



<li>Un peu de pudeur singulière quand au code. Certains pourraient dire que c’est codé avec les pieds, que ça peut être mieux fait, factorisé ect. Je crois et c’est ce que j’ai retenu d’un de mes collègues, c’est que l’on peut toujours faire mieux que les autres et que chaque solution est optimisable. Toutefois, mes «&nbsp;outils&nbsp;» reflètent mon paradigme. Si ce dernier ne me convient pas intrinsèquement je n’en parle pas et né présente pas mes «&nbsp;travaux&nbsp;».</li>



<li>Je ne compte pas vendre les solutions car je pense que ces dernières doivent rester dans l’esprit du libre. Je suis prêt à donner mes outils mais pas de mon temps. Echanger sur le sujet reste un grand plaisir. Assurer le support et faire «&nbsp;à la place de&nbsp;» nécessite sonnant et trébuchant (communément appelé Prestation de Services).</li>
</ul>



<p>Fermons la parenthèse.</p>



<p>Revenons à nos moutons. Le script mis en place, il est nécessaire de définir les droits.</p>



<p>Un simple 700 suffit sur le fichier.</p>



<pre class="wp-block-code"><code><strong>$ sudo chmod 700 /script/SS_023_LINUX_UpdatesNotifications/SS_023_D_LINUX_UpdatesNotifications.sh</strong></code></pre>



<p>Néanmoins, les permissions restent root:root et ça c’est pas ouf. C’est comme allez aux p****s sans capotes. Ça peut le faire mais il subsiste un risque. Après chacun fait ce qui lui chante.</p>



<p>Malheureusement je n’ai pas à ce jour «&nbsp;procéduré&nbsp;» de manière correct l’exécution d’une tâche planifiée avec un utilisateur autre que root sans générer de trou dans la raquette niveau sécurité.</p>



<p>En gros soit c’est sécu mais ça ne fonctionne pas, soit ça fonctionne mais faut pas trop regarder côté sécu.</p>



<h2 class="wp-block-heading">Configuration du cron</h2>



<p>Comme pour Microsoft avec son mensuel Tuesday Update, j’aime quant à moi réaliser un rapport hebdomadaire le mercredi à 03:00 PM.</p>



<p>Et puis entre nous, le mercredi aprem c’est la journée télétravail, tout le monde fait semblant de taffer, la France est au 4/5eme, on se fait ch**r et nous ne sommes pas Vendredi soir pour faire une mise en production. Il faut bien s’occuper un peu&nbsp;!</p>



<pre class="wp-block-code"><code><strong># vim /etc/crontab</strong></code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="605" height="244" src="https://erwanguillemard.com/wp-content/uploads/2024/01/003_7_cron.png" alt="" class="wp-image-1323" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/003_7_cron.png 605w, https://erwanguillemard.com/wp-content/uploads/2024/01/003_7_cron-300x121.png 300w" sizes="(max-width: 605px) 100vw, 605px" /></figure></div>


<p>Ce qui nous donne dans notre BAL&nbsp;:</p>



<figure class="wp-block-table aligncenter"><table><tbody><tr><td><strong>Nothing to do &#8211; No updates availables</strong></td><td><strong>MCO to do – Updates availables</strong></td></tr><tr><td><img decoding="async" width="500" height="531" class="wp-image-1324" style="width: 500px;" src="https://erwanguillemard.com/wp-content/uploads/2024/01/003_8_noupdates.png" alt="" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/003_8_noupdates.png 374w, https://erwanguillemard.com/wp-content/uploads/2024/01/003_8_noupdates-283x300.png 283w" sizes="(max-width: 500px) 100vw, 500px" /></td><td><img loading="lazy" decoding="async" width="500" height="517" class="wp-image-1325" style="width: 500px;" src="https://erwanguillemard.com/wp-content/uploads/2024/01/003_9_updates.png" alt="" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/003_9_updates.png 359w, https://erwanguillemard.com/wp-content/uploads/2024/01/003_9_updates-290x300.png 290w" sizes="auto, (max-width: 500px) 100vw, 500px" /></td></tr></tbody></table></figure>



<h1 class="wp-block-heading">Conclusion</h1>



<p>J’ai peut-être réinventé la roue et je suis certains qu’un paquet répond déjà à mon besoin dans un repo.</p>



<p>Cependant, si une solution existe dans les gestionnaires de paquet il est fort probable que ces dernières ne répondent pas à mon besoin personnel dans sa globalité.</p>



<p>Je vois donc dans ma solution «&nbsp;maison&nbsp;» les avantages et inconvénients suivants :</p>



<div class="wp-block-kadence-accordion alignnone"><div class="kt-accordion-wrap kt-accordion-id1314_f17840-0d kt-accordion-has-2-panes kt-active-pane-0 kt-accordion-block kt-pane-header-alignment-left kt-accodion-icon-style-basic kt-accodion-icon-side-right" style="max-width:none"><div class="kt-accordion-inner-wrap" data-allow-multiple-open="false" data-start-open="0">
<div class="wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-1 kt-pane1314_396ef7-90"><div class="kt-accordion-header-wrap"><button class="kt-blocks-accordion-header kt-acccordion-button-label-show"><span class="kt-blocks-accordion-title-wrap"><span class="kt-blocks-accordion-title">Avantages</span><span class="kb-svg-icon-wrap kb-svg-icon-fe_check kt-btn-side-right"><svg viewBox="0 0 24 24"  fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"  aria-hidden="true"><polyline points="20 6 9 17 4 12"/></svg></span></span><span class="kt-blocks-accordion-icon-trigger"></span></button></div><div class="kt-accordion-panel kt-accordion-panel-hidden"><div class="kt-accordion-panel-inner">
<ul class="wp-block-list">
<li>MCO assuré</li>



<li>Suivies des paquets obsolètes, mises à jour de sécurités </li>



<li>Stacktraces de l’historique des mises à jour</li>
</ul>
</div></div></div>



<div class="wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-2 kt-pane1314_332961-11"><div class="kt-accordion-header-wrap"><button class="kt-blocks-accordion-header kt-acccordion-button-label-show"><span class="kt-blocks-accordion-title-wrap"><span class="kt-blocks-accordion-title">Inconvénients</span><span class="kb-svg-icon-wrap kb-svg-icon-fe_minusCircle kt-btn-side-right"><svg viewBox="0 0 24 24"  fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"  aria-hidden="true"><circle cx="12" cy="12" r="10"/><line x1="8" y1="12" x2="16" y2="12"/></svg></span></span><span class="kt-blocks-accordion-icon-trigger"></span></button></div><div class="kt-accordion-panel kt-accordion-panel-hidden"><div class="kt-accordion-panel-inner">
<ul class="wp-block-list">
<li>Utilise le compte root pour la tâche planifiée</li>



<li>Repose sur un paquet, application tiers « MUTT »</li>



<li>Doit être ajusté selon les SEs qui ne sont pas pris en charge</li>



<li>S’assurer que le script n’est pas altéré (le signer en somme)</li>
</ul>
</div></div></div>
</div></div></div>



<p></p>



<p>Mon objectif étant maintenant selon mon temps libre et la criticité des «&nbsp;Inconvénients&nbsp;» de faire de ces derniers des avantages. Jusqu’à réduire au plus possible le nombre de point énuméré.</p>



<p>M’affranchir de MUTT et de faire mon propre service de relai de messagerie par exemple.</p>



<p>Pour répondre au point de l’altération et ou non du script et d’aborder la non répudiation et véracité du script, ce dernier a été déjà été traité et sera abordé dans un autre article.</p>



<p>Pour d’avantage d’information sur le script vous pouvez me contacter, ça serait avec un grand plaisir que je vous répondrai.</p>



<p>Le mot de la fin&nbsp;:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>Je DISM mon kernel LINUX, dnf update mon MSSQL et fax le résultat à Philippe RISOLI</em></p>
<cite>Erwan GUILLEMARD</cite></blockquote>



<h2 class="wp-block-heading">Sources</h2>



<ul class="wp-block-list">
<li><a href="https://erwanguillemard.com/apps-mutt/">Mutt</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Apps &#8211; MUTT</title>
		<link>https://erwanguillemard.com/apps-mutt/</link>
		
		<dc:creator><![CDATA[Erwan Guillemard]]></dc:creator>
		<pubDate>Tue, 16 Jan 2024 18:15:00 +0000</pubDate>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[MUTT]]></category>
		<guid isPermaLink="false">https://erwanguillemard.com/?p=1379</guid>

					<description><![CDATA[Je veux vous parler d&#8217;un héraut. Un héraut particulier qui m&#8217;accompagne depuis plusieurs années déjà. Il est petit, efficace, fiable et facile d&#8217;utilisation. Parlons peu, parlons bien, parlons MUTT ! MUTT est une solution de messagerie en mode console. Ce dernier est assez flexible, prend en charge un bon nombre des protocoles de messagerie et...]]></description>
										<content:encoded><![CDATA[
<p>Je veux vous parler d&rsquo;un héraut. Un héraut particulier qui m&rsquo;accompagne depuis plusieurs années déjà.</p>



<p>Il est petit, efficace, fiable et facile d&rsquo;utilisation.</p>



<p class="has-text-align-center">Parlons peu, parlons bien, parlons MUTT !</p>



<p>MUTT est une solution de messagerie en mode console. Ce dernier est assez flexible, prend en charge un bon nombre des protocoles de messagerie et est super léger.</p>



<p>Ce que j&rsquo;affectionne le plus dans cette solution, reste la rapidité de déploiement ainsi que sa simplicité de mise en place en tant que relai SMTP (en quasi moins de 5 minutes si je n&rsquo;ai pas à chercher les identifiants et mots de passe).</p>



<p class="has-text-align-center"><strong><em>What else ?</em></strong> <em>Ba c&rsquo;est tout</em>, rien à ajouter votre honneur.</p>



<p>Je ne vais pas réinventer la multitude de post sur le sujet quant à l&rsquo;implémentation de la solution. Je me limiterai uniquement à la configuration nécessaire à mon usage personnel, et nécessaire au bon fonctionnement de mes outils/scripts bash.</p>



<p>(Pour être efficient et ne pas dire fainéant, c&rsquo;est surtout un mémo pour déployer rapidement mon relai de messagerie ou plus si affinité sans chercher tous les temps les arguments et ma configuration. 🙂 )</p>





<h2 class="wp-block-heading has--font-size">Prérequis</h2>



<ul class="wp-block-list">
<li>RHEL, Debian, Ubuntu</li>



<li>Mutt, cyrus-sasl-plain</li>
</ul>



<h2 class="wp-block-heading">Installation</h2>



<p>Rechercher et installer les paquets suivants, <strong>mutt</strong> et <strong>cyrus-sasl-plain</strong>.</p>



<ul class="wp-block-list">
<li>Le premier paquet permettra d’envoyer les mails via un relai smpt</li>



<li>Le second paquet permettra de prendre en charge l’authentification</li>
</ul>



<pre class="wp-block-code"><code><strong>$ sudo dnf search mutt</strong>
<strong>$ sudo search cyrus-sasl-plain</strong></code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="419" height="96" src="https://erwanguillemard.com/wp-content/uploads/2024/01/003_0_search.png" alt="" class="wp-image-1317" style="width:605px;height:auto" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/003_0_search.png 419w, https://erwanguillemard.com/wp-content/uploads/2024/01/003_0_search-300x69.png 300w" sizes="auto, (max-width: 419px) 100vw, 419px" /></figure></div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="418" height="58" src="https://erwanguillemard.com/wp-content/uploads/2024/01/003_1_search.png" alt="" class="wp-image-1318" style="width:612px;height:auto" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/003_1_search.png 418w, https://erwanguillemard.com/wp-content/uploads/2024/01/003_1_search-300x42.png 300w" sizes="auto, (max-width: 418px) 100vw, 418px" /></figure></div>


<pre class="wp-block-code"><code><strong>$ sudo dnf install mutt cyrus-sasl-plain</strong> </code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="415" height="308" src="https://erwanguillemard.com/wp-content/uploads/2024/01/003_2_search.png" alt="" class="wp-image-1319" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/003_2_search.png 415w, https://erwanguillemard.com/wp-content/uploads/2024/01/003_2_search-300x223.png 300w" sizes="auto, (max-width: 415px) 100vw, 415px" /></figure></div>


<h2 class="wp-block-heading">Configuration</h2>



<h3 class="wp-block-heading">Relai SMTP</h3>



<p>Pour la phase de configuration, la majorité des actions sont à réaliser en tant qu’utilisateur et non en tant que root.</p>



<figure class="wp-block-table"><table><tbody><tr><td><strong>/!\Attention&nbsp;:</strong> Pour rappel, les commandes en tant qu’utilisateur seront signalés avec <strong>$</strong> et avec <strong>#</strong> en tant que root.</td></tr></tbody></table></figure>



<p>Renommez le fichier de configuration par défaut Muttrc&nbsp;:</p>



<pre class="wp-block-code"><code><strong>$ sudo mv /etc/Muttrc /etc/Muttrc.ori</strong></code></pre>



<p>Editez le fichier de configuration Muttrc&nbsp;:</p>



<pre class="wp-block-code"><code><strong>$ sudo vim /etc/Muttrc</strong></code></pre>



<p>Parcourons rapidement le fichier de configuration de MUTT</p>



<ul class="wp-block-list">
<li><strong>Set from</strong>&nbsp;: L’adresse utilisée lors de l’envoie du mail</li>



<li><strong>Set realname</strong>&nbsp;: Le nom qui sera affiché</li>



<li><strong>Set use_from</strong>&nbsp;: Actif </li>



<li><strong>Set ssl_*</strong>&nbsp;: Désactivation du TLS car non pris en charge ce qui génére l’erreur 503 BadSequence </li>



<li><strong>Set smtp_pass</strong>&nbsp;: Le password du compte à utiliser </li>



<li><strong>Set smtp_url</strong>&nbsp;: L’url de connexion au relai smtp sous la forme «smtp://user@contoso.com:password@relaissmtp:587&nbsp;»</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="258" height="87" src="https://erwanguillemard.com/wp-content/uploads/2024/01/003_4_muttrc.png" alt="" class="wp-image-1320" style="width:246px;height:auto"/></figure></div>


<p>Naturellement, la configuration est à adapter par vos soins, vous n’êtes pas obligé d’utiliser mutt non plus et donc de quitter ce billet.</p>



<p> J&rsquo;ai choisi mutt car il me permet de générer des mails au format HTML. Bien avant de rencontrer et d&rsquo;utiliser ce paquet, l&rsquo;ensemble de mes mails était en texte brut (pour cela je passe par msmtp).</p>



<p>Les droits appliqués sur le fichier de configuration sont 655 root:root. Le password spécifié pour l&rsquo;authentification à notre relai smtp est donc visible de tous les utilisateurs. C&rsquo;est pas top&#8230;</p>



<p>Il est donc nécessaire de remédier à cela en retirant les droits sur le fichier pour les autres&nbsp;:</p>



<pre class="wp-block-code"><code><strong>$ sudo chmod 650 /etc/Muttrc</strong></code></pre>



<p>Pour vérifier, un petit <strong>$</strong> <strong>cat /etc/Muttrc</strong> en tant qu’utilisateur vous retournera l&rsquo;un des plus beau message du monde, à la fois simple, clair et efficace. 😀</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="303" height="19" src="https://erwanguillemard.com/wp-content/uploads/2024/01/003_5_mutt_denied.png" alt="" class="wp-image-1321" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/003_5_mutt_denied.png 303w, https://erwanguillemard.com/wp-content/uploads/2024/01/003_5_mutt_denied-300x19.png 300w" sizes="auto, (max-width: 303px) 100vw, 303px" /></figure></div>


<h2 class="wp-block-heading">Test &amp; Debug</h2>



<p>Afin de vérifier le bon fonctionnement de notre configuration nous allons envoyer notre premier mail.</p>



<p>Dans un premier temps, générons un fichier dans /tmp/test_mutt contenant « Délivrez moi ce message de la plus haute importance, héraut ! »</p>



<pre class="wp-block-code"><code>$ vim /tmp/test_mutt

Délivrez moi ce message de la plus haute importance, héraut !</code></pre>



<p>Entrez la commande suivante</p>



<pre class="wp-block-code"><code>$ sudo mutt -s "Message de la plus haute importance" erwanguillemard@gmail.com &lt; /tmp/test_mutt</code></pre>



<p>Regardons d&rsquo;un peu plus près la commande que nous avons lancés. La présence du <strong>sudo</strong> semble étrange. En réalité non car j&rsquo;ai durci mon SE :D, d&rsquo;où l&rsquo;élévation de privilège. </p>



<p>Le reste de la commande, un rapide <strong>&#8211;man</strong> nous renseigne sur l&rsquo;ensemble des arguments disponible ainsi que les syntaxes supportées. </p>



<p>Dans notre cas :</p>



<ul class="wp-block-list">
<li><strong>-s </strong>: Indique l&rsquo;objet du mail</li>



<li><strong>adresse mail</strong> : l&rsquo;adresse mail du, des destinataire(s)</li>



<li><strong>&lt; /path/file</strong> : le corps du mail contenu dans un fichier</li>
</ul>



<p>Si un argument est manquant Mutt vous invitera à travers un menu contextuel en console à finaliser votre courrier (brave bête).</p>



<p>Si nous consultons notre BAL</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="604" height="307" src="https://erwanguillemard.com/wp-content/uploads/2024/01/mutt_test.png" alt="" class="wp-image-1384" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/mutt_test.png 604w, https://erwanguillemard.com/wp-content/uploads/2024/01/mutt_test-300x152.png 300w" sizes="auto, (max-width: 604px) 100vw, 604px" /></figure></div>


<p>Concernant la parti diagnostic et debug, j&rsquo;ai tendance à dire que plusieurs choix s&rsquo;offre à nous, d&rsquo;abord le fichier de log maillog ou la commande de debug prévu à cette effet</p>



<pre class="wp-block-code"><code><strong>$ sudo tail -f /var/log/maillog</strong>
et
<strong>$ sudo mutt -nd 5</strong></code></pre>



<h1 class="wp-block-heading">Conclusion</h1>



<p>Un rapide relai SMTP opérationnel en quelques minutes permettant de remettre les courriers qui seront envoyés <strong>uniquement</strong> par nos robots et services.</p>



<p>Le mot de la fin :</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>Le héraut est l&rsquo;ancètre du Petit Travailleur Tranquille ? Que nenni mareau, je suis syndiqué !</em></p>
<cite>Erwan GUILLEMARD</cite></blockquote>



<h2 class="wp-block-heading">Sources</h2>



<ul class="wp-block-list">
<li><a href="https://linux.die.net/man/5/muttrc">Mutt</a></li>



<li><a href="https://www.cyrusimap.org/sasl/">Cyrus-sasl</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>LINUX &#8211; Locked Account</title>
		<link>https://erwanguillemard.com/linux-locked-account/</link>
		
		<dc:creator><![CDATA[Erwan Guillemard]]></dc:creator>
		<pubDate>Mon, 15 Jan 2024 22:27:55 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Projets]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[MUTT]]></category>
		<category><![CDATA[Projet]]></category>
		<category><![CDATA[Securité]]></category>
		<guid isPermaLink="false">https://erwanguillemard.com/?p=1335</guid>

					<description><![CDATA[La sécurité, c&#8217;est savoir regarder qui est devant sa porte. Avec l&#8217;évolution technologique, nous pouvons bénéficier depuis nos smartphones à l&#8217;intégralité de notre propriété et autres biens si nous avons choisi de souscrire à une entreprise de surveillance ou d&#8217;avoir déployer soit même quelques équipements. Ces Judas électroniques étaient inexistant il n&#8217;y a pas si...]]></description>
										<content:encoded><![CDATA[
<p>La sécurité, c&rsquo;est savoir regarder qui est devant sa porte. Avec l&rsquo;évolution technologique, nous pouvons bénéficier depuis nos smartphones à l&rsquo;intégralité de notre propriété et autres biens si nous avons choisi de souscrire à une entreprise de surveillance ou d&rsquo;avoir déployer soit même quelques équipements.</p>



<p>Ces Judas électroniques étaient inexistant il n&rsquo;y a pas si longtemps. A défaut d&rsquo;être chez soi et de lorgner dans le Judas pour vérifier qui frappe à la porte (ou s&rsquo;abandonner au plaisir solitaire du commérage), nous étions bien e******s quand nous n&rsquo;étions pas chez nous. D&rsquo;où les systèmes d&rsquo;alarmes, sirènes qui hurlent et c*****t les c******s du voisinage.</p>



<p>A partir de ce postulat et avec un peu d&rsquo;imagination, mon domicile c&rsquo;est mon serveur LINUX. Se pose la question de vérifier qui frappe à la porte, qui rentre, qui rentre pas. Qui se fait kick par <a href="https://www.youtube.com/watch?v=DOO5vuxizLM&amp;ab_channel=StupeflipOfficiel">Jean-Pierre, notre bon chien</a> (plus petit que Cerbère quand même car il bouffe ce c*n) quand je ne suis pas scotché sur mon système le nez dans mes journaux de log.</p>



<p>Une nouvelle fois je me suis tourné vers une solution purement personnelle. Pourquoi ?</p>



<p>Parce que j&rsquo;ai pas trouvé chaussure à mon pied&#8230;</p>



<p>Afin de répondre à cette question, je vais vérifier si des utilisateurs sont lock et envoyer une notification mail à l&rsquo;équipe en charge du MCO du serveur. Si ça ne suffit, pas, le mail reviendra tant que le compte n&rsquo;aura pas été unlock.</p>



<p>Plusieurs raisons peuvent être dû au verrouillage d&rsquo;un compte :</p>



<ul class="wp-block-list">
<li>Syndrome des doigts palmés</li>



<li>Oublie du login, password</li>



<li>Compte non habilité à se connecter</li>



<li>Tentative d&rsquo;intrusion</li>
</ul>



<p>Dans la majorité des cas, il résulte du syndrome du palmipède. Le compte est rapidement déverrouillé (par un autre compte ou par un autre biais). Dans le dernier cas, il convient d&rsquo;éplucher les journaux et de mettre rapidement des mesures pour isoler et interdire les IPs sources ayant tenter de s&rsquo;authentifier. D&rsquo;aller consulter son Responsable Sécurité pour engager les actions nécessaires en adéquations selon le risque couru.</p>





<h2 class="wp-block-heading">Prérequis</h2>



<ul class="wp-block-list">
<li>RHEL, Debian, Ubuntu</li>



<li>Mutt, cyrus-sasl-plain, Faillock</li>
</ul>



<h1 class="wp-block-heading">Locked Account &amp; Notifications</h1>



<h2 class="wp-block-heading">Installation et configuration de MUTT</h2>



<p>Concernant cette partie, je vous invite à parcourir la section déjà documentée dans l&rsquo;article <a href="https://erwanguillemard.com/apps-mutt/" data-type="link" data-id="https://erwanguillemard.com/apps-mutt/">Apps &#8211; MUTT</a>.</p>



<h2 class="wp-block-heading">Configuration de Faillock</h2>



<p>Le module faillock vient remplacer le module pam_tally2 devenu obsolète il y a un petit moment déjà. Il est présent nativement sur quasi tout les systèmes à ce jour.</p>



<p>Je ne traite pas volontairement dans cette partie de la politique de mot de passe. Cela fera parti d&rsquo;un autre article à la limite de l&rsquo;indigeste.</p>



<p>Il va être nécessaire de modifier les fichiers password-auth et system-auth du module d&rsquo;authentification.</p>



<h3 class="wp-block-heading">password-auth</h3>



<p>Editer le fichier password-auth</p>



<pre class="wp-block-code"><code><strong>$ sudo /etc/pam.d/password-auth</strong></code></pre>



<p>Ajouter les lignes suivantes dans le fichier</p>



<pre class="wp-block-code"><code>1) <strong>auth        required      pam_faillock.so preauth audit silent deny=5 unlock_time=900</strong>

2) <strong>auth        &#91;default=die] pam_faillock.so authfail audit deny=5 unlock_time=900</strong>

3) <strong>account     required      pam_faillock.so</strong></code></pre>



<p>La première ligne assure que l&rsquo;utilisateur à 5 tentatives de connexion avant de voir son compte verrouillé pour une durée de 15 minutes. Nous choisissons de logger l&rsquo;information et de ne pas indiquer que le compte est désactivé.</p>



<p>La seconde ligne indique qu&rsquo;en cas d&rsquo;échec de la ligne précédente, le compte sera locked.</p>



<p>La troisième ligne indique que le module d&rsquo;authentification faillock et requis.</p>



<h3 class="wp-block-heading">system-auth</h3>



<p>Editer le fichier system-auth</p>



<pre class="wp-block-code"><code><strong>$ sudo /etc/pam.d/system-auth</strong></code></pre>



<p>Ajouter les lignes suivantes dans le fichier</p>



<pre class="wp-block-code"><code>1) <strong>auth        required      pam_faillock.so preauth audit silent deny=5 unlock_time=900</strong>

2) <strong>auth        &#91;default=die] pam_faillock.so authfail audit deny=5 unlock_time=900</strong>

3) <strong>account     required      pam_faillock.so</strong></code></pre>



<p>Les explications sont les mêmes que pour le module précédent.</p>



<h3 class="wp-block-heading">Test</h3>



<p>Vérifions que les modifications apportées ont bien été prise en compte. Pour se faire nous allons vérifier l&rsquo;état des comptes Valid</p>



<pre class="wp-block-code"><code><strong>$ sudo faillock</strong></code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="896" height="89" src="https://erwanguillemard.com/wp-content/uploads/2024/01/006_3_faillock.png" alt="" class="wp-image-1374" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/006_3_faillock.png 896w, https://erwanguillemard.com/wp-content/uploads/2024/01/006_3_faillock-300x30.png 300w, https://erwanguillemard.com/wp-content/uploads/2024/01/006_3_faillock-768x76.png 768w" sizes="auto, (max-width: 896px) 100vw, 896px" /></figure>



<p>Volontairement nous allons verrouiller le compte <strong>adm.r-one</strong>. Il est nécessaire d&rsquo;avoir un second shell d&rsquo;ouvert en parallèle pour déverrouiller le compte ou de passer par la console système en <strong>root</strong> directement. </p>



<p>Ou encore, en dernière option d&rsquo;attendre 15 minutes.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="847" height="533" src="https://erwanguillemard.com/wp-content/uploads/2024/01/006_4_faillock_locked.png" alt="" class="wp-image-1375" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/006_4_faillock_locked.png 847w, https://erwanguillemard.com/wp-content/uploads/2024/01/006_4_faillock_locked-300x189.png 300w, https://erwanguillemard.com/wp-content/uploads/2024/01/006_4_faillock_locked-768x483.png 768w" sizes="auto, (max-width: 847px) 100vw, 847px" /></figure>



<p>Nous allons libérer l&rsquo;utilisateur <strong>adm.r-one</strong> puis vérifier que ce dernier est bien unlocked.</p>



<pre class="wp-block-code"><code><strong>$ sudo faillock --user adm.r-one --reset
$ sudo faillock</strong></code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="847" height="131" src="https://erwanguillemard.com/wp-content/uploads/2024/01/006_5_faillock_release.png" alt="" class="wp-image-1376" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/006_5_faillock_release.png 847w, https://erwanguillemard.com/wp-content/uploads/2024/01/006_5_faillock_release-300x46.png 300w, https://erwanguillemard.com/wp-content/uploads/2024/01/006_5_faillock_release-768x119.png 768w" sizes="auto, (max-width: 847px) 100vw, 847px" /></figure>



<h2 class="wp-block-heading">Configuration et installation du Script</h2>



<p>J’ai toujours pour habitude de positionner mes scripts à la racine du système dans un répertoire à part avec des droits spécifiques. L’objectif étant de toujours garantir un niveau de sécurité suffisant et d’éviter une escalade potentiel des droits.</p>



<pre class="wp-block-code"><code><strong>$ sudo mkdir /script</strong>
<strong>$ sudo mkdir /script/SS_027-LINUX_LockAccount</strong></code></pre>



<p>Editez le fichier ou copiez le fichier suivant&nbsp;: <em>SS_027_D_LINUX_LockAccount.sh</em></p>



<p>A ce jour le fichier en version D est construit de la manière suivante&nbsp;:</p>



<ul class="wp-block-list">
<li>Les constantes</li>



<li>Une fonction vérifiant l’OS</li>



<li>Une fonction vérifiant les derniers logon authentifiés avec succès (utilisateurs et services)</li>



<li>Une fonction vérifiant les comptes verouillés</li>



<li>Une fonction pour préparer le mail</li>



<li>Une fonction d’envoi de mail</li>



<li>Une fonction pour forger le mail en html</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="849" height="1002" src="https://erwanguillemard.com/wp-content/uploads/2024/01/006_0_scriptCode.png" alt="" class="wp-image-1349" style="width:545px;height:auto" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/006_0_scriptCode.png 849w, https://erwanguillemard.com/wp-content/uploads/2024/01/006_0_scriptCode-254x300.png 254w, https://erwanguillemard.com/wp-content/uploads/2024/01/006_0_scriptCode-768x906.png 768w" sizes="auto, (max-width: 849px) 100vw, 849px" /></figure></div>


<p>Comme tous mes autres outils, les premiers échanges de mails se sont fait au format texte brut, puis pour un soucis de compréhension j&rsquo;ai dû passer au format HTML&#8230; </p>



<p>Il est encore trop tôt pour expliquer cette aversion personnel pour le monde du web&#8230; Mais passons, il est donc possible d&rsquo;envoyer les notifications sous les deux formats.</p>



<p>Pour le script, comme pour mon premier article sur le sujet je ne souhaite pas pour l&rsquo;instant rendre ce dernier accessible à la disposition de tous. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em><strong>Couvrez ce code que je ne saurais voir.</strong>&nbsp;<strong>Par de pareils objets les AdminSys sont blessées,</strong>&nbsp;<strong>Et cela fait venir de coupables pensées</strong></em>&#8230;</p>
<cite>Molière 2.0</cite></blockquote>



<p>Et surtout cela me demanderai de configurer mon GitHub, de soigner mon code etc.</p>



<p>So, comment le code fonctionne ? De la plus simple des façons.</p>



<p>Le code va vérifier la version du SE, puis vérifier si des comptes sont verrouillés ou non. Si un des comptes est verrouillés, nous récupérons ces derniers. Nous récupérons la date de la dernière fois que tous les comptes se sont connectés (afin de contrôler qu&rsquo;il n&rsquo;y a pas de Léviator sous Racaillou). S&rsquo;ensuit la préparation du mail, le « forgeage » puis l&rsquo;envoi.</p>



<p>Dans le cas où aucun compte n&rsquo;est verrouillé, le code ne fait rien.</p>



<p>Nous controllons les droits sur le fichier afin de s&rsquo;assurer que ce dernier est bien en 700 pour root:root.</p>



<pre class="wp-block-code"><code><strong>$ sudo ls -ahl /script/SS_027-LINUX_LockAccount/</strong>
</code></pre>



<p>Dans le cas contraire, il sera nécessaire de réaliser les opérations adéquates.</p>



<h2 class="wp-block-heading">Configuration du cron</h2>



<p>Comme nous voulons une alerte plutôt réactive, mais qui ne spam pas trop non plus, j&rsquo;aime par confort définir une vérification toutes les 3 minutes. Libre à chacun de faire comme il le souhaite.</p>



<pre class="wp-block-code"><code><strong># vim /etc/crontab</strong></code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="334" src="https://erwanguillemard.com/wp-content/uploads/2024/01/006_1_cron-1024x334.png" alt="" class="wp-image-1366" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/006_1_cron-1024x334.png 1024w, https://erwanguillemard.com/wp-content/uploads/2024/01/006_1_cron-300x98.png 300w, https://erwanguillemard.com/wp-content/uploads/2024/01/006_1_cron-768x250.png 768w, https://erwanguillemard.com/wp-content/uploads/2024/01/006_1_cron.png 1052w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Ce qui nous donne dans notre BAL, lorsqu&rsquo;un compte est verrouillé la notification ci-dessous.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="556" height="755" src="https://erwanguillemard.com/wp-content/uploads/2024/01/006_2_notifications.png" alt="" class="wp-image-1371" srcset="https://erwanguillemard.com/wp-content/uploads/2024/01/006_2_notifications.png 556w, https://erwanguillemard.com/wp-content/uploads/2024/01/006_2_notifications-221x300.png 221w" sizes="auto, (max-width: 556px) 100vw, 556px" /></figure></div>


<h1 class="wp-block-heading">Conclusion</h1>



<p>La roue a dû encore une fois être réinventée. Mais cette solution me convient et répond à mon besoin.</p>



<p>Nous revenons toujours sur ce curseur bénéfices, risques que cette solution apporte.</p>



<p>Si niveau système, la configuration et l&rsquo;usage du module faillock dans les modules d&rsquo;authentifications relève de la bonne pratique, ma solution pose question.</p>



<p>Avantages</p>



<ul class="wp-block-list">
<li>Suivi des alertes quasi en temps réel sur lock du compte</li>
</ul>



<p>Inconvénients</p>



<ul class="wp-block-list">
<li>Utilise le compte root pour la tâche planifiée</li>



<li>Repose sur un paquet, application tiers « MUTT »</li>



<li>Doit être ajusté selon les SEs qui ne sont pas pris en charge</li>



<li>S’assurer que le script n’est pas altéré</li>
</ul>



<p>Au delà des axes récurrents d&rsquo;améliorations, nous comptons plus d&rsquo;inconvénients que d&rsquo;avantages. Le point le plus bloquant selon moi est que tout repose sur le daemon assurant les notifications mails. Si le daemon vient à planter ou à être la cible d&rsquo;un individu malveillant rendant ce dernier inopérant, l&rsquo;attaquant a le champ libre.</p>



<p>Dans un sens si nous revenons à notre analogie initiale du serveur et de notre maison, l&rsquo;individu malveillant nous à couper notre système d&rsquo;alarme, internet et électricité ect.</p>



<p>Nous devons donc coupler des mécanismes de sécurité supplémentaires en amont et aval de notre serveur.</p>



<p>Le mot de la fin&nbsp;:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em>J&rsquo;Houdini ma twingo et pars avant l&rsquo;orage. Vous ne pouvez pas vous êtes faillock avec Francis Huster pendant deux madeleines</em></p>
<cite>Erwan GUILLEMARD</cite></blockquote>



<h2 class="wp-block-heading">Sources</h2>



<ul class="wp-block-list">
<li><a href="https://linux.die.net/man/8/faillock">Faillock</a></li>



<li><a href="https://erwanguillemard.com/apps-mutt/">Mutt</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
