[[oktatas:linux:e-mail_szerver|< E-mail szerver]]
====== Postfix Spamassassin ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2013, 2017
* Licenc: GNU Free Documentation License 1.3
* Web: http://szit.hu
===== Bevezetés =====
Ebben a leírásban a csak Spamassassin spamszűrőt állítjuk be, amavis és minden más
segítség nélkül. A Spamassassin csak megjelöli a leveleket. Ha mozgatni szeretnénk
a spam gyanús leveleket, vagy egy MDA szoftver vagy például az Amavis szükséges.
===== Telepítés =====
apt install postfix spamassassin spamc
===== A postfix beállítása =====
Szerkesszük a master.cf konfigurációs fájlt:
mcedit /etc/postfix/master.cf
Tegyük a fájl elejére (a meglévőt javíthatjuk):
smtp inet n - - - - smtpd
-o content_filter=spam
Tegyük a fájl végére:
spam unix - n n - - pipe
user=debian-spamd argv=/usr/bin/spamc -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
- Készítettünk egy spam nevű szűrőt, amely unix socketen keresztül érhető el.
- A "- n n - -"
- privát folyamat lesz
- privilegizált folyamatként fut
- nincs chroot (pipe esetén nem lehet)
- nincs élesztés
- az alapértelmezett folyamatszámot használjuk
- pipe-n keresztül kerül vissza a postfixhez a levél
- A debian-spamd felhasználó nevében fut a folyamat
- A szűrőparancs
- ${feladó} ${címzett}
===== A Spamassassin beállítása =====
Szerkesszük a következő állományt:
/etc/spamassassin/local.cf
Keressük meg a következő sort és vegyük ki a megjegyzést:
rewrite_header Subject *****SPAM*****
Így a levél tárgyába kerül a SPAM szó.
Ha szeretnénk részletes naplózni spam eseményeket, szerkesszük a következő fájlt:
/etc/default/spamassassin
Tegyük az utolsó opciót a beállítások végére:
OPTIONS="--create-prefs --max-children 5 --helper-home-dir -s /var/log/spamd.log"
===== Spam assassin teszt =====
Az alábbi sort egy levél törzsébe másolva a spamassassin a levelet spamként
fogja értékelni:
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
===== Napló fájlban =====
A /var/log/mail.log fájlban ehhez hasonló kell látnunk:
Jun 30 17:39:25 iskolazo postfix/pipe[8558]: 8475E426E7:
to=, relay=spamassassin, delay=0.06,
delays=0.01/0/0/0.05, dsn=2.0.0, status=sent
(delivered via spam service)
A /var/log/spamd.log állományban azt is láthatjuk, hogy
hogyan pontozta a spamszűrő az e-mailt, ha beállítottuk
a fentiek szerint.
===== Tanítás =====
A spamszűrő tanítása:
sa-learn --spam -u debian-spamd --dir /home/joska/Maildir/.Junk/* -D
sa-learn --ham -u debian-spamd --dir /home/joska/Maildir/.INBOX/* -D
===== Teszt Perl script =====
#!/usr/bin/perl -w
use Net::SMTP;
$emailServer = '192.168.5.100';
$spamMsg = "XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X\n";
$mailTo = 'kati@zold.and';
my $smtp = Net::SMTP->new($emailServer);
$smtp->mail($ENV{USER});
if ($smtp->to($mailTo)) {
$smtp->data();
$smtp->datasend("To: Neked\n");
$smtp->datasend("\n");
$smtp->datasend($spamMsg);
$smtp->dataend();
} else {
print "Error: ", $smtp->message();
}
$smtp->quit;