Gmail označuje nešifrovanou poštu. Jak to opravit?

Dan Ohnesorg 17. 3. 2016

Nedávno začal Gmail u emailů, které přicházejí nešifrovaným kanálem, zobrazovat ikonu červeného zámečku a tím vyvolal u uživatelů vlnu dotazů: Co to znamená? Jak to opravíme?

Zjistit, co to znamená je snadné a již to víte, ale otázka je, co s tím dělat. Samozřejmě snaha Google je dotlačit všechny k šifrování přenosů elektronické pošty. Snaha je to chvályhodná, ale myslím si, že spousta správců na to není úplně připravena. A tak k šifrování můžeme přistoupit několika způsoby, popíši na příkladech konfigurace MTA Postfix, jakými.

Ideální z pohledu bezpečnosti je postup nejtvrdší, tedy vynucení šifrování pro příjem i odesílání pošty, ale to je na běžném mail serveru zcela vyloučené, takže můžeme přistoupit k měkčímu režimu, kdy pro příjem dáme klientům najevo, že mohou šifrovat a při odesílání budeme šifrovat, pokud cílový server šifrování nabízí. Mezi těmito stavy je ještě stav, kdy server šifrování nabízí a má platný SSL certifikát, takže si můžeme ověřit identitu protistrany, ale takových je poskrovnu. My platné SSL certifikáty udržujeme na serverech, které používají MUA pro odesílání pošty, protože tam probíhá přímá interakce s uživatelem, který certifikát může vidět a jeho platnost posoudit. Pro S2S komunikaci se důvěryhodné SSL certifikáty používají zřídka a správci spíše inklinují k publikaci vlastních certifikátů s pomocí DNSSEC a protokolu TLSA/DANE.

Takže v našem případě přidáme do main.cf tento řádek

smtp_tls_security_level = may

To nám umožní odeslat šifrovaně poštu tomu, kdo při ustavení spojení šifrování navrhne, ale nezpůsobíme si problémy při odesílání klientům, kteří to neumí. S takto nastaveným mail serverem již gmail žádný odemčený zámeček nezobrazuje.

I takové nastavení ale může způsobit, že narazíte na mail servery, které mají hodně divokou konfiguraci a začne problém s příjmem nebo odesíláním pošty na určité domény. Naštěstí postfix lze nastavit tak, aby SSL používal jen pro určité domény. Pokud chceme využít tuto možnost, musíme si nejdříve připravit seznam domén, do kterých chceme emaily odesílat šifrovaně, založíme si tedy soubor /etc/postfix/smtp_tls_policy_maps a do něj přidáme

# cat /etc/postfix/smtp_tls_policy_maps
gmail.com       may
.gmail.com      may

nebo dokonce

gmail.com       verify
.gmail.com      verify

a v tomto případě dokonce vyžadujeme aby druhá strana předložila platný SSL certifikát. To v případě Googlu není problém, protože ten má platné certifikáty na všech MX serverech. Aby postfix věděl, které certifikáty jsou důvěryhodné, je ještě potřeba přidat parametr

smtp_tls_CApath=/etc/ssl/certs

Ten ukazuje do místa, kde máte instalovány certifikáty kořenových certifikačních autorit. V případě Debianu může být potřeba instalovat balíček ca-certificates a potom do main.cf místo řádku z první ukázky přidáme:

smtp_tls_policy_maps = hash:/etc/postfix/smtp_tls_policy_maps

a protože nás zajímá, jak odesílání funguje, tak si zvýšíme úroveň logování

smtp_tls_loglevel = 1

Poslední krok je kompilace mapovacího souboru

# postmap /etc/postfix/smtp_tls_policy_maps

a potom konfiguraci reloadem Postfixu aplikujeme.

Tato konfigurace je hodně konzervativní, ale mám vyzkoušené, že funguje spolehlivě, odesílání na gmail přes SSL nezpůsobuje žádné problémy a alespoň část uživatelů ochrání. A postupně jak budou správci tlačeni do toho, aby šifrování podporovali, tak bude možné seznam domén rozšiřovat až postupně bude šifrovaná všechna S2S komunikace. V případě striktnějšího režimu verify máte zajištěno, že pošta směřující na Gmail nebude předána na jiný mail server (pokud můžete věřit DNS záznamům).

Příjem pošty šifrovaným kanálem

Pokud chceme implementovat i druhou část skládačky, tedy umožnit ostatním, aby nám posílali šifrovanou poštu, čeká nás mnohem složitější operace. Ani ne tak technicky, ale administrativně.

Technicky nám stačí obstarat si SSL certifikát, stačí i ten úplně nejobyčejnější, a zapnout podporu šifrování pro příjem pošty parametrem

smtpd_tls_security_level = may

may opět znamená, že šifrování nabízíme, ale nijak na něm netrváme. Potom potřebujeme pár dalších parametrů, aby postfix věděl kde máme certifikát a jaké podporujeme šifry:

smtpd_tls_cert_file = /etc/postfix/server.crt
smtpd_tls_key_file = /etc/postfix/server.key
smtpd_tls_loglevel = 1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3

Tady platí klasická pravidla pro TLS komunikaci, tedy nepodporujeme slabé šifry.

Potud je situace snadná a zalitá sluncem, ale přichází otázka, pro jaké CNAME mám vystavit certifikát. A odpověď vás nepotěší, musí být pro jméno serveru uvedené v MX záznamu domény. Zákazníci většinou vyžadují, aby mail server vypadal jako jejich, a tak většina českých domén má MX nastavené na jméno typu mail.zakaznik.cz. Takže certifikát buď musí obsahovat všechny domény zákazníků, což je někde mezi technicky nemožné (není možné mít libovolný počet SAN v certifikátu) a obchodně nemožné, než získáte souhlasy všech, tak můžete získávat souhlasy znovu. A nebo musíte všechny domény přenastavit, aby MX nebyl v doméně zákazníka, ale ve vaší. Opět je s tím spousta práce. Teprve tehdy, když každý, kdo bude chtít na server doručit poštu, bude zaručeně používat jméno z certifikátu, tak můžete zapnout šifrování. Pokud to uděláte dříve, pravděpodobně přestane přicházet pošta z domén, kde zvolili striktnější/validující konfiguraci.

Vím, že nekončím příliš optimisticky, ale alespoň víte, jak při nových instalacích DNS nastavovat a nepřidělávat si práci do budoucna.

Pro zajímavost, jaká jména má v SSL certifikátu Google:

DNS:mx.google.com, DNS:alt1.aspmx.l.google.com, DNS:alt1.gmail-smtp-in.l.google.com, DNS:alt1.gmr-smtp-in.l.google.com, DNS:alt2.aspmx.l.google.com, DNS:alt2.gmail-smtp-in.l.google.com, DNS:alt2.gmr-smtp-in.l.google.com, DNS:alt3.aspmx.l.google.com, DNS:alt3.gmail-smtp-in.l.google.com, DNS:alt3.gmr-smtp-in.l.google.com, DNS:alt4.aspmx.l.google.com, DNS:alt4.gmail-smtp-in.l.google.com, DNS:alt4.gmr-smtp-in.l.google.com, DNS:aspmx.l.google.com, DNS:aspmx2.googlemail.com, DNS:aspmx3.googlemail.com, DNS:aspmx4.googlemail.com, DNS:aspmx5.googlemail.com, DNS:gmail-smtp-in.l.google.com, DNS:gmr-mx.google.com, DNS:gmr-smtp-in.l.google.com

Našli jste v článku chybu?
Podnikatel.cz: Přerušil SVČ, nic nehlásil. Dál musí platit

Přerušil SVČ, nic nehlásil. Dál musí platit

Root.cz: Bitcoin začal vyplácet jen půlku odměn

Bitcoin začal vyplácet jen půlku odměn

120na80.cz: Jaké plavecké pomůcky vaše dítě ochrání?

Jaké plavecké pomůcky vaše dítě ochrání?

DigiZone.cz: DAB už i z Košic. A překvapivě!

DAB už i z Košic. A překvapivě!

Lupa.cz: Foto: Kolektor CETINu. Sem se jen tak nepodíváte

Foto: Kolektor CETINu. Sem se jen tak nepodíváte

Lupa.cz: eIDAS: Nepřehnali jsme to s výjimkami?

eIDAS: Nepřehnali jsme to s výjimkami?

Podnikatel.cz: Akční plán podpoří byznys padesátníků

Akční plán podpoří byznys padesátníků

Podnikatel.cz: Tahle praktika stála šmejdy přes milion

Tahle praktika stála šmejdy přes milion

Vitalia.cz: Jak může být v uzenině 150 % masa?

Jak může být v uzenině 150 % masa?

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Měšec.cz: Investice do drahých kovů - znáte základní chyby?

Investice do drahých kovů - znáte základní chyby?

Lupa.cz: Tudy proudí váš hlas i data. V zákulisí CETINu

Tudy proudí váš hlas i data. V zákulisí CETINu

Vitalia.cz: Bio vejce nepoznají ani veterináři

Bio vejce nepoznají ani veterináři

DigiZone.cz: Skylink o půlnoci vypnul 12 525

Skylink o půlnoci vypnul 12 525

Podnikatel.cz: Italské těstoviny nebyly k mání, tak je začal vyrábět

Italské těstoviny nebyly k mání, tak je začal vyrábět

Vitalia.cz: Pepsi Cola mění sirup za cukr

Pepsi Cola mění sirup za cukr

Vitalia.cz: Zmrzlinu? Ani snad ne

Zmrzlinu? Ani snad ne

DigiZone.cz: Skylink: do pátku může docházet k výpadkům

Skylink: do pátku může docházet k výpadkům

Měšec.cz: Kurzy platebních karet: vyplatí se platit? (TEST)

Kurzy platebních karet: vyplatí se platit? (TEST)

120na80.cz: Tipy pro odvodnění organismu

Tipy pro odvodnění organismu