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?
Měšec.cz: Test: Výběry z bankomatů v cizině a kurzy

Test: Výběry z bankomatů v cizině a kurzy

120na80.cz: Bylinka pro dobrý sex. Jaká to je?

Bylinka pro dobrý sex. Jaká to je?

Vitalia.cz: „Sjíždět“ porno není bez rizika

„Sjíždět“ porno není bez rizika

Lupa.cz: Hackujete? Můžete mít problém sehnat práci

Hackujete? Můžete mít problém sehnat práci

Lupa.cz: Kdy se Estonec přihlásí k české datové schránce?

Kdy se Estonec přihlásí k české datové schránce?

Vitalia.cz: Vakcína Cervarix je oficiálně i pro chlapce

Vakcína Cervarix je oficiálně i pro chlapce

DigiZone.cz: Skylink přepracoval web

Skylink přepracoval web

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

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

120na80.cz: Víte, co je svobodná menstruace?

Víte, co je svobodná menstruace?

Podnikatel.cz: Pozor na vykuky, imitují služby České pošty

Pozor na vykuky, imitují služby České pošty

Lupa.cz: Kdo vykrádá LinkedIn? Zjistit to má soud

Kdo vykrádá LinkedIn? Zjistit to má soud

DigiZone.cz: Vláda schválila digitální vysílání ČRo

Vláda schválila digitální vysílání ČRo

Podnikatel.cz: OSA zdraží, ale taky přidá nový poplatek

OSA zdraží, ale taky přidá nový poplatek

DigiZone.cz: Prima a vznik slovenského kanálu

Prima a vznik slovenského kanálu

Měšec.cz: Platíme NFC mobilem. Konečně to funguje!

Platíme NFC mobilem. Konečně to funguje!

Lupa.cz: Měřičům síly hesla se nedá věřit. Víte proč?

Měřičům síly hesla se nedá věřit. Víte proč?

Vitalia.cz: Co potřebujete vědět o zubech moudrosti?

Co potřebujete vědět o zubech moudrosti?

DigiZone.cz: ČTÚ červenec: rušení trochu vzrostlo

ČTÚ červenec: rušení trochu vzrostlo

Lupa.cz: Nechcete datacentrum? Jsou na prodej

Nechcete datacentrum? Jsou na prodej

Vitalia.cz: Proč mu to dává? Copak už může kaši?

Proč mu to dává? Copak už může kaši?