<?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>Mailserver Tipps | SYN-FLUT.de</title>
	<atom:link href="https://www.syn-flut.de/thema/mailserver/feed" rel="self" type="application/rss+xml" />
	<link>https://www.syn-flut.de/thema/mailserver</link>
	<description>ein Blog über Linux, Open Source, Netzwerk, UC und mehr...</description>
	<lastBuildDate>Sat, 11 May 2019 22:06:11 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.1</generator>

<image>
	<url>https://www.syn-flut.de/wp-content/uploads/2016/03/cropped-Favicon-1-32x32.png</url>
	<title>Mailserver Tipps | SYN-FLUT.de</title>
	<link>https://www.syn-flut.de/thema/mailserver</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Mit Postfix SPAM blockieren</title>
		<link>https://www.syn-flut.de/mit-postfix-spam-blockieren</link>
					<comments>https://www.syn-flut.de/mit-postfix-spam-blockieren#respond</comments>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Thu, 21 Apr 2016 09:43:34 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mailserver]]></category>
		<category><![CDATA[Antispam]]></category>
		<category><![CDATA[Ubuntu 14.04]]></category>
		<guid isPermaLink="false">https://www.syn-flut.de/?p=236</guid>

					<description><![CDATA[<p>Der beste SPAM ist solcher, der gar nicht zugestellt wird. Deswegen macht es Sinn, dass direkt mittels Postfix SPAM blockiert wird. Wenn eine Mail direkt beim Zustellversuch untersucht und ggf. abgelehnt wird, ist man rechtlich auf der sicheren Seite. &#8230; </p>
<div class="more-link-wrapper"><a href="https://www.syn-flut.de/mit-postfix-spam-blockieren" class="more-link">Continue reading<span class="screen-reader-text"> "Mit Postfix SPAM blockieren"</span></a></div>
<p>Der Beitrag <a href="https://www.syn-flut.de/mit-postfix-spam-blockieren">Mit Postfix SPAM blockieren</a> erschien zuerst auf <a href="https://www.syn-flut.de">SYN-FLUT.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Der beste SPAM ist solcher, der gar nicht zugestellt wird. Deswegen macht es Sinn, dass direkt mittels Postfix SPAM blockiert wird. Wenn eine Mail direkt beim Zustellversuch untersucht und ggf. abgelehnt wird, ist man rechtlich auf der sicheren Seite. Außerdem werden Ressourcen gespart, indem Tools wie <a href="https://www.syn-flut.de/clamav-erkennungsrate-verbessern" target="_blank">ClamAV</a>, <a href="https://www.syn-flut.de/spamassassin-erkennungsrate-deutlich-verbessern" target="_blank">SpamAssassin</a> und Co. nur auf vorgefilterte Mails losgelassen werden.<span id="more-236"></span></p>
<p>Im Folgenden beschreibe ich, wie bereits mit Postfix Antispam Maßnahmen eingeführt werden können. Dazu habe ich die relevanten Ausschnitte der Postfix Konfigurationsdatei /etc/postfix/main.cf beigefügt. Wichtig ist mir hierbei, dass die unten aufgeführten Einstellungen keineswegs einfach per Copy&amp;Paste übernommen werden sollten. Die Konfiguration funktioniert bei mir sehr gut, trotzdem solltet ihr genau wissen, was ihr tut.</p>
<p>Die Konfiguration wurde unter Ubuntu 14.04 (Postfix 2.11) erstellt und getestet. Seit Postfix 2.10 wird für das (authentifizierte) Relayen von Mails die Konfiguration unter smtpd_relay_restrictions verwendet. In früheren Versionen wurden die Einstellungen unter smtpd_recipient_restrictions verwendet, was manchmal zu komischem Verhalten führte. Weitere Informationen dazu gibt es auf der <a href="http://www.postfix.org/SMTPD_ACCESS_README.html" target="_blank">Postfix Homepage</a>.</p>
<h2>Die Konfiguration</h2>
<pre class="brush: plain; title: ; notranslate">
smtpd_sender_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unknown_sender_domain,
  reject_non_fqdn_sender
smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination,
  reject_unauth_pipelining,
  check_client_access hash:/etc/postfix/client_checks,
  check_sender_access hash:/etc/postfix/sender_checks,
  reject_unknown_helo_hostname,
  reject_invalid_hostname,
  reject_non_fqdn_hostname,
  reject_non_fqdn_recipient,
  permit_dnswl_client list.dnswl.org,
  reject_rbl_client ix.dnsbl.manitu.net,
  reject_rbl_client zen.spamhaus.org,
  reject_rbl_client b.barracudacentral.org,
  reject_rbl_client bl.spamcop.net,
  reject_rbl_client psbl.surriel.com,
  reject_rbl_client noptr.spamrats.com,
  reject_rbl_client dyna.spamrats.com,
  reject_rbl_client dnsbl.sorbs.net
</pre>
<p>&nbsp;</p>
<h2>Die Einstellungen im Detail</h2>
<p>&nbsp;</p>
<h3>smtpd_sender_restrictions</h3>
<p>Hier wird Postfix mitgeteilt, welche Checks während des &#8220;MAIL FROM&#8221; Kommandos auszuführen sind. Alle weiteren Checks werden top-down, also von oben nach unten durchgeführt. Sobald ein Check anschlägt, sei es permit oder reject, wird diese Kette verlassen und keine weiteren Checks werden durchgeführt.</p>
<p>Mittels permit_mynetworks und permit_sasl_authenticated werden Mails von vertrauenswürdigen Netzen und authentifizierten Benutzern in jedem Fall durchgelassen.</p>
<p>Durch die Befehle <a href="http://www.postfix.org/postconf.5.html#reject_unknown_sender_domain" target="_blank">reject_unknown_sender_domain</a> sowie <a href="http://www.postfix.org/postconf.5.html#reject_non_fqdn_sender" target="_blank">reject_non_fqdn_sender</a> wird erstmal geprüft, ob der sendende MTA zumindest die RFC Basics eingehalten hat. Also ob hinter der Domain ein DNS A-Record steckt und ob es einen FQDN gibt.</p>
<p>&nbsp;</p>
<h3>smtpd_recipient_restrictions</h3>
<p>Hier passiert die eigentliche &#8220;Magie&#8221;. Seit Postfix 2.10 und der Einführung der smtpd_relay_restrictions bin auch ich dazu übergegangen, eigentlich alle Checks hier aufzuführen. Genauere Informationen darüber gibt es auf der <a href="http://www.postfix.org/SMTPD_ACCESS_README.html" target="_blank">Postfix Website</a>.</p>
<p>Die Einstellungen <a href="http://www.postfix.org/postconf.5.html#permit_mynetworks" target="_blank">permit_mynetworks</a> und <a href="http://www.postfix.org/postconf.5.html#permit_sasl_authenticated" target="_blank">permit_sasl_authenticated</a> bewirken das Gleiche wie oben. Danach wird es interessanter. Der Punkt <a href="http://www.postfix.org/postconf.5.html#reject_unauth_destination" target="_blank">reject_unauth_destination</a> ist vermutlich der wichtigste Befehl. Er legt fest, dass unauthentifizierte Benutzer nur Mails an die eigenen Domains senden dürfen und somit kein Open Relay entsteht.</p>
<p>&nbsp;</p>
<h4>RFC-Konforme Checks</h4>
<p>Mittels <a href="http://www.postfix.org/postconf.5.html#check_client_access" target="_blank">check_client_access</a> und <a href="http://www.postfix.org/postconf.5.html#check_sender_access" target="_blank">check_sender_access</a> könnten Whitelists erstellt werden. Dies kann hin und wieder nützlich sein, z.B. wenn fremde, legitime Mailserver falsch konfiguriert sind.</p>
<p>Die Punkte <a href="http://www.postfix.org/postconf.5.html#reject_unknown_helo_hostname" target="_blank">reject_unknown_helo_hostname</a> und <a href="http://www.postfix.org/postconf.5.html#reject_invalid_helo_hostname" target="_blank">reject_invalid_hostname</a> prüft, ob der Host im HELO einen (gültigen) DNS A oder MX Record hat. Falls nicht, wird die Mail abgelehnt.</p>
<p>Zu guter Letzt wird mittels <a href="http://www.postfix.org/postconf.5.html#reject_non_fqdn_helo_hostname" target="_blank">reject_non_fqdn_hostname</a> und <a href="http://www.postfix.org/postconf.5.html#reject_non_fqdn_recipient" target="_blank">reject_non_fqdn_recipient</a> noch geprüft, ob die Empfängerdomain im FQDN-Format vorliegt. Also wieder ziemliche &#8220;Basics&#8221;. Trotzdem helfen diese Regeln, schon mal recht viele Mails von schlecht konfigurierten SPAM Mailservern abzulehnen.</p>
<p>&nbsp;</p>
<h4>Whitelist</h4>
<p>Vor den ganzen <a href="https://de.wikipedia.org/wiki/DNS-based_Blackhole_List" target="_blank">DNSBLs</a> habe ich einen Check zur bekannten Whitelist <a href="https://www.dnswl.org/" target="_blank">dnswl.org</a> eingebaut. Falls eine sendende IP dort gelistet ist, durchläuft sie nicht die weiteren Checks der ganzen Blacklists. Dadurch kann ich etwas restriktivere Blacklists verwenden, ohne gleich Gefahr zu laufen, dass zu viele false-positives auftreten könnten. Hin und wieder sind beispielsweise einzelne IPs von United Internet (GMX und Co.) auf der Sorbs Blacklist gelistet. Da GMX aber in der Whitelist gelistet ist, brauche ich mir darüber keine Gedanken zu machen. Ich kann auch jedem Mailserver-Administrator empfehlen, sich dort auf dieser Whitelist einzutragen.</p>
<p>Postfix kann die DNS Whitelist ab Version 2.8 direkt mit dem Kommando <a href="http://www.postfix.org/postconf.5.html#permit_dnswl_client" target="_blank">permit_dnswl_client</a> list.dnswl.org abfragen.</p>
<p>&nbsp;</p>
<h4>Blacklist</h4>
<p>Der Befehl <a href="http://www.postfix.org/postconf.5.html#reject_rbl_client" target="_blank">reject_rbl_client</a> frägt die jeweilige DNS Blacklist ab und lehnt die Mail ab, wenn eine der Blacklists einen gelisteten Eintrag zurückgibt. Ich habe mich für die oben genannten acht Stück entschieden. Sie existieren allesamt relativ lange und waren bisher sehr zuverlässig. Hier sollte trotzdem regelmäßig ein Review stattfinden, denn manche DNSBLs geben, wenn sie eines Tages out-of-service gehen, immer &#8220;listed&#8221; zurück. Folglich würden dann alle Mails abgelehnt werden.</p>
<p>&nbsp;</p>
<p>Der Beitrag <a href="https://www.syn-flut.de/mit-postfix-spam-blockieren">Mit Postfix SPAM blockieren</a> erschien zuerst auf <a href="https://www.syn-flut.de">SYN-FLUT.de</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.syn-flut.de/mit-postfix-spam-blockieren/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ClamAV Erkennungsrate verbessern</title>
		<link>https://www.syn-flut.de/clamav-erkennungsrate-verbessern</link>
					<comments>https://www.syn-flut.de/clamav-erkennungsrate-verbessern#comments</comments>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Tue, 05 Apr 2016 18:57:56 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mailserver]]></category>
		<category><![CDATA[ClamAV]]></category>
		<category><![CDATA[Ubuntu 14.04]]></category>
		<category><![CDATA[Virenscanner]]></category>
		<guid isPermaLink="false">https://www.syn-flut.de/?p=187</guid>

					<description><![CDATA[<p>In Zeiten von Ransomware und Co. halte ich es für sinnvoll, dass E-Mails bereits serverseitig auf Viren geprüft werden. Klar, eigentlich sollte man meinen, dass heutzutage niemand mehr solche Anhänge öffnet. Das prominenteste Beispiel Locky hat uns das Gegenteil bewiesen. &#8230; </p>
<div class="more-link-wrapper"><a href="https://www.syn-flut.de/clamav-erkennungsrate-verbessern" class="more-link">Continue reading<span class="screen-reader-text"> "ClamAV Erkennungsrate verbessern"</span></a></div>
<p>Der Beitrag <a href="https://www.syn-flut.de/clamav-erkennungsrate-verbessern">ClamAV Erkennungsrate verbessern</a> erschien zuerst auf <a href="https://www.syn-flut.de">SYN-FLUT.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In Zeiten von Ransomware und Co. halte ich es für sinnvoll, dass E-Mails bereits serverseitig auf Viren geprüft werden. Klar, eigentlich sollte man meinen, dass heutzutage niemand mehr solche Anhänge öffnet. Das prominenteste Beispiel Locky hat uns das Gegenteil bewiesen. <a href="http://www.heise.de/security/meldung/Krypto-Trojaner-Locky-wuetet-in-Deutschland-Ueber-5000-Infektionen-pro-Stunde-3111774.html" target="_blank">Über 5000 Infektionen pro Stunde</a>, alleine in Deutschland, sind eine Hausnummer. Deswegen habe ich mir Gedanken gemacht, wie die ClamAV Erkennungsrate verbessert werden kann.<span id="more-187"></span></p>
<h2>Zusätzliche Signaturen</h2>
<p>Die offiziellen Signaturen von ClamAV sind meiner Meinung nach nicht die besten. Auch Wochen nach bekanntwerden von Locky, erkannte ClamAV in meinem Test diesen Virus nicht. Fast wollte ich ClamAV wieder deinstallieren, dann jedoch habe ich nach zusätzlichen Signaturen gesucht. Das Ergebnis kann sich absolut sehen lassen. In meinem Test wurden alle Viren, die vorher durchflutschten, zuverlässig erkannt. Bisher gabs kein False-Positive, aber auch kein False-Negative.</p>
<p>Der große Nachteil an der Sache ist, dass ClamAV mit zusätzlichen Signaturen ein echter Speicherfresser ist. Bei mir verbraucht ClamAV knapp 800MB RAM.</p>
<p>Am einfachsten gelingt die Installation zusätzlicher Signaturen mit dem <a href="https://github.com/extremeshok/clamav-unofficial-sigs/releases" target="_blank">ClamAV Unofficial Signatures Updater</a>, der auf Github von &#8220;extremeshok&#8221; weiter entwickelt wird. Die Installation ist dort super beschrieben und in wenigen Minuten erledigt. In der Konfiguration kann man verschiedene Quellen angeben, von welchen die Signaturen bezogen werden. Einige davon funktionieren nur mit vorheriger Registrierung. Ich habe mich mal bei allen angemeldet.</p>
<p>Wenn ich die Installation allerdings nochmal machen würde, würde ich auf diesen Schritt verzichten und nur die Signaturen von SaneSecurity beziehen, welche ohne Anmeldung geladen werden können. Bisher wurden alle gefundene Viren anhand Signaturen von SaneSecurity erkannt. Dadurch kann man sicherlich auch eine Menge RAM sparen.</p>
<p>Von folgenden Quellen ladet das Tool automatisiert die Signaturen runter und hält sie aktuell:</p>
<ul>
<li><a href="http://sanesecurity.com/" target="_blank">SaneSecurity</a> (ohne vorherige Anmeldung)</li>
<li><a href="https://www.securiteinfo.com/services/anti-spam-anti-virus/improve-detection-rate-of-zero-day-malwares-for-clamav.shtml" target="_blank">SecuriteInfo</a></li>
<li><a href="https://www.rfxn.com/projects/linux-malware-detect/" target="_blank">Linux Malware Detect</a></li>
<li><a href="https://www.malwarepatrol.net/" target="_blank">Malware Patrol</a></li>
</ul>
<p>Wie gesagt, die Installation ist auf der <a href="https://github.com/extremeshok/clamav-unofficial-sigs/releases" target="_blank">Github Page von extremeshok</a> super beschrieben, deswegen verzichte ich an dieser Stelle auf ein HowTo.</p>
<p>PS: ich seh grad, extremeshok hat auch ein <a href="https://github.com/extremeshok/spamassassin-extremeshok_fromreplyto" target="_blank">SpamAssassin Plugin</a> geschrieben. Vielleicht teste ich das demnächst mal.</p>
<p>Der Beitrag <a href="https://www.syn-flut.de/clamav-erkennungsrate-verbessern">ClamAV Erkennungsrate verbessern</a> erschien zuerst auf <a href="https://www.syn-flut.de">SYN-FLUT.de</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.syn-flut.de/clamav-erkennungsrate-verbessern/feed</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>SpamAssassin Erkennungsrate (deutlich) verbessern</title>
		<link>https://www.syn-flut.de/spamassassin-erkennungsrate-verbessern</link>
					<comments>https://www.syn-flut.de/spamassassin-erkennungsrate-verbessern#comments</comments>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Thu, 31 Mar 2016 13:05:56 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mailserver]]></category>
		<category><![CDATA[Antispam]]></category>
		<category><![CDATA[DNSBL]]></category>
		<category><![CDATA[SpamAssassin]]></category>
		<category><![CDATA[Ubuntu 14.04]]></category>
		<guid isPermaLink="false">https://www.syn-flut.de/?p=109</guid>

					<description><![CDATA[<p>Jeder, der einen eigenen Mailserver betreibt, kennt es: das leidige Thema SPAM. So betreibe auch ich einen Mailserver und habe mich mit dem Thema einige Tage intensiv auseinandergesetzt. Im Folgenden gebe ich einige Tipps, wie die SpamAssassin Erkennungsrate &#8230; </p>
<div class="more-link-wrapper"><a href="https://www.syn-flut.de/spamassassin-erkennungsrate-verbessern" class="more-link">Continue reading<span class="screen-reader-text"> "SpamAssassin Erkennungsrate (deutlich) verbessern"</span></a></div>
<p>Der Beitrag <a href="https://www.syn-flut.de/spamassassin-erkennungsrate-verbessern">SpamAssassin Erkennungsrate (deutlich) verbessern</a> erschien zuerst auf <a href="https://www.syn-flut.de">SYN-FLUT.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Jeder, der einen eigenen Mailserver betreibt, kennt es: das leidige Thema SPAM. So betreibe auch ich einen Mailserver und habe mich mit dem Thema einige Tage intensiv auseinandergesetzt. Im Folgenden gebe ich einige Tipps, wie die SpamAssassin Erkennungsrate deutlich verbessert werden kann. Zusammen mit einigen Postfix Konfigurationen kommt bei mir so gut wie&nbsp;überhaupt kein SPAM mehr durch.<span id="more-109"></span></p>
<h2>Einleitung</h2>
<p>SpamAssassin ist ein sehr bekanntes und ausgezeichnetes Programm, das anhand von verschiedensten Tests jeder E-Mail einen &#8220;Score&#8221; zuweist. Je höher diese Punktzahl ist, desto wahrscheinlicher handelt es sich bei der Mail um SPAM.</p>
<p>Ich habe meine Mailserver alle auf Basis der sehr guten Anleitung von <a href="https://workaround.org/ispmail/jessie" target="_blank" rel="noopener noreferrer">Christoph Haas (workaround.org)</a> konfiguriert. Christoph schreibt diese Tutorials schon sehr lange, ich glaube ich habe&nbsp;um 2006 herum meinen ersten Server danach aufgesetzt.</p>
<p>Im Rahmen des Tutorials wird auch SpamAssassin installiert und aktuell direkt, früher mittels&nbsp;<a href="https://de.wikipedia.org/wiki/Amavis" target="_blank" rel="noopener noreferrer">Amavis </a>an Postfix angebunden. Ich bevorzuge nach wie vor die Anbindung über Amavis, da ich gerne auch ClamAV als Virenscanner einsetze. Die Erkennungsrate von ClamAV ist erstmal recht gering, auch hier können wir noch einiges rausholen. Dazu werde ich demnächst noch einen Beitrag schreiben.</p>
<p>&nbsp;</p>
<h2>Verwendet einen eigenen DNS&nbsp;Resolver</h2>
<p>Zu Beginn gleich der vielleicht wichtigste Tipp, wie die SpamAssassin Erkennungsrate deutlich verbessert werden kann. SpamAssassin benutzt&nbsp;für viele dieser Tests sogenannte DNS Blacklists (<a href="https://de.wikipedia.org/wiki/DNS-based_Blackhole_List" target="_blank" rel="noopener noreferrer">DNSBL</a>). Diese werden verwendet, um z.B. die IP-Adressen der SMTP Relays abzugleichen, oder auch um in der Mail enthaltene Links zu prüfen. Falls eine Domain in einem solchen Link in einer DNSBL bekannt ist, erhöht SpamAssassin folglich den Score und die Mail kann besser klassifiziert werden. Im umgedrehten Fall wird bei vertrauenswürdigen Links&nbsp;der Score verringert, somit sinkt auch die Chance auf eine fälschlicherweise als Spam markierte&nbsp;Mail.</p>
<p>Viele dieser DNSBLs arbeiten nach dem Freemium Prinzip, d.h. für kleinere Mailserver ist deren Benutzung kostenfrei, bei größeren Mailserver-Installationen verkaufen&nbsp;die Provider dieser Listen entsprechende Zugänge. Da die Listen DNS-Basiert arbeiten, wird also die Quell-IP des anfragenden DNS-Servers getrackt und limitiert.</p>
<p>Wenn euer Mailserver einen bekannten öffentlichen&nbsp;DNS-Server verwendet (z.B. <a href="https://developers.google.com/speed/public-dns/" target="_blank" rel="noopener noreferrer">Google DNS</a>), frägt ja letztlich dieser DNS-Server bei der Liste nach. Da diese DNS-Server von vielen tausenden Benutzern verwendet werden, laufen sie schnell in das Rate-Limit der DNSBL-Provider.</p>
<p>Ersichtlich wird es im E-Mail Header, wenn&nbsp;SpamAssassin dort den Check&nbsp;<strong>URIBL_BLOCKED</strong>&nbsp;listet. Dieser wird mit 0.001 Punkten gewertet und soll nur ein Hinweis auf genau dieses Problem sein.</p>
<figure id="attachment_139" aria-describedby="caption-attachment-139" style="width: 300px" class="wp-caption alignnone"><a href="https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-uribl-blocked.png" rel="attachment wp-att-139"><img decoding="async" class="size-medium wp-image-139" src="https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-uribl-blocked-300x55.png" alt="URIBL_BLOCKED - SpamAssassin Erkennungsrate verbessern" width="300" height="55" srcset="https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-uribl-blocked-300x55.png 300w, https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-uribl-blocked.png 505w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-139" class="wp-caption-text">Hier sieht man die Meldung URIBL_BLOCKED.</figcaption></figure>
<p>Abhilfe schafft die Verwendung eines eigenen (Caching) DNS-Resolvers. Dadurch frägt euer eigener DNS-Server bei den DNSBLs an und die Anfrage geht durch.&nbsp;Ich habe hier beschrieben, wie unter Ubuntu 14.04 bind als Caching DNS-Resolver installiert wird:&nbsp;<a href="https://www.syn-flut.de/caching-dns-resolver-mit-bind9" target="_blank" rel="noopener noreferrer">Caching DNS-Resolver mit bind9</a></p>
<p>Allein diese Maßnahme hat die&nbsp;SpamAssassin Erkennungsrate bei mir deutlich verbessert.</p>
<figure id="attachment_128" aria-describedby="caption-attachment-128" style="width: 300px" class="wp-caption alignnone"><a href="https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-tests.png" rel="attachment wp-att-128"><img decoding="async" class="wp-image-128 size-medium" src="https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-tests-300x63.png" alt="SpamAssassin Erkennungsrate verbessern, Test DNSBL" width="300" height="63" srcset="https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-tests-300x63.png 300w, https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-tests.png 494w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-128" class="wp-caption-text">hier wurden zahlreiche DNSBLs abgefragt. (Die Checks beginnen mit RCVD_IN)</figcaption></figure>
<p>&nbsp;</p>
<h2>Trainiert die Bayes-Datenbank</h2>
<p>Auch mit folgendem Tipp kann die SpamAssassin Erkennungsrate verbessert werden. Das Programm verwendet eine integrierte Bayes-Datenbank, um Textphrasen zu klassifizieren und zu bewerten. Damit das Ganze funktioniert, muss diese Datenbank zunächst trainiert werden. Wichtig ist, dass der richtige Pfad zur Datenbank angegeben wird, sonst landet das ganze&nbsp;im .spamassassin Ordner des jeweiligen Benutzers. Dort schaut SpamAssassin (meines Wissens) allerdings nicht nach, wenn es über Amavis oder den spamd aufgerufen wird.</p>
<h3>Spam Mail Quelle</h3>
<p>Für das &#8220;Training&#8221; sind&nbsp;eine Menge Mails notwendig.&nbsp;Um genug Spam Mails zu bekommen, habe ich das aktuellste Monatsarchiv von&nbsp;<a href="http://untroubled.org/spam/" target="_blank" rel="noopener noreferrer">http://untroubled.org/spam/&nbsp;</a>verwendet. Dieses habe ich mittels wget heruntergeladen, entpackt und anschließend das Tool <strong>sa-learn</strong> auf die Mails losgelassen. Falls SpamAssassin nicht über Amavis eingebunden ist, muss der Datenbank-Pfad angepasst werden.</p>
<p>Anschließend verfüttere ich auch noch alle Mails im &#8220;Junk&#8221; Ordner aller Postfächer an sa-learn</p>
<pre class="brush: plain; title: ; notranslate">
cd /tmp
wget http://untroubled.org/spam/2016-03.7z
7z x 2016-03.7z
sudo sa-learn --dbpath /var/lib/amavis/.spamassassin --progress --spam /tmp/2016/03
sudo sa-learn --dbpath /var/lib/amavis/.spamassassin --progress --spam /var/vmail/*/*/Maildir/.Junk
</pre>
<p>&nbsp;</p>
<h3>&#8220;Gute&#8221; Mails</h3>
<p>Die Bayes-Datenbank sollte natürlich auch erwünschte Mails zu Gesicht bekommen. Hierzu verwende ich einfach alle gelesene Mails, die in allen vorhandenen Postfächern vorhanden sind.</p>
<pre class="brush: plain; title: ; notranslate">
sa-learn --dbpath /var/lib/amavis/.spamassassin --progress --ham /var/vmail/*/*/Maildir/cur
</pre>
<p>Dies kann (und sollte) man selbstverständlich via Cron-Job automatisieren.</p>
<p>&nbsp;</p>
<h2>Verwendet zusätzliche Signaturen</h2>
<p>Peer Heinlein von&nbsp;<a href="https://www.heinlein-support.de/blog/news/aktuelle-spamassassin-regeln-von-heinlein-support/">Heinlein Support</a>&nbsp;ist der Mann hinter mailbox.org &#8211; einem sicherlich nicht ganz unbekannten E-Mail Anbieter. Freundlicherweise stellt er kostenlos die von seinem Team entwickelten und beinahe täglich aktualisierten SpamAssassin Rulesets zur Verfügung. Eine Anleitung zum Einbinden in ein Debian/Ubuntu System findet ihr <a href="https://www.heinlein-support.de/blog/news/aktuelle-spamassassin-regeln-von-heinlein-support/">auf seinem Blog</a>.</p>
<p>Im Wesentlichen werden diese Signaturen mittels dem bereits vorhandenen Cron-Job, der die SpamAssassin-eigenen Rulesets aktualisiert, zusätzlich geladen. Der Vollständigkeit halber anbei die modifizierte Version des Cron Bash-Scripts, unter Ubuntu 14.04 muss sie&nbsp;nach <samp>/etc/cron.daily/spamassassin</samp>. Die modifizierten Zeilen habe ich markiert. Neben dem eigentlichen Download prüft mein Script noch die Returncodes von beiden sa-update aufrufen. Wenn nur einer von beiden Aufrufen neue Signaturen gebracht hat, wird spamd bzw. Amavis neu gestartet. Ich habe diesen Code-Schnipsel (Zeile 70-76) aus den Kommentaren von o.g. Blog. Ist ziemlich quick&#8217;n&#8217;dirty, aber funktioniert für meine Ansprüche.</p>
<pre class="brush: bash; collapse: true; highlight: [66,67,68,69,70,71,72,73,74,75,76,77,78]; light: false; title: ; toolbar: true; notranslate">
#!/bin/sh

# Duncan Findlay
# duncf@debian.org

# Daily cronjob for SpamAssassin updates. This isn't pretty but it
# should do the job.

CRON=0

test -f /etc/default/spamassassin &amp;amp;&amp;amp; . /etc/default/spamassassin

test -x /usr/bin/sa-update || exit 0
test -x /etc/init.d/spamassassin || exit 0

if &#x5B; &quot;$CRON&quot; = &quot;0&quot; ] ; then
exit 0
fi

# If there's a problem with the ruleset or configs, print the output
# of spamassassin --lint (which will typically get emailed to root)
# and abort.
die_with_lint() {
su - debian-spamd -c &quot;spamassassin --lint -D 2&amp;gt;&amp;amp;1&quot;
exit 1
}

do_compile() {
# Compile rules if the required tools are available. Prior to version
# 3.3.2-8, there was an additional check to verify that an sa-compile
# run had previously been executed by hand. With sa-learn now
# distributed in a separate, optional, package, this check is no
# longer necessary.
if &#x5B; -x /usr/bin/re2c -a -x /usr/bin/sa-compile ]; then
su - debian-spamd -c &quot;sa-compile --quiet&quot;
# Fixup perms -- group and other should be able to
# read and execute, but never write. Works around
# sa-compile's failure to obey umask.
chmod -R go-w,go+rX /var/lib/spamassassin/compiled
fi
}

# Tell a running spamd to reload its configs and rules.
reload() {
# Reload
if which invoke-rc.d &amp;gt;/dev/null 2&amp;gt;&amp;amp;1; then
invoke-rc.d spamassassin reload &amp;gt; /dev/null
else
/etc/init.d/spamassassin reload &amp;gt; /dev/null
fi
if &#x5B; -d /etc/spamassassin/sa-update-hooks.d ]; then
run-parts --lsbsysinit /etc/spamassassin/sa-update-hooks.d
fi
}

# Sleep for up to 3600 seconds
RANGE=3600
number=`od -vAn -N2 -tu4 &amp;lt; /dev/urandom`
number=`expr $number &quot;%&quot; $RANGE`
sleep $number

# Update
umask 022
su - debian-spamd -c &quot;sa-update --gpghomedir /var/lib/spamassassin/sa-update-keys&quot;
retcode1=$?
su - debian-spamd -c &quot;sa-update --nogpg --channel spamassassin.heinlein-support.de&quot;
retcode2=$?

if &#x5B; $retcode1 -eq 0 ] || &#x5B; $retcode2 -eq 0 ]; then
retcode=0
elif &#x5B; $retcode1 -eq 2 ] || &#x5B; $retcode2 -eq 2 ]; then
retcode=2
else
retcode=$retcode2
fi

case $retcode in
0)
# got updates!
su - debian-spamd -c &quot;spamassassin --lint&quot; || die_with_lint
do_compile
reload
;;
1)
# no updates
exit 0
;;
2)
# lint failed!
die_with_lint
;;
*)
echo &quot;sa-update failed for unknown reasons&quot; 1&amp;gt;&amp;amp;2
;;
esac
</pre>
<p>Wenn alles funktioniert hat, müssten unter <samp>/var/lib/spamassassin/&lt;version&gt;/</samp> einige Dateien mit &#8220;heinlein&#8221; im Namen liegen. Das sind die eigentlichen Rulesets. Anhand des Zeitstempels kann auch überprüft werden, wann das letzte Update kam.</p>
<p>&nbsp;</p>
<h2>Verwendet Pyzor und Razor</h2>
<p>Pyzor und Razor sind Prüfsummenbasierte Netzwerke, um SPAM zu erkennen. Dabei wird eine Prüfsumme vom Body der erhaltenen Mail gebildet und an die Pyzor oder Razor Server gesendet. Falls die Prüfsummen von vielen Benutzern identisch sind&nbsp;(d.h. der Mailtext ist gleich), ist die Wahrscheinlichkeit, dass es sich bei der Mail um SPAM handelt höher.</p>
<h3>Pyzor</h3>
<p>Achtung: Pyzor verwendet den Port TCP 24441 für ausgehende Verbindungen zum Pyzor Server. Falls eine Firewall ausgehende Verbindungen blockiert, muss dieser Port entsprechend freigeschaltet werden. Folgende Schritte sind notwendig, um Pyzor unter Ubuntu 14.04 einzubinden:</p>
<pre class="brush: plain; title: ; notranslate">
sudo apt-get install pyzor
pyzor --homedir /etc/mail/spamassassin discover
</pre>
<p>Nun muss das noch SpamAssassin mitgeteilt werden. Dazu muss die Datei /etc/spamassassin/local.cf wie folgt editiert werden:</p>
<pre class="brush: bash; title: ; notranslate">
# die nächste Zeile dürfte schon auf 1 stehen. Falls nicht, dann anpassen.
use_pyzor &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1
# die nächste Zeile kommt ans Ende der Datei
pyzor_options --homedir /etc/mail/spamassassin
</pre>
<p>Danach noch SpamAssassin oder Amavis neu starten, dann war&#8217;s das schon. Getestet werden kann es wie folgt:</p>
<pre class="brush: plain; title: ; notranslate">
cat /pfad/zu/ner/mail | spamassassin -D pyzor 2&amp;amp;amp;gt;&amp;amp;amp;amp;1 | less
</pre>
<p>Der Output sollte wie folgt aussehen:</p>
<pre class="brush: plain; title: ; notranslate">
Apr 1 14:40:43.038 &#x5B;17306] dbg: pyzor: network tests on, attempting Pyzor
Apr 1 14:40:46.625 &#x5B;17306] dbg: pyzor: pyzor is available: /usr/bin/pyzor
Apr 1 14:40:46.626 &#x5B;17306] dbg: pyzor: opening pipe: /usr/bin/pyzor check &amp;amp;amp;lt; /tmp/.spamassassin17306kiOe9Ytmp
Apr 1 14:40:47.528 &#x5B;17306] dbg: pyzor: &#x5B;17308] finished: exit 1
Apr 1 14:40:47.528 &#x5B;17306] dbg: pyzor: got response: public.pyzor.org:24441 (200, 'OK') 0 0
</pre>
<h3>Razor</h3>
<p>So wird Razor unter Ubuntu 14.04 installiert und konfiguriert:</p>
<pre class="brush: plain; title: ; notranslate">
sudo apt-get install razor
sudo razor-admin -home=/etc/spamassassin/.razor -register
sudo razor-admin -home=/etc/spamassassin/.razor -create
sudo razor-admin -home=/etc/spamassassin/.razor -discover
</pre>
<p>entsprechend muss analog zu Pyzor wieder die Datei /etc/spamassassin/local.cf angepasst werden:</p>
<pre class="brush: bash; title: ; notranslate">
# die nächste Zeile dürfte schon auf 1 stehen. Falls nicht, dann anpassen.
use_razor &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1
# die nächste Zeile kommt ans Ende der Datei
razor_config /etc/mail/spamassassin/.razor/razor-agent.conf
</pre>
<p>Hier wüsste ich leider keinen Weg, wie man die Funktion von Razor direkt testen kann. Jedenfalls müsste ab jetzt der SpamAssassin Test&nbsp;<strong>RAZOR2_CHECK </strong>in Mails auftauchen. Überprüft werden kann das (nach ein paar Tagen) wie folgt:</p>
<pre class="brush: plain; title: ; notranslate">
grep -R RAZOR /pfad/zu/den/mails
</pre>
<p>&nbsp;</p>
<h2>Filtert nach Ländern</h2>
<p>SpamAssassin bringt ein Plugin&nbsp;namens <strong>RelayCountry</strong> mit, mit welchem es möglich wird, die Länder der einzelnen SMTP Relays anhand der GeoIP Information zu bestimmen. Dies dient zum einen der Bayes-Datenbank. Sie bekommt also zusätzliche Informationen und wird künftig selbständig lernen, aus welchen Ländern viel Spam kommt. Ich habe bei mir noch &#8220;händische&#8221; Regeln hinzugefügt: Wenn eine Mail z.B. durch einen SMTP-Server in Vietnam relayed wurde, bekommt sie in meinem Fall zwei Punkte. Dieser Schritt hat auch nochmal gut geholfen, die SpamAssassin Erkennungsrate zu verbessern.</p>
<p>Folgende Schritte sind unter Ubuntu 14.04 als Vorbereitung notwendig:</p>
<pre class="brush: plain; title: ; notranslate">
apt-get install libgeo-ip-perl
mkdir /usr/share/GeoIP
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz
gunzip GeoIP.dat.gz
gunzip GeoIPv6.dat.gz
mv GeoIP.dat /usr/share/GeoIP/
mv GeoIPv6.dat /usr/share/GeoIP/
</pre>
<p>Damit wurde das notwendige Perl-Modul installiert, sowie mit der aktuellen GeoIP-Lite Datenbank von MaxMind ausgestattet. Das Plugin wird in der Datei&nbsp;<strong>/etc/spamassassin/init.pre</strong> aktiviert, dazu wird das Kommentarzeichen vor folgender Zeile entfernt:</p>
<pre class="brush: plain; title: ; notranslate">
loadplugin Mail::SpamAssassin::Plugin::RelayCountry
</pre>
<p>Jetzt können noch eigene Regeln geschrieben werden, um Mails aus bestimmten Ländern abzuwerten. Dazu muss ans Ende von <strong>/etc/spamassassin/local.cf</strong> folgendes:</p>
<pre class="brush: plain; title: ; notranslate">
ifplugin Mail::SpamAssassin::Plugin::RelayCountry
add_header all Relay-Country _RELAYCOUNTRY_
header RELAYCOUNTRY_BAD X-Relay-Countries =~ /(CN|RU|UA|RO|VN)/
describe RELAYCOUNTRY_BAD Relayed through spammy country at some point
score RELAYCOUNTRY_BAD 2.0

header RELAYCOUNTRY_GOOD X-Relay-Countries =~ /^(DE|AT|CH)/
describe RELAYCOUNTRY_GOOD First untrusted GW is&amp;nbsp;DE, AT or CH
score RELAYCOUNTRY_GOOD -0.5
endif # Mail::SpamAssassin::Plugin::RelayCountry
</pre>
<p>Damit bekommt jede Mail, die durch ein SMTP-Relay in China, Russland, Ukraine, Rumänien oder Vietnam geroutet wurde, automatisch zwei Punkte. Im Gegenzug ziehe ich 0,5 Punkte ab, wenn das <strong>letzte</strong> Relay in Deutschland, Österreich oder der Schweiz stand.</p>
<p>Damit lässt sich das Ganze auch gut testen. Nach einem Neustart von SpamAssassin oder Amavis sollte bei jeder Mail, die aus Deutschland eintrudelt, folgender Check im Header stehen:</p>
<figure id="attachment_148" aria-describedby="caption-attachment-148" style="width: 300px" class="wp-caption alignnone"><a href="https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-relaycountry-good.png" rel="attachment wp-att-148"><img decoding="async" class="size-medium wp-image-148" src="https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-relaycountry-good-300x49.png" alt="SpamAssassin Erkennungsrate Verbessern: Relaycountry_Good" width="300" height="49" srcset="https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-relaycountry-good-300x49.png 300w, https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-relaycountry-good.png 474w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-148" class="wp-caption-text">RELAYCOUNTRY_GOOD</figcaption></figure>
<p>Im Gegenzug bei Mails aus den o.g. Ländern:</p>
<figure id="attachment_149" aria-describedby="caption-attachment-149" style="width: 300px" class="wp-caption alignnone"><a href="https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-relaycountry-bad.png" rel="attachment wp-att-149"><img loading="lazy" decoding="async" class="size-medium wp-image-149" src="https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-relaycountry-bad-300x67.png" alt="SpamAssassin Erkennungsrate verbessern: Relaycountry_Bad" width="300" height="67" srcset="https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-relaycountry-bad-300x67.png 300w, https://www.syn-flut.de/wp-content/uploads/2016/03/spamassassin-relaycountry-bad.png 498w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-149" class="wp-caption-text">RELAYCOUNTRY_BAD</figcaption></figure>
<p>&nbsp;</p>
<h2>Verwendet zusätzliche Plugins</h2>
<p>Ich habe kürzlich ein gutes SpamAssassin Plugin von eXtremeSHOK gefunden, welches die &#8220;From&#8221; und &#8220;Reply-To&#8221; Header vergleicht. Gibt es dort Unterschiede, bekommt die Mail direkt ein paar Punkte. Je nachdem, ob sich auch die Domain unterscheidet, sind es zwei bzw. direkt fünf Punkte. Bei meinem Test ist mir oft aufgefallen, dass bei Spam-Mails hier unterschiedliche Domains verwendet werden. Diesen Tipp habe ich persönlich erst zum Schluss entdeckt und eingebaut. Seitdem kam überhaupt kein SPAM mehr durch.</p>
<p>Die Installation ist unter Ubuntu 14.04 sehr einfach:</p>
<pre class="brush: bash; title: ; notranslate">
cd /tmp
wget&amp;nbsp;https://github.com/extremeshok/spamassassin-extremeshok_fromreplyto/archive/1.3.1.tar.gz
tar -zxvf 1.3.1.tar.gz
mkdir /etc/mail/spamassassin/plugins/
cp plugins/* /etc/mail/spamassassin/plugins/
cp 01_extremeshok_fromreplyto.cf /etc/mail/spamassassin
</pre>
<p>Das war&#8217;s schon, anschließend muss noch Amavis oder der spamd neu gestartet werden. Getestet werden kann das Plugin, indem man sich selbst eine Mail schickt. Anschließend sollte der Check <strong>FROM_IS_TO</strong> im Mailheader auftauchen.</p>
<p>&nbsp;</p>
<h2>Modifiziert die Punktevergabe</h2>
<p>Noch ein Kurztipp am Ende. Dieser Tipp ist relativ &#8220;advanced&#8221;, da man genau wissen sollte, was man verändert.</p>
<p>Mittels&nbsp;der Datei /etc/spamassassin/local.cf können die Standardwerte der Punktevergabe für Checks verändert werden. Ich habe bei mir die vergebenen Punkte erhöht, wenn eine Domain oder ein Link in einer DNSBL auftaucht:</p>
<pre class="brush: plain; title: ; notranslate">
score RCVD_IN_BL_SPAMCOP_NET 0 5.246 0 5.347
score RCVD_IN_BRBL_LASTEXT 0 5.246 0 5.347
score URIBL_BLACK 0 5.7 0 5.7
score URIBL_WS_SURBL 0 2.659 0 2.608
score URIBL_MW_SURBL 0 2.263 0 2.263
score URIBL_CR_SURBL 0 2.263 0 2.263
score URIBL_GREY 0 2.084 0 1.424
score URIBL_DBL_SPAM    0 4.5 0 4.5
score URIBL_DBL_PHISH   0 4.5 0 4.5
score URIBL_DBL_MALWARE 0 4.5 0 4.5
score URIBL_DBL_BOTNETCC 0 4.5 0 4.5
score URIBL_DBL_ABUSE_SPAM 0 4.0 0 4.0
score URIBL_DBL_ABUSE_PHISH 0 4.5 0 4.5
score URIBL_DBL_ABUSE_MALW  0 4.5 0 4.5
score URIBL_DBL_ABUSE_BOTCC 0 4.5 0 4.5
</pre>
<p>Der Beitrag <a href="https://www.syn-flut.de/spamassassin-erkennungsrate-verbessern">SpamAssassin Erkennungsrate (deutlich) verbessern</a> erschien zuerst auf <a href="https://www.syn-flut.de">SYN-FLUT.de</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.syn-flut.de/spamassassin-erkennungsrate-verbessern/feed</wfw:commentRss>
			<slash:comments>24</slash:comments>
		
		
			</item>
	</channel>
</rss>
