GNU/Linux >> Znalost Linux >  >> Cent OS

Nastavte OpenDMARC s Postfixem na CentOS/RHEL pro blokování e-mailového spoofingu

V předchozích článcích jsme diskutovali o několika účinných tipech, jak blokovat e-mailový spam. Tento tutoriál vám ukáže, jak nastavit OpenDMARC s Postfix SMTP serverem na CentOS/RHEL pro blokování e-mailového spoofingu a spamu. OpenDMARC je open source filtr e-mailových zásad DMARC pro MTA (Message Transport Agent, neboli server SMTP).

Co je DMARC

DMARC (Domain-based Message Authentication, Reporting and Conformance) je internetový standard (RFC 7489), který umožňuje vlastníkům domén zabránit tomu, aby jejich názvy domén byly používány e-mailovými spoofery. Než byl vynalezen DMARC, je pro špatné herce velmi snadné používat název domény jiných lidí v adrese odesílatele.

Pokud vlastník domény vytvořil DMARC DNS záznam pro své doménové jméno a přijímající e-mailový server implementoval DMARC ověření, pak musí špatní aktéři projít zarovnáním SPF nebo DKIM, aby prošli ověřením DMARC. Pokud kontrola DMARC selže, může být podvržený e-mail odmítnut. Koncoví uživatelé nikdy neuvidí. Pro špatného aktéra je obtížné projít SPF nebo DKIM, pokud není ohrožen e-mailový server vlastníka domény.

Příklad e-mailového spoofingu

Spammer mi poslal e-mail s výkupným pomocí winsaaluminyumankara.com v adrese Od. Informace whois z winsaaluminyumankara.com je veřejný. Je zřejmé, že spammer není osobou odpovědnou za toto doménové jméno.

winsaaluminyumankara.com má záznam DMARC.

Pak jsem zkontroloval hlavičky e-mailů, které ukazují, že SPF selhalo. Neexistuje žádný podpis DKIM. Kontrola DMARC se tedy nezdaří. Toto je podvržený e-mail.

To ukazuje, že e-mailové spoofery nevyužívají pouze velké značky, ale jakákoli doménová jména na internetu mohou být vydávána špatnými herci. Bohužel politika DMARC pro tento název domény je p=none , který říká přijímajícímu e-mailovému serveru, aby nedělal nic zvláštního, pokud kontrola DMARC selže. Pokud je zásada p=reject , pak by můj Postfix SMTP server odmítl tento e-mail s OpenDMARC.

Paypal a Facebook vytvořily reject Zásady DMARC pro název jejich domény.

Takže pokud se špatný herec pokusí podvrhnout Paypal nebo Facebook, můj e-mailový server může odmítnout podvržený e-mail pomocí OpenDMARC. Existuje mnoho dalších známých doménových jmen, které nasadily reject Zásady DMARC, jak je vidět v tabulce níže.

  • bankofamerica.com
  • yahoo.com
  • chase.com
  • wellsfargo.com
  • facebook.com
  • google.com
  • youtube.com
  • twitter.com
  • reddit.com
  • instagram.com
  • linkedin.com
  • medium.com
  • pinterest.com
  • dropbox.com
  • microsoft.com
  • whatsapp.com

Poskytovatel zabezpečené poštovní schránky Protonmail používá Postfix a OpenDMARC k provádění DMARC kontrol příchozích e-mailů a já vám ukážu, jak totéž udělat na vašem vlastním Postfix SMTP serveru.

Předpoklady

Tento výukový program je určen pro poskytovatele poštovních schránek a kohokoli, kdo provozuje svůj vlastní poštovní server, aby ochránil své uživatele před podvody e-mailovým spoofingem. Pokud jste vlastníkem názvu domény a chcete zabránit tomu, aby vaše doménové jméno bylo používáno e-mailovými spoofery, přečtěte si tento článek a vytvořte záznam DMARC a analyzujte zprávu DMARC. Také vám doporučuji přečíst si tento článek, pokud plně nerozumíte DMARC.

