Chống SPAM với Postfix và SpamAssassin

Tác giả: Trần Quang Hoàng [hoang at muine dot org]

URL: muine.org/~hoang/postfix_sa.html

-----------------------------------------------------------------

Nếu bạn đang tìm cách để lọc bỏ các e-mail quấy rối tại máy chủ e-mail thì đây là các bước để thực hiện chúng trên mạng của mình:

Giới thiệu

Chúng ta đều biết Postfix UCE có nhiều tính năng mạnh và SpamAssassin là một công cụ rất hiệu quả để chặn, bắt các thư rác. Hướng dẫn này giả định rằng Postfix đã và đang hoạt động trên một máy chủ sử dụng hệ điều hành FreeBSD.

Cài đặt SpamAssassin

Cài đặt SpamAssassin từ các ports collection.

# cd /usr/ports/mail/p5-Mail-SpamAssassin 
# make install clean

Bổ sung 1 user và group filter để chạy SpamAssassin. Ví dụ:

/etc/passwd: filter:*:23:23::0:0:Postfix Filter Daemon:/var/empty:/sbin/nologin 
/etc/group: filter:*:23:

Tạo một shell script để chạy client SpamAssassin từ Postfix, nội dung như sau:

/usr/local/sbin/filter.sh: 
#!/bin/sh 
/usr/local/bin/spamc | /usr/sbin/sendmail -i "$@" 
exit $?

Bật chế độ cho phép chạy script này:

# chmod +x /usr/local/sbin/filter.sh

Tạo một script để khởi động máy chủ SpamAssassin khi khởi động với các tham số như auto-witelisst, daemonize, sử dụng bộ lọc người dùng và cho phép tối đa 10 tiến trình con:

/usr/local/etc/rc.d/spamd.sh: 
/usr/local/bin/spamd -a -d -u filter -m 10 &

Bật chế độ cho chạy script:

# chmod +x /usr/local/etc/rc.d/spamd.sh

Khởi động SpamAssassin:

# /usr/local/etc/rc.d/spamd.sh

SpamAssassin client and server are ready to go. Lets plug it into Postfix (SpamAssassin client và server đã sẵn sàng để hoạt động). Hãy gắn nó vào Postfix bằng cách thêm các thông số sau vào

file /usr/local/etc/postfix/master.cf
-o content_filter=spamfilter: 
spamfilter unix - n n - - pipe 
flags=Rq user=filter argv=/usr/local/sbin/filter.sh -f ${sender} -- ${recipient}

Kết quả cuối cùng trông sẽ giống như sau:

# ========================================================================== # service type private unpriv chroot wakeup maxproc command + args 
# (yes) (yes) (yes) (never) (50) 
# ========================================================================== smtp inet n - n - - smtpd -o content_filter=spamfilter: 
spamfilter unix - n n - - pipe 
flags=Rq user=filter argv=/usr/local/sbin/filter.sh -f ${sender} -- ${recipient}

Bây giờ, bạn hãy khởi động lai Postfix:

# postfix reload

Mỗi email đi qua Postfix và SpamAssassin sẽ chứa một thông số X-Spam-Status trong phần tiêu đề:

Yes nếu nó là thư rác. Người dùng có thể lọc bỏ nó và qui định các hành động thích hợp cho email này trong chương trình e-mail yêu thích của mình.

Tham khảo:

http://spamassassin.org Postfix
http://www.postfix.org

Cập nhật lần cuối: 27/07/2003

Dịch ngày: 07/10/2003 bởi [chairuou at yahoo dot com]

Thứ Hai, 14/09/2020 15:05
51 👨 3.421
0 Bình luận
Sắp xếp theo