Archiv podle štítků: RHEL

ClamAV a Sendmail (na RHEL4)

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:

http://www.clamav.net/

Instalace a konfigurace Spamassassina (na RHEL4)

Pokud provozujete mailserver určitě dřív nebo později je nutné ho doplnit o nástroj na filtrování spamu (a nejen to).

Jsou 2 způsoby jak filtrovat spam na mailserveru:

1. pomocí MDA procmail
2. pomocí rozhraní mezi mailserverem a spamassassinem (např. amavisd-new)

Využijeme první možnost (je jednodušší:)

Co budeme potřebovat:

1. nastavit si repozitář Dag Wieers (http://www.logon.cz/?p=7), pokud nechceme balíčky stahovat ručně

2. nainstalovat si nejnovější verzi Spamassassina (up2date-nox spamassassin)

Konfigurace:

1. upravíme konfigurační soubor Spamassassina „local.cf“ v „/etc/mail/spamassassin“:

———-
required_hits 5
report_safe 0
rewrite_header Subject [SPAM]
use_bayes 1
bayes_auto_learn 1
whitelist_from *@nejakadomena.cz
blacklist_from *@nejakadomena.cz
———-

Teďka si trošku popišeme co znamenají jednotlivé řádky:

required_hits = požadovaný počet bodů na to aby byl mail vyhodnocen jako spam
report_safe = má(1)/nemá(0) měnit tělo mailu
rewrite_header Subject = připíše nám do předmětu mailu nějaký string
use_bayes = použije(1)/nepoužije(0) techniku bayesových filtrů
bayes_auto_learn = použije(1)/nepoužije(0) schopnost samoučení se
whitelist_from = emailové adresy/domény hamu (opak spamu)
blacklist_from = emailové adresy/domény spamu

2. upravíme soubor „/etc/procmailrc“:

———-
LOGFILE=/var/log/procmail_log

0fw: spamassassin.lock
* < 256000
| /usr/bin/spamassassin

:0:
* ^X-Spam-Status: Yes
/var/spool/mail/spam
----------

První pravidlo nám předá všechny maily které jsou menší než 256kB ke kontrole Spamassassinovi, ten vyhodnotí mail a přidá do hlavičky mailu "X-Spam-Status: Yes/No", čímž označí zda-li to je nebo není spam. Druhé pravidlo přesune všechny maily které mají v hlavičče "X-Spam-Status: Yes" do schránky uživatele spam (přepodkládáme že takový uživatel existuje).

Učení Spamassassina:

Pokud chceme aby měl Spamassassin velkou úspešnost zachytávání spamu, budeme ho muset učit, tzn. jednou za čas mu říct co je spam a co není spam (příkaz "sa-learn"). Minimalní počet mailů k učení je cca 200 (jak spam tak ham).

Příklady:

"sa-learn --spam --mbox cesta_k_souboru_spamu_ve_formatu_mbox" - učíme co je spam
"sa-learn --ham --mbox cesta_k_souboru_hamu_ve_formatu_mbox" - učíme co není spam (ham)
"sa-learn --dump magic" - vypíše stav databáze Spamassassina

Standardně jsou maily na linuxu ve formátu mailbox, tzn. můžeme využít pro učení maily ve "/var/spool/mail". Také někteří emailový klienti ukládají poštu v tomto formátu (např. Thunderbird).

Pokud Spamassassin označí mail jako spam, můžeme nahlédnout do hlavičky mailu, kde vyčteme kolik dostal mail bodů od Spamassassina (X-Spam-Status) a dále pěkně rozepsané toto bodové hodnocení (X-Spam-Report).

Odkazy:

http://spamassassin.apache.org/index.html

http://www.procmail.org/

Přidání nového repozitáře (Dag Wieers) do RHEL4

Jelikož ve standardním repositáři Redhatu nejsou aplikace jako Spamassassin nebo ClamAV, je vhodné si přidat tento repozitář do systému, abychom jej nemuseli stahovat a instalovat/aktualizovat ručně. Tento repozitář obsahuje také velké množství dalšího SW (cca 5000 balíčků).

1. stáhneme si klíč, kterým budeme ověřovat balíčky a importujeme ho do systému:

wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

rpm –import RPM-GPG-KEY.dag.txt

2. dále upravíme soubor „sources“ v „/etc/syscofig/rhn/“ a nakonec přidáme:

——————-

### Dag Wieers Repository for RHEL4
yum dag http://dag.linux.iastate.edu/dag/redhat/el4/en/$ARCH/dag

——————-

3. pokud chceme instalovat nějaký SW z tohoto repozitáře, stačí jednoduše spustit „up2date-nox jmeno_baliku“.

Můžeme také provést aktualizaci celého systému příkazem „up2date-nox -u“, nebo jen „up2date-nox -l“, pokud nechceme aktualizovat celý systém, ale jen vypsat seznam balíčků k aktualizaci. Nemusíme se bát že by nám balíčky z tohoto nového repozitáře přepsali/aktualizovali „důležite“ aplikace, jelikož jsou tam především věci, které nejsou ve standardním repozitáři redhatu.

Better Tag Cloud