GNU/Linux >> Znalost Linux >  >> Ubuntu

Nastavení Amavis a ClamAV na poštovním serveru Ubuntu

Toto je část 11 v sérii výukových programů pro poštovní server Ubuntu od nuly. V tomto článku vám ukážu, jak používat Amavis a ClamAV pro kontrolu virů v e-mailových zprávách.

Amavis (A Mail Virus Scanner) je vysoce výkonné rozhraní mezi agentem přenosu zpráv (MTA), jako je Postfix a obsahové filtry. Filtr obsahu je program, který kontroluje záhlaví a tělo e-mailové zprávy a na základě toho, co najde, obvykle provádí nějakou akci. Nejběžnějšími příklady jsou virový skener ClamAV a SpamAssassin .

Amavis mluví standardním protokolem SMTP a může také používat rozhraní Sendmail milter. Běžně se používá pro

  • Prohledávání virů pomocí integrace s ClamAV (Clam AntiVirus)
  • kontrola spamu díky integraci se SpamAssassin
  • Podepisování a ověřování DKIM. (Ve skutečnosti raději používám OpenDKIM pro podepisování a ověřování DKIM.)

Předpoklady

Měli byste mít dokončenou alespoň část 1 (server Postfix SMTP) a část 2 (server Dovecot IMAP) série výukových programů pro poštovní server Ubuntu od nuly. Všimněte si, že pokud jste k nastavení svého poštovního serveru použili iRedMail nebo Modoboa, Amavis a ClamAV jsou již nainstalovány a nakonfigurovány, takže nemusíte postupovat podle tohoto návodu.

Upozornění :Amavis a ClamAV vyžadují značné množství paměti RAM. Před instalací Amavis a ClamAV se ujistěte, že máte na serveru alespoň 1,3 GB volné paměti RAM. Celý zásobník poštovního serveru (Postfix, Dovecot, Amavis, ClamAV, SpamAssassin, OpenDKIM, MySQL/MariaDB, PostfixAdmin a Roundcube Webmail) potřebuje alespoň 3 GB RAM pro hladký chod. Pokud dojde vaše RAM, budete mít problémy, jako je přepnutí poštovního serveru do režimu offline nebo přerušení odezvy.

Krok 1:Nainstalujte Amavis na Ubuntu

Amvis je dostupný z výchozího úložiště Ubuntu, takže jej nainstalujte spuštěním následujícího příkazu.

sudo apt install amavisd-new -y

Po instalaci se automaticky spustí. Jeho stav můžete zkontrolovat pomocí:

stav systemctl amavis

Výstup:

● amavis.service – LSB:Spustí amavisd-new mailfilter Načteno:načteno (/etc/init.d/amavis; vygenerováno) Aktivní:aktivní (běžící) od pá 2020-08-07 15:43:40 HKT; 1min 1s ago Dokumenty:man:systemd-sysv-generator(8) Úkoly:3 (limit:9451) Paměť:75,4M CGroup:/system.slice/amavis.service ├─1794260 /usr/sbin/amavisd-new (master ) ├─1794263 /usr/sbin/amavisd-new (panenské dítě) └─1794264 /usr/sbin/amavisd-new (panenské dítě)

Pokud neběží, můžete jej spustit pomocí:

sudo systemctl spustit amavis

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

sudo systemctl povolit amavis

Ve výchozím nastavení naslouchá na 127.0.0.1:10024 , jak je vidět na:

sudo netstat -lnpt | grep amavis

A běží jako amavis uživatel. Chcete-li zkontrolovat číslo verze, spusťte

amavisd-new -V

Ukázkový výstup:

amavisd-new-2.11.0 (20160426)

Chcete-li zkontrolovat protokoly Amavisu, můžete spustit

sudo journalctl -eu amavis

Viry se běžně šíří jako přílohy e-mailových zpráv. Nainstalujte následující balíčky pro Amavis pro extrahování a skenování archivních souborů v e-mailových zprávách, jako je .7z , .cab , .doc , .exe , .iso , .jar a .rar soubory.

sudo apt install arj bzip2 cabextract cpio rpm2cpio soubor gzip lhasa nomarch pax rar unrar p7zip-full unzip zip lrzip lzip liblz4-tool lzop unrar-free

Pokud používáte Ubuntu 18.04, nainstalujte si také ripole balíček.

sudo apt install ripole

Pamatujte, že pokud váš server nepoužívá jako název hostitele plně kvalifikovaný název domény (FQDN), Amavis se nemusí spustit. A název hostitele OS se může změnit, takže se doporučuje nastavit platný název hostitele přímo v konfiguračním souboru Amavis.

