Domů > Linuxové zápisky pro správce > DKIM: podpis poštovního serveru Postfix

DKIM: podpis poštovního serveru Postfix

DKIM neboli DomainKeys Identified Mail je stručně řečeno digitální podpis poštovního serveru. Díky němu budete mít větší jistotu, že doručený e-mail pochází opravdu z konkrétního serveru, nikoliv, že byly údaje v hlavičce podvrženy.

Princip jeho fungování zde popisovat nebudu, jedná se o cílený článek, jak DKIM zprovoznit. Teorii už máte určitě nastudovanou🙂

Výchozí stav

  • Debian Squeeze
  • vlastní doména (vč. možné editace DNS)
  • funkční Postfix (schopný přijímat a odesílat e-maily)

Instalace

nailstalujeme balíček

apt-get install opendkim

Generování klíčů

Abychom mohli podepisovat, musíme vytvořit klíče. To uděláme pomocí OpenSSL

openssl genrsa -out private.key 1024
openssl rsa -in private.key -out public.key -pubout -outform PEM
cp private.key /etc/mail/dkim.key

Konfigurace

Nyní se pustíme do konfigurace OpenDKIM a to v /etc/opendkim.conf
(nezapomeňte změnit „mojedomena.cz“ na název té své)

# Log to syslog

Syslog yes
 # Required to use local socket with MTAs that access the socket as a non-
 # privileged user (e.g. Postfix)
 UMask 002

# Sign for example.com with key in /etc/mail/dkim.key using
 # selector '2007' (e.g. 2007._domainkey.example.com)
 Domain mojedomena.cz
 KeyFile /etc/dkim/private.key
 Selector default

# Commonly-used options; the commented-out versions show the defaults.
 #Canonicalization simple
 #Mode sv
 #SubDomains no
 #ADSPDiscard no

Nastavili jsme zde tzv. Selector a pojmenovali jsme ho default. Budeme ho potřebovat v nastavení DNS (viz. níže).

Dále upravíme /etc/default/opendkim takto

# Command-line options specified here will override the contents of
# /etc/opendkim.conf. See opendkim(8) for a complete list of options.

#DAEMON_OPTS=""
#
# Uncomment to specify an alternate socket
# Note that setting this will override any Socket value in opendkim.conf
#SOCKET="local:/var/run/opendkim/opendkim.sock" # default
#SOCKET="inet:54321" # listen on all interfaces on port 54321
SOCKET="inet:12345@localhost" # listen on loopback on port 12345
#SOCKET="inet:12345@192.0.2.1" # listen on 192.0.2.1 on port 12345

Start démona

Máme nastaveno, takže můžeme DKIM spustit

/etc/init.d/opendkim start

Nastavení Postfixu

Musíme oznámit našemu poštovnímu serveru, aby začal zprávy podepisovat

Editujeme tedy /etc/postfix/main.cf a nakonec přidáme následující:

milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:12345
non_smtpd_milters = inet:localhost:12345

To je všechno, Postfix je nakonfigurovaný.

Konfigurace DNS

Do nastavení DNS serveru naší domény přidáme dva následující záznamy:

_domainkey.mojedomena.cz. IN TXT "t=y; o=-;"

 

selector._domainkey.mojedomena.cz. IN TXT "k=rsa; t=y; p=vas_verejny_klic"

selector změníme v našem případě na default, mojedomena.cz na náš název a vas_verejny_klic na náš vygenerovaný public.key při instalaci. Tzn., že vypadá nějak takto:

-----BEGIN PUBLIC KEY-----
MIGfMWGwregWREGREwgERGREGergerDGdEPzFCAdYnf1Z9nRtfTqwP/mcdGg
NmbY11tCtwwFMu8/qEQwaK/Nc61q0D/z7NYwlsPFi08lnVSHGrewherh5630n
F6S0z961h6li/pOHiJy/l2ehnenhehO3d/NmATY90WlpEDmnlVAMTYgALBFJplp
1ruZ66Bgrewhg43y634567gewrgB
-----END PUBLIC KEY-----

a my použijeme pouze to, co je mezi ----BEGIN PUBLIC KEY--------END PUBLIC KEY----.

Reload Postfixu

Aby se nám projevyly všechn změny, reloadnem Postfix.

/etc/init.d/postfix reload

Hotovo

Po zpropagování DNS záznamů by měl být Váš mailserver o něco důvěryhodnější.

Doplnění: DKIM pro více domén

Pokud máte mailserver s více doménami, nastavení postfixu zůstane stejné, pouze změníte nastavení konfigurace OpenDKIM.

Zeditujeme tedy /etc/opendkim.conf

Domain mojedomena.cz
KeyFile /etc/dkim/private.key
Selector default

nahradíme za

KeyTable           /etc/opendkim/KeyTable
SigningTable       /etc/opendkim/SigningTable
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts      /etc/opendkim/TrustedHosts

Vytvoříme adresář pro konfigurační soubory, abychom neměli všechno v /etc

mkdir /etc/opendkim

dále pak soubor se seznamem adres, které budou z DKIM vyřazeny

touch /etc/opendkim/TrustedHosts

s následujícím obsahem

127.0.0.1
localhost
x.253.204.64
x.253.204.32/27

Vygenerujeme klíče

a nastavíme práva

mkdir -p /etc/opendkim/keys/mojedomena1.cz
cd /etc/opendkim/keys/mojedomena1.cz
opendkim-genkey -r -d mojedomena1.cz
chown opendkim:opendkim default.private

Toto provedeme pro všechny naše domény

Vytvoříme tabulky

touch /etc/opendkim/SigningTable

s obsahem

mojedomena1.cz default._domainkey.mojedomena1.cz

a také

touch /etc/opendkim/KeyTable
default._domainkey.mojedomena1.cz mydomain.com:default:/etc/opendkim/keys/mojedomena1.cz/default.private

Pro každou doménu přidáme další řádek (samozřejmě se správným názvem domény).

Reloadneme openDKIM a Postfix a máme hotovo

/etc/init.d/opendkim reload && /etc/init.d/postfix reload

A nakonec ještě nezapomeňte na úpravu DNS u každé domény.

Test funkčnosti

Na tomto webu můžete otestovat, zda jste byli úspěšní.

Zdroje informací

http://syslog.tv/2010/01/11/dkim-on-debian-with-postfix/
http://blog.tjitjing.com/index.php/2012/03/guide-to-install-opendkim-for-multiple-domains-with-postfix-and-debian.html 


  1. Bez komentářů.
  1. Žádné zpětné odkazy