<?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>Debian Archives - Mon linux</title>
	<atom:link href="https://www.monlinux.net/tag/debian/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.monlinux.net/tag/debian/</link>
	<description>by Belgotux</description>
	<lastBuildDate>Wed, 12 Feb 2025 18:25:53 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>

<image>
	<url>https://www.monlinux.net/wp-content/uploads/cropped-mon-linux-logo-grey-512-32x32.png</url>
	<title>Debian Archives - Mon linux</title>
	<link>https://www.monlinux.net/tag/debian/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Systemd &#8211; point de montage CIFS</title>
		<link>https://www.monlinux.net/2023/07/systemd-point-de-montage-cifs/</link>
					<comments>https://www.monlinux.net/2023/07/systemd-point-de-montage-cifs/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 16 Jul 2023 20:12:00 +0000</pubDate>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1903</guid>

					<description><![CDATA[<p>Pour ne pas bloquer la boot d&#8217;une machine au d&#233;marrage, il est pr&#233;f&#233;rable d&#8217;&#233;viter le montage d&#8217;une ressource r&#233;seau via /etc/fstab. Utiliser directement systemd &#224; cet avantage. Au final nos point de montage dans /etc/fstab sont ajout&#233; &#224; systemd sous... <a class="more-link" href="https://www.monlinux.net/2023/07/systemd-point-de-montage-cifs/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2023/07/systemd-point-de-montage-cifs/">Systemd &#8211; point de montage CIFS</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Pour ne pas bloquer la boot d&rsquo;une machine au démarrage, il est préférable d&rsquo;éviter le montage d&rsquo;une ressource réseau via <code>/etc/fstab</code>. Utiliser directement systemd à cet avantage. Au final nos point de montage dans <code>/etc/fstab</code> sont ajouté à systemd sous la forme <code>mon_point_de_montage.mount</code></p>



<p>Systemd va pouvoir avoirune dépendance au réseau par exemple, pour monter le CIFS uniquement si la daemon réseau a bien été démarré. Le système pourra booter en level 3 même si le CIFS n&rsquo;est pas joignable!</p>



<h2 class="wp-block-heading">Le fichier systemd à placer dans <code>/etc/systemd/system/</code></h2>



<pre class="wp-block-code"><code class="">[Unit]
  Description=cifs mount script
  Requires=network-online.target
  After=network-online.service

[Mount]
  What=//192.168.56.1/mp$
  Where=/mnt/mp
  #Options=username=yourCifsUser,password=Secretpassword,workgroup=YourDomain,rw
  Options=credentials=/etc/systemd.cred.MonNas
  Type=cifs

[Install]
  WantedBy=multi-user.target</code></pre>



<p>Je conseille d&rsquo;utiliser le format avec un fichier de credentials qui aura des droits stricts 600 pour que seul root y accède. Laissant notre fichier systemd lisible.</p>



<ul class="wp-block-list">
<li><code>network-online</code> permet d&rsquo;<a href="https://systemd.io/NETWORK_ONLINE/" target="_blank" rel="noreferrer noopener">attendre que la ressource réseau soit accessible</a> avant de tenter le montage</li>



<li><code>What </code>est notre ressource distante</li>



<li><code>where </code>est notre point de montage local</li>



<li><code>Options</code> permet de définir les options, voir <code>man mount.cifs</code></li>



<li><code>Type</code> est cifs dans ce cas-ci</li>



<li><code>multi-user</code> est le niveau 3 de démarrage, un classique</li>
</ul>



<h3 class="wp-block-heading">Le fichier credentials</h3>



<pre class="wp-block-code"><code class="">username=MonUser
password=MonPass
domain=domain.tld</code></pre>



<h2 class="wp-block-heading">Nommage du fichier de configuration</h2>



<p>Pour choisir un nom de fichier, attention que systemd est capricieux, il faut échapper pour être certain. Pour un répertoire, une option <code>-p</code> est prévue ainsi que <code>--suffix</code>.<br>Préféré un nom de point de montage avec des underscores plutôt que des tirets pour une meilleure lisibilité :</p>



<pre class="wp-block-code"><code class="">~$ systemd-escape -p --suffix=mount "/data/MON-DUMP-DB"
data-MON\x2dDUMP\x2dDB.mount
~$ systemd-escape -p --suffix=mount "/data/MON_DUMP_DB"
data-MON_DUMP_DB.mount</code></pre>



<p>On relance et on active systemd :</p>



<pre class="wp-block-code"><code class="">sudo systemctl daemon-reload
sudo systemctl enable mnt-dp.mount
sudo systemctl start mnt-dp.mount</code></pre>



<p>Quelques infos avec une <a href="https://michlstechblog.info/blog/systemd-mount-examples-for-cifs-shares/" target="_blank" rel="noreferrer noopener">variante pour un démontage après un temps d&rsquo;inutilisation</a> via automount.</p>



<p>Personnellement j&rsquo;utilise ce montage pour faire les <a href="https://www.monlinux.net/2023/05/automysqlbackup-sauvegarde-mysql/">dump DB MySQL et mariaDB</a> sur un NAS, afin de ne pas faire un backup d&rsquo;une vm contenant elle-même des backups&#8230;</p>
<p>L’article <a href="https://www.monlinux.net/2023/07/systemd-point-de-montage-cifs/">Systemd &#8211; point de montage CIFS</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2023/07/systemd-point-de-montage-cifs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ansible rôle de configuration Debian &#8211; Ubuntu</title>
		<link>https://www.monlinux.net/2023/05/ansible-role-de-configuration-debian-ubuntu/</link>
					<comments>https://www.monlinux.net/2023/05/ansible-role-de-configuration-debian-ubuntu/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 07 May 2023 20:45:00 +0000</pubDate>
				<category><![CDATA[ansible]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1672</guid>

					<description><![CDATA[<p>J&#8217;ai cr&#233;&#233; un r&#244;le Ansible pour la configuration rapide d&#8217;un nouveau serveur Debian ou Ubuntu mis en place. Il est aussi utile pour la mise &#224; jour de commandes, cl&#233; SSH, nouvel utilisateur, scripts, alias, configuration vim, etc. Ce r&#244;le... <a class="more-link" href="https://www.monlinux.net/2023/05/ansible-role-de-configuration-debian-ubuntu/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2023/05/ansible-role-de-configuration-debian-ubuntu/">Ansible rôle de configuration Debian &#8211; Ubuntu</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>J&rsquo;ai créé un rôle Ansible pour la configuration rapide d&rsquo;un nouveau serveur Debian ou Ubuntu mis en place. Il est aussi utile pour la mise à jour de commandes, clé SSH, nouvel utilisateur, scripts, alias, configuration vim, etc. <a href="https://galaxy.ansible.com/belgotux/basic" target="_blank" rel="noreferrer noopener">Ce rôle basic est disponible sur Ansible Galaxy</a> et <a href="https://github.com/belgotux/ansible-role-basic" target="_blank" rel="noreferrer noopener">le projet est disponible sur github</a> également.</p>



<h2 class="wp-block-heading">Installation du rôle basic</h2>



<p>Pour installer ce rôle de configuration sous Debian ou Ubuntu rien de plus simple : </p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">ansible-galaxy install belgotux.basic</code></pre>



<h3 class="wp-block-heading">Pré-requis sur un host Debian</h3>



<p><a href="https://github.com/belgotux/ansible-role-basic/blob/main/playbook-init-server.yml" target="_blank" rel="noreferrer noopener">Un playbook d&rsquo;initialisation playbook-init-server.yml</a> est à exécuter seulement sur un host Debian. Pour Ubuntu si vous avez installé en y ajoutant votre clé SSH dès l&rsquo;installation, vous n&rsquo;aviez rien à faire. Exemple : </p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">ansible-playbook -i inventories/prod roles/basic/playbook-init-server.yml -e 'myhost=node9 user=devops become_meth=sudo' -kK</code></pre>



<h3 class="wp-block-heading">Pré-requis pour Debian ou Ubuntu</h3>



<p>Vous devez copier <code>basic.aliases.example</code> vers <code>basic.aliases</code> pour pouvoir ajouter vos propres alias, il y en a déjà certains utiles dans le <a href="https://github.com/belgotux/ansible-role-basic/blob/main/files/basic.aliases.example" target="_blank" rel="noreferrer noopener">fichier d&rsquo;exemple</a>.</p>



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



<ul class="wp-block-list">
<li><code>bm</code> prend la valeur yes pour installer des outils pour serveur physique</li>



<li><code>ssh_key_filename</code> clé SSH généré pour root, utile pour les accès serveur à serveur (default id_rsa)</li>



<li><code>basic_list_users</code> liste d&rsquo;utilisateur et clé SSH :
<ul class="wp-block-list">
<li><code>name</code> utilisateur</li>



<li><code>primarygroup</code> groupe par défaut de l&rsquo;utilisateur</li>



<li><code>groups</code> groupes de l&rsquo;utilisateur</li>



<li><code>pubkeys</code> liste de clés publiques de l&rsquo;utilisateur, les fichiers dans le dossier <code>files</code></li>



<li><code>home</code> home utilisateur (default <code>/home/username</code>)</li>



<li><code>shell</code> prompt utilisateur (default <code>/bin/bash</code>)</li>



<li><code>create_home</code> créer le répertoire utilisateur (default <code>true</code>)</li>



<li><code>append</code> ajouter ou remplacer les groupes (default <code>true</code> to append)</li>



<li><code>passwd</code> hash du mot de passe de l&rsquo;utilisateur
<ul class="wp-block-list">
<li><code>mkpasswd --method=sha-512</code> résultat du genre <code>$6$</code></li>



<li><code>docker run --rm -it ulikoehler/mkpasswd</code> résultat en yescript <code>$y$</code> pour ubuntu &gt;22.04</li>
</ul>
</li>



<li><code>generate_ssh_key</code> générer une paire de clé SSH (default <code>false</code>)</li>
</ul>
</li>



<li><code>root_public_keys</code> liste de clés publiques à copier depuis le dossier <code>files</code> pour root</li>



<li><code>bash_alias_shared</code> activer le partage d&rsquo;alias (installé dans /usr/share uniquement avec l&rsquo;utilisateur root via <code>remote_user</code> ou <code>become</code> dans le playbook) (default installe seulement  les alias dans le répertoire home de l&rsquo;utilisateur via <code>remote_user</code>)</li>



<li><code>bash_alias_dir_share</code> (default /usr/share)</li>
</ul>



<h3 class="wp-block-heading"><a href="https://github.com/belgotux/ansible-role-basic#optional"></a></h3>



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



<ul class="wp-block-list">
<li><code>auto_upgrade</code> Configurer inattended-upgrades (default false)</li>



<li><code>basic_packages_default</code>&nbsp;Liste des paquets commun à installer</li>



<li><code>basic_packages_extra</code>&nbsp;Liste d&rsquo;autres paquets supplémentaire pour un groupe ou une machine spécifiques</li>



<li><code>staff_directories</code> liste des répertoires qui peuvent être modifiés par le groupe staff</li>



<li><code>basic_custom_scripts_common</code> liste des scripts locaux commun à copier dans /usr/local/bin</li>



<li><code>basic_custom_scripts_local</code> liste des scripts locaux supplémentaires à copier dans /usr/local/bin (à utiliser dans hosts)</li>
</ul>



<h2 class="wp-block-heading">Exemple de playbook</h2>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">- hosts: [homeservers,vps]
  remote_user: root
  roles:
    - name: basic
      vars: 
        basic_list_users:
          - name: belgotux
            primarygroup: belgotux
            groups: sudo,users,staff,adm
            shell: "/bin/zsh"
            passwd: $6$xxxx
            pubkeys:
              - xxx.pub
              - yyy.pub
        bash_alias_shared: yes
        staff_directories:
          - /usr/local/bin
          - /usr/local/etc
        auto_upgrade: true</code></pre>
<p>L’article <a href="https://www.monlinux.net/2023/05/ansible-role-de-configuration-debian-ubuntu/">Ansible rôle de configuration Debian &#8211; Ubuntu</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2023/05/ansible-role-de-configuration-debian-ubuntu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Relais mail Postfix &#8211; envoyer ses mails sécurisés vers M365</title>
		<link>https://www.monlinux.net/2023/04/relais-mail-postfix-envoyer-ses-mails-securises-vers-m365/</link>
					<comments>https://www.monlinux.net/2023/04/relais-mail-postfix-envoyer-ses-mails-securises-vers-m365/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 09 Apr 2023 19:12:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[M365]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1713</guid>

					<description><![CDATA[<p>Cet article est dans la suite des articles consacr&#233;s &#224; postfix, je vais d&#233;tailler la gestion des mails pour une infrastructure cons&#233;quente, sans toutefois rentrer dans la HA. Il y a 2 types de flux &#224; traiter : ceux en... <a class="more-link" href="https://www.monlinux.net/2023/04/relais-mail-postfix-envoyer-ses-mails-securises-vers-m365/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2023/04/relais-mail-postfix-envoyer-ses-mails-securises-vers-m365/">Relais mail Postfix &#8211; envoyer ses mails sécurisés vers M365</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Cet article est dans la suite des articles consacrés à postfix, je vais détailler la gestion des mails pour une infrastructure conséquente, sans toutefois rentrer dans la HA. Il y a 2 types de flux à traiter : ceux en interne de nos serveurs vers notre relais SMTP postfix et le flux mail qu&rsquo;il faut sécuriser vers M365.</p>



<p>L&rsquo;utilisation d&rsquo;un relais tel que Microsoft 365 facilite la sécurisation de nos échanges mails, car une intégration de DKIM et DMARC est déjà gérée nativement! Si vous avez déjà vos mails ou l&rsquo;ensemble de votre active directory, c&rsquo;est dans cette direction qu&rsquo;il faut se diriger pour une mise en place efficace.</p>



<p>Je suppose qu&rsquo;il est possible de faire cela également avec Infomaniak pour ceux disposant de comptes pro chez eux. Avec mon compte perso je n&rsquo;ai pas vu cette option. Avec OVH, oubliez directement! Du temps où j&rsquo;étais encore client chez eux, j&rsquo;avais parlé DKIM DMARC au support, et on m&rsquo;a posés des questions pour savoir pourquoi je veux ces fonctions etc. Vraiment comme si j&rsquo;étais un extraterrestre! On était tout de même en 2020&#8230; Rien n&rsquo;était fait pour le mail mutualisé donc&#8230; Longtemps client perso et pro je suis passé chez Infomaniak pour la partie mutualisée en partie pour cela. J&rsquo;arrête le OFF là <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>



<h2 class="wp-block-heading">Configuration dans l&rsquo;Exchange 365</h2>



<p>Il faut créer un <a href="https://admin.exchange.microsoft.com/#/connectors" target="_blank" rel="noreferrer noopener">connector </a>dans mail flow &gt; connectors &gt; Add a connector : </p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="495" height="421" src="https://www.monlinux.net/wp-content/uploads/image-24.png" alt="connectors exchange" class="wp-image-1715" srcset="https://www.monlinux.net/wp-content/uploads/image-24.png 495w, https://www.monlinux.net/wp-content/uploads/image-24-300x255.png 300w" sizes="(max-width: 495px) 100vw, 495px" /></figure>



<p>L&rsquo;authentification est faite par adresse IP ou certificat&nbsp;<strong>valide</strong>. Il faut savoir que votre serveur relais interne postfix va lui-même se connecter sur VOTRE_DNS.mail.protection.outlook.com et celui-ci présente un certificat valide. Votre « client » va donc authentifier le serveur de Microsoft comme valide (notre serveur relais est client par rapport au relais M365).</p>



<p>L&rsquo;authentification par IP est déjà suffisante en soit. Mais vous pouvez décider que les serveurs relais de Microsoft n&rsquo;acceptent QUE les mails si le serveur client (votre relais SMTP) présente le bon certificat client. Ce qui fait qu&rsquo;il y a une identification et authentification de part et d&rsquo;autre!</p>



<ul class="wp-block-list">
<li>Configurer une restriction par votre IP publique de sortie :</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="560" height="350" src="https://www.monlinux.net/wp-content/uploads/image-25.png" alt="" class="wp-image-1716" srcset="https://www.monlinux.net/wp-content/uploads/image-25.png 560w, https://www.monlinux.net/wp-content/uploads/image-25-300x188.png 300w" sizes="(max-width: 560px) 100vw, 560px" /></figure>



<ul class="wp-block-list">
<li>Configurer une restriction par un certificat valide : dans ce cas cela ne doit pas forcément être le certificat *.votredomain.tld, cela peut très bien être monrelais.mondomainetechnique.tld. La seule règle étant que ce certificat soit émis par une autorité de certification reconnue.</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="573" height="400" src="https://www.monlinux.net/wp-content/uploads/image-26.png" alt="" class="wp-image-1717" srcset="https://www.monlinux.net/wp-content/uploads/image-26.png 573w, https://www.monlinux.net/wp-content/uploads/image-26-300x209.png 300w" sizes="(max-width: 573px) 100vw, 573px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Mettre un certbot avec let&rsquo;s encrypt sur votre serveur est envisageable si vous utilisez une vérification let&rsquo;s encrypt par dns.</p>
</blockquote>



<p>Si vous souhaitez plus d&rsquo;infos, <a href="https://learn.microsoft.com/en-us/exchange/troubleshoot/email-delivery/office-365-notice" target="_blank" rel="noreferrer noopener">la documentation Microsoft</a> est bien faite.</p>



<p>Remarque : Les&nbsp;<a href="https://learn.microsoft.com/en-us/office365/servicedescriptions/exchange-online-service-description/exchange-online-limits#sending-limits-1">limites d&rsquo;envoie pour M365</a>&nbsp;sont larges et dépendent de votre licence.</p>



<h2 class="wp-block-heading">Un mot sur le serveur Postfix</h2>



<p>Il faut tout de suite savoir que Postfix est à la fois un serveur <strong>et un client</strong>. Il faut donc bien distinguer les directives. Veillez donc bien au début qui peut être : </p>



<ul class="wp-block-list">
<li>smtp_tls_xxx en tant que client</li>



<li>smtpd_tls_xxx en tant que serveur</li>
</ul>


<figure class="wp-block-post-featured-image"><img loading="lazy" decoding="async" width="600" height="157" src="https://www.monlinux.net/wp-content/uploads/image-23-600x157.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" style="object-fit:cover;" srcset="https://www.monlinux.net/wp-content/uploads/image-23-600x157.png 600w, https://www.monlinux.net/wp-content/uploads/image-23-300x78.png 300w, https://www.monlinux.net/wp-content/uploads/image-23-1024x267.png 1024w, https://www.monlinux.net/wp-content/uploads/image-23-768x200.png 768w, https://www.monlinux.net/wp-content/uploads/image-23-1536x401.png 1536w, https://www.monlinux.net/wp-content/uploads/image-23-945x247.png 945w, https://www.monlinux.net/wp-content/uploads/image-23.png 1632w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure>


<p>Notre serveur relais est serveur par rapport à nos serveurs internes. Il est client par rapport à Microsoft 365.</p>



<h3 class="wp-block-heading">Configuration de notre relais mail Postfix</h3>



<p>J&rsquo;ai distingué les directives serveurs et clients pour que la configuration soit lisible.</p>



<p>Pour le comportement serveur du relais SMTP : </p>



<ul class="wp-block-list">
<li><code>smtpd_tls_security_level=may</code> <a href="http://www.postfix.org/postconf.5.html#smtp_tls_security_level" target="_blank" rel="noreferrer noopener">permet</a> de spécifier que notre serveur accepte une liaison client en TLS mais également en clair. Il faut penser aux copieurs ou autre matériel ne gérant pas le TLS interne à notre réseau</li>



<li><code>smtpd_tls_loglevel</code> permet d&rsquo;avoir une trace des connexions TLS dans les logs avec les ciphers pris en compte, pratique pour voir quel client envoie encore en clair et s&rsquo;il peut être modifié</li>



<li><code>smtpd_tls_cert_file</code> et <code>smtpd_tls_key_file</code> renseignent le certificat et la clé utilisé <strong>en interne</strong></li>



<li><code>smtpd_tls_chain_files</code> est le nouveau format pour pouvoir contenir plusieurs clés et certificats pour différents noms de domaine. Il faut <strong>toujours</strong> la clé et puis la chaîne de certificat et le certificat final</li>



<li><code>smtpd_tls_session_cache_database</code> permet d&rsquo;avoir un peu de performance quand beaucoup de mails sont envoyés</li>
</ul>



<pre class="wp-block-code"><code lang="bash" class="language-bash">### SERVER ###
smtpd_tls_security_level=may
smtpd_tls_loglevel = 1

smtpd_tls_cert_file=/etc/xxx.crt
smtpd_tls_key_file=/etc/xxx.key
#alternative
#smtpd_tls_chain_files=/etc/your-key-and-local-crt-and-chain-with-your-local-ca-combined.all

#optionel
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache



### CLIENT ###
relayhost = your-domain.mail.protection.outlook.com
smtp_tls_security_level = encrypt # optionnel : secure
smtp_tls_mandatory_ciphers = high
smtp_tls_loglevel = 1
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
#optionnel
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_chain_files = /etc/xxx.all
</code></pre>



<p>Pour le comportement client du relais SMTP : </p>



<ul class="wp-block-list">
<li><code>relayhost</code> on vient mettre le DNS de notre tenant M365</li>



<li><code>smtp_tls_security_level</code> <a href="http://www.postfix.org/postconf.5.html#smtpd_tls_security_level" target="_blank" rel="noreferrer noopener">le niveau de securité</a> minimal accepté en TLS. Je vous conseille secure</li>



<li><code>smtp_tls_mandatory_ciphers</code> high contient un « bundle » de ciphers satisfaisant</li>



<li><code>smtp_tls_loglevel</code> permet d&rsquo;avoir une trace des connexions TLS</li>



<li><code>smtp_tls_CAfile</code> permet de spécifié le fichier des CA faisant autorité. Un fichier du système contient déjà les CA connus du monde</li>



<li><code>smtp_tls_session_cache_database</code> permet d&rsquo;avoir un peu de performance quand beaucoup de mails sont envoyés</li>



<li><code>smtp_tls_chain_files</code> spécifiez la chaine de certificats client qui est utiliser si vous aviez choisi une restriction par  un certificat client pour votre connector M365. L&rsquo;ordre dans la chaine est <strong>importante</strong> : votre clé privée, suivie de votre certificat, ensuite le certificat intermédiaire et pour finir le certificat du CA</li>
</ul>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>Par défaut&nbsp;<a href="http://www.postfix.org/postconf.5.html#smtp_tls_security_level">en niveau de sécurité</a>&nbsp;<code>encrypt</code>&nbsp;ou&nbsp;<code>verify</code>&nbsp;ou&nbsp;<code>secure</code>&nbsp;vont authoriser le trust du nom de domaine lui-même et de son dns parent. Respectivement&nbsp;<code>nexthop</code>&nbsp;et&nbsp;<code>dot-nexthop</code>. M365 n&rsquo;émettant un certificat que pour&nbsp;<code>mail.protection.outlook.com</code>&nbsp;et pas&nbsp;<code>your-domain.mail.protection.outlook.com</code>.<br>Ce comportement peut être changer via le paramètre&nbsp;<a href="http://www.postfix.org/postconf.5.html#smtp_tls_secure_cert_match">smtp_tls_secure_cert_match</a>.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>S&rsquo;il y a un problème d&rsquo;accès au relais M365 dans les logs postfix comme ci-dessous, vérifier que l&rsquo;IP de sortie ou le certificat sont ok : </p>



<pre class="wp-block-code"><code class="">host xxx.mail.protection.outlook.com[104.47.2.7] said: 550 5.4.1 Recipient address rejected: Access denied. AS(201776281) [AB4EUR01RT057.eop-EUR01.prod.protection.outlook.com] (in reply to RCPT TO command)</code></pre>
</div></div>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>En cas de succès avec un certificat client vous aurez : </p>



<pre class="wp-block-code"><code class="">postfix/smtp[71318]: your-domain.mail.protection.outlook.com[104.47.0.36]:25: matched peername: *.mail.protection.outlook.com
postfix/smtp[71318]: your-domain.mail.protection.outlook.com[104.47.0.36]:25: subject_CN=mail.protection.outlook.com, issuer_CN=DigiCert Cloud Services CA-1, fingerprint=6A:DD:32:6D:2A:0C:C5:3A:9E:D7:E7:91:3D:6F:5C:F4, pkey_fingerprint=20:78:41:CD:EC:4F:19:7A:E0:B2:01:4F:3C:3D:1C:EE
postfix/smtp[71318]: Verified TLS connection established to your-domain.mail.protection.outlook.com[104.47.0.36]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
</code></pre>
</div></div>



<h4 class="wp-block-heading">Fichier main.cf d&rsquo;un relais SMTP Postfix complet :</h4>



<pre class="wp-block-code"><code lang="bash" class="language-bash">myorigin = /etc/hostname
mydomain = your-local-domain
mydestination = $myhostname, $myorigin, localhost.localdomain, localhost, localhost.your-local-domain

# Backward compatibility off
compatibility_level = 3.6
relay_domains = $mydestination
append_dot_mydomain = yes
smtputf8_enable=yes
smtpd_banner = $myhostname ESMTP
biff = no
readme_directory = no

# TLS parameters server
smtpd_tls_chain_files=/etc/your-key-and-local-crt-and-chain-with-your-local-ca-combined.all
#alternative
#smtpd_tls_cert_file=/etc/xxx.cer
#smtpd_tls_key_file=/etc/xxx.key
smtpd_tls_security_level=may
smtpd_tls_loglevel = 1
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

# TLS parameters client
relayhost = xxx.mail.protection.outlook.com
smtp_tls_security_level = secure
smtp_tls_mandatory_ciphers = high
smtp_tls_loglevel = 1
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

# Client certificat to be identified by M365
#smtp_tls_chain_files = /etc/xxx.all

smtpd_client_restrictions = permit_mynetworks reject
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

mynetworks = 10.0.0.0/22,xxx
mailbox_size_limit = 0
message_size_limit = 29480000
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4

header_checks = regexp:/etc/postfix/header_checks_regexp
smtp_header_checks = regexp:/etc/postfix/replace_header_checks_regexp

sender_canonical_maps = regexp:/etc/postfix/sender_canonical_regexp</code></pre>



<h3 class="wp-block-heading">Configuration d&rsquo;un serveur client interne linux</h3>



<p>Voici la partie TLS d&rsquo;un fichier <code>main.cf</code> d&rsquo;un postfix « satellite » qui se connecte à notre relais interne. Il dois évidement avoir le certificat serveur de notre relais ou notre CA interne de configuré dans les certificats du système ou via la directive <code>smtp_tls_CAfile</code>.</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">smtp_tls_security_level = may
smtp_tls_loglevel = 1
<em>#optionnel</em>
smtp_tls_security_level = secure
smtp_tls_mandatory_ciphers = high
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache</code></pre>
<p>L’article <a href="https://www.monlinux.net/2023/04/relais-mail-postfix-envoyer-ses-mails-securises-vers-m365/">Relais mail Postfix &#8211; envoyer ses mails sécurisés vers M365</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2023/04/relais-mail-postfix-envoyer-ses-mails-securises-vers-m365/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Réécriture de mail &#8211; serveur relais postfix</title>
		<link>https://www.monlinux.net/2023/03/reecriture-de-mail-serveur-relais-postfix/</link>
					<comments>https://www.monlinux.net/2023/03/reecriture-de-mail-serveur-relais-postfix/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 26 Mar 2023 20:13:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1704</guid>

					<description><![CDATA[<p>Que vous envoyez vos mails en direct sur le net ou via un relais SMTP externe tel que M365, il faut penser &#224; v&#233;rifier que les domaines utilis&#233;s soient les bons. Il arrive souvent d&#8217;avoir un nom de domaine ou... <a class="more-link" href="https://www.monlinux.net/2023/03/reecriture-de-mail-serveur-relais-postfix/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2023/03/reecriture-de-mail-serveur-relais-postfix/">Réécriture de mail &#8211; serveur relais postfix</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Que vous envoyez vos mails en direct sur le net ou via un relais SMTP externe tel que M365, il faut penser à vérifier que les domaines utilisés soient les bons. Il arrive souvent d&rsquo;avoir un nom de domaine ou suffixe DNS interne utilisé par les serveurs. Il est <strong>impératif de le retranscrire</strong> vers un nom de domaine publiquement valide.</p>



<p>J&rsquo;explique ici le cas où le suffixe DNS interne est yourdomain.lan et le domaine externe est your-domain.tld</p>



<p>D&rsquo;abord il faut distinguer 2 types de mails : </p>



<ul class="wp-block-list">
<li>Ceux envoyés directement à partir de la machine ou une de ses applications locales</li>



<li>Ceux envoyés depuis la machine qui fait office de relais.</li>
</ul>



<p>Ce sont bien <strong>2 choses différentes pour postfix et donc 2 types de filtre différents</strong>.</p>



<h3 class="wp-block-heading">Filtre de sortie pour les mails générés sur la machine</h3>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>Votre serveur relais pouvant lui même envoyer un mail pour de la maintenance, mise à jour etc. Il est lui-même un serveur applicatif.</p>



<p>Dans le fichier <code>main.cf</code>, il faut renseigner cette directive : </p>



<pre class="wp-block-code"><code class="">sender_canonical_maps = regexp:/etc/postfix/sender_canonical_regexp</code></pre>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>Exemple de contenu de <code>/etc/postfix/sender_canonical_regexp</code> pour rediriger que certains domaines :</p>



<pre class="wp-block-code"><code class="">/^(.*)@(.*)\.your-local-domain\.lan$/ ${2}-${1}@your-domain.tld
/^(.*)\ &lt;(.*)@(.*)\.your-local-domain\.lan&gt;$/ ${1} &lt;${3}-${2}@your-domain.tld&gt;</code></pre>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>On oublie pas de faire un postmap : </p>



<pre class="wp-block-code"><code class="">postmap /etc/postfix/sender_canonical_regexp</code></pre>
</div></div>



<p>Vous pouvez toujours ajouter un « catch all » à la fin comme décrit dans l&rsquo;article précédent de réécriture de mail simple avec postfix.</p>



<h3 class="wp-block-heading">Filtre de sortie pour les mails transitant sur notre relais interne</h3>



<p>Typiquement vous avez un relais mail interne utilisé par vos autres serveurs. Il faut dans un premier temps ajouter votre adresse IP publique de sortie dans le champ SPF de votre nom de domaine. Le DKIM et DMARC permettent de sécurisé encore mieux l&rsquo;authenticité de vos messages, mais une chose à la fois <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>



<p>Vous pouvez utilisez la directive <a href="http://www.postfix.org/postconf.5.html#header_checks" target="_blank" rel="noreferrer noopener">header_checks</a> ou <a href="http://www.postfix.org/postconf.5.html#smtp_header_checks" target="_blank" rel="noreferrer noopener">smtp_header_checks</a>. Dans mon cas j&rsquo;ai besoin de faire 2 opérations pour le même filtre mail, <strong>ce qui n&rsquo;est pas possible de base</strong>. Mais en jouant avec ces 2 directives, je peux arriver à mes fins : marquer les mails à problème et faire une réécriture de mail :<br><strong>ATTENTION à l&rsquo;ordre :</strong> c&rsquo;est d&rsquo;abord <code>header_checks</code> qui est interprété et ensuite <code>smtp_header_checks</code>. Il faut d&rsquo;abords mettre le WARN et ensuite le REPLACE</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>Exemple pour faire un WARN et un REPLACE, on ajoute les directives dans le fichier <code>main.cf</code> :</p>



<pre class="wp-block-code"><code class="">header_checks = regexp:/etc/postfix/warn_checks_regexp
smtp_header_checks = regexp:/etc/postfix/header_checks_regexp</code></pre>
</div></div>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>cat warn_checks_regexp :</p>



<pre class="wp-block-code"><code class="">/^From:\ (.*)@(.*)\.yourdomain\.lan$/ WARN bad sender
/^From:\ (.*)\ &lt;(.*)@(.*)\.yourdomain\.lan&gt;$/ WARN bad sender</code></pre>
</div></div>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>cat header_checks_regexp :</p>



<pre class="wp-block-code"><code class="">/^From:\ (.*)@(.*)\.your-local-domain\.lan$/ REPLACE From: ${2}-${1}@your-domain.tld
/^From:\ (.*)\ &lt;(.*)@(.*)\.your-local-domain\.lan&gt;$/ REPLACE From: ${1} &lt;${3}-${2}@your-domain.tld&gt;</code></pre>
</div></div>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>On oublie pas de faire un postmap : </p>



<pre class="wp-block-code"><code class="">postmap /etc/postfix/warn_checks_regexp
postmap /etc/postfix/header_checks_regexp</code></pre>
</div></div>



<p>Le reste de votre configuration postfix dépendra :</p>



<ul class="wp-block-list">
<li>Si vous envoyez directement les mails vers Internet, auquel cas je vous conseille de configurer les signatures DKIM et d&rsquo;utiliser le record DNS DMARC</li>



<li>Si vous utilisez un serveur relais tel que M365 si vous y géré déjà vos services mails</li>
</ul>
<p>L’article <a href="https://www.monlinux.net/2023/03/reecriture-de-mail-serveur-relais-postfix/">Réécriture de mail &#8211; serveur relais postfix</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2023/03/reecriture-de-mail-serveur-relais-postfix/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Réécriture de mail simple avec postfix</title>
		<link>https://www.monlinux.net/2023/03/reecriture-de-mail-simple-avec-postfix/</link>
					<comments>https://www.monlinux.net/2023/03/reecriture-de-mail-simple-avec-postfix/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 12 Mar 2023 21:21:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1698</guid>

					<description><![CDATA[<p>Il existe diff&#233;rentes possibilit&#233;s de r&#233;&#233;criture de mails avec postfix selon les cas. Le plus commun &#224; petite &#233;chelle &#233;tant d&#8217;utiliser un compte mail existant et de s&#8217;y connecter avec un login et mot de passe en TLS explicite sur... <a class="more-link" href="https://www.monlinux.net/2023/03/reecriture-de-mail-simple-avec-postfix/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2023/03/reecriture-de-mail-simple-avec-postfix/">Réécriture de mail simple avec postfix</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Il existe différentes possibilités de réécriture de mails avec postfix selon les cas. Le plus commun à petite échelle étant d&rsquo;utiliser un compte mail existant et de s&rsquo;y connecter avec un login et mot de passe en TLS explicite sur le port 587 de son fournisseur de mail. Même un Gmail faisant l&rsquo;affaire. Un autre cas étant l&rsquo;envoi de mail en direct sur le port 25 ou en passant par un relais SMTP tel que M365 le propose.</p>



<h2 class="wp-block-heading">Envoi de mail via un compte mail unique SASL</h2>



<p>Dans le cas, il faut réécrite tout champ mail : que ce soit le corps ou l&rsquo;enveloppe. Cela <strong>doit correspondre</strong> au mail du compte, afin d&rsquo;éviter d&rsquo;être considéré comme spam malgré l&rsquo;utilisation d&rsquo;un compte mail légitime.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>Créez le fichier <code>/etc/postfix/sender_canonical</code></p>



<pre class="wp-block-code"><code class="">/.+/ na&#115;&#64;&#109;&#111;&#110;&#101;mai&#108;&#46;t&#108;d</code></pre>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>Éditez le fichier <code>/etc/postfix/main.cf</code></p>



<pre class="wp-block-code"><code class="">sender_canonical_maps = regexp:/etc/postfix/sender_canonical</code></pre>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>Exécutez un postmap</p>



<pre id="block-dfc768c9-e958-4649-ac91-0d90f471da2a" class="wp-block-preformatted">postmap /etc/postfix/sender_canonical</pre>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>Reload de postfix :</p>



<pre id="block-72e5729b-7138-4c0a-808c-b6d0df9efdff" class="wp-block-preformatted">service postfix restart</pre>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>Essayez le filtre localement et puis faite un test d&rsquo;envoie de mail :</p>



<pre id="block-66afc2c9-234e-4a62-a3a2-841c51497aa1" class="wp-block-preformatted">postmap -q root&#64;&#108;oca&#108;h&#111;&#115;&#116;.&#108;&#111;&#99;&#97;&#108;&#104;o&#115;t regexp:/etc/postfix/sender_canonical
&#110;a&#115;&#64;&#109;&#111;n&#101;&#109;ai&#108;.&#116;&#108;&#100;</pre>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>On oublie pas de faire un postmap : </p>



<pre class="wp-block-code"><code class="">postmap /etc/postfix/sender_canonical_regexp</code></pre>
</div></div>



<p>Plus d&rsquo;info sur <a href="http://www.postfix.org/postconf.5.html#sender_canonical_maps" target="_blank" rel="noreferrer noopener">la directive sender_canonical_maps sur la documentation officielle</a>.</p>



<p>Je vous conseille d&rsquo;utiliser mailjet pour ne pas utiliser directement les identifiants de votre provider mail. Ou du mois utilisé un token API et pas votre mot de passe principal. C&rsquo;est plus sécurisant, surtout si c&rsquo;est pour un VPS.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<h2 class="wp-block-heading">Configuration avec les directives pour SASL</h2>



<pre class="wp-block-code"><code lang="bash" class="language-bash">compatibility_level = 2
mydomain = nas.local
mydestination =
inet_interfaces = localhost
relayhost = in-v3.mailjet.com:587
sender_canonical_maps = regexp:/etc/postfix/sender_canonical
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_mechanism_filter =
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_CApath = /etc/ssl/certs
alias_maps = hash:/etc/aliases
default_destination_concurrency_limit = 2
default_destination_rate_delay = 1s
smtputf8_enable = no
default_transport = smtp</code></pre>
</div></div>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p>Le fichier /etc/postfix/sasl_passwd et on oublie pas le postmap à faire dessus également : </p>



<pre class="wp-block-code"><code class="">in-v3.mailjet.com:587 &#118;&#111;t&#114;e&#109;&#97;&#105;l&#64;&#118;&#111;&#116;re&#100;o&#109;ai&#110;e.&#116;l&#100;:motdepasse</code></pre>
</div></div>
<p>L’article <a href="https://www.monlinux.net/2023/03/reecriture-de-mail-simple-avec-postfix/">Réécriture de mail simple avec postfix</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2023/03/reecriture-de-mail-simple-avec-postfix/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Role Ansible notification push Linux Debian</title>
		<link>https://www.monlinux.net/2022/12/role-ansible-notification-push-linux-debian/</link>
					<comments>https://www.monlinux.net/2022/12/role-ansible-notification-push-linux-debian/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Fri, 30 Dec 2022 19:59:52 +0000</pubDate>
				<category><![CDATA[ansible]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[notification]]></category>
		<category><![CDATA[telegram]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1666</guid>

					<description><![CDATA[<p>Ce r&#244;le Ansible permet d&#8217;installer une ou plusieurs m&#233;thodes de notification push sous Debian ou Ubuntu. Cela fait suite &#224; mon article sur les notifications via Telegram et ce r&#244;le permet d&#8217;installer Telegram ou Pushbullet. Ce r&#244;le est disponible dans... <a class="more-link" href="https://www.monlinux.net/2022/12/role-ansible-notification-push-linux-debian/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2022/12/role-ansible-notification-push-linux-debian/">Role Ansible notification push Linux Debian</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Ce rôle Ansible permet d&rsquo;installer une ou plusieurs méthodes de notification push sous Debian ou Ubuntu. Cela fait suite à mon article sur <a href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">les notifications via Telegram</a> et ce rôle permet d&rsquo;installer Telegram ou Pushbullet.</p>



<p>Ce rôle est disponible dans l&rsquo;<a href="https://galaxy.ansible.com/belgotux/notification_push" target="_blank" rel="noreferrer noopener">Ansible Galaxy</a>. Pour l&rsquo;installer rien de plus simple : </p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">ansible-galaxy install belgotux.notification_push</code></pre>



<p>Je vous mets également <a href="https://github.com/belgotux/ansible-role-notification-push" target="_blank" rel="noreferrer noopener">le lien du projet de notification avec Ansible sur github</a>.</p>



<p>Il ne requiert aucune dépendance, il va chercher la dernière version du script via github pour les 2 scripts actuellement supportés : Pushbullet et Telegram. Dans le cas de ce dernier, une tâche Ansible va directement chercher le chat ID, nécessaire en plus du token.</p>



<p>Au préalable, il faut avoir <a href="https://www.monlinux.net/2018/03/notification-push-linux-debian-simple-mail/">créé un compte pour Pushbullet en suivant les étages</a>. Et un <a href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">bot pour Telegram en plus en suivant l&rsquo;article que j&rsquo;ai écrit sur les notifications Telegram pour Debian</a>. </p>



<h2 class="wp-block-heading">Exemple Playbook</h2>



<p>Notification pushbullet :</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">- hosts: servers
  roles:
      - { role: notification-push vars: notification_pushbullet_access_token: 'o.XXXXXXXXXXXXXXXXXXXXX' }
</code></pre>



<p>Notification Telegram :</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">- hosts: servers
  roles:
      - { role: notification-push vars: notification_telegram_access_token: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' }
</code></pre>



<h2 class="wp-block-heading"><a href="https://github.com/belgotux/ansible-role-notification-push#license"></a>Utiliser un bot API local pour Telegram</h2>



<p>Il est tout à fait possible de pousser l&rsquo;utilisation en auto-hébergement via l&rsquo;utilisation de son propre service d&rsquo;API bot Telegram. <a href="https://core.telegram.org/bots/api#using-a-local-bot-api-server" target="_blank" rel="noreferrer noopener">L&rsquo;article officiel sur le site de Telegram en décrit les capacités</a>. Le rôle est fait pour pouvoir changer l&rsquo;adresse par défaut de l&rsquo;API <code>https://api.telegram.org</code>.</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">- hosts: servers
  roles:
      - role: notification-push
        vars:
          notification_telegram_access_token: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
          notification_telegram_provider_api: 'https://your_custom_api'
</code></pre>
<p>L’article <a href="https://www.monlinux.net/2022/12/role-ansible-notification-push-linux-debian/">Role Ansible notification push Linux Debian</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2022/12/role-ansible-notification-push-linux-debian/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Notification Bot Telegram sous Linux Debian</title>
		<link>https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/</link>
					<comments>https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 18 Dec 2022 17:38:26 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[notification]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1658</guid>

					<description><![CDATA[<p>Plus pratique que d&#8217;utiliser la commande mailx qui n&#8217;est pas forc&#233;ment une information en temps r&#233;elle, la notification par Telegram est une bonne alternative. L&#8217;API de Telegram permet bien plus de choses que l&#8217;API de Pushbullet que j&#8217;utilisais pr&#233;c&#233;demment. Vous... <a class="more-link" href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">Notification Bot Telegram sous Linux Debian</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Plus pratique que d&rsquo;utiliser la commande <code>mailx</code> qui n&rsquo;est pas forcément une information en temps réelle, la notification par Telegram est une bonne alternative. L&rsquo;<a href="https://core.telegram.org/bots/tutorial" target="_blank" rel="noreferrer noopener">API de Telegram</a> permet bien plus de choses que l&rsquo;<a href="https://www.monlinux.net/2018/03/notification-push-linux-debian-simple-mail/">API de Pushbullet que j&rsquo;utilisais précédemment</a>. Vous pouvez notamment séparer les canaux de communication, faire un chat de groupe etc.</p>



<p>Mais le plus gros avantage étant que <strong>le canal est sécurisé car chiffré et vous n&rsquo;avez pas de tiers qui peut tout lire comme avec pushbullet</strong>. </p>



<p>Dans le cas de cette notification, mon besoin est simple, distinguer les serveurs à la maison, de ceux en VPS via différent chatBot. Pour plus de visibilité sur les types d&rsquo;alerte, <a href="https://apps.timwhitlock.info/emoji/tables/unicode" target="_blank" rel="noreferrer noopener nofollow">les emoji</a> sont bien utiles et complètement gérés par Telegram et par ce script.</p>



<p>Je vous partage donc le lien du <a href="https://github.com/belgotux/telegram-notification-linux" target="_blank" rel="noreferrer noopener">projet github du script Telegram qui peut envoyer des notifications autant sous Debian que Ubuntu</a>. Il peut sans doute tourner sous d&rsquo;autres distributions, mais je n&rsquo;ai pas testé.</p>



<h2 class="wp-block-heading">Créer un compte Telegram</h2>



<p>Rien de plus simple, vous installez Telegram sur votre <a href="https://play.google.com/store/apps/details?id=org.telegram.messenger" target="_blank" rel="noreferrer noopener nofollow">Android</a> ou autre smartphone. Il est nécessaire que votre compte soit vérifié par un numéro de téléphone. SI vous n&rsquo;avez pas de smartphone, il est encore possible d&rsquo;utiliser <a href="https://www.bluestacks.software/bluestacks-download/" target="_blank" rel="noreferrer noopener nofollow">bluestacks</a> pour émuler facilement un Android.</p>



<p>Une fois le compte créé, vous pouvez très bien installer le client sur votre <a href="https://telegram.org/dl/desktop/linux" target="_blank" rel="noreferrer noopener nofollow">Linux </a>ou votre <a href="https://telegram.org/dl/desktop/win64" target="_blank" rel="noreferrer noopener nofollow">Windows</a> pour recevoir les notifications. Il y a même un client CLI de disponible via le paquet <code>telegram-cli</code>.</p>



<h3 class="wp-block-heading">Ajouter le contact @BotFather</h3>



<p>Pour créer un bot il faut ajouter le contact @BotFather.</p>



<p>Vous faites la commande <code>/start</code>.</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="659" height="246" src="https://www.monlinux.net/wp-content/uploads/image-12.png" alt="/start @BotFather" class="wp-image-1661" srcset="https://www.monlinux.net/wp-content/uploads/image-12.png 659w, https://www.monlinux.net/wp-content/uploads/image-12-300x112.png 300w, https://www.monlinux.net/wp-content/uploads/image-12-600x224.png 600w" sizes="auto, (max-width: 659px) 100vw, 659px" /></figure>



<p>Vous demandez un nouveau bot via <code>/newbots</code> et suivez les instructions : </p>



<ul class="wp-block-list">
<li>Vous lui donnez un nom utile</li>



<li>Vous créez un utilisateur qui doit être unique, le mieux étant de préfixer vos bots par votre pseudo ou un mot pas trop commun pour être certains d&rsquo;avoir ce pseudo unique.</li>



<li>Vous récupérez le token pour joindre l&rsquo;API et vous le gardez secret.</li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="652" height="701" src="https://www.monlinux.net/wp-content/uploads/image-13.png" alt="/newbot ajout d'un nouveau bot avec nom et username pour récupérer la clé API" class="wp-image-1662" srcset="https://www.monlinux.net/wp-content/uploads/image-13.png 652w, https://www.monlinux.net/wp-content/uploads/image-13-279x300.png 279w, https://www.monlinux.net/wp-content/uploads/image-13-600x645.png 600w" sizes="auto, (max-width: 652px) 100vw, 652px" /></figure>



<h3 class="wp-block-heading">Récupérer l&rsquo;IP de chat</h3>



<p>Sur votre compte Telegram, vous ajoutez votre nouveau bot comme contact et vous faites un <code>/start</code>. C&rsquo;est important pour avoir un contenu et pouvoir récupérer l&rsquo;ID du chat.</p>



<p>Avec votre navigateur ou curl, aller à l&rsquo;adresse : <code>https://api.telegram.org/bot&lt;YourBOTToken&gt;/getUpdates</code></p>



<p>Vous aurez un message du genre en json, ce qui nous intéresse est le <code>chat: {"id":XXXXXXX</code> :</p>



<pre class="wp-block-code"><code class="">{"ok":true,"result":[{"update_id":551184892,
"message":{"message_id":2,"from":{"id":1648779299,"is_bot":false,"first_name":"xxxx","language_code":"fr"},"chat":{"id":XXXXXXXXX,"first_name":"xxxx","type":"private"},"date":1670947477,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}]}%</code></pre>



<h2 class="wp-block-heading">Récupérer le script telegram-notification-linux</h2>



<ul class="wp-block-list">
<li>Vous récupérez le projet git</li>



<li>Vous copiez <code>telegram-notification.sh</code> dans <code>/usr/local/bin/</code> et appliquez un <code>chmod +x</code></li>



<li>Vous copiez <code>telegram-notification.conf.example</code> dans <code>/usr/local/etc/telegram-notification.conf</code></li>



<li>Vous modifiez <code>telegram-notification.conf</code> pour y ajouter votre accessToken et votre chatID</li>
</ul>



<pre class="wp-block-code"><code class="">git clone https://github.com/belgotux/telegram-notification-linux.git
cd telegram-notification-linux/
cp telegram-notification.sh /usr/local/bin/
chmod +x /usr/local/bin/telegram-notification.sh
vim telegram-notification.conf</code></pre>



<h3 class="wp-block-heading">Utilisation du script de notification Telegram</h3>



<p>Voici différents cas d&rsquo;utilisation et le résultat: </p>



<pre class="wp-block-code"><code class="">telegram-notification.sh -m "Space disc critic" -t "test" -c
telegram-notification.sh -m "Space disc high" -t "test" -w 
telegram-notification.sh -m "service blabla need attention" -w
telegram-notification.sh -m "simple report"
telegram-notification.sh -m "simple report with title" -t "my title \xF0\x9F\x90\xA2" </code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="407" height="259" src="https://www.monlinux.net/wp-content/uploads/notification-telegram-linux-Debian.png" alt="notification telegram envoyée par serveur Debian" class="wp-image-1660" srcset="https://www.monlinux.net/wp-content/uploads/notification-telegram-linux-Debian.png 407w, https://www.monlinux.net/wp-content/uploads/notification-telegram-linux-Debian-300x191.png 300w" sizes="auto, (max-width: 407px) 100vw, 407px" /></figure>
<p>L’article <a href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">Notification Bot Telegram sous Linux Debian</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Owncloud &#8211; utiliser php7 sous Debian Jessie</title>
		<link>https://www.monlinux.net/2016/03/owncloud-utiliser-php7-debian-jessie/</link>
					<comments>https://www.monlinux.net/2016/03/owncloud-utiliser-php7-debian-jessie/#comments</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 13 Mar 2016 00:55:23 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[owncloud]]></category>
		<category><![CDATA[php7]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=1019</guid>

					<description><![CDATA[<p>PHP 7 &#233;tait tr&#232;s attendu car l&#8217;axe choisi pour cette release est &#171;&#160;performance&#160;&#187; : Une vitesse d&#8217;ex&#233;cution jusqu&#8217;&#224; 2x sup&#233;rieure Compatibilit&#233; 64 bits Utilisation de la m&#233;moire vive r&#233;duit de 2/3 Pour toutes ces raisons, autant en faire profiter notre... <a class="more-link" href="https://www.monlinux.net/2016/03/owncloud-utiliser-php7-debian-jessie/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2016/03/owncloud-utiliser-php7-debian-jessie/">Owncloud &#8211; utiliser php7 sous Debian Jessie</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>PHP 7 était très attendu car l&rsquo;axe choisi pour cette release est « performance » :</p>
<ul>
<li>Une vitesse d’exécution jusqu’à 2x supérieure</li>
<li>Compatibilité 64 bits</li>
<li>Utilisation de la mémoire vive réduit de 2/3</li>
</ul>
<p>Pour toutes ces raisons, autant en faire profiter notre Owncloud <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Vous devez être en Debian 8 Jessie minimum pour suivre ce billet? Vous aurez l&rsquo;avantage de rester en Debian stable et disposer des améliorations de PHP 7. Si vous êtes sous Debian 9 stretch ou dérivé Ubuntu vous êtes déjà équipé <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><span id="more-1019"></span></p>
<p><a title="Posts by Guillaume Plessis" href="https://www.dotdeb.org/author/gplessis/" rel="author" class="broken_link">Guillaume Plessis </a>de Dotdeb met à disposition des paquets PHP 7 pour Debian 8 (Jessie). Pour rappel, on est toujours en PHP 5.6 sous Debian 8 et PHP 7 ne sera ajouté que sous Debian 9. <a href="https://www.dotdeb.org/2015/12/04/php-7-0-0-is-available-for-jessie/" target="_blank" rel="noopener">Pour les détails je vous retourne vers son blog</a>.</p>
<h2>PHP7 son installation via des dépôts</h2>
<p>Ajouter les dépôts si vous faites confiance à Guillaume Plessis :</p>
<pre class="lang:sh decode:true">~# wget -O- https://www.dotdeb.org/dotdeb.gpg | apt-key add -</pre>
<pre class="lang:sh decode:true">~# echo "deb http://packages.dotdeb.org jessie all" &gt; /etc/apt/sources.list.d/dotdeb.list</pre>
<pre class="lang:sh decode:true ">~# apt-get update</pre>
<p>&nbsp;</p>
<p>Lister tous les paquets de type PHP5 afin de ne pas oublier de module :</p>
<pre class="lang:sh decode:true ">~# dpkg -l php5* | egrep '^ii'
ii  php5            5.6.17+dfsg-0+deb8u1 all          server-side, HTML-embedded scripting language (metapackage)
ii  php5-apcu       4.0.7-1              amd64        APC User Cache for PHP 5
ii  php5-cgi        5.6.17+dfsg-0+deb8u1 amd64        server-side, HTML-embedded scripting language (CGI binary)
ii  php5-cli        5.6.17+dfsg-0+deb8u1 amd64        command-line interpreter for the php5 scripting language
ii  php5-common     5.6.17+dfsg-0+deb8u1 amd64        Common files for packages built from the php5 source
ii  php5-curl       5.6.17+dfsg-0+deb8u1 amd64        CURL module for php5
ii  php5-fpm        5.6.17+dfsg-0+deb8u1 amd64        server-side, HTML-embedded scripting language (FPM-CGI binary)
ii  php5-gd         5.6.17+dfsg-0+deb8u1 amd64        GD module for php5
ii  php5-intl       5.6.17+dfsg-0+deb8u1 amd64        internationalisation module for php5
ii  php5-json       1.3.6-1              amd64        JSON module for php5
ii  php5-mcrypt     5.6.17+dfsg-0+deb8u1 amd64        MCrypt module for php5
ii  php5-mysql      5.6.17+dfsg-0+deb8u1 amd64        MySQL module for php5
ii  php5-readline   5.6.17+dfsg-0+deb8u1 amd64        Readline module for php5
ii  php5-sqlite     5.6.17+dfsg-0+deb8u1 amd64        SQLite module for php5</pre>
<p>&nbsp;</p>
<p>Pour lister rapidement les paquets de PHP 5 à supprimer :</p>
<pre class="lang:sh decode:true">~# dpkg -l php5* | egrep '^ii' | while read i name v a d ; do echo -n "$name " ; done</pre>
<p>&nbsp;</p>
<p>Vérifier que tous les paquets php7.0 sont dispo avec ce dépôt Debian :</p>
<pre class="lang:sh decode:true">~# apt-get install php7.0 php7.0-apcu php7.0-cgi  php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-json php7.0-mcrypt php7.0-mysql php7.0-sqlite</pre>
<p>&nbsp;</p>
<p>On supprime ensuite la liste donnée <strong>après vérification que tous ce que vous utilisiez est disponible pour php7.0</strong> :</p>
<pre class="lang:sh decode:true ">~# apt-get remove php5 php5-apcu php5-cgi php5-cli php5-common php5-curl php5-fpm php5-gd php5-intl php5-json php5-mcrypt php5-mysql php5-readline php5-sqlite</pre>
<p>&nbsp;</p>
<p>Installer les paquets correspondants :</p>
<pre class="lang:sh decode:true ">~# apt-get install php7.0 php7.0-apcu php7.0-cgi  php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-json php7.0-mcrypt php7.0-mysql php7.0-sqlite
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'php7.0-sqlite3' for regex 'php7.0-sqlite'
The following packages were automatically installed and are no longer required:
comerr-dev krb5-multidev libapr-memcache0 libblas3gf libdrm-nouveau1a libexiv2-12 libgcrypt11-dev libgd2-xpm libgnutlsxx27 libicu48 libidn11-dev libjpeg8 libkadm5clnt-mit8 libkdb5-6
libkrb5-dev liblcms1 libldap2-dev libmagickcore5 libmagickcore5-extra libmagickwand5 libmpc2 libp11-kit-dev libpango1.0-0 libpthread-stubs0 librsvg2-2 librsvg2-common librtmp0
libssh2-1-dev libssl-doc libtasn1-3-dev libtiff4 libtime-modules-perl python-central python-gnupginterface zlib1g-dev
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
php-common php-readline php7.0-common php7.0-opcache php7.0-readline
Suggested packages:
php-user-cache
The following NEW packages will be installed:
php-common php-readline php7.0 php7.0-apcu php7.0-cgi php7.0-cli php7.0-common php7.0-curl php7.0-fpm php7.0-gd php7.0-json php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-readline
php7.0-sqlite3
0 upgraded, 16 newly installed, 0 to remove and 0 not upgraded.
Need to get 10.0 MB of archives.
After this operation, 44.7 MB of additional disk space will be used.
Do you want to continue? [Y/n]</pre>
<p>On installe ensuite le module Apache pour PHP 7 :</p>
<pre class="lang:sh decode:true ">~# apt-get install libapache2-mod-php</pre>
<h2>Vérification de l&rsquo;installation</h2>
<p>Vérifier la version de PHP :</p>
<pre class="lang:sh decode:true ">~# php -v
~# /etc/init.d/php7.0-fpm status
[ ok ] php-fpm7.0 is running.</pre>
<p>S&rsquo;il y a encore php5-fmp qui est mis en démarrage :</p>
<pre class="lang:sh decode:true ">~# ls -l /etc/rc?.d/*php*
lrwxrwxrwx 1 root root 18 Mar 12 20:40 /etc/rc0.d/K01php5-fpm -&gt; ../init.d/php5-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc0.d/K01php7.0-fpm -&gt; ../init.d/php7.0-fpm
lrwxrwxrwx 1 root root 18 Mar 12 20:40 /etc/rc1.d/K01php5-fpm -&gt; ../init.d/php5-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc1.d/K01php7.0-fpm -&gt; ../init.d/php7.0-fpm
lrwxrwxrwx 1 root root 18 Mar 12 20:58 /etc/rc2.d/S01php5-fpm -&gt; ../init.d/php5-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc2.d/S01php7.0-fpm -&gt; ../init.d/php7.0-fpm
lrwxrwxrwx 1 root root 18 Mar 12 20:58 /etc/rc3.d/S01php5-fpm -&gt; ../init.d/php5-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc3.d/S01php7.0-fpm -&gt; ../init.d/php7.0-fpm
lrwxrwxrwx 1 root root 18 Mar 12 20:58 /etc/rc4.d/S01php5-fpm -&gt; ../init.d/php5-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc4.d/S01php7.0-fpm -&gt; ../init.d/php7.0-fpm
lrwxrwxrwx 1 root root 18 Mar 12 20:58 /etc/rc5.d/S01php5-fpm -&gt; ../init.d/php5-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc5.d/S01php7.0-fpm -&gt; ../init.d/php7.0-fpm
lrwxrwxrwx 1 root root 18 Mar 12 20:40 /etc/rc6.d/K01php5-fpm -&gt; ../init.d/php5-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc6.d/K01php7.0-fpm -&gt; ../init.d/php7.0-fpm

~# update-rc.d php5-fpm remove

~# ls -l /etc/rc?.d/*php*
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc0.d/K01php7.0-fpm -&gt; ../init.d/php7.0-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc1.d/K01php7.0-fpm -&gt; ../init.d/php7.0-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc2.d/S01php7.0-fpm -&gt; ../init.d/php7.0-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc3.d/S01php7.0-fpm -&gt; ../init.d/php7.0-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc4.d/S01php7.0-fpm -&gt; ../init.d/php7.0-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc5.d/S01php7.0-fpm -&gt; ../init.d/php7.0-fpm
lrwxrwxrwx 1 root root 20 Mar 12 22:49 /etc/rc6.d/K01php7.0-fpm -&gt; ../init.d/php7.0-fpm
</pre>
<p>Ensuite un fichier de test contenant ceci pour valider que php fonctionne bien :</p>
<pre class="lang:php decode:true ">&lt;?php phpinfo(); ?&gt;</pre>
<p>Et en essayant Owncloud, vous pourriez avoir ceci comme message d&rsquo;erreur dans le format HTML :</p>
<pre class="lang:sh decode:true">Memcache \OC\Memcache\APC not available for local cache Is the matching PHP module installed and enabled?</pre>
<p>C&rsquo;est du à l&rsquo;utilisation de memcached si vous l&rsquo;aviez activé pour accélérer votre serveur.</p>
<p><a href="https://www.monlinux.net/wp-content/uploads/apcu.png"><img loading="lazy" decoding="async" class="size-full wp-image-1027 aligncenter" src="https://www.monlinux.net/wp-content/uploads/apcu.png" alt="acpu détail php7" width="615" height="288" srcset="https://www.monlinux.net/wp-content/uploads/apcu.png 615w, https://www.monlinux.net/wp-content/uploads/apcu-300x140.png 300w, https://www.monlinux.net/wp-content/uploads/apcu-150x70.png 150w" sizes="auto, (max-width: 615px) 100vw, 615px" /></a></p>
<p>&nbsp;</p>
<p>Après vérification APCu est bien activé, et le problème est ailleurs : changement de nom de classe et des adaptation dans le code de Owncloud 8.2.1.4 sont à faire. Vous pouvez utiliser ce <a href="https://github.com/owncloud/core/issues/21095" target="_blank" rel="noopener">workarround pour php7</a>. Mais également vous pouvez mettre à jour Owncloud vers la 8.2.3 ou passer le cap de la v9.</p>
<p>Vous pouvez faire un test en désactivant le memcache en désactivant la ligne suivant dans le fichier /var/www/owncloud/config/config.php :</p>
<pre class="lang:sh decode:true ">'memcache.local' =&gt; '\OC\Memcache\APC',</pre>
<p>Vous retrouverez votre interface.</p>
<p>Dans mon cas je n&rsquo;ai pas été plus loin avec memcached car il a trouvé un remplaçant depuis quelques temps&#8230;. Il ne reste plus qu&rsquo;à remplacer votre memcached par redis, qui est un cache plus performant, afin de retrouver un peu de rapidité! J&rsquo;en parle dans un prochain billet.</p>
<h2>Retour rapide sur le gain de Performance de PHP7</h2>
<p>Ces graphiques sont pour une application WordPress. Voici le temps de réponse dynamique (bleu clair) et static (bleu foncé). On peut voir une baisse du temps de réponse sur le dernier tiers. Ce n&rsquo;est pas énorme comme boost mais c&rsquo;est toujours ça de gagné <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><a href="https://www.monlinux.net/wp-content/uploads/request_time.png"><img loading="lazy" decoding="async" class="size-full wp-image-1051 aligncenter" src="https://www.monlinux.net/wp-content/uploads/request_time.png" alt="temps de réponse PHP7" width="1475" height="485" srcset="https://www.monlinux.net/wp-content/uploads/request_time.png 1475w, https://www.monlinux.net/wp-content/uploads/request_time-300x99.png 300w, https://www.monlinux.net/wp-content/uploads/request_time-1024x337.png 1024w, https://www.monlinux.net/wp-content/uploads/request_time-150x49.png 150w" sizes="auto, (max-width: 1475px) 100vw, 1475px" /></a></p>
<p>Sur le CPU on remarque également une diminution de la charge :</p>
<p><a href="https://www.monlinux.net/wp-content/uploads/cpu_php7.png"><img loading="lazy" decoding="async" class="size-full wp-image-1052 aligncenter" src="https://www.monlinux.net/wp-content/uploads/cpu_php7.png" alt="graphique cpu php7" width="1499" height="409" srcset="https://www.monlinux.net/wp-content/uploads/cpu_php7.png 1499w, https://www.monlinux.net/wp-content/uploads/cpu_php7-300x82.png 300w, https://www.monlinux.net/wp-content/uploads/cpu_php7-1024x279.png 1024w, https://www.monlinux.net/wp-content/uploads/cpu_php7-150x41.png 150w" sizes="auto, (max-width: 1499px) 100vw, 1499px" /></a></p>
<p>En conclusion, ce remplacement de PHP 5.6 en PHP 7 est bien bénéfique pour mon utilisation (WordPress). Mais je n&rsquo;ai par contre pas de statistiques valable pour Owncloud car c&rsquo;est une utilisation personnelle et donc peu de trafic pour une comparaison.</p>
<p>L’article <a href="https://www.monlinux.net/2016/03/owncloud-utiliser-php7-debian-jessie/">Owncloud &#8211; utiliser php7 sous Debian Jessie</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2016/03/owncloud-utiliser-php7-debian-jessie/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Marquer un paquet deb pour ne pas le mettre à jour lors d&#8217;un upgrade</title>
		<link>https://www.monlinux.net/2014/11/marquer-paquet-deb-pas-mettre-jour-lors-dun-upgrade/</link>
					<comments>https://www.monlinux.net/2014/11/marquer-paquet-deb-pas-mettre-jour-lors-dun-upgrade/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 02 Nov 2014 21:03:11 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=649</guid>

					<description><![CDATA[<p>Si vous ne voulez pas qu&#8217;un paquet se mettent automatiquement &#224; jour lors d&#8217;un upgrade Debian, voici une commande utile. Dans mon cas, j&#8217;ai compil&#233; un paquet deb sp&#233;cifique et je veux donc le garder intacte. &#160; $ dpkg --get-selections... <a class="more-link" href="https://www.monlinux.net/2014/11/marquer-paquet-deb-pas-mettre-jour-lors-dun-upgrade/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2014/11/marquer-paquet-deb-pas-mettre-jour-lors-dun-upgrade/">Marquer un paquet deb pour ne pas le mettre à jour lors d&rsquo;un upgrade</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Si vous ne voulez pas qu&rsquo;un paquet se mettent automatiquement à jour lors d&rsquo;un upgrade Debian, voici une commande utile. Dans mon cas, j&rsquo;ai compilé un paquet deb spécifique et je veux donc le garder intacte.</p>
<p>&nbsp;</p>
<pre class="lang:sh decode:true ">$ dpkg --get-selections | grep libapr
libapr1                        install
libaprutil1                    install
libaprutil1-dbd-sqlite3                install
libaprutil1-ldap                install

$ apt-mark hold libapr1
libapr1 passé en figé (« hold »).

$ dpkg --get-selections | grep libapr
libapr1                        hold
libaprutil1                    install
libaprutil1-dbd-sqlite3                install
libaprutil1-ldap                install</pre>
<p>&nbsp;</p>
<p>L’article <a href="https://www.monlinux.net/2014/11/marquer-paquet-deb-pas-mettre-jour-lors-dun-upgrade/">Marquer un paquet deb pour ne pas le mettre à jour lors d&rsquo;un upgrade</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2014/11/marquer-paquet-deb-pas-mettre-jour-lors-dun-upgrade/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Apache refuse de démarrer dans un vserver à cause du socket</title>
		<link>https://www.monlinux.net/2014/11/apache-refuse-demarrer-vserver-cause-du-socket/</link>
					<comments>https://www.monlinux.net/2014/11/apache-refuse-demarrer-vserver-cause-du-socket/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 02 Nov 2014 20:26:57 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[vserver]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=644</guid>

					<description><![CDATA[<p>En mettant &#224; jour un vserver web de Debian Squeeze en Wheezy sur un h&#244;te vserver en Debian Lenny, je suis tomb&#233; sur une coquille&#8230;. La plupart des services ont correctement red&#233;marr&#233; sauf Apache&#8230; Il refusait de se lancer&#8230; J&#8217;ai... <a class="more-link" href="https://www.monlinux.net/2014/11/apache-refuse-demarrer-vserver-cause-du-socket/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2014/11/apache-refuse-demarrer-vserver-cause-du-socket/">Apache refuse de démarrer dans un vserver à cause du socket</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>En mettant à jour un vserver web de Debian Squeeze en Wheezy sur un hôte vserver en Debian Lenny, je suis tombé sur une coquille&#8230;. La plupart des services ont correctement redémarré sauf Apache&#8230; Il refusait de se lancer&#8230; J&rsquo;ai eu ces erreurs en fonction des options de Listen que j&rsquo;ai essayé :</p>
<pre class="lang:sh decode:true ">[crit] (22)Invalid argument: alloc_listener: failed to get a socket for (empty) Syntax error on line 9 of /etc/apache2/ports.conf: Listen setup failed Action 'start' failed.</pre>
<pre class="lang:sh decode:true">Starting web server: apache2no listening sockets available</pre>
<pre class="lang:sh decode:true ">Invalid argument: alloc_listener: failed to get a socket for 0.0.0.0</pre>
<p>Il s&rsquo;agit d&rsquo;un problème lié au vserver et la librairie <em>libapr1,</em> utilisée par Apache, qui fait des appels noyau&#8230; Ce qui est embêtant pour mon vserver&#8230;</p>
<p>Il faut recompiler cette librairie.</p>
<p><span id="more-644"></span></p>
<p>Je me suis inspiré du sujet suivant et j&rsquo;ai eu quelques soucis en chemin : <a href="https://serverfault.com/questions/496989/apache-in-linux-vserver-wont-start-cant-create-socket">debian &#8211; Apache in linux-vserver won&rsquo;t start, can&rsquo;t create socket &#8211; Server Fault</a>.</p>
<p>Attention que les dépenses sont importantes ~900Mo, veillez à supprimer les paquets de développement par après si c&rsquo;est un serveur en production.</p>
<h2>Réinstaller la libapr1 nécessaire à Apache</h2>
<pre class="lang:sh decode:true ">$ apt-get install debhelper autoconf autotools-dev uuid-dev doxygen libtool</pre>
<p>Pour compiler les sources :</p>
<pre class="lang:sh decode:true ">$ apt-get source libapr1
$ tar -xf apr_1.4.6.orig.tar.gz
$ cd apr-1.4.6
$ tar -xf ../apr_1.4.6-3+deb7u1.debian.tar.gz
$ dpkg-buildpackage</pre>
<p>Dans mon cas, j&rsquo;ai eu un souci à la compilation sur le vserver, il y avait besoin de l’environnement /dev/shm, la compilation s&rsquo;arrêtait sans cela&#8230;</p>
<pre class="lang:c++ decode:true ">if grep -q APR_HAS_POSIXSEM_SERIALIZE.*0 build-i386/include/apr.h ;\
then \
echo "WARNING: This is Linux but configure did not detect POSIX semaphores." ;\
if [ "" = "" ] ;\
then \
echo "ERROR: POSIX semaphores not usable and /dev/shm not mounted." ;\
echo "ERROR: Aborting." ;\
echo "HINT: If you are using pbuilder or cowbuilder, add /dev/shm to BINDMOUNTS" ;\
echo "HINT: in pbuilderrc" ;\
exit 1 ;\
fi ;\
fi
WARNING: This is Linux but configure did not detect POSIX semaphores.
ERROR: POSIX semaphores not usable and /dev/shm not mounted.
ERROR: Aborting.
HINT: If you are using pbuilder or cowbuilder, add /dev/shm to BINDMOUNTS
HINT: in pbuilderrc
make: *** [build-i386/config.status] Erreur 1
dpkg-buildpackage: erreur: debian/rules build a produit une erreur de sortie de type 2</pre>
<p>J&rsquo;ai donc modifié le fichier fstab du vserver dans la configuration du serveur hote :</p>
<pre class="lang:sh decode:true ">$ vim /etc/vservers/SERVER/fstab

none    /dev/shm    tmpfs    size=50m,mode=1777    0 0</pre>
<p>Et j&rsquo;ai redémarré le vserver. Pour info, il existe des commandes pour le faire à chaud également.</p>
<p>&nbsp;</p>
<p>Après compilation réussie :</p>
<pre class="lang:sh decode:true">$ dpkg -i libapr1_1.4.6-3+deb7u1_i386.deb
$ /etc/init.d/apache2 start
[ ok ] Starting web server: apache2.</pre>
<p>Notre serveur Apache démarre correctement <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h2>Nettoyage des paquets inutiles</h2>
<p>On supprime les paquets qui avaient était nécessaires pour la compilation :</p>
<pre class="lang:sh decode:true ">$ apt-get remove debhelper autoconf autotools-dev uuid-dev doxygen libtool &amp;&amp; apt-get autoremove &amp;&amp; apt-get clean</pre>
<p>&nbsp;</p>
<p>L’article <a href="https://www.monlinux.net/2014/11/apache-refuse-demarrer-vserver-cause-du-socket/">Apache refuse de démarrer dans un vserver à cause du socket</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2014/11/apache-refuse-demarrer-vserver-cause-du-socket/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Mise en cache de page à l’aide de Disk: Enhanced 
Mise en cache de la base de données de 13/68 requêtes en 0.068 secondes utilisant Disk

Served from: www.monlinux.net @ 2026-04-12 20:59:21 by W3 Total Cache
-->