CHỐNG SPAM VỚI SPAMASSASSIN và PROCMAIL... Nội dungSpamAssassin SpamAssassin và Procmail Thực hiện chống spam với Spamassassin và Procmail... Đặc điểm hoạt động của SpamAssassin Dựa trê
Trang 1CHỐNG SPAM VỚI SPAMASSASSIN và
PROCMAIL
Trang 2Nội dung
SpamAssassin
SpamAssassin và Procmail
Thực hiện chống spam với Spamassassin và Procmail
Trang 3Giới thiệu về SpamAssassin
Là chương trình giúp nhận dạng spam
Được viết bằng ngôn ngữ Perl
Trang 4Đặc điểm hoạt động của
SpamAssassin
Dựa trên các luật
Phân tích mail header và mail body
Phương pháp lọc Bayes
Automatic whitelist/blacklist (AWL)
Manual whitelist/blacklist
Collaborative filtering database
DNS block list
Learning
Trang 5Mail::SpamAssassin
Spamassassin Deamon gồm có spamd/spamc
Spamd: server, port 783
Chạy như một dịch vụ nền
Spamc: client
Được gọi thay cho spamassassin trong các script của mailer
Trang 6Cách xác định spam
Dựa trên việc tính điểm (điểm spam) cho mail và
so sánh điểm đó với giá trị ngưỡng (threshold)
Qua xử lý, mail được thêm vào một số header như:
X-Spam-Status: Yes
X-Spam-Level: ********
Trang 7Một số file cấu hình của
SpamAssassin
usr/share/spamassassin/local.cf
/etc/mail/spamassassin/local.cf
/usr/share/spamassassin/user_prefs.template
$USER_HOME/.spamassassin
$USER_HOME/.spamassassin/user_prefs
$USER_HOME/.spamassassin/bayes*
Trang 8Ví dụ về file local.cf
required_hits 8
rewrite_subject 1
report_header 1
use_terse_report 1
defang_mime 0
report_safe 0
use_bayes 1
auto_learn 1
ok_locales en
Trang 9SpamAssassin và Procmail
Procmail là mailer dùng để phân phối thư cho người dùng
Procmail xử lý mail dựa trên các luật được khai báo trong file /home/{user}/.procmailrc
Sử dụng procmail kết hợp với SpamAssassin để lọc spam:
1 .procmailrc gọi thực thi chương trình spamassassinđể
tính điểm spam cho mail
2 mail sau khi xử lý sẽ được chuyển đến thư mục thích
hợp
Trang 10File ~/.procmailrc
File procmailrc gồm:
Các câu lệnh gán giá trị cho các biến môi trường (nếu cần)
Các luật để xử lý mail gọi là các recipe
Cú pháp recipe:
:0[<flag>][:][<lock file>]
* <condition line 1>
[* <condition line 2>]
[* <…>]
<action line>
Trang 11Ví dụ về file ~/.procmailrc
SHELL = /bin/sh
PATH = /bin:/usr/bin
PMDIR = $HOME/.procmail
LOGFILE = $PMDIR/proclog
MAILDIR = $HOME/mail
DEFAULT = $MAILDIR/mbox
LOGABSTRACT = all
VERBOSE = off
:0fw: spamassassin.lock
| /usr/bin/spamc
Trang 12Ứng dụng chống spam với SpamAssassin và Procmail
Trang 13Sơ đồ hoạt động lọc spam
Trang 14Các file
~/mail/mbox
~/mail/spammail
~/.procmail/proclog
/etc/procmailrc /etc/mail/spamassassin/procmailrc /etc/mail/spamassassin/local.cf
/etc/mail/spamassassin/spammail
/etc/mail/blacklist
Trang 15Tạo các file trong thư mục
người dùng
cd /etc/skel
mkdir procmail
mkdir mail
Trang 16/etc/mail/spamassassin/local.cf
required_hits 8
rewrite_subject 1
report_header 1
use_terse_report 1
defang_mime 0
report_safe 0
use_bayes 1
auto_learn 1
ok_locales en
Trang 17SHELL = /bin/sh
PATH = /bin:/usr/bin
PMDIR = $HOME/.procmail
LOGFILE = $PMDIR/proclog
MAILDIR = $HOME/mail
DEFAULT = $MAILDIR/mbox
LOGABSTRACT = all
VERBOSE = off
Trang 18/etc/procmailrc (tt)
:0fw: spamassassin.lock
| /usr/bin/spamc
FROM = `formail –xFrom:’
:0
* ? grep ${FROM} /etc/mail/blacklist
/dev/null
Trang 19* ^X-Spam-Status: Yes
{ :0cw
$MAILDIR/spammail
:0cw
/etc/mail/spamassassin/spammail
:0cw
| echo “${FROM}” >> /etc/mail/blacklist
:0fw
| {formail –rt ; \
echo “Your mail is rejected because it is identified SPAM!”; \
} | sendmail -t
}
Trang 20Tài liệu tham khảo
1 http://spamassassin.apache.org/doc.html
2 http://spamassassin.apache.org/full/3.0.x/dist/doc/
3 http://www.stearns.org/doc/spamassassin-setup.current.html
4 http://www.ccs.neu.edu/howto/howto-procmail.html
5 man procmailrc
6 man procmailex
7 man formail
8 perldoc Mail::SpamAssassin::Conf
9 Download: http://mail-gw.vnuhcm.edu.vn/download/