philpep's blog - tag postfix philpep's blog - tag postfix rss http://blog.philpep.org fr Mon, 04 Jan 2010 23:10:53 GMT Pblog Ssmtp pour remplacer sendmail http://blog.philpep.org/post/Ssmtp-pour-remplacer-sendmail http://blog.philpep.org/post/Ssmtp-pour-remplacer-sendmail Mon, 04 Jan 2010 23:10:53 GMT <p>Sur mon serveur FreeBSD j'ai 4 <a href="http://en.wikipedia.org/wiki/FreeBSD_jail">jails</a> et par défaut le système envoie régulièrement des <code>security run output</code> à <code>root@localhost</code> pour l'informer de ce qu'il se passe sur le système (nouveau fichiers etc). Tout ça c'est très bien sauf que un hote et 4 jails ça fait 5 compte mail à visiter, c'est pas trop convi et en plus on a pas envie de faire tourner sendmail juste pour ça.</p> <p>J'ai donc décidé d'utiliser un MTA très simple appelé (devinez comment) : <code>Simple smtp agent</code>. Chaque mail envoyé depuis la machine (en appelant sendmail) partira vers un serveur smtp de mon choix, ainsi je récupère tous les mails sur mon compte mail usuel.</p> <div class="codehilite"><pre># cd /usr/ports/mail/ssmtp # make install Information for ssmtp-2.62.3: Install notice: sSMTP has been installed successfully. To replace sendmail with ssmtp type &quot;make replace&quot; # make replace </pre></div> <p>Ensuite j'ai crée mon <code>/usr/local/etc/ssmtp/ssmtp.conf</code> : </p> <div class="codehilite"><pre><span class="c1"># Serveur de mail à contacter pour l&#39;envoi + le port</span> <span class="c1"># par defaut c&#39;est le port 25</span> <span class="n">mailhub</span><span class="o">=</span><span class="n">mail</span><span class="o">.</span><span class="n">philpep</span><span class="o">.</span><span class="n">org:578</span> <span class="c1"># Domaine d&#39;où semble venir le mail</span> <span class="n">rewriteDomain</span><span class="o">=</span><span class="n">philpep</span><span class="o">.</span><span class="n">org</span> <span class="c1"># Domaine à donner pendant le HELO</span> <span class="c1"># À accorder avec le reverse DNS de votre machine</span> <span class="c1"># vu depuis le serveur de mail.</span> <span class="n">hostname</span><span class="o">=</span><span class="n">shen</span><span class="o">.</span><span class="n">philpep</span><span class="o">.</span><span class="n">org</span> </pre></div> <p>Arrangez vous pour que le serveur de mail accepte de vous relayer, moi c'est le cas parce que je suis en local et mon postfix relaie ce qui vient du réseau local. Mais si ce n'est pas le cas (genre vous utilisez le serveur mail de votre fournisseur de mail), on peut configurer l'authentification SMTP, SSL/TLS et tout le reste.</p> <p>Ensuite désactivez sendmail dans <code>/etc/rc.conf</code> puisqu'il ne sert plus :</p> <div class="codehilite"><pre><span class="n">sendmail_submit_enable</span><span class="o">=</span><span class="s">&quot;NO&quot;</span> <span class="n">sendmail_outbound_enable</span><span class="o">=</span><span class="s">&quot;NO&quot;</span> <span class="n">sendmail_msp_queue_enable</span><span class="o">=</span><span class="s">&quot;NO&quot;</span> </pre></div> <p>Pour tester l'envoi :</p> <div class="codehilite"><pre><span class="nv">$</span> <span class="nv">dmesg</span> <span class="o">|</span> <span class="n">mail</span> <span class="o">-</span><span class="n">s</span> <span class="s">&quot;works ?&quot;</span> <span class="n">lapin</span><span class="nv">@barreenfer</span><span class="o">.</span><span class="n">com</span> <span class="nv">$</span> <span class="nv">if</span> <span class="p">[[</span> <span class="vg">$?</span> <span class="o">-</span><span class="ow">ne</span> <span class="mi">0</span> <span class="p">]];</span> <span class="k">then</span> <span class="n">man</span> <span class="n">ssmtp</span><span class="p">;</span> <span class="n">fi</span> </pre></div> <p>EDIT 5/01/10 17:15 </p> <ul> <li>client smtp -&gt; MTA</li> </ul> Spamd http://blog.philpep.org/post/Spamd http://blog.philpep.org/post/Spamd Sat, 31 Oct 2009 13:50:31 GMT <p>Spamd ou comment bloquer les spams sans discriminer à priori des adresses IPs et sans remettre en cause la neutralité du réseau.</p> <p>J'ai écrit une <a href="http://wiki.bender-labs.org/bsd/spamd">page sur spamd</a> sur le principe de fonctionnement et sa mise en place sur OpenBSD.</p> <p>Ce tout nouveau wiki cogéré par <a href="http://www.philpep.org">philpep.org</a> et <a href="http://www.bender-labs.org">bender-labs.org</a> est plus adapté que mon blog pour ce genre de choses car vous pouvez aussi apporter votre contribution pour faire part de votre expérience (ne serait-ce que pour corriger d'éventuelles fautes d'orthographes et de grammaires :-) ).</p> Comment passer outre le blacklist de son serveur SMTP http://blog.philpep.org/post/Comment-passer-outre-le-blacklist-de-son-serveur-SMTP http://blog.philpep.org/post/Comment-passer-outre-le-blacklist-de-son-serveur-SMTP Fri, 11 Sep 2009 16:53:24 GMT <p>Souvent, la mise en place d'un serveur sur votre propre ligne ADSL pose de nombreux petits problèmes.</p> <p>Un d'entre eux est certainement le blacklist systématique des serveurs de mail (SMTP) qui ont une IP d'un particulier. Quelques uns des plus gros opérateurs de mail sur Internet refusent tout simplement toute connexion SMTP provenant d'une IP d'un abonné ADSL de free, orange, neuf etc. Mais ce blacklist peut être aussi post connexion en déclarant votre mail comme étant du SPAM.</p> <p>Mais pourquoi diable font il cela ? La réponse est simple, pour éviter le spam justement. La plupart des virus que nos chers amis utilisateurs de <a href="http://fr.wikipedia.org/wiki/Machine_zombie">Windows</a> ont sur leurs PC servent à envoyer du <a href="http://fr.wikipedia.org/wiki/Botnet_Srizbi">spam</a> ou bien à lancer des attaque de type <a href="http://fr.wikipedia.org/wiki/Ddos">DDos</a>.</p> <p>Donc, devant le manque de sécurité apparent d'un système d'exploitation, nous voici tous dans le même bateau. Impossible d'envoyer un mail vers aol.com par exemple. Mise de votre mail dans le dossier SPAM par yahoo.com, j'en passe et des meilleures.</p> <p>Pour vous donner une idée de la manière dont on traite quelqu'un qui s'auto-héberge.</p> <div class="codehilite"><pre><span class="nv">$ </span>host -t mx aol.com aol.com MX 15 mailin-01.mx.aol.com aol.com MX 15 mailin-02.mx.aol.com aol.com MX 15 mailin-03.mx.aol.com aol.com MX 15 mailin-04.mx.aol.com <span class="nv">$ </span>telnet mailin-01.mx.aol.com 25 Trying 64.12.222.197... Connected to mailin-01.mx.aol.com. Escape character is <span class="s1">&#39;^]&#39;</span>. 554- <span class="o">(</span>RTR:BB<span class="o">)</span> http://postmaster.info.aol.com/errors/554rtrbb.html 554 Connecting IP: 82.234.40.34 Connection closed by foreign host. <span class="nv">$ </span>wtf </pre></div> <p>Ils disent qu'il n'acceptent pas les connexions de votre IP parce qu'il est difficile de savoir qui est responsable du mail qui provient de cette IP.</p> <p>C'est comme si on interdisait aux gens de discuter dans le train parce qu'il y a trop de monde pour entendre ce que vous avez à dire et que vous risquez de dire des choses irresponsables comme critiquer le PDG et les amis de la SNCF, par mesure de précaution seuls les contrôleurs sont habilités à s'exprimer. (Si ça ne vous parait pas évident, ici les contrôleurs c'est gmail.com, yahoo.com, hotmail.com, la SNCF c'est aol.com et celui qui prends le train c'est 82.234.40.34).</p> <p>Attention, ici je ne parle pas de blacklist de votre domaine (philpep.org en l'occurence) mais de l'IP d'où provient la connexion (82.234.40.34).</p> <p>Donc on peut passer outre ce filtrage en se faisant relayer par un SMTP réputé "propre", celui de votre FAI par exemple.</p> <p>C'est ce que nous allons faire avec postfix, il est possible de relayer les mails en destination de aol.com, yahoo.com par votre FAI, mais de s'adresser directement aux autres SMTP.</p> <p>Here is the conf :</p> <div class="codehilite"><pre><span class="n">transport_maps</span> <span class="o">=</span> <span class="n">hash:</span><span class="sr">/usr/</span><span class="nb">local</span><span class="sr">/etc/</span><span class="n">postfix</span><span class="o">/</span><span class="n">transport</span> </pre></div> <p>Ici j'utilise la syntaxe BSD (/usr/local/etc/postfix/) sous linux c'est souvent (/etc/postfix)</p> <p>Donc nous devons créer ce fichier /usr/local/etc/postfix/transport</p> <div class="codehilite"><pre><span class="n">yahoo</span><span class="o">.</span><span class="n">com</span> <span class="n">relay:</span><span class="p">[</span><span class="n">smtp</span><span class="o">.</span><span class="n">free</span><span class="o">.</span><span class="n">fr</span><span class="p">]</span> <span class="n">yahoo</span><span class="o">.</span><span class="n">fr</span> <span class="n">relay:</span><span class="p">[</span><span class="n">smtp</span><span class="o">.</span><span class="n">free</span><span class="o">.</span><span class="n">fr</span><span class="p">]</span> <span class="n">aol</span><span class="o">.</span><span class="n">com</span> <span class="n">relay:</span><span class="p">[</span><span class="n">smtp</span><span class="o">.</span><span class="n">free</span><span class="o">.</span><span class="n">fr</span><span class="p">]</span> </pre></div> <p>Ici quand mon serveur reçoit un mail en destination de aol ou yahoo, il l'envoie à smtp.free.fr (le SMTP de mon FAI). Celui ci étant reconnu comme fiable par nos deux gros opérateurs passe sans problème.</p> <p>Pour finir, générez un fichier DB pour postfix avec ce fichier et relancez postfix (BSD syntaxe ici aussi)</p> <div class="codehilite"><pre><span class="nv">$ </span>postmap /usr/local/etc/postfix/transport <span class="nv">$ </span>/usr/local/etc/rc.d/postfix restart </pre></div> <p>Si vous connaissez des problèmes avec d'autres opérateurs, n'hésitez pas en m'en faire part en commentaire. Ce serait bien d'avoir une liste de domaines qui utilisent un tel filtrage.</p>