<?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>Lolo's blog &#187; Mail</title>
	<atom:link href="http://blog.unix-scripts.info/category/mail/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.unix-scripts.info</link>
	<description></description>
	<lastBuildDate>Sun, 31 Jan 2010 19:13:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Le bug de l&#8217;an 2010</title>
		<link>http://blog.unix-scripts.info/2010/01/10/le-bug-de-lan-2010/</link>
		<comments>http://blog.unix-scripts.info/2010/01/10/le-bug-de-lan-2010/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 15:24:49 +0000</pubDate>
		<dc:creator>blog</dc:creator>
				<category><![CDATA[Anti Spam]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://blog.unix-scripts.info/?p=167</guid>
		<description><![CDATA[Après le bug de l&#8217;an 2000&#8230;. Y2K10 Rule Bug - Update Your Rules Now! 2010-01-01: Versions of the FH_DATE_PAST_20XX rule released with versions of Apache SpamAssassin 3.2.0 thru 3.2.5 will trigger on most mail with a Date header that includes &#8230; <a href="http://blog.unix-scripts.info/2010/01/10/le-bug-de-lan-2010/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Après le bug de l&#8217;an 2000&#8230;.</p>
<p><code><br />
Y2K10 Rule Bug - Update Your Rules Now!</p>
<p>    2010-01-01:</p>
<p>    Versions of the FH_DATE_PAST_20XX rule released with versions of Apache SpamAssassin 3.2.0 thru 3.2.5 will trigger on most mail with a Date header that includes the year 2010 or later.  The rule will add a score of up to 3.6 towards the spam classification of all email.  You should take corrective action immediately; there are two easy ways to correct the problem:</p>
<p>        * If your system is configured to use sa-update run sa-update now.  An update is available that will correct the rule.  No further action is necessary (other than restarting spamd or any service that uses SpamAssassin directly).</p>
<p>        * Add "score FH_DATE_PAST_20XX 0" without the quotes to the end of your local.cf file to disable the rule.</p>
<p>    If you require help updating your rules to correct this issue you are encouraged to ask for assistance on the Apache SpamAssassin Users' list.  Users' mailing list info is here.</p>
<p>    On behalf of the Apache SpamAssassin project I apologize for this error and the grief it may have caused you.</p>
<p>    Regards,</p>
<p>    Daryl C. W. O'Shea</p>
<p>    VP, Apache SpamAssassin<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.unix-scripts.info/2010/01/10/le-bug-de-lan-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Détection des spams par prise d&#8217;empreinte des paquets TCP</title>
		<link>http://blog.unix-scripts.info/2009/05/06/detection-des-spams-par-prise-dempreinte-des-paquets-tcp/</link>
		<comments>http://blog.unix-scripts.info/2009/05/06/detection-des-spams-par-prise-dempreinte-des-paquets-tcp/#comments</comments>
		<pubDate>Wed, 06 May 2009 20:02:34 +0000</pubDate>
		<dc:creator>blog</dc:creator>
				<category><![CDATA[Anti Spam]]></category>
		<category><![CDATA[Anti Virus]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.unix-scripts.info/?p=138</guid>
		<description><![CDATA[Après la panoplie amavis, bogofilter, spamassassin&#8230;.. p0f p0f permet de déterminer (avec une assez bonne précision) l&#8217;OS d&#8217;une machine distante et ce de manière passive (pas à la manière de NMAP). Comment lancer p0f pour analyser les paquets à destination &#8230; <a href="http://blog.unix-scripts.info/2009/05/06/detection-des-spams-par-prise-dempreinte-des-paquets-tcp/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Après la panoplie amavis, bogofilter, spamassassin&#8230;.. <a href="http://lcamtuf.coredump.cx/p0f.shtml">p0f</a></p>
<p>p0f permet de déterminer (avec une assez bonne précision) l&#8217;OS d&#8217;une machine distante et ce de manière passive (pas à la manière de NMAP).</p>
<p>Comment lancer p0f pour analyser les paquets à destination du port 25 et ne faisant pas partie du lan/vpn/&#8230;. ?</p>
<blockquote>
<p>p0ffilter=&#8221;( not src 127.0.0.1 and not src net 192.168.0.0/16&#8243;</p>
<p>for oneip in `/sbin/ifconfig 2>/dev/null | grep -v 127.0.0.1 | grep &#8216;inet adr&#8217; | sed -e &#8216;s/.*adr://&#8217; -e &#8216;s/ .*//&#8217;`; do<br />
    p0ffilter=&#8221;$p0ffilter and not src host $oneip&#8221;<br />
done</p>
<p>p0ffilter=&#8221;$p0ffilter ) and tcp dst port 25&#8243;</p>
<p>killall p0f<br />
killall p0f-analyzer</p>
<p>nohup /usr/sbin/p0f -i any -l &#8220;$p0ffilter&#8221; 2>&#038;1 | nohup /usr/sbin/p0f-analyzer 2345 >/dev/null &#038;</p>
</blockquote>
<p>Ce script (assez sale il est vrai) permet de lancer p0f.</p>
<p>Une fois p0f lancé il est possible d&#8217;interroger p0f-analyzer en UDP sur le port 2345</p>
<p>Il faut ensuite modifier /etc/amavis/conf.d/50-user<br />
on ajoutera:<br />
$os_fingerprint_method = &#8216;p0f:127.0.0.1:2345&#8242;;</p>
<p>on relance ensuite amavis (/etc/init.d/amavisd restart)</p>
<p>Il faut ensuite créer /etc/spamassassin/p0f.cf contenant:</p>
<blockquote>
<p>header   P0F_WIN311   X-p0f-OS =~ /^Windows 3.11/<br />
score    P0F_WIN311   3.0<br />
describe P0F_WIN311   Client is running Windows 3.11</p>
<p>header   P0F_WIN95    X-p0f-OS =~ /^Windows 95/<br />
score    P0F_WIN95    3.0<br />
describe P0F_WIN95    Client is running Windows 95</p>
<p>header   P0F_WIN98    X-p0f-OS =~ /^Windows 98/<br />
score    P0F_WIN98    3.0<br />
describe P0F_WIN98    Client is running Windows 98</p>
<p>header   P0F_WINME    X-p0f-OS =~ /^Windows ME/<br />
score    P0F_WINME    3.0<br />
describe P0F_WINME    Client is running Windows ME</p>
<p>header   P0F_WINNT    X-p0f-OS =~ /^Windows NT/<br />
score    P0F_WINNT    0.5<br />
describe P0F_WINNT    Client is running Windows NT</p>
<p>header   P0F_WIN2K    X-p0f-OS =~ /^Windows 2000(?!.*XP)/<br />
score    P0F_WIN2K    1.5<br />
describe P0F_WIN2K    Client is running Windows 2000</p>
<p>header   P0F_WINXP    X-p0f-OS =~ /^Windows XP(?!.*2000)/<br />
score    P0F_WINXP    2.5<br />
describe P0F_WINXP    Client is running Windows XP</p>
<p>header   P0F_WINXP2K  X-p0f-OS =~ /^Windows (XP.+2000|2000.+XP)/<br />
score    P0F_WINXP2K  1.5<br />
describe P0F_WINXP2K  Client is running Windows 2000 or XP</p>
<p>header   P0F_WIN2K3   X-p0f-OS =~ /^Windows 2003/<br />
score    P0F_WIN2K3   0.2<br />
describe P0F_WIN2K3   Client is running Windows 2003</p>
<p>header   P0F_WINNET   X-p0f-OS =~ /^Windows \.NET/<br />
score    P0F_WINNET   0.2<br />
describe P0F_WINNET   Client is running Windows .NET Enterprise Server</p>
<p>header   P0F_WINCE    X-p0f-OS =~ /^Windows CE/<br />
score    P0F_WINCE    0.1<br />
describe P0F_WINCE    Client is running Windows CE</p>
<p>header   P0F_WINVISTA X-p0f-OS =~ /^Windows Vista/<br />
score    P0F_WINVISTA 2.5<br />
describe P0F_WINVISTA Client is running Windows Vista</p>
<p>header   P0F_MACOS    X-p0f-OS =~ /^MacOS/<br />
score    P0F_MACOS    0.1<br />
describe P0F_MACOS    Client is running Mac OS</p>
<p>header   P0F_FREEBSD  X-p0f-OS =~ /^FreeBSD/<br />
score    P0F_FREEBSD  -0.1<br />
describe P0F_FREEBSD  Client is running FreeBSD</p>
<p>header   P0F_OPENBSD  X-p0f-OS =~ /^OpenBSD/<br />
score    P0F_OPENBSD  -1.0<br />
describe P0F_OPENBSD  Client is running OpenBSD</p>
<p>header   P0F_NETBSD   X-p0f-OS =~ /^NetBSD/<br />
score    P0F_NETBSD   -1.0<br />
describe P0F_NETBSD   Client is running NetBSD</p>
<p>header   P0F_SOLARIS  X-p0f-OS =~ /^Solaris/<br />
score    P0F_SOLARIS  -1.0<br />
describe P0F_SOLARIS  Client is running Solaris</p>
<p>header   P0F_HPUX     X-p0f-OS =~ /^HP-UX/<br />
score    P0F_HPUX     -1.0<br />
describe P0F_HPUX     Client is running HP-UX</p>
<p>header   P0F_TRU64    X-p0f-OS =~ /^Tru64/<br />
score    P0F_TRU64    -1.0<br />
describe P0F_TRU64    Client is running Tru64</p>
<p>header   P0F_AIX      X-p0f-OS =~ /^AIX/<br />
score    P0F_AIX      -1.0<br />
describe P0F_AIX      Client is running AIX</p>
<p>header   P0F_LINUX    X-p0f-OS =~ /^Linux/<br />
score    P0F_LINUX    -0.5<br />
describe P0F_LINUX    Client is running Linux</p>
<p>header   P0F_SUNOS    X-p0f-OS =~ /^SunOS/<br />
score    P0F_SUNOS    -1.0<br />
describe P0F_SUNOS    Client is running SunOS</p>
<p>header   P0F_IRIX     X-p0f-OS =~ /^IRIX/<br />
score    P0F_IRIX     -1.0<br />
describe P0F_IRIX     Client is running IRIX</p>
<p>header   P0F_OPENVMS  X-p0f-OS =~ /^OpenVMS/<br />
score    P0F_OPENVMS  -1.0<br />
describe P0F_OPENVMS  Client is running OpenVMS</p>
<p>header   P0F_RISCOS   X-p0f-OS =~ /^RISC OS/<br />
score    P0F_RISCOS   -1.0<br />
describe P0F_RISCOS   Client is running RISC OS</p>
<p>header   P0F_BSD      X-p0f-OS =~ /^BSD/<br />
score    P0F_BSD      -1.0<br />
describe P0F_BSD      Client is running BSD/OS</p>
<p>header   P0F_NEWTON   X-p0f-OS =~ /^NewtonOS/<br />
score    P0F_NEWTON   0.1<br />
describe P0F_NEWTON   Client is running NewtonOS</p>
<p>header   P0F_NEXT     X-p0f-OS =~ /^NeXTSTEP/<br />
score    P0F_NEXT     -1.0<br />
describe P0F_NEXT     Client is running NeXTSTEP</p>
<p>header   P0F_BEOS     X-p0f-OS =~ /^BeOS/<br />
score    P0F_BEOS     -1.0<br />
describe P0F_BEOS     Client is running BeOS</p>
<p>header   P0F_OS400    X-p0f-OS =~ /^OS\/400/<br />
score    P0F_OS400    -1.0<br />
describe P0F_OS400    Client is running OS/400</p>
<p>header   P0F_ULTRIX   X-p0f-OS =~ /^ULTRIX/<br />
score    P0F_ULTRIX   -1.0<br />
describe P0F_ULTRIX   Client is running ULTRIX</p>
<p>header   P0F_QNX      X-p0f-OS =~ /^QNX/<br />
score    P0F_QNX      -1.0<br />
describe P0F_QNX      Client is running QNX</p>
<p>header   P0F_NETWARE  X-p0f-OS =~ /^Novell NetWare/<br />
score    P0F_NETWARE  2.0<br />
describe P0F_NETWARE  Client is running NetWare</p>
<p>header   P0F_INTRANETWARE X-p0f-OS =~ /^Novell IntranetWare/<br />
score    P0F_INTRANETWARE 2.0<br />
describe P0F_INTRANETWARE Client is running IntranetWare</p>
<p>header   P0F_BORDERMGR    X-p0f-OS =~ /^Novell BorderManager/<br />
score    P0F_BORDERMGR    2.0<br />
describe P0F_BORDERMGR    Client is running BorderManager</p>
<p>header   P0F_SCO          X-p0f-OS =~ /^SCO/<br />
score    P0F_SCO          -1.0<br />
describe P0F_SCO          Client is running SCO</p>
<p>header   P0F_DOS          X-p0f-OS =~ /^DOS/<br />
score    P0F_DOS          3.0<br />
describe P0F_DOS          Client is running DOS</p>
<p>header   P0F_OS2          X-p0f-OS =~ /^OS\/2/<br />
score    P0F_OS2          2.0<br />
describe P0F_OS2          Client is running OS/2</p>
<p>header   P0F_TOPS20       X-p0f-OS =~ /^TOPS-20/<br />
score    P0F_TOPS20       -1.0<br />
describe P0F_TOPS20       Client is running TOPS-20</p>
<p>header   P0F_AMIGA        X-p0f-OS =~ /^AMIGA/<br />
score    P0F_AMIGA        1.0<br />
describe P0F_AMIGA        Client is running AMIGAOS</p>
<p>header   P0F_MINIX        X-p0f-OS =~ /Minix/<br />
score    P0F_MINIX        -1.0<br />
describe P0F_MINIX        Client is running Minix</p>
<p>header   P0F_PLAN9        X-p0f-OS =~ /^Plan9/<br />
score    P0F_PLAN9        -1.0<br />
describe P0F_PLAN9        Client is running Plan9</p>
<p>header   P0F_FREEMINT     X-p0f-OS =~ /^FreeMiNT/<br />
score    P0F_FREEMINT     1.0<br />
describe P0F_FREEMINT     Client is running FreeMiNT</p>
<p>header   P0F_NETCACHE     X-p0f-OS =~ /^NetCache/<br />
score    P0F_NETCACHE     -0.1<br />
describe P0F_NETCACHE     Client is running NetCache</p>
<p>header   P0F_CACHEFLOW    X-p0f-OS =~ /^CacheFlow/<br />
score    P0F_CACHEFLOW    -0.1<br />
describe P0F_CACHEFLOW    Client is running CacheFlow</p>
<p>header   P0F_POWERAPP     X-p0f-OS =~ /^Dell PowerApp/<br />
score    P0F_POWERAPP     -0.1<br />
describe P0F_POWERAPP     Client is running PowerApp</p>
<p>header   P0F_PALMOS       X-p0f-OS =~ /^PalmOS/<br />
score    P0F_PALMOS       0.1<br />
describe P0F_PALMOS       Client is running PalmOS</p>
<p>header   P0F_SYMBIANOS    X-p0f-OS =~ /^SymbianOS/<br />
score    P0F_SYMBIANOS    0.1<br />
describe P0F_SYMBIANOS    Client is running SymbianOS</p>
<p>header   P0F_ZAURUS       X-p0f-OS =~ /^Zaurus/<br />
score    P0F_ZAURUS       0.1<br />
describe P0F_ZAURUS       Client is running Zaurus</p>
<p>header   P0F_POCKETPC     X-p0f-OS =~ /^PocketPC/<br />
score    P0F_POCKETPC     0.1<br />
describe P0F_POCKETPC     Client is running PocketPC</p>
<p>header   P0F_CONTIKI      X-p0f-OS =~ /^Contiki/<br />
score    P0F_CONTIKI      0.1<br />
describe P0F_CONTIKI      Client is running Contiki</p>
<p>header   P0F_PLAYSTATION  X-p0f-OS =~ /^Sony Playstation/<br />
score    P0F_PLAYSTATION  3.0<br />
describe P0F_PLAYSTATION  Client is running Sony Playstation</p>
<p>header   P0F_DREAMCAST    X-p0f-OS =~ /^Sega Dreamcast/<br />
score    P0F_DREAMCAST    3.0<br />
describe P0F_DREAMCAST    Client is running Sega Dreamcast</p>
<p>header   P0F_UNKNOWN      X-p0f-OS =~ /^UNKNOWN/<br />
score    P0F_UNKNOWN      0.8<br />
describe P0F_UNKNOWN      Client OS is unknown
</p></blockquote>
<p>redémarrons spamassassin (/etc/init.d/spamassassin restart)</p>
<p>Si tout va bien l&#8217;entete X-Amavis-OS-Fingerprint: apparait dans les mails.</p>
<p>Spamassassin peut donc &#8220;scorer&#8221; les mails en fonction de cet entete.</p>
<p>! Attention ! Il faut une version >= 2.4.3 de amavisd</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.unix-scripts.info/2009/05/06/detection-des-spams-par-prise-dempreinte-des-paquets-tcp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips procmail</title>
		<link>http://blog.unix-scripts.info/2006/04/18/tips-procmail/</link>
		<comments>http://blog.unix-scripts.info/2006/04/18/tips-procmail/#comments</comments>
		<pubDate>Tue, 18 Apr 2006 14:28:33 +0000</pubDate>
		<dc:creator>blog</dc:creator>
				<category><![CDATA[Procmail]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://blog.unix-scripts.info/2006/04/18/tips-procmail/</guid>
		<description><![CDATA[Comment préfixer certains mails par une chaine de caracteres arbitraire: Je souhaite par exemple ajouter la date du jour au format JJ-MM-AAAA HH:MM devant tous les sujets de mes nouveaux mails: dans mon ~/.procmailrc j&#8217;ajoute: :0 * { SUBJECT=`formail -zxSubject:` &#8230; <a href="http://blog.unix-scripts.info/2006/04/18/tips-procmail/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Comment préfixer certains mails par une chaine de caracteres arbitraire:</p>
<p>Je souhaite par exemple ajouter la date du jour au format JJ-MM-AAAA HH:MM devant tous les sujets de mes nouveaux mails:</p>
<p>dans mon ~/.procmailrc j&#8217;ajoute:</p>
<p>:0<br />
*<br />
{<br />
SUBJECT=`formail -zxSubject:`<br />
SUBDATE=`date +%d-%m-%Y\ %H:%M`<br />
:0fhw<br />
| formail -I&#8221;Subject: [$SUBDATE] $SUBJECT&#8221;<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.unix-scripts.info/2006/04/18/tips-procmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>De l&#8217;utilisation de /etc/procmailrc ou ~/.procmailrc</title>
		<link>http://blog.unix-scripts.info/2006/04/17/de-lutilisation-de-etcprocmailrc-ou-procmailrc/</link>
		<comments>http://blog.unix-scripts.info/2006/04/17/de-lutilisation-de-etcprocmailrc-ou-procmailrc/#comments</comments>
		<pubDate>Mon, 17 Apr 2006 19:11:04 +0000</pubDate>
		<dc:creator>blog</dc:creator>
				<category><![CDATA[Anti Spam]]></category>
		<category><![CDATA[Procmail]]></category>

		<guid isPermaLink="false">http://blog.unix-scripts.info/?p=5</guid>
		<description><![CDATA[L&#8217;idée de ce post est de présenter un ~/.procmailrc commenté: #BOF #Constantes DATE=`date +%Y-%m` #Emplacement du dossier ou les mails seront délivrés MAILDIR=$HOME/Maildir #Emplacement ou le mail est sauvegardé en dernier ressort en cas de problème ORGMAIL=$HOME/Maildir #Mails sans importance &#8230; <a href="http://blog.unix-scripts.info/2006/04/17/de-lutilisation-de-etcprocmailrc-ou-procmailrc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>L&#8217;idée de ce post est de présenter un ~/.procmailrc commenté:</p>
<p>#BOF<br />
#Constantes<br />
DATE=`date +%Y-%m`<br />
#Emplacement du dossier ou les mails seront délivrés<br />
MAILDIR=$HOME/Maildir<br />
#Emplacement ou le mail est sauvegardé en dernier ressort en cas de problème<br />
ORGMAIL=$HOME/Maildir<br />
#Mails sans importance (publicités&#8230;)<br />
JUNKMAIL=.Junk/<br />
#Répertoire dans lequel on stocke les .lock de formail, procmail&#8230;<br />
HOMEMAIL=$HOME/Mail<br />
#Log de procmail<br />
LOGFILE=/tmp/$LOGNAME-procmail.log<br />
#Mode volubile<br />
VERBOSE=on<br />
#Fichiers de white/black list permettant de whitelister/blacklister un domaine/expéditeur<br />
WHITE_LIST=$HOME/.white-list<br />
BLACK_LIST=$HOME/.black-list<br />
#Fichier inclus (comme un include en PHP par exemple)<br />
INCLUDERC=$HOME/.procmailinclude<br />
#Permet de stopper le traitement si la machine ne s&#8217;appelle pas gw (utile en cas de montage de $HOME à travers NFS)<br />
HOST=gw</p>
<p>########## Traitements procmail #########</p>
<p>#On déplace les mails ayant des &#8220;charset&#8221; très peu utilisés en europe de l&#8217;ouest dans le dossier Spam</p>
<p>UNREADABLE=&#8217;[^?"]*big5|iso-2022-jp|ISO-2022-KR|euc-kr|gb2312|ks_c_5601-1987&#8242;<br />
:0:<br />
* 10 $ ^Subject:.*=\?($UNREADABLE)<br />
* 10 $ ^Content-Type:.*charset=&#8221;?($UNREADABLE)<br />
.Spam/</p>
<p>:0:<br />
* ^Content-Type:.*multipart<br />
* B?? $ ^Content-Type:.*^?.*charset=&#8221;?($UNREADABLE)<br />
.Spam/</p>
<p>#Si l&#8217;expéditeur est dans la whitelist, on ajoute un entete X-Whitelist positionné à Yes</p>
<p>:0<br />
* ? formail -x&#8221;From&#8221; -x&#8221;From:&#8221; -x&#8221;Sender:&#8221; | egrep -is -f $WHITE_LIST<br />
{<br />
:0 fwh<br />
| formail -a&#8221;X-Whitelist: Yes&#8221;<br />
}</p>
<p>#Tag des mails grâce à bogofilter &#038; Razor (On ne traite que les mails de moins de 128ko)<br />
:0fw<br />
* < 128000<br />
| bogofilter -upelv</p>
<p>:0e<br />
{ EXITCODE=75 HOST }</p>
<p>:0Wc<br />
* < 128000<br />
* ^X-Bogosity: Unsure.*<br />
| razor-check<br />
#On marque les spams reconnus par razor par un header X-Razor-Spam<br />
:0af<br />
| formail -A &#8220;X-Razor-Spam: YES&#8221;</p>
<p>#Tag des spams reconnus par razor par un sujet ****SPAM****<br />
:0<br />
* ^X-Razor-Spam: YES<br />
{<br />
SUBJECT=`formail -zxSubject:`</p>
<p>:0fhw<br />
| formail -I&#8221;Subject: ****SPAM**** $SUBJECT&#8221;<br />
}</p>
<p>#Si un mail a été détecté comme spam et que l&#8217;expéditeur est dans la liste blanche, alors le faire réapprendre comme courrier sollicité (Ham)</p>
<p>:0c<br />
* ^X-Bogosity: Yes<br />
* ^X-Whitelist: Yes<br />
| bogofilter -Nl</p>
<p>#Si le mail a été détecté comme spam alors le déplacer dans le dossier adéquat.<br />
:0<br />
* ^X-Bogosity.*spamicity=1\.0<br />
$JUNKMAIL<br />
:0<br />
* ^X-Bogosity.*spamicity=0\.9[56789]<br />
$JUNKMAIL<br />
:0<br />
* ^X-(Spam-Flag|Razor-Spam): YES<br />
$JUNKMAIL</p>
<p>#Emettre un bip si le mail est destiné à la boite principale<br />
BEEP=`/usr/bin/beep -f 1000 -n -f 2000 -n -f 1500`</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.unix-scripts.info/2006/04/17/de-lutilisation-de-etcprocmailrc-ou-procmailrc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Se protéger du spam grâce à razor</title>
		<link>http://blog.unix-scripts.info/2006/04/17/se-proteger-du-spam-grace-a-razor/</link>
		<comments>http://blog.unix-scripts.info/2006/04/17/se-proteger-du-spam-grace-a-razor/#comments</comments>
		<pubDate>Mon, 17 Apr 2006 18:23:09 +0000</pubDate>
		<dc:creator>blog</dc:creator>
				<category><![CDATA[Anti Spam]]></category>
		<category><![CDATA[Procmail]]></category>

		<guid isPermaLink="false">http://blog.unix-scripts.info/?p=4</guid>
		<description><![CDATA[Dans le précédent article (bogofilter), nous avions vu comment tagguer les Spams après une phase d&#8217;apprentissage.Nous allons voir comment aller plus loin grâce à Razor (http://razor.sourceforge.net/), un réseau collaboratif de &#8220;détection de spams&#8221;. Comment cela fonctionne? Un utilisateur rapporte un &#8230; <a href="http://blog.unix-scripts.info/2006/04/17/se-proteger-du-spam-grace-a-razor/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dans le précédent article (bogofilter), nous avions vu comment tagguer les Spams après une phase d&#8217;apprentissage.Nous allons voir comment aller plus loin grâce à Razor (http://razor.sourceforge.net/), un réseau collaboratif de &#8220;détection de spams&#8221;.</p>
<p>Comment cela fonctionne?</p>
<p>Un utilisateur rapporte un spam. Une empreinte est alors générée (comme une empreinte digitale). Tout futur mail dont l&#8217;empreinte correspond à une empreinte de spam connue sera à 100% un SPAM. Il est donc possible, étant donné que les apsmmeurs envoient en masse des centaines de milliers de fois le même mail, de s&#8217;en protéger efficacement.<br />
J&#8217;utilise cette solution conjointement à bogofilter.</p>
<p>Bogofilter fonctionne dans un mode à trois etats:</p>
<p>Ham, Unsure, et Spam.</p>
<p>Ham: Le mail est un mail souhaité</p>
<p>Unsure: Bogofilter est &#8220;indécis&#8221; sur la nature du mail (cas épineux)</p>
<p>Spam: Bogofilter a de grandes présomptions d&#8217;avoir découvert un spam.</p>
<p>Afin de limiter les traitements inutiles, j&#8217;ai décidé de n&#8217;utiliser razor que dans les cas ou bogofilter marque un mail comme unsure.</p>
<p>Comment faire techniquement?</p>
<p>Après avoir installé razor:</p>
<p>razor-admin -create &#038;&#038; razor-admin -discover</p>
<p>Passons à l&#8217;édition du ~/.procmailrc</p>
<p>## Razor<br />
:0Wc<br />
* < 128000<br />
* ^X-Bogosity: Unsure.*<br />
| razor-check</p>
<p>#Ce bloc passe à razor les mails de taille inférieurs à 128ko pour lesquels bogofilter à renvoyé un etat incertain<br />
:0af<br />
| formail -A &#8220;X-Razor-Spam: YES&#8221;</p>
<p>#Si razor détecte un spam, alors on ajoute une entete X-Razor-Spam dans le mail</p>
<p>:0<br />
* ^X-Razor-Spam: YES<br />
{<br />
SUBJECT=`formail -zxSubject:`</p>
<p>:0fhw<br />
| formail -I&#8221;Subject: ****SPAM**** $SUBJECT&#8221;<br />
}</p>
<p>#Razor n&#8217;ajoutant pas de chaine spécifique au sujet, nous l&#8217;ajoutons</p>
<p>:0<br />
* ^X-Razor-Spam: YES<br />
.Spam/</p>
<p>#Si le mail est marqué comme spam par razor, on le déplace dans le dossier Spam</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.unix-scripts.info/2006/04/17/se-proteger-du-spam-grace-a-razor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bogofilter</title>
		<link>http://blog.unix-scripts.info/2006/04/17/bogofilter/</link>
		<comments>http://blog.unix-scripts.info/2006/04/17/bogofilter/#comments</comments>
		<pubDate>Mon, 17 Apr 2006 18:09:29 +0000</pubDate>
		<dc:creator>blog</dc:creator>
				<category><![CDATA[Anti Spam]]></category>
		<category><![CDATA[Procmail]]></category>

		<guid isPermaLink="false">http://blog.unix-scripts.info/?p=3</guid>
		<description><![CDATA[Kezako? Bogofilter est un puissant filtre bayésien permettant de tagguer le spam afin de pouvoir le repérer, trier, effacer&#8230; très facilement. Quel intérêt? Remplacer SpamAssassin qui est, lui aussi très afficace, mais très consommateur de ressources (600 Mo en permanence &#8230; <a href="http://blog.unix-scripts.info/2006/04/17/bogofilter/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Kezako?</p>
<p>Bogofilter est un puissant filtre bayésien permettant de tagguer le spam afin de pouvoir le repérer, trier, effacer&#8230; très facilement.</p>
<p>Quel intérêt? Remplacer SpamAssassin qui est, lui aussi très afficace, mais très consommateur de ressources (600 Mo en permanence sur mon modeste serveur mail).</p>
<p>Comment le mettre en place:</p>
<p>Il faut déja dans un premier temps &#8220;apprendre&#8221; au filtre ce que l&#8217;on considère comme courrier non sollicité (SPAM), et comme courrier souhaité (HAM).</p>
<p>Mes mails étant stockés au format maildir, nous nous rendons dans mon dossier de spams:</p>
<p>% cd ~/Maildir/.Spam/cur</p>
<p>for i in *; do bogofilter -s -I $i; done</p>
<p>Idem pour les mails sollicités (HAM)</p>
<p>% cd ~/Maildir/cur</p>
<p>for i in *; do bogofilter -n -I $i; done</p>
<p>Maintenant que bogofilter est &#8220;entrainé&#8221;, il faut modifier le ~/.procmailrc afin de filtrer les mails:</p>
<p>## BogoFilter<br />
:0fw<br />
* < 128000<br />
| bogofilter -upelv</p>
<p>:0e<br />
{ EXITCODE=75 HOST }<br />
## BogoFilter</p>
<p>:0<br />
* ^X-Bogosity.*spamicity=1\.0<br />
.Spam/</p>
<p>:0<br />
* ^X-Bogosity.*spamicity=0\.9[56789]<br />
.Spam/</p>
<p>Ce code nous permet de  déplacer dans un dossier Spam tous les mails considérés comme spam.</p>
<p>Que faire cas de détection d&#8217;un faux positif, ou d&#8217;un faux négatif?</p>
<p>Nous allons créer les dossiers Ham, Spam ainsi qu&#8217;un sous dossier Old pour chacun de ces dossiers dans notre boite mail nous permettant de faire réapprendre à bogofilter les mails concernés.</p>
<p>Le script suivant lancé périodiquement nous permettra de faire apprendre à bogofilter le Spam</p>
<p>#!/bin/sh</p>
<p>if [ $UID -eq 0 ]; then<br />
echo &#8220;Lancement par les utilisateurs uniquement !&#8221; ;<br />
exit<br />
fi</p>
<p>if [ ! -d $1 ] || [ ! -d $2 ]<br />
then<br />
echo &#8220;Dossier manquant !&#8221; ;<br />
exit 1<br />
fi</p>
<p>SPAM=$1<br />
OLDSPAM=$2<br />
bogofilter=/usr/bin/bogofilter</p>
<p># Reconnaissance du spam<br />
echo &#8220;ANALYSE DU SPAM&#8221;<br />
for f in $SPAM/*,S ; do<br />
if [ -f $f ] ; then<br />
echo $f ;<br />
$bogofilter -s -I $f<br />
fi<br />
done<br />
mv $SPAM/*,S $OLDSPAM/<br />
echo &#8220;Done.&#8221;</p>
<p>Le script suivant lancé périodiquement nous permettra de faire apprendre à bogofilter le  Ham</p>
<p>#!/bin/sh</p>
<p>if [ $UID -eq 0 ]; then<br />
echo &#8220;Lancement par les utilisateurs uniquement !&#8221; ;<br />
exit<br />
fi</p>
<p>if [ ! -d $1 ] || [ ! -d $2 ]<br />
then<br />
echo &#8220;Dossier manquant !&#8221; ;<br />
exit<br />
fi</p>
<p>HAM=$1<br />
OLDHAM=$2<br />
bogofilter=/usr/bin/bogofilter</p>
<p># Reconnaissance du ham<br />
echo &#8220;ANALYSE DU FAUX SPAM&#8221;<br />
for f in $HAM/* ; do<br />
if [ -f $f ] ; then<br />
echo $f;<br />
$bogofilter -n -I $f<br />
fi<br />
done<br />
mv $HAM/* $OLDHAM/<br />
echo &#8220;Done.&#8221;<br />
Ces scripts seront lancés par votre crontab grace aux lignes suivantes:</p>
<p>@daily  /usr/local/bin/bogoaddspam.sh ~/Maildir/.Spam/cur ~/Maildir/.Spam.Old/cur<br />
@daily /usr/local/bin/bogoaddham.sh ~/Maildir/.Ham/cur ~/Maildir/.Ham.Old/cur</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.unix-scripts.info/2006/04/17/bogofilter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
