{"id":425,"date":"2022-01-07T23:13:36","date_gmt":"2022-01-07T22:13:36","guid":{"rendered":"https:\/\/nissel.it\/?p=425"},"modified":"2022-01-07T23:17:07","modified_gmt":"2022-01-07T22:17:07","slug":"bessere-analyse-von-spamassassin-regeln","status":"publish","type":"post","link":"https:\/\/nissel.it\/index.php\/2022\/01\/07\/bessere-analyse-von-spamassassin-regeln\/","title":{"rendered":"Bessere Analyse von spamassassin Regeln"},"content":{"rendered":"\n<p>Eine \u00dcbersicht \u00fcber die zugetroffenen Regeln in  spam oder ham mit spamassassin zu erlangen ist nicht einfach. Einerseits m\u00f6chte man wissen welche Regeln wie zuverl\u00e4ssig in spam oder ham auftauchen und andererseits m\u00f6chte man beispielhaft sich einzelne Mails Header anschauen. Daf\u00fcr habe ich ein php script erstellt was diese Aufgabe erledigt.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Idee war es, alle Mails direkt auf dem Server zu analysieren und entweder eine Konsolen oder HTML Ausgabe zu generieren.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/opt\/plesk\/php\/8.0\/bin\/php spam-overview.php<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"386\" height=\"359\" src=\"https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik.png\" alt=\"\" class=\"wp-image-427\" srcset=\"https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik.png 386w, https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-300x279.png 300w\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" \/><figcaption>Auszug der Ausgabe Regeln von ham Mails<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"386\" height=\"359\" src=\"https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-1.png\" alt=\"\" class=\"wp-image-428\" srcset=\"https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-1.png 386w, https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-1-300x279.png 300w\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" \/><figcaption>Auszug der Ausgabe Regeln von spam Mails<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"386\" height=\"339\" src=\"https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-2.png\" alt=\"\" class=\"wp-image-429\" srcset=\"https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-2.png 386w, https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-2-300x263.png 300w\" sizes=\"auto, (max-width: 386px) 100vw, 386px\" \/><figcaption>False positive Regeln in ham\/spam<\/figcaption><\/figure>\n\n\n\n<p>Dies kann man gut benutzen um z.B. mit grep einzelne Regeln zu filtern und offensichtlich falsch vergebene scores zu erkennen. In dem Beispiel die Regel FREEMAIL_FORGED_REPLYTO wurde 6 mal in Mails gefunden die nicht im Spam Ordner waren. Da aber t-online.de Mails darauf anspringen, aber kein spamer bei mir diesen &#8222;Fehler&#8220; macht, ist diese Regel nutzlos und kann auf 0 gesetzt werden.<\/p>\n\n\n\n<p>M\u00f6chte man sich die Mails genauer anschauen ist die Ausgabe in HTML praktisch. Da das php Skript auf allen Mails arbeitet und root Rechte daf\u00fcr ben\u00f6tigt m\u00f6chte ich nicht, dass es als Webseite direkt aufrufbar ist. Das Skript wird per cron-job ausgef\u00fchrt und das HTML wird an einem konfigurierten Ort abgelegt, welcher zus\u00e4tzlich per Passwort gesch\u00fctzt ist.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/opt\/plesk\/php\/8.0\/bin\/php spam-overview.php html<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"925\" height=\"837\" src=\"https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-3.png\" alt=\"\" class=\"wp-image-430\" srcset=\"https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-3.png 925w, https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-3-300x271.png 300w, https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-3-768x695.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption>HTML Ausgabe f\u00fcr die spam\/ham \u00dcbersicht<\/figcaption><\/figure>\n\n\n\n<p>Es werden 15 Mails (zuf\u00e4llig gesetztes Maximum) in dieser \u00dcbersicht verlinkt. Dort wird der Header und der Dateipfad zur Mail angezeigt. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"984\" height=\"555\" src=\"https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-4.png\" alt=\"\" class=\"wp-image-431\" srcset=\"https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-4.png 984w, https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-4-300x169.png 300w, https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/grafik-4-768x433.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption>Email Header<\/figcaption><\/figure>\n\n\n\n<p>Voraussetzung ist das Format was in der oberen Abbildung zu sehen ist. Im Standard ist dies nicht so ausf\u00fchrlich, was ich bei der Analyse im Thunderbird (Quelltext anzeigen) nicht sehr hilfreich finde. Also habe ich dazu in der Datei &#8222;\/etc\/spamassassin\/80_report.cf&#8220; folgende Konfigurationseinstellung vorgenommen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dd_header all Report _REPORT_<\/code><\/pre>\n\n\n\n<p>Nach einem Neustart des spamassassin Dienst sollte jede eingehende Mail diesen Header enthalten.<\/p>\n\n\n\n<p>Das Script ist aufgeteilt in mehrere Dateien. In der config.php sollten man die Pfade seines Systems anpassen.<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/spamOverview.zip\">spamOverview<\/a><a href=\"https:\/\/nissel.it\/wp-content\/uploads\/2022\/01\/spamOverview.zip\" class=\"wp-block-file__button\" download>Herunterladen<\/a><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Offene Baustellen<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Alle Mailheader werden beim Parsen im Speicher gleichzeitig gehalten. Bei vielen Mails oder einem langen Zeitraum verbraucht das Script viel RAM. <\/li><li>Spam\/Ham wird anhand des Ordners und nicht anhand der Information im Header erkannt. Dadurch muss der Spam automatisch in den richtigen Ordner verschoben worden sein. Das ist nicht in jeder Konfiguration so.<\/li><li>Die Konfiguration wird nicht gepr\u00fcft und ist sehr anf\u00e4llig auf Fehleingaben. z.B: fehlendes &#8222;\/&#8220; am Ende eines Pfades.<\/li><li>Code ist nicht sauber programmiert (einfach schnell runter gehacked)<\/li><li>Code ist schlecht Dokumentiert<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Eine \u00dcbersicht \u00fcber die zugetroffenen Regeln in spam oder ham mit spamassassin zu erlangen ist nicht einfach. Einerseits m\u00f6chte man wissen welche Regeln wie zuverl\u00e4ssig in spam oder ham auftauchen und andererseits m\u00f6chte man beispielhaft sich einzelne Mails Header anschauen. Daf\u00fcr habe ich ein php script erstellt was diese Aufgabe erledigt.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[5,28],"class_list":["post-425","post","type-post","status-publish","format-standard","hentry","category-webserver","tag-mail","tag-spamassassin"],"_links":{"self":[{"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/posts\/425","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/comments?post=425"}],"version-history":[{"count":1,"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/posts\/425\/revisions"}],"predecessor-version":[{"id":432,"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/posts\/425\/revisions\/432"}],"wp:attachment":[{"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/media?parent=425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/categories?post=425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nissel.it\/index.php\/wp-json\/wp\/v2\/tags?post=425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}