Emailserver/DKIM (exim)

Aus SchnallIchNet
Wechseln zu: Navigation, Suche

Zusaetzliche Pakete

installiere DKIM-abhaengigkeiten fuer Spamassassin

apt-get install libmail-dkim-perl

installiere DKIM-abhaengigkeiten fuer exim4
fuer etch wird das backports-repo benoetigt!

apt-get install libsmdkim2 libsmdkim-dev

Key erzeugen

Public/Private Key Paar erstellen

openssl genrsa -out ./private/mail2009._domainkey.domain.tld.key 1024

Public Key extrahieren

openssl rsa -in ./private/mail2009._domainkey.domain.tld.sec.key -out ./certs/mail2009._domainkey.domain.tld.pub.key -pubout -outform PEM

Keys ins exim4 verzeichnis kopieren

cp -a ./private/mail2009._domainkey.domain.tld.key /etc/exim4/
cp -a ./certs/mail2009._domainkey.domain.tld.pub.key /etc/exim4/

DNS TXT-Tecord

p= string erzeugen

grep -v -e "^-" ./certs/mail._domainkey.domain.tld.pub.key | tr -d "\n"

dkim-public key

mail2009._domainkey IN TXT "v=DKIM1\; k=rsa\; t=y\;p=MIGfMA0GCSqGSIb3D.....DTm+gq9FwsB/PSdrbYeEQIDAQAB"

_ssp ist die Senderpolicy für DKIM. unknown heisst es wird signiert oder auch nicht

_ssp._domainkey IN TXT "t=y\; dkim=unknown"

Spamassassin

installiere abhaengigkeiten fuer DKIM

apt-get install libmail-dkim-perl

In der local.cf einfach eingetragen:

loadplugin Mail::SpamAssassin::Plugin::DKIM

Exim4

Exim4 (>= 4.69)

### transport/30_exim4-config_remote_smtp
#################################
# This transport is used for delivering messages over SMTP connections.
remote_smtp:
  debug_print = "T: remote_smtp for $local_part@$domain"
  driver = smtp
  .ifdef OUTGOING_INTERFACE
  interface = OUTGOING_INTERFACE
  .endif
  dkim_domain = $sender_address_domain
  dkim_selector = tsst2008
  dkim_private_key = /etc/exim4/${dkim_selector}.${dkim_domain}.private.pem
  # to disable TLS on outgoing connections, uncomment this
  # hosts_avoid_tls = *

Exim4 (< 4.69)

diese versionen haben leiden keinen buildin DKIM support
und muessen gepatcht werden
TODO: schritte und patches eintragen...

Exim4-4.69 on Etch

lenny package libdkim holen (clean on Etch!!)

wget http://ftp.de.debian.org/debian/pool/main/libd/libdkim/libdkim-dev_1.0.19-3_i386.deb

sources.list anpassen

deb-src http://ftp.de.debian.org/debian lenny main contrib non-free

nun src-paket holen

cd /usr/src
apt-get install build-essential debuild devscripts
apt-get source exim4
... unpacks stuff ...
cd exim4-4.69/
fakeroot debian/rules unpack-configs

fix build-dependencies

 apt-get build-dep exim4

wenn hier fehler auftreten wegen libdbd4.x dann muss im file debian/control folgendes geaendert werden:

s/libdb4.6-dev/libdb4.4-dev/gci

und die installation muss angestossen werden:

apt-get install libdb4.4-dev

die compile-config fuer exim4-heavy nach custom kopieren
und anpassen:

cp EDITME.exim4-heavy EDITME.exim4-custom
echo "EXPERIMENTAL_DKIM=yes" >> EDITME.exim4-custom
echo "LDFLAGS += -ldkim" >> EDITME.exim4-custom

packe configs wieder zusammen

fakeroot debian/rules pack-configs

rules file anpassen: debian/rules
finde die zeile

extradaemonpackages=exim4-daemon-heavy

und ersetze sie durch

extradaemonpackages=exim4-daemon-heavy exim4-daemon-custom

oder

echo "extradaemonpackages=exim4-daemon-heavy exim4-daemon-custom" >> debian/rules

dkim patch holen (wenn libdkim version == 1.0.19)

wget 'http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=99_libdkim_1.0.19.dpatch;att=1;bug=486437' -O - | \
cat >> 80_libdkim_patch.dpatch

dkim-patch in die patches-liste eintragen (wenn libdkim version == 1.0.19):

echo "80_libdkim_patch" >> debian/patches/00list

nun noch ein:

debuild

oder

debuild -uc -us

FERTIG!!!