Spamassassin na localhost na
Mdk.10
pełen opis w formacie OO (open office) w wersji 1.00 można pobrac tu
Włączamy konsole i logujemy się jako
root
| [yaro@yaro /]$ su Password: ********* [root@yaro /]# |
| [root@yaro
/]# urpmi spamassassin Przygotowywanie... ################################################## 1:perl-Mail-SpamAssassin ################################################## 2:spamassassin-tools ################################################## 3:spamassassin ################################################## [root@yaro /]# |
| perl-Mail-SpamAssassin-2.63-1.i386.rpm spamassassin-2.63-1.i386.rpm spamassassin-tools-2.63-1.i386.rpm |
| rpm -ivh perl-Mail-SpamAssassin-2.63-1.i386.rpm spamassassin-tools-2.63-1.i386.rpm spamassassin-2.63-1.i386.rpm |
przechodzimy
jako root do katalogu:
| [root@yaro /]# cd /etc/mail/spamassassin |
| [root@yaro /]# jed local.cf |
Moja
zawartość tego pliku wygląda tak:
| [root@yaro /]# cat local.cf # SpamAssassin config file for version 2.5x # generated by http://www.yrex.com/spam/spamconfig.php (version 1.01) # Whether to change the subject of suspected spam rewrite_subject 1 # Text to prepend to subject if rewrite_subject is used subject_tag *****SPAM***** # Encapsulate spam in an attachment report_safe 0 # Use terse version of the spam report use_terse_report 0 # Enable the Bayes system use_bayes 1 # Enable Bayes auto-learning auto_learn 1 # Enable or disable network checks skip_rbl_checks 0 use_razor2 1 use_dcc 1 use_pyzor 1 # Mail using languages used in these country codes will not be marked # as being possibly spam in a foreign language. # - english polish ok_languages en pl # Mail using locales used in these country codes will not be marked # as being possibly spam in a foreign language. ok_locales en allow_user_rules 1 # How many hits
before a message is considered spam. |
allow_user_rules 1
Swoje
własne ustawienie można wygenerować tutaj:
http://www.yrex.com/spam/spamconfig.php
Sprawdzenie
stanu:
|
[root@yaro /]#
/etc/rc.d/init.d/spamassassin status spamd został zatrzymany |
Restart:
|
[root@yaro /]#
/etc/rc.d/init.d/spamassassin restart Zamykanie spamd: [NIEUDANE] Uruchamianie spamd: [ OK ] |
|
[root@yaro /]#
/etc/rc.d/init.d/spamassassin stop Zamykanie spamd: [ OK ] |
Uruchomienie:
|
[root@yaro /]#
/etc/rc.d/init.d/spamassassin start Uruchamianie
spamd: [ OK ] [root@yaro
/]# |
Teraz gdy mamy juz uruchomionego
demona (spamd) możemy do niego podłączyć jakiś program pocztowy.
|
[yaro@yaro /]$ evolution |
Wybieramy:


Aby przetestować działanie demona
wyślijmy do siebie 2 testowe mail'e. Powinniśmy wysłać je na konto na
serwerze poza Twoja siecią. Obu nadajmy temat "Test".
| This is the GTUBE, the Generic Test for Unsolicited Bulk If your spam filter supports it, the GTUBE provides a test by which you can verify that the filter is installed correctly and is detecting incoming spam. You can send yourself a test mail containing the following string of characters (in upper case and with no white spaces and line breaks): XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X You should send this test mail from an account outside of your network. |
| X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* |
| X-Spam-Flag: YES X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on yaro X-Spam-Level: ************************************************** X-Spam-Status: Yes, hits=1001.0 required=7.5 tests=GTUBE,VIRUS_CLEANED_MYDOOM autolearn=no version=2.63 X-Spam-Report: * 1000 GTUBE BODY: Generic Test for Unsolicited Bulk Email |
| X-Spam-Flag: YES X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on yaro X-Spam-Level: ************************************************** X-Spam-Status: Yes, hits=501.0 required=7.5 tests=AWL,VIRUS_CLEANED_MYDOOM autolearn=no version=2.63 X-Spam-Report: * 1.0 VIRUS_CLEANED_MYDOOM Failed/cleaned Mydoom infection? * 500 AWL AWL: Auto-whitelist adjustment |



