<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.grafactory.net/blog/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>L'appartement - dkimproxy</title>
  <link>http://www.grafactory.net/blog/</link>
  <description></description>
  <language>fr</language>
  <pubDate>Wed, 12 Nov 2008 14:50:40 +0000</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Script minimaliste : génération des clés DKIM et ajout de l'enregistrement DNS</title>
    <link>http://www.grafactory.net/blog/post/2008/10/20/script-de-generation-des-cles-DKIM</link>
    <guid isPermaLink="false">urn:md5:8b7f3f3da5d9202e14cacc2ba9e0965b</guid>
    <pubDate>Mon, 20 Oct 2008 18:20:00 +0200</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le codage</category>
        <category>bash</category><category>dkim</category><category>dkimproxy</category><category>domainkeys</category>    
    <description>    &lt;p&gt;Un script pour ajouter un domaine dont on veux signer les mails via DKIMproxy. Celui-ci est forcément lié à mon article sur le sujet&amp;nbsp;: &quot;&lt;a href=&quot;http://www.grafactory.net/blog/post/2008/03/12/Installer-la-signature-DKIM-sur-Postfix-Debian-Etch-Amavisd-new&quot; hreflang=&quot;fr&quot;&gt;Installer la signature DKIM sur Postfix avec DKIMproxy&lt;/a&gt;&quot;. Vous pouvez très facilement l'adapter à votre usage.&lt;/p&gt;


&lt;h4&gt;Que fait ce script&amp;nbsp;:&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;crée la clé publique et la clé privée dans le répertoire &lt;em&gt;keys&lt;/em&gt; de DKIMproxy&lt;/li&gt;
&lt;li&gt;change les droits sur la clé privée&lt;/li&gt;
&lt;li&gt;sur demande, ajoute l'enregistrement dans le fichier de zone du domaine&lt;/li&gt;
&lt;li&gt;ajoute les informations qui vont bien dans le fichier sender_map de DKIMproxy&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;On le lance de la façon suivante&lt;/h4&gt;

&lt;pre&gt;
./generate_keys domain.tld
&lt;/pre&gt;


&lt;p&gt;Il faut ensuite incrémenter le numéro de série de la zone, relancer BIND et DKIMproxy.&lt;/p&gt;


&lt;h4&gt;Le script&lt;/h4&gt;

