Postfix dostal podporu pro DANE protokol

Podporu pro protokol DANE již nějakou dobu můžete v prohlížeči používat pomocí rozšíření DNSSEC Validator dostupné pro prohlížeče Firefox, Chrome/Chromium a Internet Explorer. A hned na začátku tohoto roku bych rád přivítal prvního zástupce serverové aplikace s podporou protokolu DANE, jelikož 15. ledna vyšla nová stabilní verze poštovního démona Postfix, která mimo jiné přináší podporu pro protokol DANE. Autoři Postfixu se rozhodli, že pro poštovní servery, které ve valné většině používají self-signed certifikáty, nemá moc smysl podporovat duální kontrolu CA + DANE a tudíž implementace v Postfixu podporuje pouze Certifikate Usage 2 – „Vlastní kořen důvěry (CA)“ a 3 – „Vlastní self-signed certifikát“. Certificate Usage 0 – „Omezení na konkrétní CA“ a 1 „Omezení na konkrétní certifikát od CA“ se mapují na typy 2 a 3.

Pojďme si nyní rychle ukázat, jak takovou podporu na Vašem serveru zapnout.

Na straně přijímající je potřeba mít vygenerovaný certifikát a zapnuté TLS. A jelikož toto není nic nového a dokonce možná toto za Vás udělal rovnou instalační balíček Vaší distribuce, odkázal bych Vás jen na dokumentaci.

Ta zajímavější část přichází ve chvíli, kdy do DNS chceme umístit TLSA záznam, kterým dáme světu vědět, že s námi může komunikovat zabezpečeně, a náš certifikát má odpovídat tomu, který jsme vygenerovali na serveru. Na generování mohu s klidným srdcem doporučit utilitu swede, případně utilitu hash-slinger.

TLSA záznam pomocí utility swede vygenerujeme následujícím způsobem:

swede create --port 25 --protocol tcp --output rfc --usage 3 --selector 1 --mtype 1 --certificate název.serveru

Vygenerovaný záznam, který bude vypadat například takto:

_25._tcp.mail.rfc1925.org. IN TLSA 3 1 1 5afe6a99c7d658a5cee951da6ebe7a21e0d7604f831248177f4283ecf639fad6

vložíte do příslušného zónového souboru a DNS server reloadnete. Pokud Váš DNS server nepodporuje TLSA záznamy, máte dvě možnosti: buď server vyměníte za nějaký modernější (např. Knot DNS) nebo místo volby --output rfc použijete volbu --output generic, která vygeneruje TLSA záznam v obecném formátu, který by měly podporovat i DNS servery bez přímé podpory pro TLSA záznamy.

Tímto jsme zapnuli podporu pro DANE protokol na straně serveru, který poštu přijímá. Jak tedy nastavit ověřování TLSA záznamů na straně odesílajícího serveru?

Předně musíte mít nainstalovaný postfix 2.11.0 a vyšší. Balíčky pro Ubuntu jsou k dispozici například v tomto PPA. Konfigurace je pak velmi jednoduchá, do konfiguračního souboru přidáte tři řádky:

postconf -e "smtp_dns_support_level = dnssec"
postconf -e "smtp_tls_security_level = dane"
postconf -e "smtp_tls_loglevel = 1"

a restartujete Postfix.

Následně se stačí podívat do mail.logu, kde by se měl objevovat pro servery s podporou DANE protokolu následující záznam:

Aug 2 10:35:49 jedi postfix/smtp[24161]: ***Verified*** TLS connection established to mail.nic.cz[217.31.204.67]:25: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)

a pro servery bez podpory:

Aug 2 10:46:54 jedi postfix/smtp[24300]: ***Untrusted*** TLS connection established to aspmx.l.google.com[2a00:1450:4001:c02::1b]:25: TLSv1.2 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)

Na závěr bych chtěl poděkovat Viktoru Dukhovnimu, za jeho práci na implementaci protokolu DANE v Postfixu a Vám popřát šťastné a veselé šifrování v novém roce :).

Ondřej Surý

Autor:

Komentáře (7)

  1. Peter říká:

    Pozor na ten cat do /etc/postfix/main.cf, Dane riadky k obsahu neprida, ale obsah nimi nahradi, vymenil by som > za >>.

  2. Ondřej Caletka říká:

    A ještě lepší je použít přímo utilitku postconf:
    postconf -e „smtp_dns_support_level = dnssec“
    postconf -e „smtp_tls_security_level = dane“
    postconf -e „smtp_tls_loglevel = 1“

  3. Ondřej Surý říká:

    To byl vlastně test na to, jestli zálohujete. (Dokonce jsem to kontroloval, ale viděl jsem dvakrát << a to mne uspokojilo i když to bylo na opačnou stranu.) Díky za upozornění, upravil jsem článek a použil jsem moderní metodu od Ondry Caletky.

  4. Ondřej Caletka říká:

    Ještě bych opravil, že v aktuálním Postfixu je TLSA záznam s usage=0 odmítnut jako nepodporovaný, tedy není mapován na usage=2. Mapování usage=1 na usage=3 je bráno jako experimentální a není doporučováno takové záznamy používat.

    Zdroj: http://www.postfix.org/TLS_README.html

  5. Milan Keršláger říká:

    V zde uvedeném příkazu swede je chyba. Je nutné pro přepínač –certificate zadat jako parametr soubor s PEM certifikátem (používaným pro MTA postfix a jeho STARTTLS) a za něj pak doménové jméno serveru (např. smtp.domena.cz). Nástroj si umí certifikát také stáhnout sám.

    V RHEL6 je kromě skriptu swede (z GitHubu) potřeba nainstalovat moduly pro Python příkazem:
    yum -y install unbound-python m2crypto python-ipaddr

Zanechte komentář

Všechny údaje jsou povinné. E-mail nebude zobrazen.

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..