E-mailové služby tradičně odesílají data nechráněným způsobem – ať už odesíláte e-maily přes SMTP nebo je přijímáte přes IMAP nebo POP, výchozí hodnoty jsou v prostém textu. S více online aplikacemi vynucujícími šifrování a obecným konsensem o ochraně vašich dat je nejlepší zabezpečit své e-mailové služby bezpečnostním certifikátem Secure Sockets Layer/Transport Layer Security (SSL/TLS).
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Nejprve rychlý přehled e-mailových služeb a protokolů. E-mail je odesílán prostřednictvím služby zvané Simple Mail Transport Protocol (SMTP) pomocí TCP portu 25. Tento protokol odesílá e-maily ze serveru na server na základě vyhledávání záznamů DNS mail exchanger (MX). Jakmile je e-mail na e-mailovém serveru, je načten pomocí jedné ze dvou služeb:Internet Message Access Protocol (IMAP) pomocí portu TCP 143 nebo Post Office Protocol (POP3) pomocí portu TCP 110. Všechny tyto služby jsou ve výchozím nastavení posílejte svůj e-mail a autentizaci do/z těchto služeb v prostém textu – je tedy velmi nechráněný!
Pro ochranu e-mailových dat a ověřování přidaly tyto služby bezpečnostní funkci, ve které mohou využívat SSL/TLS certifikát k zabalení datového toku a komunikace šifrováním. Jak šifrování SSL/TLS zabezpečuje informace, přesahuje rozsah tohoto článku, ale článek Bryant Son o internetové bezpečnosti to pokrývá velmi podrobně. Na vysoké úrovni je šifrování SSL/TLS veřejným/soukromým šifrovacím algoritmem.
Přidáním těchto bezpečnostních funkcí do služeb mohou naslouchat na nových TCP portech:
Služba | Výchozí port TCP | Port SSL/TLS |
---|---|---|
SMTP | 25 | 587 |
IMAP | 143 | 993 |
POP3 | 110 | 995 |
Generovat certifikáty SSL/TLS
Certifikáty SSL/TLS lze generovat zdarma pomocí nástrojů, jako je OpenSSL, nebo je lze zakoupit za různé ceny od veřejných certifikačních autorit (CA). V minulosti bylo vygenerování vlastního certifikátu snadné a ve většině případů fungovalo, ale s rostoucí poptávkou po lepším zabezpečení většina e-mailových klientů nedůvěřuje samovygenerovaným certifikátům SSL/TLS bez ruční výjimky.
Pokud je váš případ použití soukromý nebo pro testování, pak má smysl ušetřit peníze pomocí samostatně vygenerovaného certifikátu. Ale pokud to zavádíte do velké skupiny nebo máte platící zákazníky, pak vám lépe poslouží zakoupení certifikátu od veřejné důvěryhodné společnosti, která je prodává.
V obou případech je proces, jak začít žádat o nový certifikát, použít nástroj OpenSSL ve vašem systému Linux k vytvoření žádosti o podpis certifikátu (CSR):
$ openssl req -new -newkey rsa:2048 -nodes -keyout mail.mydomain.key -out mail.mydomain.csr
Tento příkaz vytvoří současně nový CSR a soukromý klíč pro službu, kterou se snažíte zabezpečit. Proces se vás zeptá na řadu otázek spojených s certifikátem:podrobnosti o umístění, plně kvalifikovaný název domény serveru (FQDN), kontaktní e-mailové informace atd. Po vyplnění informací se vygeneruje klíč a CSR.
Pokud si vygenerujete vlastní certifikát
Chcete-li vygenerovat svůj vlastní certifikát, musíte si před vydáním výše uvedeného příkazu CSR vytvořit vlastní kořenovou CA. Svou vlastní kořenovou CA si můžete vytvořit pomocí:
$ openssl genrsa -des3 -out myCA.key 2048
Zobrazí se výzva k přidání přístupové fráze. Dejte mu zabezpečenou přístupovou frázi a neztraťte ji – toto je váš soukromý klíč kořenové CA a jak název napovídá, je to kořen veškeré důvěry ve vaše certifikáty.
Dále vygenerujte certifikát kořenové CA:
$ openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem
Po zodpovězení několika dalších otázek vygenerujete kořenový certifikát CA s pětiletou životností.
Pomocí souboru CSR z výše uvedených kroků můžete požádat o vygenerování nového certifikátu a jeho podepsání kořenovou CA, kterou jste právě vytvořili:
$ openssl x509 -req -in mail.mydomain.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out mail.mydomain.pem -days 1825 -sha256
Chcete-li vytvořit a podepsat certifikát, zadejte heslo svého soukromého kořenového klíče CA.
Nyní máte dva soubory potřebné ke konfiguraci e-mailových služeb pro lepší zabezpečení:soubor soukromého klíče mail.mydomain.key a soubor veřejného certifikátu mail.mydomain.pem .
Pokud si zakoupíte certifikát
Pokud si zakoupíte certifikát od dodavatele, požádá vás o nahrání tohoto CSR do jeho systému, protože se používá jako vstup pro generování certifikátu SSL/TLS. Certifikát bude přístupný jako soubor (například mail.mydomain.pem ). Mnoho dodavatelů SSL také vyžaduje, abyste si stáhli zprostředkující certifikát. V takovém případě musíte zkombinovat dva soubory certifikátu do jednoho, aby je e-mailová služba mohla zpracovat oba v kombinaci. Svůj certifikát můžete zkombinovat se zprostředkujícím certifikátem třetí strany pomocí:
$ cat mail.mydomain.pem gd_bundle-g2-g1.crt > mail.mydomain.pem
Všimněte si, že přípona výstupního souboru je .pem , což je zkratka pro Privacy-Enhanced Mail.
Nyní máte dva soubory, které potřebujete ke konfiguraci e-mailových služeb pro lepší zabezpečení:soubor soukromého klíče mail.mydomain.key a soubor veřejného kombinovaného certifikátu mail.mydomain.pem .
Vytvořte bezpečný adresář pro své soubory
Ať už jste si vytvořili svůj vlastní klíč nebo jej zakoupili od dodavatele, vytvořte bezpečný adresář vlastněný rootem pro dva soubory, které jste vytvořili výše. Příkladem pracovního postupu pro vytvoření bezpečné hry by bylo:
$ mkdir /etc/pki/tls
$ chown root:root /etc/pki/tls
$ chmod 700 /etc/pki/tls
Po zkopírování souborů do /etc/pki/tls nezapomeňte nastavit oprávnění s:
$ chmod 600 /etc/pki/tls/*
Nakonfigurujte své služby SMTP a IMAP
Dále nakonfigurujte služby SMTP i IMAP tak, aby používaly nové certifikáty zabezpečení. Programy použité v tomto příkladu pro SMTP a IMAP jsou postfix a holubník .
Upravit / atd / postfix/main.cf ve vašem preferovaném textovém editoru. Přidejte následující řádky:
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/mail.mydomain.pem
smtpd_tls_key_file = /etc/pki/tls/mail.mydomain.key
Přizpůsobte si konfiguraci
Následující možnosti umožňují zakázat/povolit různé šifry, protokoly atd.:
smtpd_tls_eecdh_grade = strong
smtpd_tls_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_ciphers = high
smtpd_tls_security_level=may
smtpd_tls_ciphers = high
tls_preempt_cipherlist = yes
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
smtpd_tls_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
Upravte /etc/dovecot/dovecot.conf přidáním těchto tří řádků:
ssl = required
ssl_cert = </etc/pki/tls/mail.mydomain.pem
ssl_key = </etc/pki/tls/mail.mydomain.key
Přidejte následující možnosti pro zakázání/povolení různých šifer, protokolů a dalších (pochopení a zvážení těchto nechám na vás):
ssl_cipher_list = EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:ALL:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SSLv2
ssl_prefer_server_ciphers = yes
ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1
ssl_min_protocol = TLSv1.2
Nastavit kontext pro SELinux
Pokud má vaše distribuce Linuxu povolen SELinux, nastavte správný kontext SELinux pro vaše nové soubory certifikátů.
Pro Postfix SELinux:
$ chcon -u system_u -t cert_t mail.mydomain.*
Pro Dovecot SELinux:
$ chcon -u system_u -t dovecot_cert_t mail.mydomain.*
Restartujte obě služby a připojte se k aktualizovaným konfiguracím e-mailového klienta. Někteří e-mailoví klienti automaticky detekují nová čísla portů; ostatní budou vyžadovat, abyste je aktualizovali.
Otestujte své nastavení
Rychle otestujte z příkazového řádku pomocí openssl a s_client plugin:
$ openssl s_client -connect mail.mydomain.com:993
$ openssl s_client -starttls imap -connect mail.mydomain.com:143
$ openssl s_client -starttls smtp -connect mail.mydomain.com:587
Tyto testovací příkazy zobrazí nepřeberné množství dat o připojení, certifikátu, šifře, relaci a protokolu, které používáte. Je to nejen dobrý způsob, jak ověřit, že nová konfigurace funguje, ale také potvrdit, že používáte příslušný certifikát a nastavení zabezpečení, které jste definovali v postfixu nebo holubník konfigurační soubory.
Zůstaňte v bezpečí!