
Cuộc chiến thư rác với FuzzyOCR và SpamAssassin trên Fedora 12

Trong bài viết sau, Tài Liệu sẽ giới thiệu với các bạn cách thức quét
email để phát hiện ảnh spam với công cụ FuzzyOCR trên Fedora 12
server.
FuzzyOCR là 1 plugin dành cho SpamAssassin, được trang bị để nhằm vào
số lượng lớn thư rác có chứa ảnh nội dung (không phải hoặc ít nội dung dưới
dạng text). Sử dụng phương pháp phân tích tiên tiến, chương trình tự động
thu thập nội dung, thuộc tính của hình ảnh để phân biệt giữa 2 loại thư bình
thường và thư rác. FuzzyOCR sẽ cố gắng sử dụng ít tài nguyên hệ thống ở
mức có thể bằng cách scan những email không được phân loại bằng
SpamAssassin, qua đó tránh được những việc làm không cần thiết.
1. Lưu ý sơ bộ
Hệ thống sử dụng ở đây là Fedora 12. Giả sử rằng SpamAssassin đã cài đặt
và hoạt động ổn định với /etc/mail/spamassassin/ là thư mục thiết lập mặc
định. Nếu thư mục của bạn có khác biệt (chẳng hạn có cài đặt ISPConfig 2
thì thư mục đó sẽ là
/home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/),
hoàn toàn không có vấn đề gì cả.
2. Cài đặt thành phần cần thiết của FuzzyOCR
FuzzyOCR có yêu cầu 1 số thành phần như ocrad và gocr, do đó ta phải cài
đặt trước:
yum install netpbm gifsicle giflib giflib-utils
gocr ocrad ImageMagick tesseract perl-String-Approx
perl-MLDBM perl-CPAN
Bên cạnh đó, chúng ta cũng phải cài đặt module MLDBM::Sync của Perl,
nhưng lại không có sẵn như gói RPM thông thường. Mở Perl shell…:
perl -MCPAN -e shell
Và cài đặt theo câu lệnh sau:
install MLDBM::Sync
Sau đó gõ q để thoát khỏi Perl shell.

3. Cài đặt FuzzyOCR
Tiếp theo chúng ta cần tải và cài đặt FuzzyOCR tại đây. Lưu ý rằng nên
chọn bản mới nhất ổn định theo khuyến cáo từ các nhà phát triển
FuzzyOCR:
Khuyến cáo hiện nay dành cho phiên bản phát triển bởi vì bản ổn định thiếu
khá nhiều chức năng.
cd /usr/src/
wget http://users.own-
hero.net/~decoder/fuzzyocr/fuzzyocr-3.5.1-
devel.tar.gz
Sau đó giải nén gói FuzzyOCR, đồng thời di chuyển toàn bộ file FuzzyOcr*
và thư mục FuzzyOcr (vốn ở trong thư mục FuzzyOcr-3.5.1/) tới
/etc/mail/spamassassin:
tar xvfz fuzzyocr-3.5.1-devel.tar.gz
cd FuzzyOcr-3.5.1/
mv FuzzyOcr* /etc/mail/spamassassin/
Nếu thư mục SpamAssassin khác biệt (ví dụ
/home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/)
thì phải thay thế dòng lệnh cuối cùng bên trên bằng:
mv FuzzyOcr*
/home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/
Đừng vội xóa thư mục /usr/src/FuzzyOcr-3.5.1/ vì trong đó có chứa thư rác
mẫu để kiểm tra liệu FuzzyOCR có hoạt động hay không. Việc tiếp theo là
thiết lập và tùy chỉnh FuzzyOCR.
4. Thiết lập FuzzyOCR
File tùy chỉnh này nằm ở thư mục /etc/mail/spamassassin/FuzzyOcr.cf. Mở
file đó và chỉnh 1 số chi tiết sau:
vi /etc/mail/spamassassin/FuzzyOcr.cf
Đặt dòng sau vào vị trí xác định từ ngữ nhận dạng spam của FuzzyOCR:

[...]
focr_global_wordlist
/etc/mail/spamassassin/FuzzyOcr.words
[...]
/etc/mail/spamassassin/FuzzyOcr.words thực chất là danh sách từ đã được
định nghĩa trước đi kèm với FuzzyOCR. Các bạn có thể chỉnh sửa file này
nếu muốn.
Thay đổi tiếp theo:
[...]
# Include additional scanner/preprocessor commands
here:
#
focr_bin_helper pnmnorm, pnminvert, pamthreshold,
ppmtopgm, pamtopnm
focr_bin_helper tesseract
[...]
thành:
[...]
# Include additional scanner/preprocessor commands
here:
#
focr_bin_helper pnmnorm, pnminvert, convert,
ppmtopgm, tesseract
[...]
Cuối cùng thêm tiếp dòng lệnh sau:
[...]
# Search path for locating helper applications
focr_path_bin
/usr/local/netpbm/bin:/usr/local/bin:/usr/bin
focr_preprocessor_file
/etc/mail/spamassassin/FuzzyOcr.preps
focr_scanset_file
/etc/mail/spamassassin/FuzzyOcr.scansets

focr_enable_image_hashing 2
focr_digest_db
/etc/mail/spamassassin/FuzzyOcr.hashdb
focr_db_hash /etc/mail/spamassassin/FuzzyOcr.db
focr_db_safe
/etc/mail/spamassassin/FuzzyOcr.safe.db
[...]
Với 4 dòng mã cuối chúng ta có thể kích hoạt cơ chế ảnh hash. Và đây là
những gì nhà phát triển FuzzyOCR nói về cơ chế này:
Cơ sở dữ liệu của cơ chế ảnh hash cho phép các plugin lưu trữ vector của
ảnh tới cơ sở dữ liệu, vì vậy dễ dàng nhận ra khi những bức ảnh này khi nó
đến lần thứ 2 (do vậy không cần phải tiến hành scan lại). Điểm đặc biệt
trong chức năng này là cũng vẫn có thể nhận dạng được những bức ảnh
tương tự, hoặc đã được chỉnh sửa chút ít (được làm bởi những kẻ spam).
Nếu bạn dùng
/home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin
thay vì /etc/mail/spamassassin, file thiết lập của FuzzyOCR là
/home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin/Fu
zzyOcr.cf thay vì /etc/mail/spamassassin/FuzzyOcr.cf, hãy chỉnh lại file này.
Trong file tùy chỉnh, bạn sẽ phải thay thế tất cả /etc/mail/spamassassin với
/home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin,
hoặc bỏ lại như dưới đây trước khi tạo 1 symlink từ /etc/mail/spamassassin
thành
/home/admispconfig/ispconfig/tools/spamassassin/etc/mail/spamassassin
như sau:
mkdir /etc/mail/
ln -s
/home/admispconfig/ispconfig/tools/spamassassin/etc
/mail/spamassassin/ /etc/mail/spamassassin
Vậy là đã kết thúc bước thiết lập và tùy chỉnh FuzzyOCR. Tiếp theo hãy chờ
xem liệu có hoạt động như mong đợi hay không.
5. Kiểm tra FuzzyOCR