Před nastavením OpenDMARC byste měli mít na svém poštovním serveru spuštěnou ověřovací službu DKIM. OpenDMARC by měl být používán ve spojení s OpenDKIM. Pokud používáte Amavis k podepisování a ověřování DKIM, pak doporučuji přejít z Amavisu na OpenDKIM. Je to proto, že OpenDMARC nemůže číst výsledky ověření DKIM z Amavisu. Amavis nemusíte úplně odinstalovat. Jednoduše deaktivujte DKIM v Amavisu a poté nainstalujte a nakonfigurujte OpenDKIM.

Pokud nechcete přecházet na OpenDKIM, musíte integrovat Amavis s Postfixem přes rozhraní milter, což bude vysvětleno na konci tohoto článku.

Krok 1:Instalace a konfigurace OpenDMARC na CentOS/RHEL

OpenDMARC je software s otevřeným zdrojovým kódem, který může provádět kontrolu a hlášení DMARC. Můžete jej nainstalovat na CentOS/RHEL z úložiště EPEL.

instalace sudo dnf epel-releasesudo dnf instalace opendmarc

Spusťte OpenDMARC.

sudo systemctl spustit opendmarc

Povolit automatické spouštění při spouštění.

sudo systemctl povolit opendmarc

OpenDMARC naslouchá na 127.0.0.1:8893 . Spusťte následující příkaz a zkontrolujte jeho stav.

stav systemctl opendmarc

Výstup:

● opendmarc.service – Ověřování zpráv, hlášení a shoda na základě domény (DMARC) Milter Načteno:načteno (/usr/lib/systemd/system/opendmarc.service; povoleno; přednastaveno dodavatelem:zakázáno) Aktivní:aktivní (běží ) od Ne 2020-03-08 23:52:59 EDT; Před 1 minutou 4 s Dokumenty:muž:opendmarc(8) muž:opendmarc.conf(5) muž:opendmarc-import(8) muž:opendmarc-reports(8) http://www.trusteddomain.org/opendmarc/ Hlavní PID:19987 (opendmarc) Úkoly:3 (limit:5047) Paměť:1,1M CGroup:/system.slice/opendmarc.service └─19987 /usr/sbin/opendmarc -c /etc/opendmarc.conf -P /var/run/ opendmarc/opendmarc.pid

Poté upravte hlavní konfigurační soubor pomocí textového editoru.

sudo nano /etc/opendmarc.conf

Najděte následující řádek:

# název AuthservID

Ve výchozím nastavení OpenDMARC používá název hostitele MTA jako AuthserveID, ale pro službu ověřování je lepší použít jiný název, protože Amavisd-new přepíše hlavičku výsledků autentizace přidanou OpenDMARC. Můžete jej změnit na následující, což vám velmi snadno umožní zjistit, který program přidává kterou hlavičku autentizačních výsledků.

AuthservID OpenDMARC

Dále přidejte následující řádek. Nahraďte název hostitele svým skutečným názvem hostitele Postfixu. To říká OpenDMARC, aby důvěřoval výsledku ověření s mail.yourdomain.com v ID. To je potřeba, když máte spuštěný OpenDKIM k ověření DKIM. Pokud název hostitele Postfix není součástí TrustedAuthservIDs , pak OpenDMARC bude ignorovat hlavičku Authentication-Results vygenerovanou OpenDKIM.

TrustedAuthservIDs mail.yourdomain.com

Pak najděte následující řádek.

# IgnoreAuthenticatedClients false

Změňte hodnotu na true ignorovat klienty SMTP, kteří jsou úspěšně autentizováni pomocí SMTP AUTH, což zahrnuje desktopové/mobilní poštovní klienty, kteří odesílají odchozí e-maily přes port 587.

IgnoreAuthenticatedClients true

Pak najděte tento řádek:

# RejectFailures false