Jeśli w local.cf ustawiliśmy:
| use_bayes 1 |
mamy je włączone.
(700/2000)/(5/400+700/2000) = 0,96
Na podstawie powyższej analizy,
wiadomości ze słowem "zarabiaj" traktowane będą jako spam, gdyż
prawdopodobieństwo, że faktycznie nim są okazuje się bardzo wysokie,
równe 0,96 (maksymalna wartość jest równa 1 i oznacza stuprocentową
pewność, minimalna wartość jest równa 0 i odpowiada całkowicie
zwyczajnej poczcie). Warto podkreślić elastyczność takiej analizy -
jeśli w wiadomościach wychodzących zwiększy się częstotliwość
występowania określonego słowa (np. "zarabiaj"), to wynik się zmieni.
Całość operacji nie jest oczywiście przeprowadzana dla jednego słowa,
analizie poddawana jest cała wiadomość, co zwiększa skuteczność tej
metody. Należy także zwrócić uwagę na dodatkową zaletę - niezależność
od języka w jakim prowadzona jest korespondencja.
(Na podstawie http://www.it-faq.pl/itfaqarticle.asp?id=341)
| [jacek@localhost jacek] |
teraz
klepiemy:
| [yaro@yaro yaro]$ sa-learn --spam
--showdots --mbox /tmp/box .... ........... ...... Learned from 43 message(s) (48 message(s) examined). [yaro@yaro yaro]$ |
| [yaro@yaro yaro]$ sa-learn --ham
--showdots --mbox /tmp/box ...................................................................... Learned from 243 message(s) (243 message(s) examined). [yaro@yaro yaro]$ |
| body ONET_SPAM /List został wysłany za zgodą użytkowników
OnetPoczty/i score ONET_SPAM 5 describe ONET_SPAM reklamowka_onetu body WP_SPAM /List został wysłany zgodnie z regulaminami kont/i score WP_SPAM 5 describe WP_SPAM Wp_spam body TERAZ_TYLKO /teraz tylko/i score TERAZ_TYLKO 0.3 describe TERAZ_TYLKO teraz_tylko body YARO_GRATIS /gratis/i score YARO_GRATIS 0.4 describe YARO_GRATIS gratis body CHEAP /Cheap/i score CHEAP 0.5 describe CHEAP cheap body PRICE /price/i score PRICE 0.3 describe PRICE price body COCK /cock/i score COCK 1.7 describe COCK cock body SUCKED /sucked/i score SUCKED 1.5 describe SUCKED sucked body CHICKS /chicks/i score CHICKS 1 describe CHICKS chicks body YARO_PAY /pa(?:y|i)(?:|d|ment|out)/i score YARO_PAT 0.5 body YARO_REFFERAL /refe(?:r|rr)(?:al|ed)/i score YARO_REFFERAL 0.5 body YARO_PROFIT /profit/i score YARO_PROFIT 0.4 body YARO_MONEY /money/i score YARO_MONEY 0.4 body YARO_MONEY3 /gold/i score YARO_MONEY3 0.4 body YARO_SHOP /shop/i score YARO_SHOP 0.6 body YARO_REACH /reach/i score YARO_REACH 0.2 body YARO_AFFILIATE /affiliate/i score YARO_AFFILIATE 0.7 body YARO_INCREASE /increase/i score YARO_INCREASE 0.4 body YARO_CUSTOMER /customer/i score YARO_CUSTOMER 0.3 body YARO_PRICE /pric(?:e|ing|ed)/i score YARO_PRICE 0.3 body YARO_ORGASM /orga(?:s|z)m/i score YARO_ORGASM 1 body YARO_EJACUL /ejaculat(?:i|e)/i score YARO_EJACUL 1 header X_WP_AntySpam_Rezultat X-WP-AntySpam-Rezultat =~ /TAK-SPAM/i score X_WP_AntySpam_Rezultat 2.5 |
| gdzie_szukac | nazwa | /szukany ciag znakow/ | znacznik |
| body | ONET_SPAM | /List został wysłany za zgodą użytkowników OnetPoczty/ | i |
czyli:
| body ONET_SPAM /List został wysłany za zgodą użytkowników OnetPoczty/i |
W ww przypadku
znacznikiem jest „i” - co oznacza, że regułka nie będzie sprawdzać
wielkości liter. Następnie podajemy jak wysoko punktujemy daną regułkę:
| score ONET_SPAM 5 |
| describe ONET_SPAM reklamowka_onetu |
| body YARO_PRICE /pric(?:e|ing|ed)/i score YARO_PRICE 0.3 |
| /ciag_znakow(?:ciag_znakow_1| ciag_znakow_2| ciag_znakow_3|...)ciag_znakow/ |
| /vi(?:a|4|@)gr(a|4|@)n/i |
| score NAZWA_TESTU ilość_punktow |
| score HTML_ALL_CAPS 2.0 score HTML_MESSAGE BODY 1.0 |
| score SUBJ_ILLEGAL_CHARS 0
|


| [yaro@yaro
yaro]$ sa-learn --spam --showdots --dir /home/yaro/.Mail/\!Spam/cur/ ... Learned from 3 message(s) (3 message(s) examined). [yaro@yaro yaro]$ |
Sir_Yaro