&lt;code class=&quot;bash&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Yves Tannier &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt;grafactory.net&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;2008&lt;/span&gt; GPL...&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# private/public keys path&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;PATH_KEYS=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'/usr/local/dkimproxy/keys'&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# sender_map &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;file&lt;/span&gt; path&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;PATH_SENDER_MAP=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'/usr/local/dkimproxy/sender_map'&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# dkimuser&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;USER_GROUP=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'dkim:dkim'&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# domain on parametre&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;DOMAIN=&lt;/span&gt;$&lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;bind&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;file&lt;/span&gt; path &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;optional&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;ZONE_PATH=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/var/cache/bind/$DOMAIN.hosts&amp;quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
openssl genrsa -out &lt;span style=&quot;color: #007800;&quot;&gt;$PATH_KEYS&lt;/span&gt;/&lt;span style=&quot;color: #007800;&quot;&gt;$DOMAIN&lt;/span&gt;.key &lt;span style=&quot;color: #000000;&quot;&gt;1024&lt;/span&gt;&lt;br /&gt;
openssl rsa -&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$PATH_KEYS&lt;/span&gt;/&lt;span style=&quot;color: #007800;&quot;&gt;$DOMAIN&lt;/span&gt;.key -pubout -out &lt;span style=&quot;color: #007800;&quot;&gt;$PATH_KEYS&lt;/span&gt;/&lt;span style=&quot;color: #007800;&quot;&gt;$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;DOMAIN&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/span&gt;_pub.key&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# chg right&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;chown&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$USER_GROUP&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$PATH_KEYS&lt;/span&gt;/&lt;span style=&quot;color: #007800;&quot;&gt;$DOMAIN&lt;/span&gt;.key&lt;br /&gt;
&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;chmod&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;640&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$PATH_KEYS&lt;/span&gt;/&lt;span style=&quot;color: #007800;&quot;&gt;$DOMAIN&lt;/span&gt;.key&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Adding DKIM key on BIND Zone ?&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; -n &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Add DKIM key on BIND zone file ? ([Y]/n) &amp;quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;read&lt;/span&gt; ans&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; ! _&lt;span style=&quot;color: #007800;&quot;&gt;$ans&lt;/span&gt; = _y -o _&lt;span style=&quot;color: #007800;&quot;&gt;$ans&lt;/span&gt; = _Y &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;bind&lt;/span&gt; file&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; -n &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;BIND Zone filename ($ZONE_PATH) : &amp;quot;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;read&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;ZONE_PATH_READ&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt; ! -z &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;$ZONE_PATH_READ&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;then&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #007800;&quot;&gt;ZONE_PATH=&lt;/span&gt;&lt;span style=&quot;color: #007800;&quot;&gt;$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;ZONE_PATH_READ&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# public key one line&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #007800;&quot;&gt;PUBLIC_KEY=&lt;/span&gt;$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cat&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$PATH_KEYS&lt;/span&gt;/&lt;span style=&quot;color: #007800;&quot;&gt;$&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;DOMAIN&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/span&gt;_pub.key | &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;sed&lt;/span&gt; -n &lt;span style=&quot;color: #ff0000;&quot;&gt;'/BEGIN PUBLIC KEY/,/END PUBLIC KEY/p'&lt;/span&gt; | &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;sed&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'/PUBLIC KEY/d'&lt;/span&gt; | &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;tr&lt;/span&gt; -d &lt;span style=&quot;color: #ff0000;&quot;&gt;'&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\n&lt;/span&gt;'&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# write&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;_domainkey.$DOMAIN. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IN TXT &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\&amp;quot;&lt;/span&gt;t=y; o=-;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\&amp;quot;&lt;/span&gt;&amp;quot;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span style=&quot;color: #007800;&quot;&gt;$ZONE_PATH&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;$DOMAIN._domainkey.$DOMAIN. &amp;nbsp; &amp;nbsp; &amp;nbsp; IN TXT &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\&amp;quot;&lt;/span&gt;k=rsa; t=s; p=$PUBLIC_KEY&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\&amp;quot;&lt;/span&gt;&amp;quot;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span style=&quot;color: #007800;&quot;&gt;$ZONE_PATH&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;fi&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #007800;&quot;&gt;SM=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;$DOMAIN dkim(c=simple,s=$DOMAIN,a=rsa-sha1,key=$PATH_KEYS/$DOMAIN.key), domainkeys(c=nofws,s=$DOMAIN,key=$PATH_KEYS/$DOMAIN.key)&amp;quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;$SM&lt;/span&gt; &amp;gt;&amp;gt; &lt;span style=&quot;color: #007800;&quot;&gt;$PATH_SENDER_MAP&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Please, restart DKIMproxy !&amp;quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;... And maybe BIND with new serial on $ZONE_PATH !&amp;quot;&lt;/span&gt;&lt;/code&gt;


&lt;h4&gt;Au format compressé&amp;nbsp;: &lt;a href=&quot;http://www.grafactory.net/dl/generate_keys.tar.gz&quot; hreflang=&quot;fr&quot;&gt;generate_keys.tar.gz&lt;/a&gt;&lt;/h4&gt;