Ve výchozím nastavení OpenDMARC neodmítne e-maily, které neprojdou kontrolou DMARC, i když jsou zásady domény nastaveny na p=reject . Pokud chcete odmítnout e-maily, které neprojdou kontrolou DMARC, když jsou zásady domény nastaveny na p=reject , pak odkomentujte tento řádek a změňte false true .

RejectFailures true

Najděte následující řádek.

# RequiredHeaders false

Změňte jej na:

RequiredHeaders true

Tím odmítnete e-maily, které neodpovídají standardům záhlaví e-mailů, jak je popsáno v RFC5322. Pokud například příchozí e-mail nemá From: záhlaví nebo date: záhlaví, bude zamítnuto. Pole From:, ze kterého nelze extrahovat název domény, bude také odmítnuto.

Ve výchozím nastavení bude OpenDMARC na CentOS/RHEL ignorovat všechny výsledky SPF v hlavičkách e-mailů a sám provádí kontroly SPF. To je řízeno následujícími dvěma parametry.

SPFIgnoreResults trueSPFSelfValidate true

Pokud dáváte přednost použití jiné služby kontroly SPF na vašem poštovním serveru, řekněte OpenDMARC, aby důvěřoval výsledkům SPF v hlavičkách e-mailů a prováděl kontroly SPF pouze tehdy, když nemůže najít výsledky SPF v hlavičkách.

SPFIgnoreResults falseSPFSelfValidate true

Uložte a zavřete soubor. Poté restartujte OpenDMARC, aby se změny projevily.

sudo systemctl restart opendmarc

Krok 2:Integrujte OpenDMARC s Postfix SMTP Server

Pokud používáte OpenDKIM

Upravte hlavní konfigurační soubor Postfixu.

sudo nano /etc/postfix/main.cf

Pokud jste postupovali podle mého návodu DKIM na CentOS 8/RHEL 8, měli byste mít v tomto souboru řádky jako níže. OpenDKIM naslouchá na 127.0.0.1:8891 .

# Konfigurace Miltermilter_default_action =acceptmilter_protocol =6smtpd_milters =inet:127.0.0.1:8891non_smtpd_milters =$smtpd_milters

Nyní stačí přidat OpenDMARC socket, aby Postfix mohl komunikovat s OpenDMARC. (Ujistěte se, že je za soketem OpenDKIM.) OpenDMARC naslouchá na 127.0.0.1:8893 .

# Konfigurace Miltermilter_default_action =acceptmilter_protocol =6smtpd_milters =inet:127.0.0.1:8891,inet:127.0.0.1:8893non_smtpd_milters =$smtpd_milters

Uložte a zavřete soubor. Poté restartujte Postfix, aby se změna projevila.

sudo systemctl restart postfix

Pokud používáte Amavis

Pokud používáte Amavis pro podepisování a ověřování DKIM jako v iRedMail , pak OpenDMARC nemůže číst výsledky ověření DKIM z Amavisu. Pro ověření podpisu DKIM si můžete nainstalovat OpenDKIM.

Nainstalujte OpenDKIM z úložiště EPEL (Extra Packages for Enterprise Linux).

instalace sudo dnf epel-releasesudo dnf instalace opendkim

Ve výchozím nastavení opendkim balíček na CentOS/RHEL běží pouze v ověřovacím režimu. Nepřidává podpisy DKIM k odchozím e-mailům. To je to, co chceme, protože Amavis přidá podpisy DKIM. Upravte konfigurační soubor OpenDKIM.

sudo nano /etc/opendkim.conf

Najděte následující řádek.

KeyFile   /etc/opendkim/keys/default.private

Protože nechceme, aby OpenDKIM podepisoval odchozí e-maily, musíme tento řádek zakomentovat, poté soubor uložit a zavřít.

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 .

# Konfigurace Miltermilter_default_action =acceptmilter_protocol =6smtpd_milters =inet:127.0.0.1:8891,inet:127.0.0.1:8893non_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žbu.

sudo systemctl restart postfix

Nyní můžeme spustit službu opendkim.

sudo systemctl spustit opendkim

A povolit automatické spouštění při spouštění.

