2024. április 25., csütörtök

Gyorskeresés

Debian levelezés2 amavis, clamav, spamassasin és ami kimaradt

Írta: | Kulcsszavak: Debian . levelezés . amavis . clamav . spamassasin

[ ÚJ BEJEGYZÉS ]

A mailq az átmeneti tároló ahol vannak a várakozó levelek, amik vagy postázásra fognak kerülni vagy csak pár darab próbálkozás után sikertelen lesz az elküldésük. Megnézni, hogy mennyi levél ragadt be, a mailq paranccsal lehet. Kiüríteni: postsuper -d ALL újra küldeni: postqueue -f parancsal lehet.

A leveleket mi a /home mappában tároljuk és azon belül egy Maildir nevezetű mappában. A maildirmake parancsot kiadva a mappában létrejön a könyvtár szerkezet, de a levelező kliensek általában létrehozzák maguknak.
Ami viszont a legfontosabb, hogy mindig is legyen megfelelő jogosultsága a felhasználóknak a saját mappájukra, lehetőleg legyen a saját tulajdonukban. Különben a nemfognak a leveleik se beérkezni és látni se fogják őket.

Ha nem muszáj ne indítsuk újra a konfigurálás során a postfix-et, elég lehet csak a beállításokat újra tölteni:

/etc/init.d/postfix reload

A levélforgalmat elég nehéz sokszor követni, mert a mail.log fájlok eléggé nagyra hízhatnak. Erre van egy egyszerű program ami szép táblázatot rajzol a levélforgalmunkról.
Telepítsük fel a pflogsumm programot.

apt-get install pflogsumm

A következő parancsot kiadva csinál nekünk egy szép összegzést a leveleinkről:

pflogsumm.pl /var/log/mail.log > /akármilyenelérésiút/fajlnév.txt

Előfordulhat, hogy az courier-imap nem hajlandó jól működni, mert hiányol egy összetevőt. Akkor tegyük fel a következőt még neki: apt-get install fam

Telepítsünk vírus és spam szűrést. A clamav egy egyszerű víruskereső, nincs is nagyon mit hozzáfűzni. A spamassassin spam szűrőről annyit érdemes tudni, hogy pontozza a leveleket, a tartalmuk és fejlécük alapján. A pontszámokból kalkulálja majd az amavis, hogy mi legyen a levél további sorsa.

apt-get install amavisd-new spamassassin clamav clamav-daemon

Kezdjük a clamav-al. Két fájlja van ami érdekes, a freshclam.conf és a clamd.conf.
A freshclam.conf a vírusadatbázis frissítéséért felelős. Az alapértelmezett beállítások jók, amiket érdemes ellenőrizni azért az az adatbázis frissítési helye és frissítés gyakorisága:

Checks 24
DatabaseMirror db.local.clamav.net
DatabaseMirror database.clamav.net
DatabaseMirror db.hu.clamav.net

A vírusadatbázist manuálisan is frissíthetjük, ha szükséges freshclam paranccsal. A clamd.conf -hoz se igazán muszáj hozzányúlni.

Az amavisd.conf -ban találjuk az amavis konfigurációját. Töltsük ki a domain-ünket:

$mydomain = 'ceg.hu'; # (no useful default)
$myhostname = 'mail.ceg.hu'; # fqdn of this host, default by uname(3)

A conf.d mappán belül érdekes még, hogy a 20-debian_defaults fájlban lehet állítgatni a pontozási értékeit a spameknek. Egy részletet azért beszúrok ide a config fájlból:

[...]
$QUARANTINEDIR = "$MYHOME/virusmails";
$quarantine_subdir_levels = 1; # enable quarantine dir hashing

$log_recip_templ = undef; # disable by-recipient level-0 log entries
$DO_SYSLOG = 1; # log via syslogd (preferred)
$syslog_ident = 'amavis'; # syslog ident tag, prepended to all messages
$syslog_facility = 'mail';
$syslog_priority = 'debug'; # switch to info to drop debug output, etc

$enable_db = 1; # enable use of BerkeleyDB/libdb (SNMP and nanny)
$enable_global_cache = 1; # enable use of libdb-based cache if $enable_db=1

$inet_socket_port = 10024; # default listening socket