&lt;p&gt;&lt;strong&gt;N'hésitez pas à me proposer vos améliorations.&lt;/strong&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.grafactory.net/blog/post/2008/10/20/script-de-generation-des-cles-DKIM#comment-form</comments>
      <wfw:comment>http://www.grafactory.net/blog/post/2008/10/20/script-de-generation-des-cles-DKIM#comment-form</wfw:comment>
      <wfw:commentRss>http://www.grafactory.net/blog/feed/rss2/comments/161</wfw:commentRss>
      </item>
    
  <item>
    <title>Installer la signature DKIM sur Postfix avec DKIMproxy</title>
    <link>http://www.grafactory.net/blog/post/2008/03/12/Installer-la-signature-DKIM-sur-Postfix-Debian-Etch-Amavisd-new</link>
    <guid isPermaLink="false">urn:md5:7f7842a3ebe511cd881299d33d7a7014</guid>
    <pubDate>Wed, 12 Mar 2008 10:00:00 +0100</pubDate>
    <dc:creator>Yves Tannier</dc:creator>
        <category>Le pingouin</category>
        <category>amavis</category><category>dkim</category><category>dkimproxy</category><category>domainkeys</category><category>postfix</category>    
    <description>&lt;p&gt;Je vous propose dans ce billet l'installation de la signature &lt;a href=&quot;http://dkim.org/&quot;&gt;DKIM&lt;/a&gt; sur vos mails &lt;em&gt;sortants&lt;/em&gt;. Ceci fait suite à mon billet concernant l'implémentation de &lt;a href=&quot;http://www.grafactory.net/blog/post/2007/11/04/Installer-DomainKeys-sur-Postfix-Debian-Etch-Amavisd-new&quot; hreflang=&quot;fr&quot;&gt;DomainKeys avec Postfix et Amavis via Dkfilter&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://jason.long.name/dkfilter/&quot;&gt;Dkfilter&lt;/a&gt; ne gère en effet que le protocole DomainKeys de Yahoo! maintenant remplacé par &lt;a href=&quot;http://www.dkim.org/&quot; hreflang=&quot;en&quot;&gt;DKIM&lt;/a&gt; (DomainKeys Identified Mail) , un protocole plus &lt;em&gt;avancé&lt;/em&gt; et standardisé par la &lt;a href=&quot;http://www.ietf.org/rfc/rfc4871.txt&quot; hreflang=&quot;en&quot;&gt;RFC 4871&lt;/a&gt;. Très très brièvement, DKIM permet de «&amp;nbsp;renforcer&amp;nbsp;» l'identité des expéditeurs.&lt;/p&gt;


&lt;p&gt;En remplacement de dkfilter, l'auteur de ce programme nous propose &lt;a href=&quot;http://dkimproxy.sourceforge.net/&quot; hreflang=&quot;en&quot;&gt;DKIMproxy&lt;/a&gt; pour gérer la signature DKIM et/ou DomainKeys.&lt;/p&gt;


&lt;p&gt;Si vous utilisez &lt;a href=&quot;http://www.ijs.si/software/amavisd/&quot;&gt;Amavis&lt;/a&gt;, comme c'est mon cas, sachez quelques petites choses&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Il semble que Amavisd-new gère la signature DKIM des mails sortants à partir de la version 2.6.0. Mais sur Debian Etch, nous en sommes à la version 2.4. C'est donc l'intérêt de ce billet. Je n'ai pas testé la version 2.6.0. je ne peux donc pas vous en dire plus.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;DKIMproxy permet également une vérification des mails entrants. Cette vérification ne nous intéresse pas forcément puisque Amavis propose déjà cette fonctionnalité via Spamassassin qui utilise la librairie perl Mail::DKIM.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Comme pour mon précédent billet, c'est un &lt;/em&gt;howto&lt;em&gt; «&amp;nbsp;copié/collé&amp;nbsp;» pour les informaticiens &lt;del&gt;fainéants&lt;/del&gt; pressés. J'ai également fais pas mal de copié/collé de l'ancien billet puisque la configuration est sensiblement la même sur de nombreux points.&lt;/em&gt;&lt;/p&gt;    &lt;h3&gt;Installer DKIMproxy&lt;/h3&gt;


&lt;p&gt;Placez-vous dans /usr/src et téléchargez &lt;a href=&quot;http://dkimproxy.sourceforge.net/&quot; hreflang=&quot;en&quot;&gt;DKIMproxy&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;
cd /usr/src
wget http://kent.dl.sourceforge.net/sourceforge/dkimproxy/dkimproxy-1.0.1.tar.gz
&lt;/pre&gt;


&lt;p&gt;Décompressez l'archive et placez-vous dans le nouveau répertoire&lt;/p&gt;

&lt;pre&gt;
tar zxvf dkimproxy-1.0.1.tar.gz
cd dkimproxy-1.0.1
&lt;/pre&gt;


&lt;p&gt;Si vous n'avez pas encore le module perl Mail::Dkim, il faut l'installer via CPAN pour disposer d'une version suffisamment récente la version Debian Etch est trop ancienne).&lt;/p&gt;

&lt;pre&gt;
perl -MCPAN -e shell
install Mail::DKIM
exit
&lt;/pre&gt;


&lt;p&gt;Préparez l'installation de dkimproxy dans /usr/local/dkimproxy&lt;/p&gt;

