<?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>ra23.net &#187; milter-smf-spamd</title>
	<atom:link href="http://ra23.net/wop/category/sendmail/milter-smf-spamd/feed/" rel="self" type="application/rss+xml" />
	<link>http://ra23.net/wop</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 08 Mar 2010 18:14:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SMF-SPAMD ein wenig aufgebohrt</title>
		<link>http://ra23.net/wop/2009/08/smf-spamd-ein-wenig-aufgebohrt/</link>
		<comments>http://ra23.net/wop/2009/08/smf-spamd-ein-wenig-aufgebohrt/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 02:02:40 +0000</pubDate>
		<dc:creator>Andre Rein</dc:creator>
				<category><![CDATA[milter-smf-spamd]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[milter]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[smf-spamd]]></category>
		<category><![CDATA[Spam]]></category>

		<guid isPermaLink="false">http://ra23.net/wop/?p=20</guid>
		<description><![CDATA[Ich benutze schon eine ganze Weile die  Milter smf-* von Eugene Kurmanin
für Sendmail und bin sehr zufrieden damit.
Das Programm smf-spamd dient dazu Emails an SpamAssassin weiter zu reichen.
Wenn ein bestimmer einstellbarer Grenzwert bei der Überprüfung überschritten wird (in meinem Fall 15 Punkte), wird die Email mit einer Fehlermeldung abgelehnt.
Da ich unter anderem Emails von [...]]]></description>
			<content:encoded><![CDATA[<p>Ich benutze schon eine ganze Weile die <a href="http://smfs.sourceforge.net/index.html"> Milter smf-*</a> von Eugene Kurmanin<br />
für <a href="http://www.sendmail.org">Sendmail</a> und bin sehr zufrieden damit.<br />
Das Programm smf-spamd dient dazu Emails an <a href="http://spamassassin.apache.org/">SpamAssassin</a> weiter zu reichen.<br />
Wenn ein bestimmer einstellbarer Grenzwert bei der Überprüfung überschritten wird (in meinem Fall 15 Punkte), wird die Email mit einer Fehlermeldung abgelehnt.</p>
<p>Da ich unter anderem Emails von einem Server empfange der keinen Spamfilter verwendet, in dem speziellen Fall ist es eine Weiterleitung, werden auch sämtliche Mails abgelehnt die in diesem Fall über 15 Punkten liegen.<br />
Dies resultiert dann auf dem externen Mailserver in einem Mailer Error der an mich gerichtet ist und die Spam Mail ist im Anhang der Error Mail.</p>
<p>Damit ist natürlich nicht viel gewonnen und bedeutet nur Mehrarbeit.<br />
Eine Möglichkeit wäre den Host in die generelle Whitelist zu packen, dann wird die Mail aber schon beim eigentlichen Connect direkt durchgelassen ohne das eine Prüfung auf Spam erfolgt. </p>
<p>Der hier aufgeführte Patch führt eine zusätzliche Whitelist ein, die dieses Verhalten ändert.<br />
Kommt eine Mail von einem Host dessen IP in der extra Whitelist steht, wird sie vom Server nie abgelehnt, sondern sie durchläuft die Prüfung durch SpamAssassin. Es spielt keine Rolle ob sie als EXTRA SPAM identifiziert wurde, sie wird ganz normal weitergeleitet, jedoch wird wie gewünscht das Subject richtig umgeschrieben und kann somit lokal direkt in den Spamordner geschoben werden.</p>
<p><a href="http://ra23.net/wop/?attachment_id=19">Patch für smf-spamd -&gt; Download</a></p>

<div class="wp_syntax"><div class="code"><pre class="diff" style="font-family:monospace;">diff -up -r smf-spamd-1.3.1/smf-config.h smf-spamd-1.3.1-modded/smf-config.h
<span style="color: #888822;">--- smf-spamd-1.3.1/smf-config.h	<span style="">2007</span>-01-<span style="">18</span> <span style="">15</span>:<span style="">35</span>:<span style="">08.000000000</span> +0100</span>
<span style="color: #888822;">+++ smf-spamd-1.3.1-modded/smf-config.h	<span style="">2009</span>-08-08 03:<span style="">51</span>:<span style="">05.000000000</span> +0200</span>
<span style="color: #440088;">@@ -<span style="">5</span>,<span style="">10</span> +<span style="">5</span>,<span style="">13</span> @@</span>
  */
&nbsp;
 /* Hosts/Networks whitelist <span style="">&#40;</span>extended regex format<span style="">&#41;</span> */
<span style="color: #991111;">-#define WHITE_LIST	&quot;<span style="">&#40;</span>^<span style="">127</span>\\.|^<span style="">192</span>\\.168\\.|^<span style="">10</span>\\.<span style="">&#41;</span>&quot;</span>
<span style="color: #00b000;">+#define WHITE_LIST     &quot;<span style="">&#40;</span>^<span style="">127</span>\\.|^<span style="">192</span>\\.168\\.|^<span style="">10</span>\\.<span style="">&#41;</span>&quot;</span>
<span style="color: #00b000;">+</span>
<span style="color: #00b000;">+/* Hosts/Networks which probably send EXTRA SPAM and should not be blocked*/</span>
<span style="color: #00b000;">+#define WHITE_LIST_EXTRA   &quot;<span style="">&#40;</span>^<span style="">1</span>\\.2\\.3\\.<span style="">&#41;</span>&quot;</span>
&nbsp;
 /* Maximal message size */
<span style="color: #991111;">-#define MAX_SIZE	<span style="">131072</span> /* bytes */</span>
<span style="color: #00b000;">+#define MAX_SIZE	<span style="">5131072</span> /* bytes */</span>
&nbsp;
 /* Probable SPAM e-Mail messages Subject tagging */
 #define TAG_SUBJECT	<span style="">1</span> /* set <span style="">0</span> to disable */
diff -up -r smf-spamd-1.3.1/smf-spamd.c smf-spamd-1.3.1-modded/smf-spamd.c
<span style="color: #888822;">--- smf-spamd-1.3.1/smf-spamd.c	<span style="">2007</span>-01-<span style="">18</span> <span style="">15</span>:<span style="">35</span>:<span style="">08.000000000</span> +0100</span>
<span style="color: #888822;">+++ smf-spamd-1.3.1-modded/smf-spamd.c	<span style="">2009</span>-08-08 02:<span style="">43</span>:<span style="">33.000000000</span> +0200</span>
<span style="color: #440088;">@@ -<span style="">91</span>,<span style="">6</span> +<span style="">91</span>,<span style="">10</span> @@ int daemon<span style="">&#40;</span>int nochdir, int noclose<span style="">&#41;</span> <span style="">&#123;</span></span>
 static const char *ignore_connect = WHITE_LIST;
 static regex_t re_ignore_connect;
&nbsp;
<span style="color: #00b000;">+static const char *no_ignore_connect = WHITE_LIST_EXTRA;</span>
<span style="color: #00b000;">+static regex_t no_re_ignore_connect;</span>
<span style="color: #00b000;">+</span>
<span style="color: #00b000;">+</span>
 struct context <span style="">&#123;</span>
     char addr<span style="">&#91;</span><span style="">64</span><span style="">&#93;</span>;
     char fqdn<span style="">&#91;</span>MAXLINE<span style="">&#93;</span>;
<span style="color: #440088;">@@ -<span style="">470</span>,<span style="">12</span> +<span style="">474</span>,<span style="">18</span> @@ static sfsistat smf_eom<span style="">&#40;</span>SMFICTX *ctx<span style="">&#41;</span> <span style="">&#123;</span></span>
     elapsed = context-&gt;tend.tv_sec - context-&gt;tstart.tv_sec + <span style="">&#40;</span>context-&gt;tend.tv_usec - context-&gt;tstart.tv_usec<span style="">&#41;</span> / 1.0e6;
     if <span style="">&#40;</span>ret == <span style="">1</span><span style="">&#41;</span> <span style="">&#123;</span>
 	if <span style="">&#40;</span>context-&gt;score &gt;= EXTRA_SPAM<span style="">&#41;</span> <span style="">&#123;</span>
<span style="color: #00b000;">+	  // if there is an entry in WHITELIST_EXTRA do not reject the message;</span>
<span style="color: #00b000;">+	  if <span style="">&#40;</span>no_ignore_connect<span style="">&#91;</span><span style="">0</span><span style="">&#93;</span> &amp;&amp; regexec<span style="">&#40;</span>&amp;no_re_ignore_connect, context-&gt;addr, <span style="">0</span>, NULL, <span style="">0</span><span style="">&#41;</span><span style="">&#41;</span><span style="">&#123;</span></span>
 	    char reject<span style="">&#91;</span>MAXLINE<span style="">&#93;</span>;
&nbsp;
 	    syslog<span style="">&#40;</span>LOG_NOTICE, &quot;EXTRA SPAM <span style="">&#40;</span>%.1f/%.1f<span style="">&#41;</span>, %.3fsec, %s, %s -&gt; %s&quot;, context-&gt;score, context-&gt;threshold, elapsed, context-&gt;fqdn, context-&gt;from, context-&gt;rcpt<span style="">&#41;</span>;
 	    snprintf<span style="">&#40;</span>reject, sizeof<span style="">&#40;</span>reject<span style="">&#41;</span>, &quot;Sorry, looks like spam. Contact %s to resolve this issue&quot;, CONTACT_ADDRESS<span style="">&#41;</span>;
 	    smfi_setreply<span style="">&#40;</span>ctx, &quot;<span style="">554</span>&quot;, &quot;5.7.1&quot;, reject<span style="">&#41;</span>;
 	    return SMFIS_REJECT;
<span style="color: #00b000;">+          <span style="">&#125;</span></span>
<span style="color: #00b000;">+          else<span style="">&#123;</span></span>
<span style="color: #00b000;">+            syslog<span style="">&#40;</span>LOG_NOTICE, &quot;EXTRA SPAM WHITELISTED <span style="">&#40;</span>%.1f/%.1f<span style="">&#41;</span>, %.3fsec, %s, %s -&gt; %s&quot;, context-&gt;score, context-&gt;threshold, elapsed, context-&gt;fqdn, context-&gt;from, context-&gt;rcpt<span style="">&#41;</span>;</span>
<span style="color: #00b000;">+          <span style="">&#125;</span></span>
 	<span style="">&#125;</span>
 	if <span style="">&#40;</span>REDIRECT_SPAM<span style="">&#41;</span> <span style="">&#123;</span>
 	    if <span style="">&#40;</span>context-&gt;rcpts<span style="">&#41;</span> <span style="">&#123;</span>
<span style="color: #440088;">@@ -<span style="">572</span>,<span style="">6</span> +<span style="">582</span>,<span style="">7</span> @@ int main<span style="">&#40;</span>int argc, char **argv<span style="">&#41;</span> <span style="">&#123;</span></span>
     int ret = <span style="">0</span>;
&nbsp;
     regcomp<span style="">&#40;</span>&amp;re_ignore_connect, ignore_connect, REG_EXTENDED|REG_ICASE<span style="">&#41;</span>;
<span style="color: #00b000;">+    regcomp<span style="">&#40;</span>&amp;no_re_ignore_connect, no_ignore_connect, REG_EXTENDED|REG_ICASE<span style="">&#41;</span>;</span>
     tzset<span style="">&#40;</span><span style="">&#41;</span>;
     openlog<span style="">&#40;</span>&quot;smf-spamd&quot;, LOG_PID|LOG_NDELAY, SYSLOG_FACILITY<span style="">&#41;</span>;
     if <span style="">&#40;</span>!strncmp<span style="">&#40;</span>oconn, &quot;unix:&quot;, <span style="">5</span><span style="">&#41;</span><span style="">&#41;</span></pre></div></div>

<p>Alles weitere zu smf-spamd kann man auf der Seite des Entwicklers nachschaun.</p>
<p>gruss<br />
Andre</p>
]]></content:encoded>
			<wfw:commentRss>http://ra23.net/wop/2009/08/smf-spamd-ein-wenig-aufgebohrt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
