<?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>Emile "iMil" Heitor 's home &#187; dspam</title>
	<atom:link href="http://imil.net/wp/tag/dspam/feed/" rel="self" type="application/rss+xml" />
	<link>http://imil.net/wp</link>
	<description>life, unix and stuff</description>
	<lastBuildDate>Wed, 08 Feb 2012 22:31:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>dspam sous NetBSD</title>
		<link>http://imil.net/wp/2010/02/27/dspam-sous-netbsd/</link>
		<comments>http://imil.net/wp/2010/02/27/dspam-sous-netbsd/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 12:36:41 +0000</pubDate>
		<dc:creator>iMil</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[dspam]]></category>
		<category><![CDATA[NetBSD]]></category>

		<guid isPermaLink="false">http://imil.net/wp/?p=393</guid>
		<description><![CDATA[Je suis toujours dans le fastidieux processus de migration des services d&#8217;iMil.net vers sa nouvelle demeure. Vous ne l&#8217;avez probablement pas remarqué, mais le site que vous avez sous les yeux est désormais servi par un apache chrooté, reverse-proxyisé par l&#8217;incroyable nginx. Je reviendrai probablement sur cette configuration dans un prochain post.
Ce week end, je [...]]]></description>
			<content:encoded><![CDATA[<p>Je suis toujours dans le fastidieux processus de migration des services d&#8217;iMil.net vers sa nouvelle demeure. Vous ne l&#8217;avez probablement pas remarqué, mais le site que vous avez sous les yeux est désormais servi par un <a hraf="http://imil.net/wp/?p=376">apache chrooté</a>, <a href="http://fr.wikipedia.org/wiki/Reverse_proxy">reverse-proxyisé</a> par l&#8217;incroyable <a href="http://nginx.org/">nginx</a>. Je reviendrai probablement sur cette configuration dans un prochain post.</p>
<p>Ce week end, je m&#8217;attaque à la migration du MX. *soupir*</p>
<p>Dans la liste infinie de trucs à configurer, il y a mon <a href="http://imil.net/wp/?p=200">&#8220;nouveau&#8221;</a> meilleur ami: <a href="http://www.nuclearelephant.com/">dspam</a>.</p>
<p>On aurait pu s&#8217;attendre à une installation <i>straightforward</i> de la bête (j&#8217;utilise évidemment intensivement <a href="http://imil.net/pkgin/">pkgin</a> pour l&#8217;installation des packages), mais en réalité, quelques petits casse-tête sont dispersés de-ci de-la.</p>
<p>En premier lieu, le package lui même. On peut lire dans le fichier <code>options.mk</code> le commentaire suivant :</p>
<pre>
### This is the backend database used to store the DSPAM signatures as
### well as other state information.  The recommended storage driver is
### "mysql", even for small installations.
</pre>
<p>&#8220;Fabuleux&#8221;, me dis-je. Sauf que les deux lignes d&#8217;après précisent :</p>
<pre>
### Possible: mysql, pgsql, sqlite, sqlite3 or hash
### Default: hash
</pre>
<p>Va comprendre. Cela signifie que, une fois n&#8217;est pas coutume, je devrai me fendre de la compilation de ce package avec une option particulière :</p>
<pre>
$ grep -i dspam /etc/mk.conf
DSPAM_STORAGE_DRIVER=   mysql
</pre>
<p>Bon.</p>
<p>La configuration du logiciel en soi n&#8217;a pas changé, je vous renvoie aux differentes documentations expliquant les paramètres clé du fichier <code>dspam.conf</code>.<br />
L&#8217;integration à <a href="http://www.sendmail.org/">sendmail</a> n&#8217;a pas changé non plus, ces deux lignes appliquées à votre <code>.mc</code> suffiront :</p>
<pre>
define(`LOCAL_MAILER_PATH', `/usr/pkg/bin/dspam')
define(`LOCAL_MAILER_ARGS', `dspam -t -Y -a $h "--deliver=innocent" --user $u -d %u')
</pre>
<p>Je rappelle à toutes fins utiles que la construction du <code>.cf</code>, sous NetBSD, s&#8217;effectue de cette façon :</p>
<pre>
make install-cf CF=nom
</pre>
<p>Jusqu&#8217;ici, tout va bien.</p>
<p>Et nous en arrivons à la partie la moins bien integrée du package: l&#8217;interface web. Première chose, le package n&#8217;embarque pas <strong>toutes</strong> les dépendances nécessaires au bon fonctionnement de l&#8217;interface de <code>dspam</code>. Il vous faudra donc vous fendre d&#8217;un :</p>
<pre>
$ sudo pkgin in p5-GD p5-GD-Graph3d
</pre>
<p>Afin de ne pas voir <code>admingraph.cgi</code> se crouter misérablement.</p>
<p>Vient ensuite l&#8217;application web en elle même. Je ne souhaitais pas dédier un <i>vhost</i> à <code>dspam</code>, mais plutot l&#8217;utiliser dans un sous repertoire de la partie privée de mon site; en effet,  cette dernière est accédée en HTTPS, sur un FQDN unique, et l&#8217;idée de gêrer plusieurs certificats <a href="http://www.cacert.org/">CACert</a> pour mes simples besoins me rebutait. En prime, cette methode me permet de configurer mon <i>reverse proxy</i> le plus simplement du monde.</p>
<p>Ainsi, j&#8217;ai copié l&#8217;ensemble des fichiers situés dans <code>/usr/pkg/share/dspam/webui/cgi-bin/</code> et <code>/usr/pkg/share/dspam/webui/htdocs/</code> dans un repertoire dédié. Afin de signifier à <code>apache</code> qu&#8217;il devra interpreter les <i>cgi</i> de ce repertoire, j&#8217;ai ajouté un fichier <code>.htaccess</code> contenant les directives suivantes :</p>
<pre>
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</pre>
<p>Tous ces <i>cgi</i>s incluent le fichier <code>/usr/pkg/etc/dspam/configure.pl</code>, qui définit entre autres la variable <code>WEB_ROOT</code>, chemin vers la <i>CSS</i> et la petite icône <i>dspam</i>. Plutot que de copier le fichier <code>configure.pl</code> puis modifier tous les scripts afin que l&#8217;inclusion se fasse sur <code>./configure.pl</code>, j&#8217;ai renseigné la variable qui m&#8217;interesse directement dans <code>/usr/pkg/etc/dspam/configure.pl</code> :</p>
<pre>
$CONFIG{'WEB_ROOT'}     = "/dspam";
</pre>
<p>Reste à copier le fichier <code>/usr/pkg/etc/dspam/cgi-default.prefs</code> dans le repertoire choisi pour héberger l&#8217;interface <code>dspam</code> sous le nom <code>default.prefs</code>, et enfin d&#8217;ajouter l&#8217;utilisateur autorisé à manipuler l&#8217;interface dans <code>/usr/pkg/etc/dspam/cgi-admins</code>.</p>
<p>Tout ceci n&#8217;est pas bien propre, je vous l&#8217;accorde.</p>
<p>Notez que si vous souhaitez utiliser un <i>vhost</i>, la configuration serait bien moins fastidieuse puisqu&#8217;il suffirait de créer un <code>VirtualHost</code> dans lequel vous préciseriez un <code>ScriptAlias</code> et un <code>DocumentRoot</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://imil.net/wp/2010/02/27/dspam-sous-netbsd/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Migration dspam/sqlite vers dspam/mysql</title>
		<link>http://imil.net/wp/2008/06/01/migration-dspamsqlite-vers-dspammysql/</link>
		<comments>http://imil.net/wp/2008/06/01/migration-dspamsqlite-vers-dspammysql/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 10:56:15 +0000</pubDate>
		<dc:creator>iMil</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[dspam]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://imil.net/wp/?p=200</guid>
		<description><![CDATA[L&#8217;année dernière, je mettais en place dspam, sur mon serveur dédié. Naïf, je me disais que pour gerer mes propres mails, le backend sqlite serait amplement suffisant, et finalement tout ce petit monde a parfaitement fonctionné pendant quelques mois. Et puis la database a grossi, grossi, grossi au point d&#8217;etre lente à crever et provoquer [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://imil.net/wp/?p=123">L&#8217;année dernière</a>, je mettais en place <code>dspam</code>, sur mon serveur dédié. Naïf, je me disais que pour gerer mes propres mails, le backend <code>sqlite</code> serait amplement suffisant, et finalement tout ce petit monde a parfaitement fonctionné pendant quelques mois. Et puis la database a grossi, grossi, grossi au point d&#8217;etre lente à crever et provoquer ce type de réaction :</p>
<pre>
pid 71865 (dspam), uid 0: exited on signal 6 (core dumped)
pid 72017 (dspam), uid 0: exited on signal 6 (core dumped)
pid 72289 (dspam), uid 0: exited on signal 6 (core dumped)
</pre>
<p>Après que 2 attaques massives de spams aient écroulé la machine, je me suis enfin décidé à changer de backend&#8230; et la différence est simplement indescriptible.</p>
<p>L&#8217;opération s&#8217;est avérée plus simple que je ne l&#8217;imaginais. Tout d&#8217;abord, il est nécessaire de re-installer le <code>port dspam</code> en y ajoutant le support <code>MySQL</code> à l&#8217;aide de la commane <code>make config</code></p>
<p><img src="/gfx/dspam-make.png"/></p>
<p>Un <code>make deinstall reinstall</code> plus loin, le binaire supporte les deux backends (sqlite et MySQL), et avant d&#8217;apporter les modifications à la configuration de dspam, nous nous assurons de créer une database <code>dspam</code> et de peupler cette dernière avec les commandes SQL fournies dans le package dspam :</p>
<pre>
$ mysql -u dspam -p dspam < /usr/local/share/examples/dspam/mysql/mysql_objects-4.1.sql
</pre>
<p>Nous pouvons alors modifier le fichier <code>dspam.conf</code> :
</pre>
<pre>
StorageDriver /usr/local/lib/libmysql_drv.so
# [...]
MySQLServer     /path/vers/mysql.sock
MySQLUser               dspam
MySQLPass               mangeducacaspammer
MySQLDb                 dspam
MySQLConnectionCache    10
MySQLUIDInSignature    on
</pre>
<p>Et redémarrer le serveur :</p>
<pre>
# /usr/local/etc/rc.d/dspam restart
</pre>
<p>Reste à nourrir notre nouvelle database à l&#8217;aide de deux corpus spam et ham d&#8217;environ 1000 mails chacun (voir <a href="http://imil.net/wp/?p=123">le post de l&#8217;année dernière</a>).</p>
<p>Pour finir, j&#8217;ajoute un cron-job qui nettoie la base de données tous les soirs, à l&#8217;aide d&#8217;un jeu de commandes SQL fourni par le package dspam :</p>
<pre>
30 01 * * * /usr/local/bin/mysql -u dspam --password=mangeducacaspammer dspam < /usr/local/share/examples/dspam/mysql/purge-4.1.sql
</pre>
<p>Et mon gentil dédié ne souffre plus.</p>
<p>Notez par ailleurs que devant une telle recrudescence, j'avais fini par réinstaller l'excellent <a href="http://hcpnet.free.fr/milter-greylist/">milter-greylist</a> du sieur Emmanuel Dreyfus, et que le résultat est sans appel: si certains MTAs tolèrent mal les codes <code>4xx</code> et ne renvoient le mail que plusieurs heures plus tard, mon ratio de spams, lui, est passé de 800 / jour en moyenne à 30 / jour en moyenne. Le choix est vite fait...<br />
</pre>
]]></content:encoded>
			<wfw:commentRss>http://imil.net/wp/2008/06/01/migration-dspamsqlite-vers-dspammysql/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: imil.net @ 2012-02-09 09:28:35 by W3 Total Cache -->