&lt;pre&gt;
mkdir /usr/local/dkimproxy
./configure --prefix=/usr/local/dkimproxy
&lt;/pre&gt;


&lt;p&gt;Compilez et installez&lt;/p&gt;

&lt;pre&gt;
make install
&lt;/pre&gt;


&lt;p&gt;Déplacez-vous dans le répertoire dkimproxy et renommez les fichiers de configuration des daemons&lt;/p&gt;

&lt;pre&gt;
cd /usr/local/dkimproxy
mv etc/dkimproxy_in.conf.example etc/dkimproxy_in.conf
mv etc/dkimproxy_out.conf.example etc/dkimproxy_out.conf
&lt;/pre&gt;


&lt;h3&gt;Créer l'utilisateur et le groupe dkim&lt;/h3&gt;

&lt;pre&gt;
adduser dkim --no-create-home --disabled-password --disabled-login
&lt;/pre&gt;


&lt;h3&gt;Installer le script de démarrage de dkimproxy&lt;/h3&gt;


&lt;p&gt;Copiez le script de démarrage proposé dans les sources de dkimproxy dans /etc/init.d/&lt;/p&gt;

&lt;pre&gt;
cp /usr/src/dkimproxy-1.0.1/sample-dkim-init-script.sh /etc/init.d/dkimproxy
&lt;/pre&gt;


&lt;p&gt;Editez-le. Normalement, il n'y a rien a changer dans ce fichier si on utilise les paramètres «&amp;nbsp;standards&amp;nbsp;»&lt;/p&gt;

&lt;pre&gt;
vi /etc/init.d/dkimproxy
&lt;/pre&gt;


&lt;h3&gt;Créer une clé publique/privée&lt;/h3&gt;


&lt;p&gt;Chaque domaine possèdera sa propre clé. On crée un dossier dans lequel on stockera les clés.&lt;/p&gt;

&lt;pre&gt;
mkdir /usr/local/dkimproxy/keys
cd /usr/local/dkimproxy/keys
&lt;/pre&gt;


&lt;p&gt;On suppose que vous avez le paquet OpenSSL installé et que votre domaine est exemple.tld&lt;/p&gt;


&lt;p&gt;La clé privée&lt;/p&gt;

&lt;pre&gt;
openssl genrsa -out exempletld.key 1024
&lt;/pre&gt;


&lt;p&gt;La clé publique&lt;/p&gt;

&lt;pre&gt;
openssl rsa -in exempletld.key -pubout -out exempletld_pub.key
&lt;/pre&gt;


&lt;p&gt;Changer les droits sur la clé privée pour la rendre uniquement accessible à l'utilisateur dkim&lt;/p&gt;

&lt;pre&gt;
chown dkim:dkim exempletld.key
chmod 640 exempletld.key
&lt;/pre&gt;


&lt;h3&gt;Ajouter l'enregistrement TXT à la zone DNS&lt;/h3&gt;


&lt;p&gt;Une fois la clé générée, il va falloir ajouter un enregistrement TXT à la zone de chaque domaine. Prenons encore l'exemple du domaine exemple.tld&lt;/p&gt;


&lt;p&gt;On édite le fichier de zone /var/cache/bind/exemple.tld.hosts et on ajoute l'enregistrement TXT suivant. La valeur de &quot;p=&quot; correspond à la clé publique sur une seule ligne. Notez également le nom exempletld qui sera utile pour la suite (nous l'appellerons &quot;sélecteur&quot;). Le t=y; signifie que votre installation est en test. Vous pourrez retirer cette information quand tout sera opérationnel&lt;/p&gt;

&lt;pre&gt;
; DKIM
_domainkey.exemple.tld.                  IN TXT  &amp;quot;t=y; o=-;&amp;quot;
exempletld._domainkey.exemple.tld.    IN TXT &amp;quot;k=rsa; t=s; p=ici_la_cle_publique_hyper_longue&amp;quot;
&lt;/pre&gt;


&lt;p&gt;N'oubliez pas d'incrémenter le numéro de série de votre zone pour que les changements soient pris en compte et relancer bind&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
/etc/init.d/bind9 restart
&lt;/pre&gt;


&lt;h3&gt;Créer le fichier de configuration de DKIM&lt;/h3&gt;


