Data publikacji: Apr 15, 2010 6:54:48 AM
Bazując na: http://www.ijs.si/software/amavisd/amavisd-new-docs.html#dkim
Konieczny był upgrade do nowszej wersji amavisd-new. W lenny-backports była akurat właściwa: 2.6.4.
# apt-get install -t lenny-backports amavisd-new
Następnie trzeba było skonfigurować klucze. Ponieważ już miałem je wygenerowane na potrzeby dkim-milter wystarczyło, że przegrałem je z katalogu /etc/dkim/ do /etc/amavis/dkim/
Dopisłem do /etc/amavis/conf.d/50-user (*):
$enable_dkim_verification = 1;
$enable_dkim_signing = 1;
dkim_key('domena.pl', 'mail', '/etc/amavis/dkim/domena.pl/mail.private');
@dkim_signature_options_bysender_maps = ( { '.' => { ttl => 21*24*3600, c => 'relaxed/simple' } } );
@mynetworks = qw(0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16);
Zrestartowałem amavis.
# /etc/init.d/amavis restart
I to wszystko - działa.
PS. usunałem jeszcze z konfiguracji postfixa opcje milter (smtpd_milters, non_smtpd_milters) z /etc/postfix/main.cf oraz parametr -o disable_mime_output_conversion=yes przy konfiguracji smtp-amavis w /etc/postfix/master.conf
Uaktualnienie:
Wraz ze wzrostem liczby domen łatwo można przeoczyć dopisanie nowej lini dkim_key() do konfiguracji amavis. Dlatego zastąpiłem kod (*) poniższym:
if (
-d "/etc/amavis/dkim" || (-l "/etc/amavis/dkim" && -d readlink("/etc/amavis/dkim"))
) {
$enable_dkim_verification = 1;
$enable_dkim_signing = 1;
@dkim_signature_options_bysender_maps = ( { '.' => { ttl => 21*24*3600, c => 'relaxed/simple' } } );
while (my $directory = </etc/amavis/dkim/*>) {
next unless (-d $directory);
next unless ($directory =~ m{^.*/([-a-z0-9.]+)$});
my $domain = $1;
while (my $filename = <$directory/*>) {
next unless (-f $filename);
if ($filename =~ m{^.*/$domain/(.*?)\.private$}) {
my $selector = $1;
dkim_key($domain, $selector, $filename);
}
}
}
}
@mynetworks = qw(0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16);
Teraz jedyne co muszę zrobić to sworzyć odpowiednie wpisy w /etc/amavis/dkim i zrestartować amavisa.