<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Joomla! - Open Source Content Management" -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Blog - webologix</title>
		<description><![CDATA[Administration serveurs Linux et développement WEB PHP]]></description>
		<link>http://webologix.loc/blog</link>
		<lastBuildDate>Sat, 19 Nov 2022 20:59:41 +0000</lastBuildDate>
		<generator>Joomla! - Open Source Content Management</generator>
		<atom:link rel="self" type="application/rss+xml" href="http://webologix.loc/blog?format=feed&amp;type=rss"/>
		<language>en-gb</language>
		<item>
			<title>Gestion POSTFIX</title>
			<link>http://webologix.loc/blog/15-gestion-postfix</link>
			<guid isPermaLink="true">http://webologix.loc/blog/15-gestion-postfix</guid>
			<description><![CDATA[<h2 class="western">6.8.commandes utiles:</h2>
<ul>
<li>a) lister les messages en attente dans la queue</li>
<b>mailq</b> ou <b>postqueue -p</b>
<li>b) Afficher le contenu d'un msg de la queue</li>
<b>postcat -q &lt;n° msg&gt;</b>
<li>c) Supprimer tous les messages différés&nbsp;</li>
<b>postsuper -d ALL deferred</b>
<li>d) Nombre de messages dans la queue&nbsp;</li>
<b> mailq | tail -n 1</b>
<li>e) Script de suppression de mails dans la queue&nbsp;</li>
<b>pfdel_keyword</b>
<li>f) état des queues de postfix&nbsp;</li>
<b>qshape -s &lt;queue&gt; | head</b>
<p>&lt;queue&gt; = incoming, active, deferred, maildrop, hold</p>
<p>ex&nbsp;:</p>
<p>qshape incoming active deferred | less #affiche les 3 queues cumulées</p>
<p>qshape -s deferred | less #msgs différés, par sender</p>
<li>g) pflogsumm --detail 0 /var/log/mail.log</li>
<code>$ perl /usr/sbin/pflogsumm -d yesterday /var/log/mail.log</code>
<li>h) Relancer la queue (deferred) &nbsp;<b></b></li>
<code>postqueue -f</code>
<li>i) Vérifier master.cf&nbsp;<b></b></li>
<code>postfix reload &amp;&amp; tail -f /var/log/mail.log</code>
<li>j) Voir charge amavisd&nbsp;<b></b></li>
<code>amavisd-agent -w 180 -c 1</code>
<li>k) Envoit d'un spam&nbsp;<b></b></li>
<code><a href="mailto:X5O!P%25@AP">X5O!P%@AP</a>[4\PZX54(P^) 7CC) 7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*</code>
<li>l) egrep '(reject|warning|error|fatal|panic) :' /some/log/file</li>
<li>g) Test dovecot/mysql</li>
<code>doveadm user <a href="mailto:email1@example.com">email1@example.com<br /></a></code>
<li><a href="mailto:email1@example.com">&nbsp;h) </a>Test postfix/mysql</li>
<p><code>postmap -q webologix.com mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf</code></p>
</ul>]]></description>
			<category>Blog</category>
			<pubDate>Wed, 07 Sep 2022 14:09:47 +0000</pubDate>
		</item>
		<item>
			<title>Changement IP routeur local</title>
			<link>http://webologix.loc/blog/14-changement-ip-routeur-local</link>
			<guid isPermaLink="true">http://webologix.loc/blog/14-changement-ip-routeur-local</guid>
			<description><![CDATA[<p>En cas de changement d'IP du poste de travail, modifier:</p>
<p>firewall.sh MASSAMAG</p>
<p>/etc/fail2ban/jail.conf ignoreip</p>
<p>/etc/postfix/main.cf mynetworks</p>]]></description>
			<category>Blog</category>
			<pubDate>Thu, 17 Mar 2022 10:13:17 +0000</pubDate>
		</item>
		<item>
			<title>Fail2ban</title>
			<link>http://webologix.loc/blog/13-fail2ban</link>
			<guid isPermaLink="true">http://webologix.loc/blog/13-fail2ban</guid>
			<description><![CDATA[<p>Lister les jail actives:</p>
<pre class="prefixed command language-bash" tabindex="0"><code class="language-bash">fail2ban-client status</code></pre>
<p>Voir l'état d'une jail</p>
<pre class="prefixed command language-bash" tabindex="0"><code class="language-bash">fail2ban-client status <mark>jail_name</mark></code></pre>
<p>Tester une règle sur un log:</p>
<pre class="prefixed command language-bash" tabindex="0"><code><samp>fail2ban-regex file.log jail_name</samp></code></pre>
<p>&nbsp;</p>
<p>Les paramètres des jails se trouvent par défaut dans&nbsp;/etc/fail2ban/jail.conf</p>
<p>Voir le filtre d'une jail:</p>
<pre class="prefixed command language-bash" tabindex="0"><code>cat /etc/fail2ban/filter.d/jail_name.conf</code></pre>]]></description>
			<category>Blog</category>
			<pubDate>Wed, 16 Mar 2022 13:44:52 +0000</pubDate>
		</item>
		<item>
			<title>Résoudre l'erreur &quot;La clé publique n’est pas disponible : NO_PUBKEY&quot;</title>
			<link>http://webologix.loc/blog/12-resoudre-l-erreur-la-cle-publique-n-est-pas-disponible-no-pubkey</link>
			<guid isPermaLink="true">http://webologix.loc/blog/12-resoudre-l-erreur-la-cle-publique-n-est-pas-disponible-no-pubkey</guid>
			<description><![CDATA[<p>Solution:</p>
<pre class="wp-block-code  language-bash" tabindex="0"><code class="  language-bash" lang="bash"><span class="token function">apt-get clean<br />apt-get -f install<br />dpkg --purge --force-depends ca-certificates<br />sudo</span> <span class="token function">apt-get</span> update <span class="token operator"><span class="token file-descriptor important">2</span>&gt;</span><span class="token file-descriptor important">&amp;1</span> <span class="token operator">|</span> <span class="token function">sed</span> -ne <span class="token string">'s?^.*NO_PUBKEY ??p'</span> <span class="token operator">|</span><span class="token function">xargs</span> -r -- <span class="token function">sudo</span> apt-key adv --keyserver keyserver.ubuntu.com --recv-keys</code></pre>]]></description>
			<category>Blog</category>
			<pubDate>Sun, 06 Mar 2022 08:59:41 +0000</pubDate>
		</item>
		<item>
			<title>Configuration de DMARC (sous Debian)</title>
			<link>http://webologix.loc/blog/11-dmarc-configuration-on-debian</link>
			<guid isPermaLink="true">http://webologix.loc/blog/11-dmarc-configuration-on-debian</guid>
			<description><![CDATA[<h1>CONFIGURATION DMARC DEBIAN</h1>
<h2>Paramétrage BIND</h2>
<p><code>&gt; grep dmarc /etc/bind/pri.webologix.com</code></p>
<p><code>_dmarc &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3600 &nbsp;&nbsp;&nbsp;TXT &nbsp;&nbsp;&nbsp;&nbsp;"v=DMARC1; p=none; rua=mailto:<a href="mailto:mtn@webologix.com">mail@example.com</a>; ruf=mailto:<a href="mailto:mtn@webologix.com">mtn@example.com</a> fo=1 adkim=r; aspf=r; pct=100; rf=afrf;</code><br /><code> ri=600"</code><br />&nbsp;</p>
<p>Where:</p>
<ol>
<li><strong>v</strong>: DMARC version. This is a required field. For now it will have the value of ‘DMARC1’</li>
<li><strong>p</strong>: DMARC policy. This is an required field as well, you can set it to one of three values:</li>
</ol>
<ul>
<li><strong>none</strong>:&nbsp; Means don’t do anything if the DMARC verification fails. This is a good setting while you are still testing your DMARC implementation as it will not disrupt your outgoing mail if you made a mistake in your configuration.</li>
<li><strong>quarantine</strong>: Mail that fails DMARC checks should be treated as suspicious. This is good middle ground setting if you want to ensure that none of your mail gets lost.</li>
<li><strong>reject</strong>: Mail should be rejected If the DMARC verification fails. This is a good setting if your domain is used for phishing or if trust in your E-Mails is more important than occasional lost messages.</li>
<li><strong>rua</strong>: This is an optional parameter and contains the address to which the DMARC aggregate report should be submitted. You can specify web addresses here, but I have not done so so far. If you do not set this option at all, you will not receive DMARC reports.</li>
<li><strong>ruf</strong>: This is similar to the rua field, but these are the addresses for DMARC forensic reports. These reports contain detailed information about failed DMARC verifications of E-mail claiming to be from your domain.</li>
<li><strong>fo</strong>: These are reporting options for the failure reports. This can have four possible values:
<ul>
<li><strong>0</strong>: generate a report if both SPF and DKIM tests failed</li>
<li><strong>1</strong>: generate a report if either the SPF or the DKIM test failed</li>
<li><strong>s</strong>: generate a report if the SPF test failed</li>
<li><strong>d</strong>: generate a report if the DKIM test failed</li>
</ul>
</li>
<li><strong>adkim</strong>: This option is optional and controls how strict the result of the DKIM verification should be interpreted. It defaults to relaxed if it is not present. Possible values are:
<ul>
<li><strong>s</strong>: strict</li>
<li><strong>r</strong>: relaxed</li>
</ul>
</li>
<li><strong>aspf</strong>: This option is optional and controls how strict the result of the SPF check should be interpreted. It defaults to relaxed if no value is set. Possible values are
<ul>
<li><strong>s</strong>: strict</li>
<li><strong>r</strong>: relaxed</li>
</ul>
</li>
<li><strong>pct</strong>: This is also optional and determines how many percent of the messages from your domain should have the DMARC verification done by other mail providers. The possible values here are integers between 0 and 100. It defaults to 100 if it is not set.</li>
<li><strong>rf</strong>: This optional field lets you specify your preferred reporting format for forensic reports. It defaults to “afrf”. These are the possible values:<ol>
<li>afrf: Authentication Failure Reporting Format</li>
<li>aodef: Accident Object Description Exchange Format</li>
</ol></li>
<li><strong>ri</strong>: This optional field is the interval at which you want to receive DMARC reports in seconds. It defaults&nbsp; 86400 seconds (one day). According to the DMARC specification every participating organization should be able to send reports at least once every day. Intervals as small as one hour are within the specification. But those smaller intervals are generally served on a best effort basis.</li>
<li><strong>sp</strong>: The last field is also optional (and not present in my example). It is the subdomain policy. If you do not set this, the policy you set in the beginning will apply to your subdomains. If you set this you can use the same values as in the policy field. This can be useful if you know, that you never send mails from one of your subdomains. In that case you can set the subdomain policy to reject without any risk of your legitimate E-Mails being discarded.</li>
</ul>
<h3>Après débugage poser les paramètres définitifs:</h3>
<p><code>&gt; grep dmarc /etc/bind/pri.webologix.com </code><br /><code>_dmarc &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3600 &nbsp;&nbsp;&nbsp;TXT &nbsp;&nbsp;&nbsp;&nbsp;"v=DMARC1; p=quarantine;&nbsp; fo=1 adkim=r; aspf=r; pct=100; rf=afrf; ri=86400"</code></p>
<p>&nbsp;</p>
<h2>INSTALLATION DEBIAN</h2>
<p><code>apt install opendmarc</code></p>
<h3>Paramétrage</h3>
<p>Configurationdes sockets par fichiers plutôt que par port pour éviter les Parefeu</p>
<p><code>&gt; nocomment.sh /etc/opendmarc.conf </code><br /><code> AuthservID HOSTNAME </code><br /><code>PidFile /var/run/opendmarc/opendmarc.pid </code><br /><code>PublicSuffixList /usr/share/publicsuffix </code><br /><code>Socket local:/var/run/opendmarc/opendmarc.sock </code><br /><code>Syslog true </code><br /><code> TrustedAuthservIDs HOSTNAME, mail.webologix.com, imap.webologix.com, smtp.webologix.com, pop.webologix.com, webologix.com </code><br /><code>UMask 0002 </code><br /><code>UserID opendmarc:opendmarc </code><br /><code>IgnoreHosts etc/opendmarc/ignore.hosts </code><br /><code>SoftwareHeader true</code></p>
<ul>
<li><strong>AuthservID</strong>: Sets what is used as AuthservID when processing E-Mails. This should be the hostname of your mail server or another unique string</li>
<li><strong>PidFile</strong>: Path to the PID file</li>
<li><strong>RejectFailures</strong>: This is a Boolean, if this is true E-Mails that fail DMARC verification will be rejected by your mail server. I prefer simply tagging the mail so I set this to false.</li>
<li><strong>Syslog</strong>: true or false. Tells opendmarc, whether it should log to syslog or not</li>
<li><strong>TrustedAuthservIDs</strong>: these AuthservIDs are assumed to be valid inputs for DMARC assessment. This can prevent the DMARC tests from running several times if you have multiple mail servers in your organization</li>
<li><strong>UMask</strong>: the PID file and the socket file are created with this umask</li>
<li><strong>UserID</strong>: the user and group running the opendmarc service separated by a colon.</li>
<li><strong>IgnoreHosts</strong>: The path to the Ignored Hosts list</li>
<li><strong>HistoryFile</strong>: The path under which the History file should be created. This file is necessary if you want to be able to create aggregate reports to send out to other organizations</li>
<li><strong>SoftwareHeader</strong>: adds a “Dmarc-Filter” header with the opendmarc version in every processed mail. This is good to have during testing</li>
<li>ForensicReporting options seem to be broken in the version of opendmarc that I used. When I tried to uncomment them, opendmarc would not start because of unrecognized parameters.</li>
</ul>
<h3>ignoreHosts:</h3>
<p><code>&gt; cat /etc/opendmarc/ignore.hosts &nbsp;</code><br /><code>localhost </code><br /><code>xx.23.227.123 </code><br /><code>xx.21.69.195</code></p>
<p><code>Socket configuration:&gt; nocomment.sh /etc/default/opendmarc </code><br /><code>RUNDIR=/var/run/opendmarc </code><br /><code>SOCKET=local:$RUNDIR/opendmarc.sock </code><br /><code>USER=opendmarc </code><br /><code>GROUP=opendmarc </code><br /><code>PIDFILE=$RUNDIR/$NAME.pid </code><br /><code>EXTRAAFTER=</code><br />&nbsp;</p>
<h2>Paramétrage Postfix</h2>
<p><code>&gt; grep milters /etc/postfix/main.cf </code><br /><code>#smtpd_milters = inet:localhost:8891 </code><br /><code>#non_smtpd_milters = inet:localhost:8891 </code><br /><code>smtpd_milters = local:/var/spool/postfix/var/run/opendkim/opendkim.sock, /var/run/opendmarc/opendmarc </code><br /><code>non_smtpd_milters = local:/var/spool/postfix/var/run/opendkim/opendkim.sock, /var/run/opendmarc/opendmarc</code></p>
<h2>Vérification</h2>
<p>Echanger des mails avec une adresse externe de préférence GMAIL et&nbsp; vérifier le statut "DMAR=pass" dans les headers.</p>]]></description>
			<category>Blog</category>
			<pubDate>Thu, 13 May 2021 12:13:45 +0000</pubDate>
		</item>
		<item>
			<title>Commandes utiles DIG</title>
			<link>http://webologix.loc/blog/10-commandes-utiles-dig</link>
			<guid isPermaLink="true">http://webologix.loc/blog/10-commandes-utiles-dig</guid>
			<description><![CDATA[<h1>Quelques commandes utiles pour vérifier les DNS d'un domaine:</h1>
<p>&nbsp;</p>
<h2>Voir le SOA, le serial, etc, d'un domaine,</h2>
<p><code>dig SOA example.com</code></p>
<p>&nbsp;</p>
<h2>Faire la même demande sur un serveur particulier:</h2>
<p><code>dig SOA example.com @ip_ou_nom_du serveur</code></p>
<p>Exemple:</p>
<p>~$ dig soa webologix.com @ks307144.kimsufi.com <br /> <br /><code>; &lt;&lt;&gt;&gt; DiG 9.16.1-Ubuntu &lt;&lt;&gt;&gt; soa webologix.com @ks307144.kimsufi.com </code><br /><code>;; global options: +cmd </code><br /><code>;; Got answer: </code><br /><code>;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 17794 </code><br /><code>;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1 </code><br /><code>;; WARNING: recursion requested but not available </code><br /> <br /><code>;; OPT PSEUDOSECTION: </code><br /><code>; EDNS: version: 0, flags:; udp: 4096 </code><br /><code>; COOKIE: e7d53fbdb3be81745ec215d2607efa7164524b5a70bad7ac (good) </code><br /><code>;; QUESTION SECTION: </code><br /><code>;webologix.com. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IN &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOA </code><br /> <br /><code>;; ANSWER SECTION: </code><br /><code>webologix.com. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3600 &nbsp;&nbsp;&nbsp;IN &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOA &nbsp;&nbsp;&nbsp;&nbsp;ks307144.kimsufi.com. thierychen.yahoo.fr. 2021041300 7200 540 604800 3600 </code><br /> <br /><code>;; AUTHORITY SECTION: </code><br /><code>webologix.com. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3600 &nbsp;&nbsp;&nbsp;IN &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NS &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ns.kimsufi.com. </code><br /><code>webologix.com. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3600 &nbsp;&nbsp;&nbsp;IN &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NS &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ks307144.kimsufi.com. </code><br /> <br /><code>;; Query time: 31 msec </code><br /><code>;; SERVER: 94.23.227.123#53(94.23.227.123) </code><br /><code>;; WHEN: mar. avril 20 17:59:45 CEST 2021 </code><br /><code>;; MSG SIZE &nbsp;rcvd: 173</code></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Voir les DNS d'un nom de domaine:</h2>
<p><code>dig NS example.com [@ip_ou_nom_du_serveur]</code></p>
<p>&nbsp;</p>
<h2>Voir le champ TXT du sous domaine ownercheck</h2>
<p><code>dig TXT ownercheck.example.com [@ip_ou_nom_du_serveur]</code></p>
<p>&nbsp;</p>
<h2>Voir le FQDN d'une IP</h2>
<p><code>dig -x ip-du-serveur +short</code></p>
<p>&nbsp;</p>
<h2>Installer un nom de domaine avec secondaire chez OVH</h2>
<h3>1/ ajouter une zone dans le bind du DNS primaire avec authorisation transfert:</h3>
<p>cat /etc/bind/named.con.local</p>
<p><code>...</code></p>
<p><code>zone "example.com" {</code><br /><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type master;</code><br /><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file "/etc/bind/pri.example.com";</code><br /><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allow-transfer {213.251.188.141;};</code><br /><code>};</code></p>
<p><code>...</code></p>
<h3>2/ Créer la zone:</h3>
<p><code>$ cat /etc/bind/pri.example.com </code><br /><code>$TTL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86400</code><br /><code>@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SOA&nbsp;&nbsp;&nbsp;&nbsp; 51.75.252.16. mtn.webologix.com. (</code><br /><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2021042000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; serial, todays date + todays serial #</code><br /><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 28800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; refresh, seconds</code><br /><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; retry, seconds</code><br /><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 604800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; expire, seconds</code><br /><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86400 )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; minimum, seconds</code><br /><code>;</code><br /><code>example.com.&nbsp;&nbsp;&nbsp; 86400 A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 51.75.252.16</code><br /><code>www&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86400 A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 51.75.252.16</code><br /><code>ftp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86400 A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 51.75.252.16</code><br /><code>mail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86400 A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 51.75.252.16</code><br /><code>test1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86400 A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 51.75.252.16</code><br /><code>test2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 86400 A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 51.75.252.16</code><br /><br /><code>example.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vps-dc57eb6c.vps.ovh.net.</code><br /><code>example.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sdns2.ovh.net.</code><br /><code>pop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10800 IN CNAME access.mail.gandi.net.</code><br /><code>webmail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10800 IN CNAME agent.mail.gandi.net.</code><br /><code>smtp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10800 IN CNAME relay.mail.gandi.net.</code><br /><code>imap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10800 IN CNAME access.mail.gandi.net.</code><br /><code>@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10800 IN MX 10 spool.mail.gandi.net.</code><br /><code>@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10800 IN MX 50 fb.mail.gandi.net.</code><br /><code>@ 10800 IN TXT "v=spf1 include:_mailcust.gandi.net ip4:51.75.252.16 ?all"</code><br /><br /><code>ownercheck&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TXT&nbsp;&nbsp;&nbsp;&nbsp; "827c1046"</code></p>
<p>&nbsp;</p>
<h3>3/ Déclarer le DNS secondaire le manager OVH du primaire</h3>
<p>Manager OVH &gt; serveur primaire &gt; DNS secondaire &gt; ajouter un domaine</p>
<p>Le manager prévient qu'il faut ajouter un champ TXT sur le sous domaine ownercheck pour valider l'opération</p>
<p>Il faut que le ownercheck soit configuré dans la zone DNS du prmaire. Attention au temps de propagation DNS, ce n'est pas immédiat.</p>]]></description>
			<category>Blog</category>
			<pubDate>Tue, 20 Apr 2021 14:00:26 +0000</pubDate>
		</item>
		<item>
			<title>Casse tête DKIM - Debian</title>
			<link>http://webologix.loc/blog/9-casse-tete-dkim-debian</link>
			<guid isPermaLink="true">http://webologix.loc/blog/9-casse-tete-dkim-debian</guid>
			<description><![CDATA[<p>Beaucoup d'administrateurs de serveurs passent des heures à reparamétrer DKIM suite à un changement de serveur ou un upgrade. Les principales raisons que j'ai détectées sont:</p>
<ol>
<li>les logs systemd ne rapportent pas les erreurs correctement</li>
<li>systemd override la conf initiale de opendkim</li>
<li>si vous êtes amené à modifier la conf DNS il faut tenir compte des temps de propagation éventuels qui peuvent aller jusqu'à 48 heures et fait que les changements ne sont pas nécessairement actifs immédiatement.</li>
</ol>
<h1>Configuration DKIM sous DEBIAN-BUSTER/POSTFIX/BIND</h1>
<p>Si vous avez un parefeu il risque de gêner la communication par socket. J'ai donc choisi la méthode "local"</p>
<p>Voici ma conf:</p>
<p><code>&gt; nocomment.sh /etc/opendkim.conf</code><br /><code>Syslog yes</code><br /><code>UMask 0002</code><br /><code>Domain webologix.com</code><br /><code>KeyFile /etc/opendkim/private.key</code><br /><code>Selector dkim</code><br /><code>Canonicalization simple</code><br /><code>Mode sv</code><br /><code> &gt; nocomment.sh /etc/default/opendkim </code><br /><code>RUNDIR=/var/spool/postfix/var/run/opendkim</code><br /><code>SOCKET=local:$RUNDIR/$NAME.sock"</code><br /><code>USER=opendkim</code><br /><code>GROUP=opendkim</code><br /><code>PIDFILE=$RUNDIR/$NAME.pid</code><br /><code>EXTRAAFTER=</code><br /><code> &gt; grep dkim /etc/bind/pri.webologix.com</code><br /><code>dkim._domainkey IN TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5wWRerEFReOgPVfkKQEsToK76hAAWiWU0IhwTa2iKcvJPtmyNEDAkdcb/iiKYZYfNpxnt/UFVVKAZ6Zvnt0VXlg2lKSPsZT9pA2rpLI+/e5/y0kiytxXNofMmthZtlH5Tcma8L8nAKEsPd7YkfZ70SjiPHwnDYNHkT9/lnh1KdQIDAQAB;"</code><br /><code> &gt; grep milter /etc/postfix/main.cf</code><br /><code>milter_default_action = accept</code><br /><code>milter_protocol = 2</code><br /><code>smtpd_milters = local:/var/spool/postfix/var/run/opendkim/opendkim.sock</code><br /><code>non_smtpd_milters = local:/var/spool/postfix/var/run/opendkim/opendkim.sock</code><br /><code>milter_content_timeout = 300s</code></p>
<p>Vérifiez bien que :</p>
<ol>
<li>le selector est le même dans /etc/opendkim.conf et /etc/bind/zone_dns_de_votre domaine</li>
<li>le socket déclaré dans /etc/default/opendkim est le même que smpt_milters de /etc/postfix/main.cf</li>
<li>la clé publique doit être copiée sur une seule ligne sans espaces dans votre /etc/bind/zone_dns_de_votre domaine</li>
</ol>
<p>postionnez correctement les droits d'accès du RUNDIR déclaré dans opendkim:</p>
<p><code>&gt; ll /var/spool/postfix/var/run/opendkim/ </code><br /><code>total 4 </code><br /><code>-rw-rw---- 1 postfix root 5 avril 13 12:46 opendkim.pid </code><br /><code>srwxrwxr-x 1 postfix root 0 avril 13 12:46 opendkim.sock</code></p>
<p>&nbsp;</p>
<p>ATTENTION : systemd repositionne les droits d'accès des sockets:</p>
<p><code>&gt; ll /var/spool/postfix/var/run/opendkim/</code><br /><code>total 4</code><br /><code>-rw-rw---- 1 postfix root 5 avril 13 12:46 opendkim.pid</code><br /><code>srwxrwxr-x 1 postfix root 0 avril 13 12:46 opendkim.sock</code><br /><code> &gt; systemctl restart opendkim</code><br /><code> &gt; ll /var/spool/postfix/var/run/opendkim/</code><br /><code>total 4</code><br /><code>-rw-rw---- 1 root root 5 avril 13 12:54 opendkim.pid</code><br /><code>srwxrwxr-x 1 root root 0 avril 13 12:54 opendkim.sock</code></p>
<p>&nbsp;</p>
<h2>Test</h2>
<p>Le meilleur test que j'ai trouvé est basé sur l'envoi d'un mail (certaines plateformes valideront votre enregistrement DKIM d'après les clés publiées sur votre DNS mais ce n'est as suffisant pour garantir la signature):</p>
<p><a href="https://dkimvalidator.com">https://dkimvalidator.com</a></p>
<p>Une commande pour vérifier la présence de votre clé publique sur votre serveur DNS:</p>
<p><code>&gt; dig TXT dkim._domainkey.example.com. @votre.serveur.DNS.primaire doit donner quelquechose de la forme:</code></p>
<p><code>~$ dig TXT dkim._domainkey.webologix.com. @ks307144.kimsufi.com </code><br /> <br /><code>; &lt;&lt;&gt;&gt; DiG 9.16.1-Ubuntu &lt;&lt;&gt;&gt; TXT dkim._domainkey.webologix.com. @ks307144.kimsufi.com </code><br /><code>;; global options: +cmd </code><br /><code>;; Got answer: </code><br /><code>;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 60025 </code><br /><code>;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1 </code><br /><code>;; WARNING: recursion requested but not available </code><br /> <br /><code>;; OPT PSEUDOSECTION: </code><br /><code>; EDNS: version: 0, flags:; udp: 4096 </code><br /><code>; COOKIE: b23c01821a0a982ba69c1faa6075a186921b9a37c2ccdf84 (good) </code><br /><code>;; QUESTION SECTION: </code><br /><code>;dkim._domainkey.webologix.com. IN &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TXT </code><br /> <br /><code>;; ANSWER SECTION: </code><br /><code>dkim._domainkey.webologix.com. 3600 IN &nbsp;TXT &nbsp;&nbsp;&nbsp;&nbsp;"k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5wWRerEFReOgPVfkKQEsToK76hAAWiWU0IhwTa2iKcvJPtmyNEDAkdcb/ii</code><br /><code>KYZYfNpxnt/UFVVKAZ6Zvnt0VXlg2lKSPsZT9pA2rpLI+/e5/y0kiytxXNofMmthZtlH5Tcma8L8nAKEsPd7YkfZ70SjiPHwnDYNHkT9/lnh1KdQIDAQAB;" </code><br /> <br /><code>;; AUTHORITY SECTION: </code><br /><code>webologix.com. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3600 &nbsp;&nbsp;&nbsp;IN &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NS &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ns.kimsufi.com. </code><br /><code>webologix.com. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3600 &nbsp;&nbsp;&nbsp;IN &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NS &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ks307144.kimsufi.com. </code><br /> <br /><code>;; Query time: 32 msec </code><br /><code>;; SERVER: 94.23.227.123#53(94.23.227.123) </code><br /><code>;; WHEN: mar. avril 13 15:49:58 CEST 2021 </code><br /><code>;; MSG SIZE &nbsp;rcvd: 373</code></p>]]></description>
			<category>Blog</category>
			<pubDate>Tue, 13 Apr 2021 09:06:27 +0000</pubDate>
		</item>
		<item>
			<title>Gestion certificats SSL Letsencrypt</title>
			<link>http://webologix.loc/blog/7-gestion-certificats-ssl-letsencrypt</link>
			<guid isPermaLink="true">http://webologix.loc/blog/7-gestion-certificats-ssl-letsencrypt</guid>
			<description><![CDATA[<p>Letsencrypt fournit le moyen d'installer ses propres certificats SSL renouvelables automatiquement tous les 3 mois</p>
<p>Ceci est un récaptiulatif que j'utilise pour la gestion des certicats</p>
<h2>Installation</h2>
<p><code>apt install python-certbot-apache</code></p>
<h2>Création certificats pour domaines</h2>
<p><code>certbot --apache</code></p>
<h2>supprimer un certificat</h2>
<p><code>certbot delete</code></p>
<h2>Renouvellement auto</h2>
<p>server/Debian 9: Il ya un script cron /etc/cron.d/certbot mais n’est pas utilisé sous systemd</p>
<p><code>sudo crontab -e</code></p>
<p>ajouter une ligne crontab pour lancer le test tous les jours à 7h et 19h.</p>
<p>0 7,19 * * * certbot -q renew</p>
<h2>test renouvellement</h2>
<p><code>certbot renew --dry-run</code></p>
<h2>vérifier le contenu d’un certificat</h2>
<p><code>openssl x509 -text &lt; /etc/letsencrypt/live/domain.tld/cert.pem</code></p>
<h2>voir les domaines inclus</h2>
<p><code>openssl x509 -text &lt; /etc/letsencrypt/live/domain.org/cert.pem|grep DNS</code></p>
<h2>voir limite validité</h2>
<p><code>openssl x509 -text &lt; /etc/letsencrypt/live/domain.xyz/cert.pem |grep After</code></p>
<p><code></code><code></code></p>
<h2>test validité cert vu par thunderbird</h2>
<p><code>openssl s_client -connect server.kimsufi.com:143 -starttls imap -showcerts 2&gt;/dev/null | openssl x509 -noout -subject -issuer -dates</code></p>
<h2>test connection imap depuis client</h2>
<p><code>openssl s_client -connect mail.webologix.com:imaps</code></p>
<p>&nbsp;</p>
<h2>test validité certificat depuis le serveur</h2>
<p><code>sudo openssl x509 -in /etc/letsencrypt/live/domain.tld/cert.pem -inform PEM -noout -enddate</code></p>
<h2>Ajout d’un domain à un certificat existant:</h2>
<p><code>certbot –apache –expand -d original.domain.tld<code> -d new1.tld</code><code> -d new2.tld ...</code></code></p>
<p>Pour renommer le certificat avec le premier domaine listé, ajouter <code>--force-renewal</code></p>
<p>&nbsp;</p>]]></description>
			<category>Blog</category>
			<pubDate>Tue, 22 Sep 2020 14:52:17 +0000</pubDate>
		</item>
		<item>
			<title>PHP5.6-fpm avec extension GD</title>
			<link>http://webologix.loc/blog/5-php5-6-fpm-avec-extension-gd</link>
			<guid isPermaLink="true">http://webologix.loc/blog/5-php5-6-fpm-avec-extension-gd</guid>
			<description><![CDATA[<h1>Installer PHP5.6-fpm avec extension GD et MYSQL sur un serveur Debian 9 / ispconfig</h1>
<p>Si comme moi vous avez de vieux sites qui tournent sous Joomla 1.0 vous serez peut-être amené à installer une version de PHP compatible. Ispconfi 3.1 permet d'installer facilement plusieurs versions de PHP différentes sur un serveur Debian 9, en suivant ce tutoriel, par exemple:</p>
<div class="code"><a href="https://www.howtoforge.com/tutorial/how-to-install-php-7-on-debian/" target="_self">https://www.howtoforge.com/tutorial/how-to-install-php-7-on-debian/ </a></div>
<p>Mais si vous obtenez des messages du genre:</p>
<div class="code">GD image library not installed! <br /> ... <br /> Can't connect to DB</div>
<p>il est nécessaire d'adapter le ./configure pour intégrer GD ou MYSQL, par exemple. Dans le cas de GD il faut ajouter quelques librairies qui ne sont pas présentes par défaut sur Stretch:</p>
<div class="code">apt-get install libjpeg-dev <br /> apt-get install libfreetype6-dev</div>
<p>Si vous avez déjà fait une compilation de PHP il est alors nécessaire de la nettoyer avant de recompiler:</p>
<div class="code">make clean <br /> make distclean</div>
<p><br /> il faut ensuite configurer PHP selon vos besoins (ici avec support de MYSQL et GD):&nbsp;</p>
<div class="code">cd /usr/local/src/php5.6-build/php-5.6.33/ <br /> ./configure --prefix=/opt/php-5.6 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl=/opt/openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --with-mysql --with-gd <br /> make <br /> make install</div>
<p><br /> Trouver le socket mysql qu’on trouve dans le phpinfo&nbsp;:</p>
<div class="code">/opt/php-5.6/bin/php -r "echo phpinfo();" | grep _socket</div>
<p><br /> et le mettre dans php.ini (ex. avec /var/run/mysqld/mysqld.sock&nbsp;):</p>
<div class="code">pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock<br /> mysql.default_socket = /var/run/mysqld/mysqld.sock<br /> mysqli.default_socket = /var/run/mysqld/mysqld.sock</div>
<p><br /> Relancer php-fpm:</p>
<div class="code">systemctl restart php-5.6-fpm.service</div>
<p>Tester:</p>
<div class="code">/opt/php-5.6/bin/php -r "echo phpinfo();" | grep --with-mysql <br /> /opt/php-5.6/bin/php -r "print_r gdpinfo();"</div>]]></description>
			<category>Blog</category>
			<pubDate>Fri, 29 Nov 2019 09:34:32 +0000</pubDate>
		</item>
		<item>
			<title>Xdebug + Eclipse: fonctionnement aléatoire</title>
			<link>http://webologix.loc/blog/4-xdebug-eclipse-fonctionnement-aleatoire</link>
			<guid isPermaLink="true">http://webologix.loc/blog/4-xdebug-eclipse-fonctionnement-aleatoire</guid>
			<description><![CDATA[<p>J'ai eu pendant longtemps des problèmes pour faire fonctionner XDEBUG avec ECLIPSE en remote debugging. Celà se manifestait par exemple avec ECLIPSE qui reste sur "Launching website.com 48% ou 57%" et aucun break ne fonctionnait.</p>
<h3>Installation xdebug sur le serveur distant:</h3>
<p><code>apt-get install php-xdebug</code></p>
<p>Modifier la config /etc/php/cgi/conf.d/20-xdebug.ini (emplacement visible dans phpinfo)&nbsp;:</p>
<div><br /><code># cat /etc/php5/cgi/conf.d/20-xdebug.ini</code><br /><code>zend_extension=xdebug.so</code><br /><code>xdebug.remote_enable=1</code><br /><code>xdebug.remote_handler=dbgp</code><br /><code>xdebug.remote_mode=req</code><br /><code>xdebug.remote_port=9000</code></div>
<div>&nbsp;</div>
<h4>Changements xdebug v3.0</h4>
<div>Les paramètres deviennent, pour une install apache2 / php7.3-fpm, par exemple</div>
<div><code></code><code># cat /etc/php/7.3/fpm/conf.d/20-xdebug.ini <br />zend_extension=xdebug.so<br />xdebug.mode=debug<br />xdebug.start_with_request<br />xdebug.client_port = 9003<br />xdebug.client_host = ip.ma.chine.locale</code></div>
<h3>Paramétrage Eclipse sur la machine locale:</h3>
<p>Dans le menu Eclipse windows &gt; préférences &gt; PHP &gt; Debug &gt; Installed debugger &gt; Xdebug</p>
<p>Donner le port 9000 qu'on a défini sur le serveur distant.</p>
<p>&nbsp;</p>
<h3>Si à ce stade votre conexion marche de manière instable ou pas du tout</h3>
<ul>
<li>Vérifier vos parefeus côté client et serveur ne bloquent pas le port 9000</li>
<li>Vérifier le port mapping de votre routeur</li>
</ul>
<p>si vous vous connectez à INTERNET via un routeur type FREEBOX ou XBOX vérifiez que les connexions sur le port 9000 sont bien transmises vers votre poste client<br /> En effet, pour XDEBUG, il faut généralement ouvrir le port 9000 sur ce routeur et le faire suivre sur votre PC où tourne l'IDE. Sur un routeur VODAFONE, par exemple, cela peut ressembler à ceci:<br /> <img style="margin: 5px;" title="port_forwarding_routeur.png" src="http://webologix.loc/images/rédaction/port_mapping_vodafone.png" alt="port mapping vodafone" width="762" height="366" /></p>
<p>&nbsp;</p>
<ul>
<li>Utiilisez des adresses IP statiques</li>
</ul>
<p>Mais si votre routeur est programmé pour attribuer des IP dynamiques par DHCP, il se peut qu'un jour votre téléphone mobile se voit attribuer l'IP 192.168.155 qu'avait votre PC lorsque vous avez configuré XDEBUG.<br /> La solution est de forcer une ip statique lors la connexion de votre PC à votre routeur.<br /> Sous Debian 9, avec NETWORK MANAGER cela peut se réaliser ainsi:</p>
<p class="western">click droit sur l’icone wifi du tableau de bord</p>
<p class="western">Configurer les connexions réseau &gt; Définir une IP FIXE dans l’onglet IPV4</p>
<ul>
<li>Faire passer votre connexion sur le port Xdebug via un tunnel SSH</li>
</ul>
<p>Un autre renforcement de la connexion est d'établir une connexion SSH sur le port XDEBUG avant de lancer Xdebug Eclipse:</p>
<p><code>ssh -R 9000:localhost:9000 user<a href="mailto:root@www.joomla-development.eu">@example.com</a></code></p>
<h3>Vérifier qu'eclipse écoute sur le port de XDEBUG</h3>
<p><code>$ sudo netstat -tnlp|grep 9003</code><br /><code>tcp6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 :::9003&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :::*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 71098/java</code></p>
<h3>Vérifier le traffic sur le port xdebug</h3>
<p>Vous pouvez utiliser iptables pour vérifier que vous recevez bien quelquechose sur le port (9003 ici) où vous avez paramétré xdebug en déclenchant des logs dans syslog:</p>
<p><code>$ sudo iptables -I INPUT -p tcp --dport 9003 --syn -j LOG --log-prefix "HTTPS SYN: "</code></p>
<p>puis surveiller syslog pendant que vous lancez la page à débugger:</p>
<p><code>sudo tail -f /var/log/syslog</code></p>
<p><code>Mar 3 12:45:10 kmcs kernel: [14804.033727] HTTPS SYN: IN=enp3s0 OUT= MAC=b0:25:aa:35:14:85:60:12:3c:cc:82:09:08:00 SRC=s.s.s.s DST=d.d.d.d LEN=60 TOS=0x00 PREC=0x00 TTL=55 ID=38315 DF PROTO=TCP SPT=54306 DPT=9003 WINDOW=29200 RES=0x00 SYN URGP=0</code></p>
<h3>Supprimer un utilisateur du port:&nbsp;fuser -k 9000/tcp</h3>
<h3>Conflit avec les alias</h3>
<p>Si vous avez un alias défini sur votre domaine qui accède à un autre document root, xdebug ou Eclipse (?) ajoute automatiquement des path mapping à sa définition lorsque vous accédez à cet alias et ça ne break plus.</p>
<p>Exemple avec un Alias /phpmyadmin /usr/share/phpmyadmin. Xdebug ne break plus dès que vous accédez à votre-domaine.com/phpmyadmin. Faut passer par le-nom-du-server/phpmyadmin.</p>
<hr />
<h1>&nbsp;Autre methode avec plugin firefox</h1>
<p>D'après <a href="https://jonathansblog.co.uk/remote-debugging-php-in-eclipse-with-xdebug">https://jonathansblog.co.uk/remote-debugging-php-in-eclipse-with-xdebug</a></p>
<p>Télécharger le plugin FF <a href="https://addons.mozilla.org/en-US/firefox/addon/xdebug-helper-for-firefox/">https://addons.mozilla.org/en-US/firefox/addon/xdebug-helper-for-firefox/</a></p>
<p>Dans Eclipse &gt; paramètres &gt; php &gt; debug &gt; debugger &gt; choisir xdebug &gt; configure &gt; chosir "Accept remote session" = any (peu importe le port)</p>
<p>Dans FF cliquer sur licone Xdebug dans la barre d'adresse &gt; Debug ou Disable pour arrêter</p>
<p>Rafraichir la page.</p>
<p>&nbsp;</p>]]></description>
			<category>Blog</category>
			<pubDate>Fri, 29 Nov 2019 09:32:11 +0000</pubDate>
		</item>
	</channel>
</rss>