&lt;p&gt;Il faut maintenant créer le fichier de configuration qu'utilisera DKIMproxy au lancement du service. Celui ci contient les différentes informations pour chacun des domaines signés.&lt;/p&gt;

&lt;pre&gt;
vi /usr/local/dkimproxy/sender_map
&lt;/pre&gt;


&lt;p&gt;Toujours l'exemple avec exemple.tld. Ici, on demande la signature DKIM &lt;strong&gt;et&lt;/strong&gt; la signature DomainKeys. Il est possible de choisir l'un ou l'autre uniquement. Je vous renvois sur les spécifications de DKIM pour les autres paramètres&amp;nbsp;! Sachez simplement que le paramètre «&amp;nbsp;s&amp;nbsp;» correspond au nom du sélecteur utilisé dans votre fichier de zone.&lt;/p&gt;

&lt;pre&gt;
exemple.tld dkim(c=simple,s=exempletld,a=rsa-sha1,key=/usr/local/dkimproxy/keys/exemple.tld.key), domainkeys(c=nofws,s=exempletld,key=/usr/local/dkimproxy/keys/exempletld.key) 
&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;A lire avant de continuer&lt;/strong&gt;&amp;nbsp;: un «&amp;nbsp;problème&amp;nbsp;» subsiste dans mon &lt;em&gt;howto&lt;/em&gt;. En effet, je lance toujours dkimproxy.in qui s'occupe de l'analyse de messages entrants alors que ce travail est déjà effectué par SpamAssasin via Amavis comme je le précise au début de ce billet. Je n'ai simplement pas pris le temps de modifier le script de démarrage et mon implémentation dans Postfix. Je modifierais ce billet dés que j'aurais nettoyé tout ça&amp;nbsp;! Ami lecteur, si tu l'as fais pour ta configuration, n'hésites pas à me le signaler &lt;img src=&quot;/blog/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Ceci étant, la signature fonctionne tout de même... alors on continue&amp;nbsp;!&lt;/p&gt;


&lt;h3&gt;Lancer DKIMproxy&lt;/h3&gt;


&lt;p&gt;Avant d'envisager la configuration de Postfix, il faut vérifier que DKIMproxy se lance correctement&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
/etc/init.d/dkimproxy start
&lt;/pre&gt;


&lt;p&gt;Si il n'y a pas d'erreur on vérifie que le service est fonctionnel&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
ps aux | grep dkim
&lt;/pre&gt;


&lt;p&gt;Il doit y avoir des lignes avec dkimproxy.in et des lignes avec dkimproxy.out.&lt;/p&gt;


&lt;p&gt;Maintenant que la zone est modifié, DKIMproxy installé et fonctionnel, passons enfin à la configuration de Postfix.&lt;/p&gt;


&lt;h3&gt;Configurer de Postfix&lt;/h3&gt;


&lt;p&gt;&lt;em&gt;La configuration n'est pas différente de celle pour dkfilter. Je colle ici le contenu de mon précédent billet.&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Dans ma configuration, avant l'installation de DKIM et DomainKeys, j'utilise déjà Amavisd-new pour le filtrage antivirus (clamav) et antispam (spamassassin et dspam). J'ajoute donc DKIMproxy dans le process avant l'analyse par Amavis.&lt;/p&gt;


&lt;p&gt;Dans le main.cf, je remplace&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
content_filter = amavis:[127.0.0.1]:10024
&lt;/pre&gt;


&lt;p&gt;par&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
content_filter = dksign:[127.0.0.1]:12027
&lt;/pre&gt;


&lt;p&gt;[Je ne sais pas pourquoi mais si je ne précise pas le content_filter dans le main.cf, les mails envoyés par des processus locaux (par exemple, la fonction mail de PHP) ne passe pas par amavis et dksign]&lt;/p&gt;


&lt;p&gt;Dans le master.cf, voici la configuration&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;Au début du fichier&lt;/p&gt;

&lt;pre&gt;
# relayer sur dksign sur le port 10028
smtp      inet  n       -       -       -       200     smtpd
        -o receive_override_options=no_address_mappings
        -o content_filter=dksign:[127.0.0.1]:12027

# Le smtp securise SSL
smtps     inet  n       -       -       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o content_filter=dksign:[127.0.0.1]:12027
  -o receive_override_options=no_address_mappings
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