sudo systemctl povolit opendkim

Krok 3:Testování ověření OpenDMARC

Nyní odešlete e-mail ze své druhé e-mailové adresy na adresu vaší domény. Poté zkontrolujte záhlaví e-mailů. Pokud OpenDMARC funguje správně, můžete vidět výsledky ověření DMARC jako níže.

Výsledky autentizace:OpenDMARC; dmarc=pass (p=none dis=none) header.from=gmail.com

Odeslal jsem e-mail ze svého účtu Gmail na e-mailovou adresu své domény a prošel ověřením DMARC. Pokud toto záhlaví e-mailu nevidíte, zkontrolujte protokoly pošty.

sudo nano /var/log/maillog

Níže uvidíte něco jako, což znamená, že OpenDMARC funguje.

opendmarc[26495]:61DAA3EA44:gmail.com pass

Pokud se zobrazí následující zpráva.

ignorování Authentication-Results at 1 from mail.linuxbabe.com

to znamená, že OpenDMARC ignoruje výsledky ověření SPF a DKIM, takže OpenDMARC nefunguje. Do /etc/opendmarc.conf musíte přidat následující řádek a poté restartujte OpenDMARC.

TrustedAuthservIDs mail.yourdomain.com

Pokud změníte Postfix myhostname nezapomeňte přidat nový název hostitele do TrustedAuthservIDs. Můžete přidat více názvů hostitelů oddělených čárkou.

TrustedAuthservIDs mail.yourdomain.com,mail2.yourdomain.com

Testování OpenDMARC pomocí Telnet

Telnet můžete použít ke zfalšování jiného názvu domény, jako je paypal.com. Nejprve spusťte následující příkaz pro připojení k portu 25 vašeho poštovního serveru.

telnet mail.yourdomain.com 25

Poté pomocí následujících kroků odešlete falešný e-mail. (Zadáte tučné texty.)

HELO mail.paypal.com 250 mail.yourdomain.comMAIL FROM:<[email protected]> 250 2.1.0 OKRCPT TO:<[e-mail chráněný]> 250 2.1.5 OkDATA 354 Ukončete data pomocí .Od:     [e-mail chráněný] Komu:       [chráněno e-mailem] Předmět:  Aktualizujte své heslo. Kliknutím na tento odkaz aktualizujete své heslo. . 550 5.7.1 zamítnuto zásadami DMARC pro paypal.comukončit 

Jak můžete vidět, můj poštovní server odmítl tento e-mail, protože neprošel kontrolou DMARC a Paypal nasadil p=reject zásady.

Poznámka: Pokud je zásada DMARC domény nastavena na p=quarantine , pak OpenDMARC milter vloží podvržený e-mail do fronty pozastavení Postifxu na dobu neurčitou. Vedoucí pošty může vypsat všechny zprávy ve frontě pomocí postqueue -p a použijte postsuper nástroj příkazového řádku pro uvolnění zpráv ve frontě blokování.

(Volitelné) Integrujte Amavis s Postfixem přes Milter

Jak je vysvětleno v části předpoklady, doporučuji přejít z Amavisu na OpenDKIM, ale pokud nechcete přecházet, musíte integrovat Amavis s Postfixem přes rozhraní milter, aby OpenDMARC mohl číst výsledek ověření DKIM z Amavisu.

Nainstalujte amavisd-milter balíček na CentOS/RHEL.

instalace sudo dnf amavisd-milter

Spusťte službu.

sudo systemctl start amavisd-milter

Povolit automatické spouštění při spouštění.

sudo systemctl povolit amavisd-milter

Amavisd-milter poslouchá na Unixovém soketu na /run/amavisd/amavisd-milter.sock . Upravte hlavní konfigurační soubor Postfixu.

sudo nano /etc/postfix/main.cf

Přidejte následující řádky na konec souboru. Pamatujte, že byste měli umístit amavisd-milter Unix socket před OpenDMARC TCP socket.

