[[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;