<?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; sendmail</title>
	<atom:link href="http://imil.net/wp/tag/sendmail/feed/" rel="self" type="application/rss+xml" />
	<link>http://imil.net/wp</link>
	<description>life, unix and stuff</description>
	<lastBuildDate>Sat, 04 Sep 2010 20:43:24 +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>you must unLEaaarn what ou have leaaarned</title>
		<link>http://imil.net/wp/2007/04/09/you-must-unleaaarn-what-ou-have-leaaarned/</link>
		<comments>http://imil.net/wp/2007/04/09/you-must-unleaaarn-what-ou-have-leaaarned/#comments</comments>
		<pubDate>Mon, 09 Apr 2007 01:29:44 +0000</pubDate>
		<dc:creator>iMil</dc:creator>
				<category><![CDATA[I.T.]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[SMTP]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://imil.net/wp/?p=123</guid>
		<description><![CDATA[alors voila, pardon. Y&#8217;a -fiou- 2 ans, je bavais comme un vilain sur dspam, et là, là, eh bah je m&#8217;incline. In-cro-yable efficacité, je lui ai fait bouffer un millier de hams, un millier de spams, et pouf, le vla-t-y pas qu&#8217;il me catche un bon 96% de saloperies. Alors attention, c&#8217;est sur mon kimloli, [...]]]></description>
			<content:encoded><![CDATA[<p>alors voila, pardon. Y&#8217;a -fiou- 2 ans, <a href="http://imil.net/wp/index.php?s=dspam">je bavais</a> comme un vilain sur <a href="http://dspam.nuclearelephant.com/">dspam</a>, et là, là, eh bah je m&#8217;incline. In-cro-yable efficacité, je lui ai fait bouffer un millier de hams, un millier de spams, et pouf, le vla-t-y pas qu&#8217;il me catche un bon 96% de saloperies. Alors attention, c&#8217;est sur mon kimloli, c&#8217;est du perso, c&#8217;est pas mutualisé pour deux sous. Mais intégration à sendmail les doigts dans le nez (+ procmail):</p>
<pre>
define(`LOCAL_MAILER_PATH', `/usr/local/bin/dspam')
define(`LOCAL_MAILER_ARGS', `dspam -t -Y -a $h "--deliver=innocent" --user $u -d %u')
</pre>
<p>Fonctionne nickel balle avec mon nouvel amour, lighttpd. GUI web tout ce qu&#8217;il y a de plus sobre et efficace.<br />
Dla bonne.<br />
Le plus pénible a été de lui faire avaler les quelques milliers de mails préalablement nettoyés du markup spamass :</p>
<pre>
$ formail -s spamassassin -d < spam_corpus > cleaned.spam.inbox
$ formail -s spamassassin -d < ham_corpus > cleaned.ham.inbox
</pre>
<p>puis</p>
<pre>
$ formail -s dspam --client --user mes users --class=spam --source=corpus --mode=teft < cleaned.spam.inbox
$ formail -s dspam --client --user mes users --class=innocent --source=corpus --mode=teft < cleaned.ham.inbox
</pre>
<p>Avec de chaques cotés, des mbox tronquées à grands coups de <i>tail, wc, grep -n</i> et autes <i>bc</i>.</p>
<p>On n'oublie pas d'ajouter le user qui possède le serveur <i>www</i> comme <i>Trust</i>ed User :
</pre>
<pre>
Trust www
</pre>
<p>et&#8230;</p>
<p><img src="/gfx/dspam.png"/></p>
<p>&#8230;on fait un gros doigt à nos amis spammeurs.<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://imil.net/wp/2007/04/09/you-must-unleaaarn-what-ou-have-leaaarned/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>local</title>
		<link>http://imil.net/wp/2005/10/28/local/</link>
		<comments>http://imil.net/wp/2005/10/28/local/#comments</comments>
		<pubDate>Fri, 28 Oct 2005 10:38:03 +0000</pubDate>
		<dc:creator>iMil</dc:creator>
				<category><![CDATA[Unix]]></category>
		<category><![CDATA[sendmail]]></category>

		<guid isPermaLink="false">http://imil.net/wp/?p=60</guid>
		<description><![CDATA[update
Non seulement ce qui est ecrit ci dessous est faux mais en plus ca ne marche absolument pas.
En réalité il suffisait de spécifier à la classe w de chercher tous les attributs sendmailMTAClassName=w dans l&#8217;arbre, soit :

define(`confCW_FILE', `@ldap: -k sendmailMTAClassName=w -v sendmailMTACLassValue')

dans le fichier .mc
C&#8217;est pris à la volée et ca marche impeccablement bien.
P&#8217;tit tip [...]]]></description>
			<content:encoded><![CDATA[<p><b>update</b></p>
<p>Non seulement ce qui est ecrit ci dessous est faux mais en plus ca ne marche absolument pas.<br />
En réalité il suffisait de spécifier à la classe w de chercher tous les attributs sendmailMTAClassName=w dans l&#8217;arbre, soit :<br />
<code><br />
define(`confCW_FILE', `@ldap: -k sendmailMTAClassName=w -v sendmailMTACLassValue')<br />
</code><br />
dans le fichier .mc</p>
<p>C&#8217;est pris à la volée et ca marche impeccablement bien.</p>
<p>P&#8217;tit tip en passant, pour verifier tes local-host-names :<br />
<code><br />
echo '$=w' | sendmail -bt<br />
</code><br />
<strike><br />
Je me demandais pourquoi donc après avoir ajouté des hosts dans la classe sendmailMTAClassName=w (équivalent de local-host-names), les mails à destination de ces derniers étaient refusés / non relayés si je ne restartais pas sendmail. En fait, et c&#8217;est très ennuyeux, il faut effectivement restarter sendmail pour que la classe w soit reloadée. MAIS ASTUCE ! je viens également d&#8217;apprendre <a href="http://www.ofb.net/~jheiss/sendmail/proxy.shtml">ici</a> qu&#8217;on peut  elegamment remplacer le fichier classique des domaines locaux par une entrée dans la mailertable et dans l&#8217;access.db pour authoriser son relay. En LDAP ca nous donne :<br />
<code><br />
# mailer, sendmail, gcu.info.dotpure.net<br />
dn: sendmailMTAMapName=mailer,ou=sendmail,dc=gcu.info,dc=dotpure,dc=net<br />
objectClass: top<br />
objectClass: sendmailMTA<br />
objectClass: sendmailMTAMap<br />
objectClass: sendmailMTAMapObject<br />
sendmailMTACluster: dotpure.net<br />
sendmailMTAKey: gcu.info<br />
sendmailMTAMapName: mailer<br />
sendmailMTAMapValue: local:<br />
<br />
# access, sendmail, gcu.info.dotpure.net<br />
dn: sendmailMTAMapName=access,ou=sendmail,dc=gcu.info,dc=dotpure,dc=net<br />
objectClass: top<br />
objectClass: sendmailMTA<br />
objectClass: sendmailMTAMap<br />
objectClass: sendmailMTAMapObject<br />
sendmailMTACluster: dotpure.net<br />
sendmailMTAMapName: access<br />
sendmailMTAKey: gcu.info<br />
sendmailMTAMapValue: RELAY<br />
</code><br />
c&#8217;est beau hein :)<br />
</strike><br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://imil.net/wp/2005/10/28/local/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>chula, chupala</title>
		<link>http://imil.net/wp/2005/09/18/chula-chupala/</link>
		<comments>http://imil.net/wp/2005/09/18/chula-chupala/#comments</comments>
		<pubDate>Sun, 18 Sep 2005 10:14:54 +0000</pubDate>
		<dc:creator>iMil</dc:creator>
				<category><![CDATA[Ma vie, mon oeuvre]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[Ma vie. mon oeuvre]]></category>
		<category><![CDATA[OpenLDAP]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[SMTP]]></category>
		<category><![CDATA[TLS]]></category>

		<guid isPermaLink="false">http://imil.net/wp/archives/51</guid>
		<description><![CDATA[note: cette nouvelle est sujette à modifications en fonction de mon avancement dans la mise en place et la configuration de ma plateforme
Quelques liens glânés de-ci de-la pour monter une plate-forme mail couillue :
. SMTP Auth avec sendmail et FreeBSD
. SMTP Auth, la doc officielle de sendmail.org
. Un overview de l&#8217;integration SASL par l&#8217;ami asyd
. [...]]]></description>
			<content:encoded><![CDATA[<p><em>note: cette nouvelle est sujette à modifications en fonction de mon avancement dans la mise en place et la configuration de ma plateforme</em></p>
<p>Quelques liens glânés de-ci de-la pour monter une plate-forme mail couillue :</p>
<p>. <a href="http://docs.snake.de/smtp-auth.html">SMTP Auth avec sendmail et FreeBSD</a><br />
. <a href="http://www.sendmail.org/~ca/email/auth.html">SMTP Auth, la doc officielle de sendmail.org</a><br />
. <a href="http://www.asyd.net/docs/sasl.html">Un overview de l&#8217;integration SASL par l&#8217;ami asyd</a><br />
. <a href="http://www.minivisp.org/docs/install_minivisp_freeebsd_5.html">l&#8217;excellent projet MiniVisp de l&#8217;ami Hug</a><br />
. <a href="http://www.onlamp.com/pub/a/onlamp/excerpt/sendmailckbk_chap01/">FABULEUSE doc sur l&#8217;interfacage sendmail / LDAP</a><br />
. <a href="http://www.falkotimme.com/howtos/sendmail_smtp_auth_tls/">Sendmail + Auth + TLS</a><br />
. <a href="http://www.sendmail.org/m4/starttls.html">Utilisation de STARTTLS avec sendmail et l&#8217;accessdb</a><br />
. <a href="http://www.sendmail.org/~gshapiro/8.10.Training/LDAPConfig.html">la liste des parametres compris par confLDAP_DEFAULT_SPEC (binddn, password&#8230;)</a><br />
. <a href="http://netfrag.org/docs/topics/caesar/howto-sendmail_tls-imap_sasl-ldap-kerberosV.html">à la fin de ce tuto vous trouverez de bons exemples de virtuser LDAP</a><br />
. <a href="http://www.puresimplicity.net/~hemi/freebsd/sendmail.html">FreeBSD fast and secure mail server using sendmail and imap-uw (eeeet si)<br />
. </a><a href="http://www.doorbot.com/guides/sendmail/securemail/">Secure Email Using Cyrus IMAP, Sendmail, and SASLv2</a><br />
. <a href="http://www.openldap.org/doc/admin23/quickstart.html">Le classique mais toujours efficace OpenLDAP QuickStart Guide</a><br />
. <a href="http://www.cultdeadsheep.org/FreeBSD/docs/Quick_and_dirty_FreeBSD_5_x_and_nss_ldap_mini-HOWTO.html">Le NSS / PAM LDAP HOWTO pour FreeBSD 5.x</a><br />
. <a href="http://wiki.bsd-crew.de/index.php/Cyrus-saslauthd_LDAP-Konfiguration">saslauthd + LDAP</a><br />
. <a href="http://www.acme.com/mail_filtering/sendmail_config_frameset.html">Des astuces pour rendre sendmail plus agressif</a><br />
. <a href="http://www.padl.com/OSS/MigrationTools.html">les migration tools de padl.com</a><br />
. <a href="http://www.openldap.org/pub/ksoper/OpenLDAP_TLS_howto.html">OpenLDAP TLS HOWTO</a><br />
. <a href="http://www.technoids.org/dk-milter.html">Installer le milter DomainKey</a><br />
. <a href="http://www.elandsys.com/resources/sendmail/domainkeys.html">Encore une doc sur domainkey</a></p>
<p>Voici la partie relative de mon /etc/make.conf<br />
<code><br />
SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2 -DLDAPMAP -DSTARTTLS<br />
SENDMAIL_LDFLAGS=-L/usr/local/lib<br />
SENDMAIL_LDADD=-lsasl2 -lldap -llber<br />
</code><br />
Et les parties reliées de mon sendmail.mc<br />
<code><br />
define(`confLDAP_DEFAULT_SPEC', ` -h localhost -b dc=imil,dc=net')<br />
FEATURE(ldap_routing)<br />
LDAPROUTE_DOMAIN(`mail.imil.net')<br />
</code><br />
[...]<br />
<code><br />
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 LOGIN')<br />
define(`confDEF_AUTH_INFO',   `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')<br />
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 LOGIN')<br />
dnl p: uniquement TLS pour l'authentification type Login<br />
dnl A: Use the AUTH= parameter for the MAIL FROM command only when authentication succeeded.<br />
define(`confAUTH_OPTIONS', `A p')<br />
</code><br />
[...]<br />
<code><br />
define(`confCACERT_PATH', `/etc/mail/ssl')dnl<br />
define(`confCACERT', `/etc/mail/ssl/cacert.pem')dnl<br />
define(`confSERVER_CERT', `/etc/mail/ssl/sendmail.pem')dnl<br />
define(`confSERVER_KEY', `/etc/mail/ssl/sendmail.pem')dnl<br />
define(`confCLIENT_CERT', `/etc/mail/ssl/sendmail.pem')dnl<br />
define(`confCLIENT_KEY', `/etc/mail/ssl/sendmail.pem')dnl<br />
</code></p>
<p>Quelques trucs :</p>
<p>Dans le saslauthd.conf, ne pas oublier :<br />
<code><br />
ldap_search_base: dc=domaine,dc=com<br />
ldap_filter: uid=%u<br />
# pour activer TLS<br />
ldap_start_tls: yes<br />
</code></p>
<p>Pour bénéficier de toutes les propriétés nécessaires, s&#8217;assurer d&#8217;avoir les includes suivants dans son slapd.conf :<br />
<code><br />
include         /usr/local/etc/openldap/schema/core.schema<br />
include         /usr/local/etc/openldap/schema/cosine.schema<br />
include         /usr/local/etc/openldap/schema/inetorgperson.schema<br />
include         /usr/local/etc/openldap/schema/nis.schema<br />
include         /usr/local/etc/openldap/schema/misc.schema<br />
</code></p>
<p>Le module ldap_routing de sendmail communique par defaut en LDAPv2, il faut ajouter l&#8217;option &#8220;-w 3&#8243; à votre confLDAP_DEFAULT_SPEC pour le faire communiquer en LDAPv3.</p>
<p>Mon /etc/ldap.conf, linké à /usr/local/etc/ldap.conf et à /usr/local/etc/nss_ldap.conf<br />
<code><br />
host 127.0.0.1<br />
base dc=imil,dc=net<br />
uri ldap://127.0.0.1/<br />
ldap_version 3<br />
binddn cn=user,dc=imil,dc=net<br />
bindpw unpass<br />
port 389<br />
pam_password clear<br />
# activer le TLS<br />
ssl start_tls<br />
</code></p>
<p>J&#8217;utilise dovecot pour l&#8217;acces pop / imap, j&#8217;ai eu l&#8217;agréable surprise de voir qu&#8217;il créait seul les mailboxes des utilisateurs à leur premier login, de fait, en settant &#8220;/repertoire_en_777/utilisateur&#8221; comme homedir dans l&#8217;entrée LDAP de l&#8217;utilisateur, on se retrouve avec un systeme de provisionning automatique du meilleur gout.</p>
<p><strong>Addon</strong></p>
<p>Après avoir migré l&#8217;ensemble des services en TLS, j&#8217;ai constaté que dovecot ne permettait malheureusement pas de réaliser l&#8217;authentification LDAP sur TLS. Sur les conseils de mon ami Eric, j&#8217;ai pondu un <a href="http://imil.net/stuff/dovecot-tls-ldap.patch">rapide patch</a> qui rend ce fonctionnement possible après avoir ajouté :</p>
<p><code>start_tls = 1</code></p>
<p>dans le dovecot-ldap.conf</p>
<p><strong>Add-on</strong></p>
<p>Au sujet de domainkey et DKIM, ne pas oublier d&#8217;ajouter l&#8217;option -i /path/vers/les/hosts/locaux (man dkim-milter), le cas échéant seuls les les mails en provenance de 127.0.0.1 seront signés.</p>
<p>Pour finir, la seule application &#8220;standalone&#8221; (comprendre, qui n&#8217;a pas besoin d&#8217;apache / php et tous leurs amis) convenable pour manipuler une database LDAP reste &#8220;gq&#8221;. J&#8217;aurais imaginé que les choses avaient un peu évolué depuis 5 ans mais finalement non.</p>
<p><strong>Add-on</strong></p>
<p><strong>N&#8217;oubliez pas de placer la directive :</strong><br />
<code><br />
define(`confLDAP_CLUSTER', `nom-convivial')<br />
</code><br />
Et de renseigner le champs &#8220;sendmailMTACluster&#8221; dans toutes vos entrées LDAP.</p>
<p>le cas échéant les queries LDAP sont tout simplement ignorées.</p>
<p>De plus, il est inutile de protéger l&#8217;accès au subtree ou=sendmail, la doc OpenLDAP nous montre comment libérer ce scope :<br />
<code><br />
access to dn.subtree="ou=sendmail,dc=dotpure,dc=net" by * read<br />
</code><br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://imil.net/wp/2005/09/18/chula-chupala/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
