{"id":237,"date":"2014-11-15T19:17:39","date_gmt":"2014-11-15T18:17:39","guid":{"rendered":"http:\/\/mmed.roulleau.net\/?p=237"},"modified":"2014-11-15T19:17:39","modified_gmt":"2014-11-15T18:17:39","slug":"lutte-anti-spam-et-zimbra","status":"publish","type":"post","link":"https:\/\/mmed.roulleau.net\/?p=237","title":{"rendered":"Lutte anti spam et Zimbra"},"content":{"rendered":"<pre>said: 550\nSC-001 (BAY004-MC4F10) Unfortunately, messages from weren't\nsent. Please contact your Internet service provider since part of their\nnetwork is on our block list<\/pre>\n<p>Traduction : Votre serveur fait n&rsquo;importe quoi, vous \u00eates bannis !<br \/>\nVoici un message que j&rsquo;ai re\u00e7u apr\u00e8s avoir tent\u00e9 d&rsquo;envoyer un mail sur un serveur Microsoft&#8230; Et vu que vous \u00eates ici, peut-\u00eatre que vous aussi ? C&rsquo;est f\u00e2cheux, car avoir un serveur mail personnel c&rsquo;est bien, mais si il ne peut plus envoyer de mail \u00e0 une partie de l&rsquo;internet, \u00e7a ne sert plus \u00e0 grand chose&#8230;<br \/>\nPas de panique, \u00e7a se corrige. Mais retroussez vos manches, car il y a du travail.<\/p>\n<h2>1 &#8211; Corriger le probl\u00e8me<\/h2>\n<p>Le premier point est de d\u00e9couvrir ce qui s&rsquo;est pass\u00e9.<br \/>\nDans mon cas, j&rsquo;ai d\u00e9couvert qu&rsquo;un spammeur avait vol\u00e9 le login \/ mot de passe d&rsquo;un membre de ma famille et se servait de mon serveur SMTP comme d&rsquo;un relais de spam. Un petit tour dans les logs de zimbra dans \/var\/log devrait vous en dire plus.<\/p>\n<p>Une fois le probl\u00e8me identifi\u00e9, r\u00e9glez le en coupant l&rsquo;acc\u00e8s au fautif (changez le mot de passe, etc.).<\/p>\n<p>Ensuite, il faut demander \u00e0 Microsoft d&rsquo;\u00eatre gentil et de vous enlever de leur liste noire. C&rsquo;est <a title=\"Formulaire Microsoft de &quot;d\u00e9banissement&quot;\" href=\"https:\/\/support.msn.com\/eform.aspx?productKey=edfsmsbl2&amp;ct=eformts\">par ici<\/a>. Si vous avez de la chance, d&rsquo;ici quelques heures vous pourrez de nouveau envoyer des e-mails. Sinon, vous recevrez un e-mail vous expliquant que non, vous restez bannis. Pr\u00e9parez alors le violon, les mouchoirs, prenez votre plus belle plume et r\u00e9digez un joli mail expliquant \u00e0 quel point vous \u00eates d\u00e9sol\u00e9, ainsi que les actions que vous avez entreprises pour que cela ne se reproduise plus. Pour ma part, ayant \u00e9t\u00e9 banni deux fois pour des probl\u00e8mes similaires, c&rsquo;est ce que j&rsquo;ai du faire avant de voir mon acc\u00e8s r\u00e9-autoris\u00e9.<\/p>\n<p>Maintenant, pr\u00e9parez-vous un th\u00e9, planifiez un peu de temps sans \u00eatre d\u00e9rang\u00e9, et suivez ces quelques \u00e9tapes pour vous assurer de ne plus rencontrer ce genre de probl\u00e8mes. En effet, c&rsquo;est malheureux, mais comme vous ne pouvez maitriser le comportement de vos utilisateurs (d&rsquo;autant plus que leur compte peut se faire usurper), il va falloir prendre des pr\u00e9cautions annexes.<\/p>\n<h2>2 &#8211; Pr\u00e9vention : Activer une adresse catch-all<\/h2>\n<p>Une adresse catch-all, c&rsquo;est une adresse qui accepte tous les mails qui ne devraient pas arriver (par exemple parce que le destinataire n&rsquo;existe pas). Ainsi, si quelqu&rsquo;un \u00e9crit \u00e0 \u00ab\u00a0fausseadresse@votredomaine.extension\u00a0\u00bb, l&rsquo;adresse catch-all le recevra.<\/p>\n<p>Pourquoi faire \u00e7a ? Pour que les e-mails de type bounce ne soient plus envoy\u00e9s. Un mail de type bounce, c&rsquo;est un e-mail de non-d\u00e9livrance \u00e9mis par des serveurs de mails. Dans notre cas, cela veut dire que si quelqu&rsquo;un tape une mauvaise adresse en voulant vous joindre, il ne sera pas pr\u00e9venu&#8230; C&rsquo;est dommage, mais parfois n\u00e9cessaire, parce que c&rsquo;est une m\u00e9thode parfois utilis\u00e9 pour envoyer des spams \u00e0 travers un innocent relais. Je m&rsquo;explique : on appelle \u00e7\u00e0 les <a href=\"http:\/\/www.dontbouncespam.org\/\">\u00ab\u00a0backscatter bounces\u00a0\u00bb<\/a>. On se fait passer pour un exp\u00e9diteur qu&rsquo;on veut cibler, on vous envoie un mail, et r\u00e9sultat c&rsquo;est VOTRE serveur qui se retrouve \u00e0 envoyer un e-mail au faux \u00e9metteur qui lui n&rsquo;a rien demand\u00e9. Et comme parfois le contenu ou les PJ sont renvoy\u00e9s dans les bounces, vous avez alors servi de vilain relais de spamm&#8230;<\/p>\n<p>Allez hop :<\/p>\n<pre>su - zimbra\nzmprov modifyAccount user@domain.com zimbraMailCatchAllAddress @domain.com\n<\/pre>\n<p>&nbsp;<\/p>\n<h2>3 &#8211; Pr\u00e9vention : Activer policyd<\/h2>\n<p>Un spammeur, pour avoir quelques touches, doit envoyer beaucoup, beaucoup d&rsquo;e-mail. C&rsquo;est m\u00eame souvent \u00e0 \u00e7a qu&rsquo;on les reconnait. Donc, si vous parvenez \u00e0 r\u00e9duire l&rsquo;activit\u00e9 d&rsquo;un spammeur qui aurait pris le contr\u00f4le d&rsquo;un compte, vous limitez grandement les d\u00e9g\u00e2ts, ce qui vous donne plus de temps pour agir avant d&rsquo;\u00eatre banni. Pour \u00e7a, on peut utiliser policyd, un d\u00e9mon pour postfix int\u00e9gr\u00e9 \u00e0 Zimbra (mais non actif par d\u00e9faut) qui nous permet d&rsquo;appliquer des politiques de limitation. En avant :<\/p>\n<pre>zmprov ms `zmhostname` +zimbraServiceInstalled cbpolicyd +zimbraServiceEnabled cbpolicyd\nzmprov mcf +zimbraMtaRestriction \"check_policy_service inet:127.0.0.1:10031\"<\/pre>\n<p>Ensuite pour activer l&rsquo;interface web qui rend les choses beaucoup plus simples, il faut lui dire d&rsquo;utiliser la base de donn\u00e9es de Zimbra, pour cela, \u00e9ditez le fichier\u00a0\/opt\/zimbra\/cbpolicyd\/share\/webui\/includes\/config.php et mettez en commentaire \u201c#\u201d chaque ligne commen\u00e7ant par $DB_DSN. L&rsquo;objectif est de mettre \u00e0 la place:<\/p>\n<pre>$DB_DSN=\"sqlite:\/opt\/zimbra\/data\/cbpolicyd\/db\/cbpolicyd.sqlitedb\";<\/pre>\n<p>Red\u00e9marrez Zimbra, et rendez-vous \u00e0 l&rsquo;addresse <em>http:\/\/votreserveur:7780\/webui\/index.php<\/em> (je ne vous fais pas l&rsquo;affront de vous dire de faire attention avec cette adresse, hein ? Par exemple s&rsquo;assurer qu&rsquo;elle ne peut pas \u00eatre jointe depuis l&rsquo;ext\u00e9rieur ? Et un fichier .htaccess ? Hein, vous \u00eates grand, non ?)<em><br \/>\n<\/em><\/p>\n<p>Ensuite, comme j&rsquo;ai la flemme, je <a href=\"http:\/\/vavai.net\/2014\/02\/zimbra-tips-rate-limit-sending-message-with-policyd\/\">recopie un article<\/a> :<\/p>\n<blockquote>\n<ol>\n<li>\u00a0\u00a0\u00a0 Select Quotas | Configure menu<\/li>\n<li>\u00a0\u00a0\u00a0 In the Action options, select Add and enter the details as below :<br \/>\nName : Delivery Per User<br \/>\nTrack : Select Sender@domain. This means that policy will be applies to each user on the domain<br \/>\nPeriod : The length of time that given in seconds. Ideally is in counts per hour or 3600 seconds<br \/>\nLink to policy : Select Default<br \/>\nVerdict : The rules that will be apply if it meets the period, such as defer (hold the messages until next time interval)<br \/>\nData : Information that is given if it meets the rule, for example the information is a \u201cMaximum 2 email delivery per minute\u201d or \u201cMaximum 300 emails delivery\u00a0 per hour\u201d<br \/>\nStop processing here : choose Yes, means that rule will not processing another rule<br \/>\nComment : can be filled with anything you like<\/li>\n<li>\u00a0\u00a0\u00a0 Click Submit<br \/>\nby default, the newly created rule set in the disabled state. Set it enable by choose PolicyD that you just created, and then on the Action option, select change<\/li>\n<li>\u00a0\u00a0\u00a0 Change the parameter Disable=\u2019Yes\u2019 to Disable=\u2019No\u2019 on the Disabled option and click submit<\/li>\n<li>\u00a0\u00a0\u00a0 Select the newly created policy again\u00a0 and then select Limits on the Action option<\/li>\n<li>\u00a0\u00a0\u00a0 Select Add, then select the Message Count and fill in with the number of maximum emails\u00a0 on Counter Limit<\/li>\n<li>\u00a0\u00a0\u00a0 Click Back to Limits and choose the rule that you have just created. Select Change In the Action option<\/li>\n<li>\u00a0\u00a0\u00a0 Change the parameter \u2018Yes\u2019 to \u2018No\u2019 on the Disabled option and click submit<\/li>\n<\/ol>\n<\/blockquote>\n<p>Je suppose que 100 e-mails par heure, \u00e7a laisse de la marge. A vous de voir selon vos usages.<\/p>\n<h2>4 &#8211; Surveillance : les logs<\/h2>\n<p>Vous l&rsquo;avez vu en 1 lorsque vous avez cherch\u00e9 le coupable : les logs ont toutes les informations n\u00e9cessaires pour d\u00e9tecter les mauvais usages. Par exemple :<\/p>\n<pre><span id=\"OBJ_PREFIX_DWT1207_com_zimbra_date\" class=\"Object\">Oct 30<\/span> 08:49:20 mail amavis[18001]: (18001-16) FWD from &lt;<strong><span id=\"OBJ_PREFIX_DWT1208_com_zimbra_email\" class=\"Object\">addresse@yahoo.com<\/span><\/strong>&gt; -&gt; &lt;<span id=\"OBJ_PREFIX_DWT1209_com_zimbra_email\" class=\"Object\"><span id=\"OBJ_PREFIX_DWT1208_com_zimbra_email\" class=\"Object\">addresse<\/span>@alice.it<\/span>&gt;,&lt;<span id=\"OBJ_PREFIX_DWT1210_com_zimbra_email\" class=\"Object\"><span id=\"OBJ_PREFIX_DWT1208_com_zimbra_email\" class=\"Object\">addresse<\/span>@alice.it<\/span>&gt;,&lt;<span id=\"OBJ_PREFIX_DWT1211_com_zimbra_email\" class=\"Object\"><span id=\"OBJ_PREFIX_DWT1208_com_zimbra_email\" class=\"Object\">addresse<\/span>@gmail.com<\/span>&gt;,&lt;<span id=\"OBJ_PREFIX_DWT1212_com_zimbra_email\" class=\"Object\"><span id=\"OBJ_PREFIX_DWT1208_com_zimbra_email\" class=\"Object\">addresse<\/span>@hotmail.com<\/span>&gt;,&lt;<span id=\"OBJ_PREFIX_DWT1213_com_zimbra_email\" class=\"Object\"><span id=\"OBJ_PREFIX_DWT1208_com_zimbra_email\" class=\"Object\">addresse<\/span>@hotmail.it<\/span>&gt;,&lt;<span id=\"OBJ_PREFIX_DWT1214_com_zimbra_email\" class=\"Object\"><span id=\"OBJ_PREFIX_DWT1208_com_zimbra_email\" class=\"Object\">addresse<\/span>@hotmail.it<\/span>&gt;,&lt;<span id=\"OBJ_PREFIX_DWT1215_com_zimbra_email\" class=\"Object\"><span id=\"OBJ_PREFIX_DWT1208_com_zimbra_email\" class=\"Object\">addresse<\/span>@libero.it<\/span>&gt;,&lt;<span id=\"OBJ_PREFIX_DWT1216_com_zimbra_email\" class=\"Object\"><span id=\"OBJ_PREFIX_DWT1208_com_zimbra_email\" class=\"Object\">addresse<\/span>@msn.com<\/span>&gt;,&lt;<span id=\"OBJ_PREFIX_DWT1217_com_zimbra_email\" class=\"Object\"><span id=\"OBJ_PREFIX_DWT1208_com_zimbra_email\" class=\"Object\">addresse<\/span>@yahoo.com<\/span>&gt;,&lt;<span id=\"OBJ_PREFIX_DWT1218_com_zimbra_email\" class=\"Object\"><span id=\"OBJ_PREFIX_DWT1208_com_zimbra_email\" class=\"Object\">addresse<\/span>@yahoo.com<\/span>&gt;,&lt;<span id=\"OBJ_PREFIX_DWT1219_com_zimbra_email\" class=\"Object\"><span id=\"OBJ_PREFIX_DWT1208_com_zimbra_email\" class=\"Object\">addresse<\/span>@yahoo.fr<\/span>&gt;,BODY=7BIT 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as E5D0D1A0164<\/pre>\n<p>En gras, \u00e0 moins que vous ne soyez Yahoo (!), on voit bien que quelqu&rsquo;un \u00e0 envoy\u00e9 un e-mail avec votre serveur en se faisant passer pour quelqu&rsquo;un d&rsquo;autre. J&rsquo;ai fait un\u00a0<a href=\"http:\/\/mmed.roulleau.net\/wp-uploads\/2014\/11\/zimbralogmonitoring.py\">petit script python<\/a> pour d\u00e9tecter ce genre de fraude. Renseigner les param\u00e8tres en d\u00e9but de script pour d\u00e9terminer les adresses l\u00e9gitimes qui vous appartiennent (y compris les adresses sp\u00e9ciales de votre domaine, comme celle recueillant les spams par exemple), ainsi que l&rsquo;adresse pour recevoir le rapport si quelque chose est d\u00e9tect\u00e9, configurez ensuite une t\u00e2che cron pour une ex\u00e9cution fr\u00e9quente (genre toutes les 10 minutes), et enfin soupirez de soulagement. Ce n&rsquo;est pas parfait bien s\u00fbr, car les spammeurs peuvent utiliser vos adresses en tant qu&rsquo;adresses \u00e9mettrices. Cependant c&rsquo;est plut\u00f4t rare et cela devrait couvrir de nombreux cas.<\/p>\n<p>F\u00e9licitations, vous avez fait quelques pas pour vous pr\u00e9munir d&rsquo;un prochain bannissement !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>said: 550 SC-001 (BAY004-MC4F10) Unfortunately, messages from weren&rsquo;t sent. Please contact your Internet service provider since part of their network is on our block list Traduction : Votre serveur fait n&rsquo;importe quoi, vous \u00eates bannis ! Voici un message que j&rsquo;ai re\u00e7u apr\u00e8s avoir tent\u00e9 d&rsquo;envoyer un mail sur un serveur Microsoft&#8230; Et vu que [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,8,9],"tags":[12,35,37,42,56],"_links":{"self":[{"href":"https:\/\/mmed.roulleau.net\/index.php?rest_route=\/wp\/v2\/posts\/237"}],"collection":[{"href":"https:\/\/mmed.roulleau.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mmed.roulleau.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mmed.roulleau.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mmed.roulleau.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=237"}],"version-history":[{"count":0,"href":"https:\/\/mmed.roulleau.net\/index.php?rest_route=\/wp\/v2\/posts\/237\/revisions"}],"wp:attachment":[{"href":"https:\/\/mmed.roulleau.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mmed.roulleau.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mmed.roulleau.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}