# envoyer directement a dksign
submission  inet  n     -       n       -       -       smtpd
    -o smtpd_etrn_restrictions=reject
    -o smtpd_sasl_auth_enable=yes
    -o content_filter=dksign:[127.0.0.1]:12027
    -o receive_override_options=no_address_mappings
    -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
    #-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
&lt;/pre&gt;


&lt;p&gt;A la fin&lt;/p&gt;

&lt;pre&gt;
# Pour amavis
amavis  unix    -   -   -   -   20  smtp
        -o smtp_helo_timeout=300 
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes
127.0.0.1:10025 inet n - - - - smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks=127.0.0.0/8
        -o strict_rfc821_envelopes=yes
        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
        -o smtpd_bind_address=127.0.0.1
    -o disable_dns_lookups=yes

#
# signature dkim/domainkeys
#
dksign    unix  -       -       n       -       10      smtp
    -o smtp_send_xforward_command=yes
    -o smtp_discard_ehlo_keywords=8bitmime

#
# signature dkim/domainkeys
#
127.0.0.1:12028 inet  n  -      n       -       10      smtpd
    -o content_filter=amavis:[127.0.0.1]:10024
    -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
    -o smtpd_helo_restrictions=
    -o smtpd_client_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks=127.0.0.0/8
    -o smtpd_authorized_xforward_hosts=127.0.0.0/8
&lt;/pre&gt;


&lt;p&gt;Vous pouvez ensuite relancer postfix&lt;/p&gt;

&lt;pre&gt;
/etc/init.d/postfix restart
&lt;/pre&gt;


&lt;h3&gt;Vérifier la signature&lt;/h3&gt;


&lt;p&gt;Envoyez un mail et regardez dans les logs&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
tail -f /var/log/mail.info
&lt;/pre&gt;


&lt;p&gt;Vous devez avoir pour un message envoyé par une adresse de exemple.tld&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
... DKIM signing - signed; message-id=&amp;lt;47D7961B.6060505@exemple.tld&amp;gt;, signer=&amp;lt;yves@exemple.tld&amp;gt;, from=&amp;lt;yves@exemple.tld&amp;gt; 
&lt;/pre&gt;


&lt;p&gt;Pour les autres&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
... DKIM signing - skipped; from=&amp;lt;test@autredomain.tld
&lt;/pre&gt;


&lt;p&gt;Vous pouvez également vérifier votre configuration en envoyant un mail à l'adresse&amp;nbsp;: &lt;strong&gt;check-auth ici_le_chez verifier.port25.com&lt;/strong&gt;. Cette adresse vous renvoi les informations sur l'installation des différents protocoles d'authentification des mails sur votre domaine. Ainsi, si vous avez également configuré correctement SPF vous devez avoir tout bon&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
==========================================================
Summary of Results
==========================================================
SPF check:          pass
DomainKeys check:   pass
DKIM check:         pass
Sender-ID check:    pass
SpamAssassin check: ham
&lt;/pre&gt;


&lt;p&gt;Vous devez aussi avoir les informations sur DKIM et DomainKeys dans l'entête du message signé&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
DKIM-Signature: v=1; a=rsa-sha1; c=simple; d=exemple.tld; h=
	message-id:date:from:mime-version:to:subject:content-type:
	content-transfer-encoding; q=dns/txt; s=exempletld; bh=clepublique=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=exemple.tld; h=message-id:
	date:from:mime-version:to:subject:content-type:
	content-transfer-encoding; q=dns; s=exemple.tld; b=clepublique=
&lt;/pre&gt;


&lt;p&gt;Il me reste encore à comprendre complètement les différentes options de la spécification DKIM mais c'est un bon début &lt;img src=&quot;/blog/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.grafactory.net/blog/post/2008/03/12/Installer-la-signature-DKIM-sur-Postfix-Debian-Etch-Amavisd-new#comment-form</comments>
      <wfw:comment>http://www.grafactory.net/blog/post/2008/03/12/Installer-la-signature-DKIM-sur-Postfix-Debian-Etch-Amavisd-new#comment-form</wfw:comment>
      <wfw:commentRss>http://www.grafactory.net/blog/feed/rss2/comments/157</wfw:commentRss>
      </item>
    
</channel>
</rss>