Gán thêm bộ lọc ngăn chặn cùng với email gửi đi với alterMIME

QuanTriMang.com - Trong bài viết sau, Quản Trị Mạng sẽ giới thiệu với các bạn cách cài đặt và sử dụng alterMIME - 1 công cụ hỗ trợ có tính năng tự động tạo và thêm các bộ lọc ngăn chặn vào email. Ứng dụng này khá giống với bộ lọc Postfix trên Debian Lenny.

Lưu ý sơ bộ

Tại đây, hệ thống thử nghiệm của chúng ta đã được cài đặt Postfix sẵn (xem thêm tại đây).

Cài đặt alterMIME

Các bạn hãy sử dụng câu lệnh sau:

aptitude install altermime

Tiếp theo, chúng ta tạo tài khoản user với thư mục gốc /var/spool/filter và alterMIME sẽ được khởi động cùng với tài khoản đó:

useradd -r -c "Postfix Filters" -d /var/spool/filter filter
mkdir /var/spool/filter
chown filter:filter /var/spool/filter
chmod 750 /var/spool/filter

Sau đó, tiếp tục tạo đoạn mã /etc/postfix/disclaimer để thi hành các lệnh từ alterMIME. Các gói alterMIME từ Debian có đi kèm với đoạn mã mẫu, do vậy chúng ta chỉ cần copy tới thư mục /etc/postfix/disclaimer:

cp /usr/share/doc/altermime/examples/postfix_filter.sh /etc/postfix/disclaimer
chgrp filter /etc/postfix/disclaimer
chmod 750 /etc/postfix/disclaimer

Vấn đề duy nhất còn tồn tại với đoạn mã này là nó không thể phân biệt được email gửi và nhận – chỉ đơn giản là áp dụng quy tắc lọc với tất cả các email. Để thay đổi tính năng này, chúng ta cần can thiệp vào file /etc/postfix/disclaimer – sẽ được đề cập đến ở đoạn dưới.

Tại bước này, chúng ta sẽ tạo tiếp file /etc/postfix/disclaimer_addresses để lưu giữ tất cả các địa chỉ của người gửi (mỗi địa chỉ 1 dòng) để alterMIME gán vào như 1 quy tắc phân loại:

vi /etc/postfix/disclaimer_addresses

falko@example.com
joe@example.org
tom@example.net

Sau đó, mở file /etc/postfix/disclaimer và sửa lại thành như sau (những đoạn đánh dấu bằng chữ Changed nghĩa là đã được thay đổi):

vi /etc/postfix/disclaimer

#!/bin/sh
# Localize these.
INSPECT_DIR=/var/spool/filter
SENDMAIL=/usr/sbin/sendmail

####### Changed From Original Script #######
DISCLAIMER_ADDRESSES=/etc/postfix/disclaimer_addresses
####### Changed From Original Script END #######

# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69

# Clean up when done or when aborting.
trap "rm -f in.$$" 0 1 2 3 15

# Start processing.
cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit
$EX_TEMPFAIL; }

cat >in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; }

####### Changed From Original Script #######
# obtain From address
from_address=`grep -m 1 "From:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1`

if [ `grep -wi ^${from_address}$ ${DISCLAIMER_ADDRESSES}` ]; then
/usr/bin/altermime --input=in.$$ \
--disclaimer=/etc/postfix/disclaimer.txt \
--disclaimer-html=/etc/postfix/disclaimer.txt \
--xheader="X-Copyrighted-Material: Please visit http://www.company.com/privacy.htm" || \
{ echo Message content rejected; exit $EX_UNAVAILABLE; }
fi
####### Changed From Original Script END #######

$SENDMAIL "$@" <in.$$

exit $?

Sau đó, ta cần file /etc/postfix/disclaimer.txt để chứa dữ liệu liên quan đến nội dung quy tắc:

cp /usr/share/doc/altermime/examples/disclaimer.txt /etc/postfix/disclaimer.txt

Bước cuối cùng, chúng ta cần “thông báo” với Postfix để chương trình sử dụng mã /etc/postfix/disclaimer để gán tất cả các quy tắc lọc với những email được gửi đi. Mở /etc/postfix/master.cf và thêm dòng -o content_filter=dfilt: vào dòng smtp:

vi /etc/postfix/master.cf

#
# Postfix master process configuration file. For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - - - - smtpd
-o content_filter=dfilt:
[...]

Và tại phía cuối file đó, hãy thêm 2 dòng lệnh như sau:

[...]
dfilt unix - n n - - pipe
flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient}

Khởi động lại Postfix:

/etc/init.d/postfix restart

Và giờ đây, các bộ lọc do bạn đề ra sẽ được áp dụng vào tất cả các email gửi đi từ những địa chỉ lưu trữ trong file /etc/postfix/disclaimer_addresses.

Khi hoàn thành được các bước cơ bản trên nghĩa là bạn đã cài đặt và áp dụng thành công các quy tắc lọc vào email gửi đi. Chúc các bạn thành công!

Thứ Sáu, 24/09/2010 13:31
31 👨 369
0 Bình luận
Sắp xếp theo
    ❖ Tổng hợp