# Milter configurationmilter_default_action =acceptmilter_protocol =6smtpd_milters =unix:/run/amavisd/amavisd-milter.sock,inet:127.0.0.1:8893non_smtpd_milters =$smtpd_milters

Zakomentujte také následující řádek, aby Postfix nepředával Amavis příchozí e-maily dvakrát.

content_filter =smtp-amavis:[127.0.0.1]:10024

Uložte a zavřete soubor. Poté přidejte postfix do amavis skupina, takže Postfix bude mít přístup k Amavis Unix socketu.

sudo gpasswd -a postfix amavis

Odchozí e-maily odeslané od ověřených uživatelů by neměly být předány Amavisu přes rozhraní milter, protože Amavis nepřidá podpis DKIM. Měli by používat 127.0.0.1:10026 jako obvykle, takže bude přidán podpis DKIM. Upravte soubor Postfix master.cf.

sudo nano /etc/postfix/master.cf

Najděte submission součástka. Pokud jste postupovali podle mého návodu Amavis na CentOS/RHEL, mělo by to vypadat následovně.

 podání inet n - y - - smtpd -o syslog_name =postfix / odevzdání -o smtpd_tls_security_level =šifrování -o smtpd_tls_wrappermode =no -o smtpd_sasl_auth_enable =yes -o smtpd_relay_restrictions =permit_sasl_authenticated, odmítnout -o smtpd_recipient_restrictions =permit_mynetworks, permit_sasl_authenticated, odmítnout - o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o content_filter=smtp-amavis:[127.0.0.1]:10026

Nyní přidejte na konec následující možnost.

-o smtpd_milters=

Takhle:

 podání inet n - y - - smtpd -o syslog_name =postfix / odevzdání -o smtpd_tls_security_level =šifrování -o smtpd_tls_wrappermode =no -o smtpd_sasl_auth_enable =yes -o smtpd_relay_restrictions =permit_sasl_authenticated, odmítnout -o smtpd_recipient_restrictions =permit_mynetworks, permit_sasl_authenticated, odmítnout - o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o content_filter=smtp-amavis:[127.0.0.1]:10026 -o smtpd_milters=

Díky tomu služba odesílání Postfixu nebude vůbec používat milter, takže e-maily odeslané ověřenými uživateli nebudou předány Amavisu přes rozhraní milteru. Pamatujte, že před rovnítko (=) byste neměli přidávat mezery.

Tento řádek byste také měli přidat do smtps komponenta.

SMTPS INET N -Y - -SMTPD -O SYSLOG_NAME =POSTFIX/SMTPS -O SMTPD_TLS_WRAPPMODE =YES -O SMTPD_SASL_AUTH_ENABLE =ANO -O SMTPD_SOTTOMTOMO Smtpd_SeCTOTOTONTOMOMO Smtpd_Stl.Stl -OMO Smtpd. o content_filter=smtp-amavis:[127.0.0.1]:10026 -o smtpd_milters=

Uložte a zavřete soubor. Restartujte Postfix, aby se změny projevily.

sudo systemctl restart postfix

Nyní bude OpenDMARC moci číst výsledek ověření DKIM z Amavisu a Amavis bude nadále přidávat podpis DKIM pro ověřené uživatele.


Cent OS
  1. Jak nastavit nebo změnit název hostitele v CentOS 7 / RHEL 7

  2. Jak nainstalovat a integrovat DKIM s OpenDKIM a Postfix na CentOS 6 VPS

  3. Jak nastavit vlastní název rozhraní pomocí NetworkManageru v CentOS/RHEL 7

  1. Jak nainstalovat poštovní server Postfix na RHEL 8 / CentOS 8

  2. RHEL 8 / CentOS 8 otevřený FTP port 21 s firewallem

  3. Jak nastavit firewall s FirewallD na CentOS 7

  1. Jak nastavit bloky serveru Nginx na CentOS 7

  2. Jak nainstalovat WordPress s Apache na CentOS 7

  3. Jak nastavit bloky serveru Nginx na CentOS 8