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----
a ----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
Nejnovější komentáře