Dříve jsem vám ukázal, jak nastavit SPF a DKIM na poštovním serveru CentOS/RHEL. Dva běžné kusy softwaru, které mohou provádět podepisování a ověřování DKIM v Linuxu, jsou OpenDKIM a Amavis. V tomto tutoriálu jsem použil Amavis, protože v té době OpenDKIM není součástí žádného úložiště CentOS 8/RHEL 8. Od této chvíle je OpenDKIM součástí úložiště EPEL. Někteří lidé dávají přednost použití OpenDKIM, takže vám v tomto tutoriálu ukážu, jak na to.
Co je DKIM?
DKIM (DomainKeys Identified Mail) je typ záznamů TXT v DNS, které mohou pomoci s prevencí e-mailového spoofingu a se zasíláním legitimních e-mailů do doručené pošty příjemce namísto složky se spamem. DKIM používá soukromý klíč k přidání podpisu k e-mailům odeslaným z vaší domény . Přijímající servery SMTP ověřují podpis pomocí odpovídajícího veřejného klíče, který je zveřejněn v záznamech DNS vaší domény.
Deaktivace DKIM v Amavisu
Pokud jste postupovali podle mého předchozího návodu Amavis, ale nyní chcete používat OpenDKIM, musíte v Amavisu zakázat DKIM. Upravte hlavní konfigurační soubor.
sudo nano /etc/amavisd/amavisd.conf
Najděte následující řádky.
$enable_dkim_verification = 1; # enable DKIM signatures verification $enable_dkim_signing = 1; # load DKIM signing code, keys defined by dkim_key
Přidejte #
znak na začátku každého řádku, abyste je okomentovali.
#$enable_dkim_verification = 1; # enable DKIM signatures verification #$enable_dkim_signing = 1; # load DKIM signing code, keys defined by dkim_key
Uložte a zavřete soubor. Poté restartujte Amavis.
sudo systemctl restart amavisd
Krok 1:Instalace a konfigurace OpenDKIM na CentOS 8/RHEL8
Nejprve povolte úložiště EPEL (Extra Packages for Enterprise Linux) a nainstalujte OpenDKIM.
sudo dnf install epel-release sudo dnf install opendkim
Upravte hlavní konfigurační soubor OpenDKIM.
sudo nano /etc/opendkim.conf
Najděte následující řádek.
Mode v
Ve výchozím nastavení OpenDKIM běží v ověřovacím režimu (v), který ověří podpis DKIM příchozích e-mailových zpráv. Potřebujeme podepisovat odchozí e-maily, takže změňte tento řádek na následující, abyste povolili režim podepisování.
Mode sv
Pak najděte následující řádky.
## Specifies whether or not the filter should generate report mail back ## to senders when verification fails and an address for such a purpose ## is provided. See opendkim.conf(5) for details. SendReports yes ## Specifies the sending address to be used on From: headers of outgoing ## failure reports. By default, the e-mail address of the user executing ## the filter is used ([email protected]). # ReportAddress "Example.com Postmaster" <[email protected]>
Když se ověření podpisu nezdaří a podpis obsahuje požadavek na hlášení (“r=y”) a podepisující doména inzeruje adresu pro hlášení (tj. ra=user) v záznamu hlášení v DNS, OpenDKIM odešle na tuto adresu strukturovaný report. obsahující podrobnosti potřebné k reprodukci problému. K odeslání zprávy můžete chtít použít konkrétní e-mailovou adresu odesílatele. Odkomentujte ReportAddress
parametr a změnit e-mailovou adresu. Upozorňujeme, že tím nevznikne problém zpětného rozptylu, protože e-maily s přehledy budou zasílány na e-mailovou adresu uvedenou v záznamu DNS domény odesílatele.
Najděte následující řádek a zakomentujte jej, protože pro každý název domény použijeme samostatné klíče.
KeyFile /etc/opendkim/keys/default.private
Dále najděte následující 4 řádky a odkomentujte je.
# KeyTable /etc/opendkim/KeyTable # SigningTable refile:/etc/opendkim/SigningTable # ExternalIgnoreList refile:/etc/opendkim/TrustedHosts # InternalHosts refile:/etc/opendkim/TrustedHosts
Uložte a zavřete soubor.
Krok 2:Vytvořte tabulku podpisů, tabulku klíčů a soubor důvěryhodných hostitelů
Upravte tabulku podpisů soubor.
sudo nano /etc/opendkim/SigningTable
Přidejte následující řádek na konec tohoto souboru. Toto sděluje OpenDKIM, že pokud odesílatel na vašem serveru používá @your-domain.com
adresu, pak by měla být podepsána soukromým klíčem identifikovaným 20200308._domainkey.your-domain.com
.
*@your-domain.com 20200308._domainkey.your-domain.com
20200308 je selektor DKIM. Název domény může mít více klíčů DKIM. Volič DKIM vám umožňuje vybrat konkrétní klíč DKIM. Pro selektor DKIM můžete použít jakýkoli název, ale zjistil jsem, že je vhodné použít jako selektor DKIM aktuální datum (8. března 2020). Uložte a zavřete soubor. Poté upravte tabulku klíčů soubor.
sudo nano /etc/opendkim/KeyTable
Přidejte následující řádek, který určuje umístění soukromého klíče DKIM.
20200308._domainkey.your-domain.com your-domain.com:20200308:/etc/opendkim/keys/your-domain.com/20200308.private
Uložte a zavřete soubor. Dále upravte soubor důvěryhodných hostitelů.
sudo nano /etc/opendkim/TrustedHosts
127.0.0.0.1 a ::1 jsou v tomto souboru standardně zahrnuty. Nyní přidejte následující řádek. To říká OpenDKIM, že pokud e-mail přichází z vašeho vlastního názvu domény, pak by OpenDKIM neměl provádět ověření DKIM na e-mailu.
*.your-domain.com
Uložte a zavřete soubor.
Krok 3:Vygenerujte soukromý/veřejný klíč
Protože DKIM se používá k podepisování odchozích zpráv a ověřování příchozích zpráv, musíme vygenerovat soukromý klíč pro podepisování a veřejný klíč pro vzdálený ověřovatel. Veřejný klíč bude zveřejněn v DNS.
Vytvořte samostatnou složku pro doménu.
sudo mkdir /etc/opendkim/keys/your-domain.com
Vygenerujte klíče pomocí opendkim-genkey
nástroj.
sudo opendkim-genkey -b 2048 -d your-domain.com -D /etc/opendkim/keys/your-domain.com -s 20200308 -v
Výše uvedený příkaz vytvoří 2048bitové klíče. -d (domain)
určuje doménu. -D (directory)
určuje adresář, kde budou klíče uloženy. Používám 20200308
jako selektor DKIM. Po provedení příkazu bude soukromý klíč zapsán do 20200308.private
a veřejný klíč bude zapsán do 20200308.txt
soubor.
Ve výchozím nastavení může soubory klíčů číst a zapisovat pouze root. Vytvořte opendkim
jako vlastníka soukromého klíče.
sudo chown opendkim:opendkim /etc/opendkim/keys/ -R
Krok 4:Zveřejněte svůj veřejný klíč v záznamech DNS
Zobrazit veřejný klíč
sudo cat /etc/opendkim/keys/your-domain.com/20200308.txt
Řetězec za p
parametr je veřejný klíč.
Ve správci DNS vytvořte záznam TXT, zadejte 20200308._domainkey
v poli jméno. (Musíte nahradit 20200308 vlastním selektorem DKIM.) Poté se vraťte do okna terminálu, zkopírujte vše v závorkách a vložte do pole hodnoty DNS záznamu. Musíte odstranit všechny dvojité uvozovky a konce řádků v poli hodnoty. Pokud je neodstraníte, pak klíčový test v dalším kroku pravděpodobně selže.
Krok 5:Otestujte klíč DKIM
Zadejte na svém serveru CentOS 8/RHEL 8 následující příkaz a otestujte svůj klíč.
sudo opendkim-testkey -d your-domain.com -s 20200308 -vvv
Pokud je vše v pořádku, zobrazí se key OK
zprávu.
opendkim-testkey: using default configfile /etc/opendkim.conf opendkim-testkey: checking key '20200308._domainkey.linuxbabe.com' opendkim-testkey: key OK
Všimněte si, že váš záznam DKIM může nějakou dobu potřebovat, aby se rozšířil na internet. V závislosti na používaném registrátorovi domény může být váš záznam DNS šířen okamžitě nebo může jeho šíření trvat až 24 hodin. Můžete přejít na https://www.dmarcanalyzer.com/dkim/dkim-check/, zadat 20200308
jako selektor a zadejte název své domény pro kontrolu šíření záznamu DKIM.
Pokud uvidíte „Klíč není zabezpečený“, nepropadejte panice. Důvodem je, že u názvu vaší domény není povolen DNSSEC. DNSSEC je bezpečnostní standard pro bezpečný DNS dotaz. Většina doménových jmen neaktivovala DNSSEC. Můžete pokračovat podle tohoto průvodce.
Nyní můžeme spustit službu opendkim.
sudo systemctl start opendkim
A povolit automatické spouštění při spouštění.
sudo systemctl enable opendkim
OpenDKIM naslouchá na 127.0.0.1:8891
.
Krok 6:Připojte Postfix k OpenDKIM
Upravte hlavní konfigurační soubor Postfixu.
sudo nano /etc/postfix/main.cf
Přidejte následující řádky na konec tohoto souboru, takže Postfix bude moci volat OpenDKIM přes protokol milter. Pamatujte, že byste měli použít 127.0.0.1
jako adresa. Nepoužívejte localhost
.
# Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = $smtpd_milters
Uložte a zavřete soubor. Poté přidejte postfix
uživateli opendkim
skupina.
sudo gpasswd -a postfix opendkim
Restartujte postfix
služba.
sudo systemctl restart postfix
Krok 7:Kontrola SPF a DKIM
Nyní můžete použít svého desktopového e-mailového klienta nebo webového poštovního klienta k odeslání zkušebního e-mailu na [email protected]
a získejte bezplatnou zprávu o ověření e-mailu. Zde je zpráva, kterou jsem dostal z port25.com.
Můžete také odeslat zkušební e-mail ze svého poštovního serveru na svůj účet Gmail a zjistit, zda prošly kontroly SPF a DKIM. Pokud na pravé straně otevřené e-mailové zprávy v Gmailu kliknete na show original
z rozevírací nabídky můžete vidět výsledky ověření.
Pokud vaše zpráva není podepsána a kontrola DKIM se nezdařila, možná budete chtít zkontrolovat protokol postfixu (/var/log/maillog
), abyste viděli, co je ve vaší konfiguraci špatně.
Váš e-mailový server také provede ověření DKIM u příchozích e-mailů. Výsledky můžete vidět v záhlaví e-mailů. Následuje kontrola SPF a DKIM u odesílatele pomocí Gmailu.
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::c2d; helo=mail-yw1-xc2d.google.com; [email protected]; receiver=<UNKNOWN> Authentication-Results: email.linuxbabe.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com [email protected] header.b="XWMRd2co"; dkim-atps=neutral
Jak nakonfigurovat OpenDKIM pro více domén
Napsal jsem průvodce hostováním více domén na poštovním serveru CentOS 8/RHEL 8 s PostfixAdminem. V tom článku jsem použil Amavis pro podepisování a ověřování DKIM. Pokud používáte OpenDKIM, musíte přeskočit krok 3 v tomto článku.
Chcete-li nakonfigurovat OpenDKIM pro více domén, musíte přidat další domény do tabulky podpisů, tabulky klíčů a souboru důvěryhodných hostitelů, jak je uvedeno níže.
Podpisová tabulka:
*@domain1.com 20200308._domainkey.domain1.com *@domain2.com 20200308._domainkey.domain2.com
Klíčová tabulka:
20200308._domainkey.domain1.com domain1.com:20200308:/etc/opendkim/keys/domain1.com/20200308.private 20200308._domainkey.domain2.com domain2.com:20200308:/etc/opendkim/keys/domain2.com/20200308.private
Důvěryhodní hostitelé:
127.0.0.1 localhost *.domain1.com *.domain2.com
Poté vygenerujte pár klíčů DKIM Private/Public a přidejte veřejný klíč DKIM do DNS, jak je uvedeno v kroku 3, kroku 4 a kroku 5 pro ostatní domény. Restartujte OpenDKIM a máte hotovo.
sudo systemctl restart opendkim
Další krok
Doufám, že vám tento tutoriál pomohl nainstalovat a nakonfigurovat OpenDKIM na poštovním serveru CentOS 8/RHEL 8. Nyní si možná budete chtít přečíst následující návod, jak nastavit OpenDMARC pro blokování e-mailového spoofingu.
- Nastavte OpenDMARC s Postfixem na CentOS/RHEL pro blokování e-mailového spoofingu
Jako vždy, pokud pro vás byl tento příspěvek užitečný, přihlaste se k odběru našeho bezplatného zpravodaje a získejte další tipy a triky. Opatruj se 🙂