sudo nano /etc/amavis/conf.d/05-node_id

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

#$myhostname ="mail.example.com";

Odstraňte znak komentáře (#) a změňte mail.example.com na vaše skutečné jméno hostitele.

$myhostname ="mail.linuxbabe.com";

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

sudo systemctl restart amavis

Krok 2:Integrujte Postfix SMTP Server s Amavis

Amavisd-new funguje jako proxy SMTP. E-mail je do něj přiváděn prostřednictvím SMTP, zpracováván a odesílán zpět do MTA prostřednictvím nového připojení SMTP.

Upravte hlavní konfigurační soubor Postfixu.

sudo nano /etc/postfix/main.cf

Přidejte následující řádek na konec souboru. To Postfixu říká, aby zapnul filtrování obsahu odesláním každé příchozí e-mailové zprávy společnosti Amavis, která naslouchá na 127.0.0.1:10024 .

content_filter =smtp-amavis:[127.0.0.1]:10024

Přidejte také následující řádek.

smtpd_proxy_options =speed_adjust

To zdrží připojení Postfixu k filtru obsahu, dokud nebude přijata celá e-mailová zpráva, což může zabránit tomu, aby filtry obsahu plýtvaly časem a zdroji pro pomalé klienty SMTP.

Uložte a zavřete soubor. Poté upravte master.cf soubor.

sudo nano /etc/postfix/master.cf

Přidejte následující řádky na konec souboru. Toto instruuje Postfix, aby použil speciální komponentu SMTP klienta nazvanou smtp-amavis k doručování e-mailových zpráv společnosti Amavis. Před každým -o ponechte alespoň jeden prázdný znak (tabulátor nebo mezerník). . V konfiguracích postfixu předchozí prázdný znak znamená, že tento řádek je pokračováním předchozího řádku.

smtp-amavis unix - - n - 2 smtp -o syslog_name=postfix/amavis -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -otlo sm_use=20otlo sm_use=20 

Poté přidejte následující řádky na konec souboru. Toto říká Postfixu, aby spustil dalšího smtpd démona naslouchajícího na 127.0.0.1:10025 pro příjem e-mailových zpráv zpět od společnosti Amavis.

127.0.0.1:10025 inet n - n - - smtpd -o syslog_name=postfix/10025 -o content_filter=-o mynetworks_style=host -o mynetworks=127.0.0.0/8 -o local_recipient_recipient_recips=-o relay strict_rfc821_envelopes =yes -o smtp_tls_security_level =none -o smtpd_tls_security_level =none -o smtpd_restriction_classes =-o smtpd_delay_reject =no -o smtpd_client_restrictions =permit_mynetworks zamítnout -o smtpd_helo_restrictions =-o smtpd_sender_restrictions =-o smtpd_recipient_restrictions =permit_mynetworks zamítnout -o smtpd_end_of_data_restrictions =-o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o recipient_preknown_nocipsdress_pping 

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

sudo systemctl restart postfix

Krok 3:Integrujte Amavis s ClamAV

Nyní, když Postfix může předávat příchozí e-maily společnosti Amavis, musíme nainstalovat antivirový skener ClamAV a integrovat jej s Amavisem, aby mohl ClamAV skenovat příchozí e-maily.

Nainstalujte ClamAV na Ubuntu.

sudo apt install clamav clamav-daemon

ClamAV nainstaluje dvě systémové služby:

  • clamav-daemon.service :démon uživatelského prostoru Clam AntiVirus
  • clamav-freshclam.service :aktualizátor virové databáze ClamAV

Nejprve zkontrolujte stav clamav-freshclam.service .

stav systemctl clamav-freshclam

Jak můžete vidět, je aktivní (běží) a využívá 217,6 M RAM na mém poštovním serveru. Poté zkontrolujte deník/protokol.

sudo journalctl -eu clamav-freshclam

Výstup:

Tip:Pokud se výše uvedený příkaz neukončí okamžitě, ukončete jej stisknutím klávesy Q.

Můžeme vidět, že freshclam staženy 3 virové databáze. CVD je zkratka pro ClamAV Virus Database.

  • daily.cvd
  • main.cvd
  • bytecode.cvd

Nicméně clamd nebyl upozorněn, protože freshclam se nemůže připojit k clamd prostřednictvím /var/run/clamav/clamd.ctl . Zkontrolujte stav clamav-daemon.service .

stav systemctl clamav-daemon

Výstup:

Jak vidíte, nepodařilo se spustit, protože nebyla splněna podmínka. V /lib/systemd/system/clamav-daemon.service soubor, existují dvě podmínky:

ConditionPathExistsGlob=/var/lib/clamav/main.{c[vl]d,inc}ConditionPathExistsGlob=/var/lib/clamav/daily.{c[vl]d,inc}

clamav-daemon.service se nepodařilo spustit, protože main.cvd a daily.cvd nebyly při spuštění ještě staženy. Takže musíme tuto službu restartovat.

sudo systemctl restart clamav-daemon

Nyní by to mělo běžet. Mimochodem, používá 731,4M RAM na mém poštovním serveru. Pokud vašemu poštovnímu serveru nezbývá dostatek paměti RAM, služba selže.

stav systemctl clamav-daemon.service

clamav-freshclam.service bude jednou za hodinu kontrolovat aktualizace virové databáze ClamAV.

Nyní musíme v Amavisu zapnout antivirovou kontrolu.

sudo nano /etc/amavis/conf.d/15-content_filter_mode

Chcete-li povolit antivirovou kontrolu, odkomentujte následující řádky.

#@bypass_virus_checks_maps =(#      \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

Uložte a zavřete soubor. V /etc/amavis/conf.d/15-av_scanners je spousta antivirových skenerů soubor. ClamAV je výchozí. Amavis zavolá ClamAV prostřednictvím /var/run/clamav/clamd.ctl Unixový socket. Potřebujeme přidat uživatele clamav do amavis skupina.

sudo adduser clamav amavis

Poté restartujte Amavis a démona ClamAV, aby se změny projevily.

sudo systemctl restart amavis clamav-daemon

Zkontrolujte protokoly.

sudo journalctl -eu amavis

Můžete vidět, že Amavis nyní používá ClamAV ke skenování virů.

Aug 08 17:26:19 mail.linuxbabe.com amavis[1233432]:Použití primárního interního kódu AV skeneru pro ClamAV-clamdAug 08 17:26:19 mail.linuxbabe.com amavis[1233432]:Nalezen sekundární AV skener ClamAV-clamscan na /usr/bin/clamscan

Pokud nyní odešlete e-mail z jiných poštovních serverů, jako je Gmail, na svůj vlastní poštovní server a zkontrolujete záhlaví e-mailů, můžete najít řádek jako níže, který znamená, že tento e-mail byl zkontrolován Amavisem.

X-Virus-Scanned:Debian amavisd-new na linuxbabe.com

Měli byste také zkontrolovat protokol pošty (/var/log/mail.log ), abyste zjistili, zda tam nejsou nějaké chyby.

Krok 4:Použijte vyhrazený port pro odesílání e-mailů

ClamAV nyní dokáže skenovat příchozí i odchozí e-maily. Amavis naslouchá na portu 10024 pro příchozí i odchozí e-mailové zprávy. Je však dobrým zvykem používat pro odesílání e-mailů od ověřených uživatelů jiný port, například 10026. Upravte konfigurační soubor Amavis.

sudo nano /etc/amavis/conf.d/50-user

Vlastní nastavení by měla být přidána mezi use strict; a 1; čára. Ve výchozím nastavení Amavis naslouchá pouze na portu 10024. Přidejte následující řádek, aby naslouchal také na portu 10026.

$inet_socket_port =[10024,10026];

Poté přidejte následující řádek, který nastavuje zásadu „ORIGINATING“ pro port 10026.

$interface_policy{'10026'} ='ORIGINATING';

Dále přidejte následující řádky, které definují zásadu „ORIGINACE“.

$policy_bank{'ORIGINATING'} ={ # e-mail údajně pocházející od našich uživatelů pocházející => 1, # deklarovat, že e-mail byl odeslán naším klientem smtp allow_disclaimers => 1, # umožňuje vložení prohlášení o vyloučení odpovědnosti, pokud je k dispozici # upozornit administrátora na lokálně původní malware virus_admin_maps => ["virusalert\@$mydomain"], spam_admin_maps => ["virusalert\@$mydomain"], warningbadhsender => 1, # vynutit konverzi MTA na 7bitovou (např. před podpisem DKIM) smtpd_words =>ehlo_keywords ['8BITMIME'], bypass_banned_checks_maps => [1], # povolit odesílání jakýchkoli názvů a typů souborůterminer_dsn_on_notify_success => 0, # neodstraňovat možnost NOTIFY=SUCCESS};

Uložte a zavřete soubor. Restartujte Amavis.

sudo systemctl restart amavis

Zkontrolujte jeho stav a zjistěte, zda byl restart úspěšný.

stav systemctl amavis

Dále upravte hlavní konfigurační soubor Postfixu.

sudo nano /etc/postfix/master.cf

Přidejte následující řádek do submission e-maily od ověřených klientů SMTP budou předány Amavisu naslouchajícímu na portu 10026. Tento řádek přepíše (-o ) content_filter parametr v /etc/postfix/main.cf soubor, který jsme přidali v kroku 2.

 -o content_filter=smtp-amavis:[127.0.0.1]:10026

Takhle:

Pokud jste povolili smtps službu pro uživatele Microsoft Outlook, pak musíte také přidat tento řádek do smtps službu.

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

sudo systemctl restart postfix

Zkontrolujte jeho stav a zjistěte, zda byl restart úspěšný.

příspěvek stavu systemctl

Filtrování spamu v Amavisu

Poznámka :Pokud jste postupovali podle mého návodu SpamAssassin, nemusíte v Amavisu povolovat kontrolu spamu. Pokud to povolíte, každý e-mail bude SpamAssassin zkontrolován dvakrát.

Chcete-li povolit kontrolu spamu v Amavisu, nainstalujte SpamAssassin a související balíčky.

sudo apt install spamassassin libnet-dns-perl libmail-spf-perl pyzor razor

Upravte konfigurační soubor Amavis.

sudo nano /etc/amavis/conf.d/15-content_filter_mode

Chcete-li povolit kontrolu spamu, odkomentujte následující řádky.

#@bypass_spam_checks_maps =(# \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

Uložte a zavřete soubor. Poté restartujte Amavis.

sudo systemctl restart amavis

DKIM v Amavisu

Dva běžné kusy softwaru, které mohou provádět podepisování a ověřování DKIM v Linuxu, jsou OpenDKIM a Amavis. Raději používám OpenDKIM, protože to funguje lépe s OpenDMARC. Nebudu tedy vysvětlovat, jak DKIM podepsat váš e-mail v Amavisu.

Ve výchozím nastavení může Amavis ověřit podpis DKIM příchozích e-mailových zpráv. Pokud máte na poštovním serveru spuštěný OpenDKIM, můžete ověření DKIM v Amavisu zakázat.

sudo nano /etc/amavis/conf.d/21-ubuntu_defaults

Najděte následující řádek a změňte 1 na 0 , takže Amavis nebude ověřovat podpisy DKIM.

$enable_dkim_verification =1;

Uložte a zavřete soubor. Poté restartujte Amavis.

sudo systemctl restart amavis

Při přijímání příchozích e-mailů zavolá Postfix OpenDKIM přes rozhraní sendmail milter, aby ověřil podpisy DKIM, a poté předá e-mail společnosti Amavis ke kontrole virů. Při odesílání odchozích e-mailů Postfix zavolá OpenDKIM, aby e-maily podepsal, a poté je předá společnosti Amavis ke kontrole virů.

Zlepšení výkonu Amavis

Ve výchozím nastavení Amavis spouští 2 procesy. Pokud v protokolu pošty uvidíte následující řádky (/var/log/mail.log ), znamená to, že Amavis nedokáže zpracovávat e-maily dostatečně rychle.

postfix/qmgr[1619188]:varování:pošta pro [127.0.0.1]:10024 využívá 4001 ze 4008 položek aktivní frontypostfix/qmgr[1619188]:varování:možná budete muset snížit časové limity připojení smtp-amavis post a helo /qmgr[1619188]:varování:aby Postfix rychle přeskočil nedostupný hostspostfix/qmgr[1619188]:varování:možná budete muset zvýšit main.cf minimal_backoff_time a maximal_backoff_timepostfix/qmgr[1619188]:varování:aby Postfix ztrácel méně času nedoručitelná pošta postfix/qmgr[1619188]:varování:možná budete muset zvýšit proces master.cf smtp-amavis limitmail postfix/qmgr[1619188]:varování:vyhněte se proplachování celé fronty, když máte mail postfix/qmgr[1619188]:varování:spousta odložené pošty, to je špatné pro výkon

Chcete-li zlepšit výkon, upravte konfigurační soubor Amavis.

sudo nano /etc/amavis/conf.d/50-user

Přidejte následující řádek do souboru mezi use strict; a 1; čára. To způsobí, že Amavis spustí 4 procesy. Pokud máte 10 jader CPU, můžete změnit 4 na 10. Pamatujte, že spuštění více než 10 procesů Amavis má malý vliv na výkon.

$max_servers =4;

Uložte a zavřete soubor. Poté upravte hlavní konfigurační soubor Postifx.

sudo nano /etc/postfix/master.cf

Najděte smtp-amavis definice služby a změňte limit procesu z 2 na 4.

smtp-amavis unix - - n - 4 smtp -o syslog_name=postfix/amavis -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 -o smtp_tls_security_level=none 

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

sudo systemctl restart amavis postfix

Nyní spusťte následující příkaz. Měli byste vidět, že nyní existují 4 procesy Amavis.

sudo amavisd-nanny

Stiskněte Ctrl+C zastavit amavisd-chůvu.

Přeskočte antivirovou kontrolu pro vaše zpravodaje

Pokud používáte svůj poštovní server k zasílání newsletterů a povolíte Amavis a ClamAV, pak bude pro kontrolu virů při zasílání newsletterů vašim odběratelům použita spousta zdrojů CPU a RAM. Mohlo by to způsobit, že váš poštovní server nebude reagovat. Antivirovou kontrolu pro své zpravodaje můžete přeskočit pomocí metody níže.

Upravte hlavní konfigurační soubor Postfixu.

sudo nano /etc/postfix/master.cf

Přidejte následující řádky na začátek tohoto souboru. Tím povolíte smtpd na portu 2525 localhost a může přijímat klientská připojení zahájená ze stejného serveru. Pokud na portu 2525 naslouchá jiný proces, můžete změnit 127.0.0.1:2525 na něco jiného, ​​například 127.0.0.1:2552. Všimněte si, že content_filter parametr je nastaven na none , což znamená, že e-maily nebudou skenovány ClamAV.

127.0.0.1:2525 inet n - - - 1 smtpd -o syslog_name=postfix/2525 -o postscreen_greet_action=ignore -o content_filter=

Poté přidejte následující řádky na konec tohoto souboru. Nahraďte 12.34.56.78 veřejnou IP adresou poštovního serveru. Tím se vytvoří další démon odesílání Postfixu naslouchající na portu 10587. Toto je pro připojení klientů z jiného serveru.

 12.34.56.78:10587 inet n - r - - smtpd -o syslog_name =postfix / 10587 -o smtpd_tls_security_level =šifrování -o smtpd_tls_wrappermode =ne -o smtpd_sasl_auth_enable =ano -o smtpd_relay_restrictions =permit_sasl_authenticated, odmítnutí -o smtpd_recipient_restrictions =permit_mynetworks, permit_sasl_authenticated,reject -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o content_filter=

Uložte a zavřete soubor. Potom Restartujte postfix.

sudo systemctl restart postfix

Pokud vaše aplikace pro zpravodaj běží na poštovním serveru, zadejte 127.0.0.1:2525 jako hostitel SMTP, bez ověřování SMTP. Pokud vaše aplikace pro zpravodaj běží na jiném serveru, zadejte 12.34.56.78:10587 jako hostitel SMTP s ověřováním SMTP.

Odstraňování problémů

Pokud váš server Postfix SMTP nemůže odesílat odchozí e-maily a v protokolu pošty najdete následující chybovou zprávu (/var/log/mail.log ),

relé=žádné, zpoždění=239, zpoždění=239/0.04/0/0, dsn=4.3.0, stav=odloženo (server nedostupný nebo nemůže přijímat poštu)

může se stát, že amavis neběží, takže musíte zkontrolovat jeho stav:

sudo systemctl status amavis

Můžete jej restartovat pomocí:

sudo systemctl restart amavis

Další příčinou této chyby je, že při odesílání odchozích e-mailů vynucujete připojení TLS pro Postfix s následujícím nastavením v /etc/postfix/main.cf soubor.

smtp_tls_security_level =vynutit

Protože Postfix nemůže navázat TLS připojení k Amavisu, e-mail je odložen. Měli byste použít následující nastavení.

smtp_tls_security_level =may

Poté restartujte Postfix.


Ubuntu
  1. Jak nainstalovat DKIM na server Ubuntu

  2. Instalace a nastavení PHP a Nginx na Ubuntu 20.04

  3. Server Ubuntu 14 a Xrdp?

  1. Nastavení NTP na Centos a Ubuntu

  2. Nastavení webového serveru Ubuntu?

  3. Nainstalujte poštovní server Postfix a Dovecot na Ubuntu nebo Debian

  1. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 20.04

  3. Nainstalujte vnc server a klienta na Ubuntu