$sa_spam_subject_tag = '***SPAM*** ';
$sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 6.31; # triggers spam evasive actions
$sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent
[...]
$final_virus_destiny = D_DISCARD; # (data not lost, see virus quarantine)
$final_banned_destiny = D_BOUNCE; # D_REJECT when front-end MTA
$final_spam_destiny = D_BOUNCE;
$final_bad_header_destiny = D_PASS; # False-positive prone (for spam)
[...]

A 15-content_filter_mode fájlban ez a két bejegyzés szükséges:
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

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

A többi fájl alapértelmezetten is megfelelő.

Ha nincs akkor hozzuk létre a /var/log/amavis.log fájlt. Adjunk neki jogot: amavis:amavis
A /etc/clamav/freshclam.conf - re clamav:adm jogosultságot adjunk.

Adjuk ki a következő parancsot: adduser clamav amavis különben nem fog működni a rendszerünk.

A spamassassin konfigurálása nem túl nehéz. Az /etc/spamassassin/local.cf fájlban állítsuk be a következőket:

use_bayes 1
use_bayes_rules 1
#pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor

#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf

A razor és a pyzor kiegészítés a spamassasinhoz, hogy hatékonyabb legyen a levél szemét felismerése és szűrése. Telepítsük fel őket:
apt-get install pyzor razor

A levelek mellékletébe, hogy beletudjon nézni a clamav és a spamassassin ezért szükséges feltelepíteni a tömörítőket is:
apt-get install arj cabextract cpio lha nomarch pax rar unrar unzip zip

A spamassassint meglehet tanítani a spam-os levelek felismerésére vagyis javítani a hatékonyságán. Ehhez csak annyit kell tennünk, hogy gyűjtünk pár száz / vagy ezer spamos és nem spam-os levelet, majd megtanítjuk neki, hogy melyikkel mit kezdjen:

sa-learn --spam ~/Maildir/.Junk
sa-learn --ham ~/Maildir/.Ham
sa-learn --forget ~/Maildir/.Forget

Ha a levelezéshez szükséges valamelyik folyamatot/okat szeretnénk újra indítani, a következőkből lehet válogatni:

/etc/init.d/amavis clamav-daemon clamav-freshclam
courier-authdaemon courier-imap courier-imap-ssl courier-ldap
courier-pop courier-pop-ssl postfix spamassassin restart

A karantén a /var/lib/amavis/virusmails mappában található, bár én onnan semmit se szednék vissza :)

A levelezés tesztelése nagyon egyszerű, küldj a belső hálón levelet, majd küldj valami külső levelező szerverre és küldj külső levelező szerverről befelé levelet, ha minden megérkezik akkor lehet örülni :)

Ha szeretnénk a spambotokat kiszűrni egy kicsit, hogy ne fárasszák magukat feleslegesen, az olyan levelek küldözgetésével amiket úgy se kapunk meg, akkor a legjobb dolog tiltani őket legalább egy napra vagy többre. Erre jó a fail2ban. Ami elemzi a mail.log-unkat és ha látja, hogy egy ip címről több eldobott levél jön, akkor szépen az iptablesbe felvesz automatikusan egy szabályt, amivel blokkolja a nem kedves emberek ipjét, majd feloldja őket, amikor lejárt a ban. Miközben nekünk semmi dolgunk :) Telepítsük fel:

apt-get install fail2ban python-gamin

Az /etc/fail2ban/jail.conf fájlban állítsuk be a következőket:
[postfix]
enabled = true
port = smtp,ssmtp
filter = postfix
logpath = /var/log/mail.log
bantime = 600
maxretry = 2

A /etc/fail2ban/filter.d/postfix.conf fájlba pedig ezt a sort véssük be:
failregex = reject: RCPT from (.*)\[<HOST>\]: 554

Adjuk ki /etc/init.d/fail2ban restart ha szükség van rá.

Nálunk jelenleg nincs beállítva a postgrey, de ha nagyon elszaporodnának a spam-ok akkor érdemes lehet még bevetni. postgrey, spam postgrey, postgrey debiantutorials

levélszűrés ubuntu
postfix clamav dspam couier hogyan
Spamassassin
spamassassin
fail2ban exim
fail2ban courier
Levélszűrés ellenőrzés

Copyright © 2000-2024 PROHARDVER Informatikai Kft.