Jak přidat antivirovou ochranu a ochranu proti spamu na poštovní server Postfix pomocí ClamAV a SpamAssassin - část 3
V předchozích dvou článcích této série Postfix jste se naučili, jak nastavit a spravovat databázi e-mailového serveru pomocí phpMyAdmin a jak nakonfigurovat Postfix a Dovecot pro zpracování příchozí a odchozí pošty. Kromě toho jsme vysvětlili, jak nastavit poštovního klienta, jako je Thunderbird, pro virtuální účty, které jsme vytvořili dříve.
- Nastavení poštovního serveru Postfix a Dovecot pomocí MariaDB – část 1
- Jak nakonfigurovat Postfix a Dovecot s uživateli virtuální domény – část 2
- Instalace a konfigurace webového klienta RoundCube s virtuálními uživateli v Postfixu – část 4
- Použijte Sagator, antivirovou/antispamovou bránu k ochraně vašeho poštovního serveru – část 5
Protože žádné nastavení e-mailového serveru nelze dokončit bez přijetí opatření proti virům a spamu, budeme se tímto tématem zabývat v aktuálním článku.
Mějte prosím na paměti, že i když jsou operační systémy *nix-like obvykle považovány za nevirové, je pravděpodobné, že se k vašemu e-mailovému serveru připojí i klienti používající jiné operační systémy.
Z toho důvodu jim musíte dát jistotu, že jste přijali nezbytná opatření k jejich maximální možné ochraně před takovými hrozbami.
Konfigurace SpamAssassin pro Postfix
V procesu přijímání e-mailů se spamassassin postaví mezi vnější svět a e-mailové služby běžící na vašem serveru samotném. Pokud podle svých definičních pravidel a konfigurace zjistí, že příchozí zpráva je spam, přepíše předmět, aby ji jako takovou jasně identifikoval. Podívejme se jak.
Hlavní konfigurační soubor je /etc/mail/spamassassin/local.cf
a měli bychom se ujistit, že jsou k dispozici následující možnosti (přidejte je, pokud nejsou k dispozici, nebo v případě potřeby odkomentujte):
report_safe 0
required_score 8.0
rewrite_header Subject [SPAM]
- Když je report_safe nastaveno na 0 (doporučená hodnota), příchozí spam se upraví pouze úpravou hlaviček e-mailů podle rewrite_header. Pokud je nastavena na 1, zpráva bude smazána.
- Chcete-li nastavit agresivitu spamového filtru, musí za required_score následovat celé číslo nebo desetinné číslo. Čím nižší číslo, tím citlivější je filtr. Nastavení required_score na hodnotu někde mezi 8,0 a 10,0 se doporučuje pro velký systém obsluhující mnoho (~100 s) e-mailové účty.
Jakmile tyto změny uložíte, povolte a spusťte službu filtrování spamu a poté aktualizujte pravidla pro spam:
systemctl enable spamassassin
systemctl start spamassassin
sa-update
Další možnosti konfigurace najdete v dokumentaci spuštěním perldoc Mail::SpamAssassin::Conf
na příkazovém řádku.
Integrace Postfixu a SpamAssassinu
Abychom mohli efektivně integrovat Postfix a spamassassin, budeme muset vytvořit vyhrazeného uživatele a skupinu pro spuštění démona spamového filtru:
useradd spamd -s /bin/false -d /var/log/spamassassin
Dále přidejte následující řádek na konec /etc/postfix/master.cf
:
spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
A uveďte (nahoře), že spamassassin bude sloužit jako filtr obsahu:
-o content_filter=spamassassin
Nakonec restartujte Postfix, abyste použili změny:
systemctl restart postfix
K ověření, že SpamAssassin funguje správně a detekuje příchozí spam, je k dispozici test známý jako GTUBE (Obecný test na nevyžádané hromadné e-maily).
Chcete-li provést tento test, odešlete e-mail z domény mimo vaši síť (jako je Yahoo!, Hotmail nebo Gmail) na účet umístěný na vašem e-mailovém serveru. Nastavte řádek Předmět na cokoliv chcete a do těla zprávy vložte následující text:
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
Například odeslání výše uvedeného textu v těle zprávy z mého účtu Gmail vede k následujícímu výsledku:
A zobrazí odpovídající upozornění v protokolech:
journalctl | grep spam
Jak můžete vidět na obrázku výše, tato e-mailová zpráva získala skóre spamu 1002,3. Kromě toho můžete testovat spamassassin přímo z příkazového řádku:
spamassassin -D < /usr/share/doc/spamassassin-3.4.0/sample-spam.txt
Výše uvedený příkaz vytvoří skutečně podrobný výstup, který by měl obsahovat následující:
Pokud tyto testy nejsou úspěšné, můžete se podívat na průvodce integrací spamassassin.
Spuštění ClamAV a aktualizace definic virů
Pro začátek budeme muset upravit /etc/clamd.d/scan.conf
. Odkomentujte následující řádek:
LocalSocket /var/run/clamd.scan/clamd.sock
a okomentujte nebo smažte řádek:
Example
Poté povolte a spusťte démona skeneru clamav:
systemctl enable [email
systemctl start [email
a nezapomeňte nastavit antivirus_can_scan_system SELinux boolean na 1:
setsebool -P antivirus_can_scan_system 1
V tomto okamžiku se vyplatí a je dobré zkontrolovat stav služby:
Jak můžete vidět na obrázku výše, naše virové signatury jsou starší než 7 dní. K jejich aktualizaci použijeme nástroj zvaný freshclam, který byl nainstalován jako součást balíčku clamav-update.
Nejjednodušší způsob aktualizace definic virů je prostřednictvím úlohy cron, která se spouští tak často, jak je potřeba (jednou denně, například v 1:00 serverového času, jak je uvedeno v následujícím příkladu, je považováno za dostatečné):
00 01 * * * root /usr/share/clamav/freshclam-sleep
Definice virů můžete aktualizovat také ručně, ale předtím také budete muset odstranit nebo zakomentovat následující řádek v /etc/freshclam.conf
.
Example
Nyní byste měli být schopni spustit:
freshclam
který podle potřeby aktualizuje definice virů:
Testování ClamAV na přítomnost virů v e-mailech
Abychom ověřili, že ClamAV funguje správně, stáhněte si testovací virus (který můžeme získat z http://www.eicar.org/download/eicar.com) do Maildir [email ( který se nachází na /home/vmail/linuxnewz.com/tecmint/Maildir) pro simulaci infikovaného souboru přijatého jako příloha pošty:
cd /home/vmail/linuxnewz.com/tecmint/Maildir
wget http://www.eicar.org/download/eicar.com
A poté rekurzivně prohledejte adresář /home/vmail/linuxnewz.com:
clamscan --infected --remove --recursive /home/vmail/linuxnewz.com
Nyní můžete toto skenování nastavit tak, aby procházelo cronjobem. Vytvořte soubor s názvem /etc/cron.daily/dailyclamscan
, vložte následující řádky:
#!/bin/bash
SCAN_DIR="/home/vmail/linuxnewz.com"
LOG_FILE="/var/log/clamav/dailyclamscan.log"
touch $LOG_FILE
/usr/bin/clamscan --infected --remove --recursive $SCAN_DIR >> $LOG_FILE
a udělte oprávnění ke spuštění:
chmod +x /etc/cron.daily/dailyclamscan
Výše uvedený cronjob prohledá adresář poštovního serveru rekurzivně a zanechá protokol o své činnosti v /var/log/clamav/dailyclamscan.log
(ujistěte se, že /var/log/clamav adresář existuje).
Podívejme se, co se stane, když odešleme soubor eicar.com z [email do [eicar :
souhrn
Pokud jste postupovali podle kroků uvedených v tomto kurzu a v předchozích dvou článcích této série, máte nyní funkční poštovní server Postfix se spamovou a antivirovou ochranou.
ODPOVĚDNOST: Vezměte prosím na vědomí, že zabezpečení serveru je rozsáhlé téma a nemůže být dostatečně pokryto v krátké sérii, jako je tato.
Z toho důvodu vám velmi doporučuji, abyste se seznámili s nástroji používanými v této sérii a jejich manuálovými stránkami. I když jsem udělal vše, co bylo v mých silách, abych pokryl základní pojmy spojené s tímto tématem, nepředpokládejte, že po prostudování této série jste plně kvalifikovaní k nastavení a údržbě e-mailového serveru v produkčním prostředí.
Tato řada je zamýšlena jako výchozí bod a nikoli jako vyčerpávající průvodce správou poštovního serveru v Linuxu.
Pravděpodobně vás napadnou další nápady, které mohou tuto sérii obohatit. Pokud ano, neváhejte nám napsat poznámku pomocí formuláře níže. Oceňujeme také dotazy a další návrhy – těšíme se na vaši odpověď!