Minule jsme filtrovali spam Spamassassinem (http://www.logon.cz/?p=12), dnes budeme kontrolovat maily pomocí ClamAV antiviru. Spam jsme filtrovali pomocí procmailu, dneska si ukážeme jak kontrolovat maily pomocí milter rozhraní Sendmailu…
Co budeme potřebovat:
1. funkční Sendmail
2. nainstalovat si ClamAV antivir, jsou to následující balíčky:
- clamav
- clamav-db
- clamav-milter
- clamd
Takže je stáhneme ručně a nebo pokud máme nastavený repozitář Dag Wieers (více na http://www.logon.cz/?p=7) jednodušše stačí napsat v konzoli „up2date-nox clamav clamav-db clamav-milter clamd“.
Konfigurace antiviru ClamAV (3 moduly):
1. konfiguraci démona Clamd „/etc/clamd.conf“ (jen aktivní volby):
———-
LogFile /var/log/clamav/clamd.log
LogFileMaxSize 0
LogTime yes
LogSyslog yes
PidFile /var/run/clamav/clamd.pid
TemporaryDirectory /var/tmp
DatabaseDirectory /var/clamav
LocalSocket /var/run/clamav/clmilter.sock
FixStaleSocket yes
MaxConnectionQueueLength 30
ReadTimeout 300
User clamav
AllowSupplementaryGroups no
DetectBrokenExecutables yes
ScanMail yes
ArchiveMaxCompressionRatio 300
ArchiveBlockEncrypted no
ArchiveBlockMax no
———-
Důležitý je tučně vyznačený řádek, který nám říka na jakém soketu bude clamd naslouchat (soubor clmilter.sock se vytvoří při spuštění clamd), ostatní volby tu nebudu rozepisovat, můžeme si je přečíst v manuálových stránkách („man clamd.conf“).
2. konfigurace rozhraní clamav-milter („/etc/sysconfig/clamav-milter“):
———-
CLAMAV_FLAGS=“
–config-file=/etc/clamd.conf
–max-children=10
–force-scan
–noreject
–postmaster=emailova@adresa.admina
–postmaster-only
-ol local:/var/run/clamav/clmilter.sock
“
———-
Důležitý je tučně vyznačený řádek, který nám říká že budeme skenovat maily pocházející z lokální sítě, pomocí soketu kde naslouchá clamd. Ostatní volby viz „man clamav-milter“.
3. konfigurace updatovacího modulu freshclam „/etc/freshclam.conf“ (jen aktivní volby):
———-
DatabaseDirectory /var/clamav
UpdateLogFile /var/log/clamav/freshclam.log
PidFile /var/run/clamav/freshclam.pid
DatabaseOwner clamav
DatabaseMirror db.cz.clamav.net
DatabaseMirror db.local.clamav.net
HTTPProxyServer nazev_proxy
HTTPProxyPort proxy_port
NotifyClamd /etc/clamd.conf
———-
Zde jsou akorat zajímavé vyznačené řádky kam se loguje stahování virových aktualizací, a nastavení proxy pokud jsme za proxy serverem.
Konfigurace Sendmailu:
Konfiguraci Sendmailu provádíme ve dvou krocích (vše v „/etc/mail/“):
1. upravíme soubor sendmail.mc
2. a z něj vygenerujeme sendmail.cf
Samozřejmě si nejdřív tyto soubory zazálohujeme.
Do funkčního konf. souboru sendmail.mc přidáme toto:
———-
INPUT_MAIL_FILTER(`clamav’, `S=local:/var/run/clamav/clmilter.sock, F=,T=S:4m;R:
4m’)dnl
define(`confINPUT_MAIL_FILTERS’, `clamav’)dnl
———-
kterým definujeme, že Sendmail má používat clamav-milter rozhraní, kde naslouchá clamd. Podrobnosti najdeme v dokumentaci clamav-milter „/usr/share/doc/clamav-milter“.
Vygenerujeme výsledný sendmail.cf:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
To by bylo s konfigurací vše.
Spuštění služeb:
Spustíme postupně všechny služby a restartujeme sendmail:
1. /etc/init.d/clamd start
2. /etc/init.d/clamav-milter start
3. /etc/init.d/sendmail restart
Pokaždé koukáme do logů jestli je vše v pořádku. Pokud ano měli by od této chvíle být maily filtrovány ClamAVem, což poznáme z logu „/var/log/maillog“, hledáme řetezec „Milter add: header:“, to znamená že nám ClamAV přidává do hlavičky každého mailu „X-Virus-*“.
Dodatečná nastavení:
Po instalaci ClamAVu se objeví v cronu, přesně v „/etc/cron.daily/ “ skript, který nám jednou za den zaktualizuje virovou databázi. Jelikož to je nedostatečné, zkopírujeme tento skript do adresáře „/etc/cron.hourly/“ odkud se nám bude spouštět každou hodinu.
Odkazy: