Hệ thống sau khi được triển khai hoạt động tốt, đảm bảo các chức năng cơ bản
của một hệ thống thư điện tử như thao tác gửi/nhận/kiểm tra thư hoạt động tốt.
Các thành phần phòng chống và lọc thư rác bao gồm phương pháp chống thư rác
dựa vào chuẩn SMTP , chống thư rác nhờ danh sách tên miền đen, lọc thư rác dựa vào
nội dung và công thức xác suất Bayes đều hoạt động tốt, tuy nhiên mới phòng chống
thư rác ở mức hạn chế. Các phương pháp phòng chống dựa vào chuẩn SMTP và danh
sách tên miền, danh sách địa chỉ hoạt động chính xác nhất. Còn phương pháp lọc thư
theo nội dung và công thức Bayes hoạt động kém chính xác hơn chủ yếu vì hệ thống
được triển khai trong thời gian ngắn, cơ sở dữ liệu về thư rác chưa đủ lớn nên phương
pháp “học” thư rác hoạt động kém hiệu quả. Ngoài ra, yếu tố ngôn ngữ cũng góp phần
làm giảm độ chính xác của phương pháp này , vì bộ lọc này chủ yếu được sử dụng cho
tiếng Anh, chưa hỗ trợ đầy đủ cho tiếng Việt và bộ mã Unicode.
78 trang |
Chia sẻ: lylyngoc | Lượt xem: 3656 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Xây dựng giải pháp toàn bộ cho hệ thống thư điện tử trên nền tảng hệ điều hành linux, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ày sẽ nối máy khách vào một máy chủ bất kì mà không cần
kiểm lại chủ quyền xử dụng và cũng không giới hạn các quyền hạn truy cập khác. Như
vậy, người phát tán có thể chỉ thị một proxy mở để nối vào một máy chủ điện thư và
gửi thư rác qua đó. Các máy chủ đã làm công việc kết nối với proxy không phải người
chủ phát tán.
Bên cạnh đó, người ta còn lợi dụng các dịch vụ thiếu an toàn để gửi thư rác. Thí
dụ: FormMail.pl là một file CGI thi hành cho phép các trang WEB gửi thư trả lời từ
một mẫu điền HTML. Nhiều phiên bản của chương trình này cho phép người dùng
chuyển hướng thông điệp đến một điạ chỉ tùy ý. Thư rác được gửi kiểu này thường có
dòng mở đầu là: Below is the result of your feedback form.
Ngày nay, những kẻ phát tán thay vì dùng các biện pháp kể trên, đã chuyển sang
thiết kế các con virus để khai thác các proxy và các công cụ gửi thư rác khác. Hàng
trăm ngàn máy tính có thể bị nhiễm. Hầu hết các virus thư rác trong năm 2003 là các
virus trên môi trường Windows, bao gồm họ virus Sobig và Mimail.
Ngoài ra, những kẻ phát tán còn dùng đến một thủ đọan khác là tấn công vào các
DNSBL và các nguồn chống thư rác. Trong năm 2003 nhiều DNSBL đã bị tấn công.
2.2.Các biện pháp loại bỏ thư rác
Từ các đặc điểm và đặc trưng của thư rác, đã có rất nhiều nghiên cứu khác nhau
về vấn đề làm sao giảm thiểu càng nhiều càng tốt lượng thư rác đang ngày càng tăng
hiện nay.
Dùng chức năng lọc: Nhiều nơi cung cấp phần mềm điện thư cũng đã có sẵn bộ
lọc (filter) để loại bỏ các thư rác này trước khi tới tay người nhận một cách chủ động
nhưng các lọc này không hoàn toàn tuyệt hảo.
Hầu hết các phần mềm email client như là MS Outlook, AOL có thêm chức năng
cho phép chúng ta cài lại một số dấu hiệu và loại bỏ thư rác qua các thực đơn sẵn có.
30
Hình 5.Dùng chức năng sẵn có của Outlook để loại bỏ thư rác
Một số cơ sở thương mại cũng đã có các dịch vụ để giúp người tiêu dùng dẹp bỏ
nạn thư rác bằng cách tung ra thị trường các loại phần mềm (bộ lọc) chống thư rác.
Tuy nhiên không phải phần mềm nào dược bán ra cũng hoạt động hữu hiệu. Hai hãng
có sản phẩm chống spam tương đối mạnh là Norton AntiSpam và Qurb.
Sử dụng WebMail: Thay vì dùng các hộp thư thông thường thì có thể dùng các
dịch vụ cung cấp thư điện tử qua Internet. Bằng cách này thì trách nhiệm lọc thư rác
được giao về cho các dịch vụ cung cấp. Tuy nhiên, không chắc dịch vụ nào cũng làm
tốt nhiệm vụ này. Nghĩa là họ có thể không làm gì cả để lọc các thư rác trong hộp thư.
Trong các dịch vụ kiểu này thì có Mailblocks Extended Servivce khá hữu hiệu. Tuy
nhiên, người mua dịch vụ lại phải trả cước phí hàng tháng nào đó cho công tác này.
Người dùng Internet và các người quản lý hệ thống đã phát triển nhiều kỹ thuật
để ngăn, lọc, hay cấm các thư rác thâm nhập vào các hộp thư. Hầu hết các ISP cấm
việc dùng dịch vụ của họ để gửi thư rác. Cũng có nhiều tổ chức hay người tình nguyện
đứng ra lo việc ngăn chặn thư rác như là Brightmail, Postini, và nhiều DNSBL.
31
Một số chính phủ trong đó đi tiên phong là Hoa Kỳ đã có biện pháp mạnh mẽ
hơn để bảo vệ người tiêu dùng bằng cách ra các đạo luật phạt vạ khắc khe các cơ sở
hay cá nhân dùng thư rác. Tuy nhiên nhược điểm của phương án này là 3/4 các thư rác
lại không được gửi ra trong nước mà là chúng đến từ những nơi chưa có lệnh cấm.
Hiện tại đang có nhiều nỗ lực để phát triển những tiêu chuẩn về thư điện tử mới
nhằm mục đích chấm dứt tình trạng này. Một khi các tiêu chuẩn đó được công nhận thì
khái niệm spam sẽ không còn thông dụng nữa.
2.2.1.Danh sách tên miền đen (DNS-based Blackhole Lists)
Danh sách tên miền đen là một danh sách các địa chỉ IP mà rất nhiều người muốn
tránh kết nối tới (vì lý do an toàn) được công bố rộng rãi trên mạng toàn cầu. Danh
sách đó được công bố theo một định dạng và phương thức sao cho tất cả mọi người
đều dễ dàng truy cập được. Công nghệ đó được xây dựng dựa trên nền tảng hệ thống
tên miền Internet (Internet Domain Name System hay DNS). Danh sách tên miền đen
chủ yếu là danh sách của những tên miền có liên quan đến thư rác. Hầu hết các máy
chủ vận chuyển thư đều có thể được cầu hình để từ chối nhận/gửi hoặc đánh dấu thông
điệp được gửi từ những tên miền có trong danh sách đen.
Khi một thông điệp được gửi đi, nó sẽ đi qua một số máy chủ SMTP trước khi
chuyển tới địa chỉ người nhận. Địa chỉ IP của các máy chủ SMTP mà thông điệp đó đã
chuyển qua được ghi trong phần đầu (header) của thông điệp. Các chương trình chống
thư rác sẽ kiểm tra tất cả các địa chỉ IP đã được tìm thấy trong phần đầu của thông điệp
đó sau đó so sánh với cơ sở dữ liệu DNS Blacklist đã biết. Nếu địa chỉ IP tìm thấy
trong phần này có trong cơ sở dữ liệu về các DNS Blacklist, nó sẽ bị coi là spam, còn
nếu không, email đó sẽ được coi là một email hợp lệ.
Để triển khai một danh sách tên miền đen, cần có 3 yếu tố: một tên miền để lưu
trữ danh sách đó, một máy chủ tên cho tên miền đó và một danh sách các địa chỉ cần
được công bố. Có thể sử dụng phần mềm BIND – là một phần mềm DNS phổ biến
dùng được cho nhiều mục đích để cài đặt một danh sách tên miền đen. Tuy nhiên nó
không hiệu quả trong trường hợp số lượng tên miền trong danh sách là rất lớn. Vì thế
các phần mềm chuyên về danh sách đen như Michael J. Tokarev's rbldnsd hay Daniel
J. Bernstein's rbldns sẽ chạy nhanh hơn, tốn ít tài nguyên hơn và dễ cấu hình hơn.
Truy vấn danh sách đen
32
Khi một máy chủ tiếp nhận kết nối từ một máy khách và muốn kiểm tra xem máy
khách đó có nằm trong một danh sách đen (ví dụ spammers.example.net) hay không.
Nó sẽ thực hiện các thao tác sau:
Lấy địa chỉ IP của máy khách (ví dụ 192.168.42.23) rồi đảo ngược thứ tự byte
của nó (trở thành 23.42.168.192)
Thêm vào tên miền của danh sách đen (trở thành
23.42.168.192.spammers.example.net).
Thử tìm kiếm tên này trong DNS như một tên miền (bản ghi “A”). Kết quả trả về
sẽ là một địa chỉ, chỉ định rằng máy khách đó có ở trong danh sách, hoặc một mã
“NXDOMAIN” báo rằng khách hàng đó không có trong danh sách.
Tiếp theo, nếu máy khách có ở trong danh sách đen, máy chủ có thể thử tìm kiếm
tên như một bản ghi văn bản (bản ghi “TXT”). Hầu hết các danh sách đen đều lưu trữ
thông tin về một địa chỉ và nguyên nhân nó nằm trong danh sách đen.
Chính sách danh sách đen
Tuỳ theo từng danh sách đen mà nó có những chính sách khác nhau. Tuy nhiên
các danh sách đen thường có chung 3 chính sách sau:
Mục đích: cho biết danh sách đen đó liệt kê những gì? nó lưu trữ danh sách của
những relay mailserver, hay proxy hay địa chỉ IP của những máy gửi thư rác vv...
Sự chỉ định: nghĩa là bằng cách nào mà danh sách đen có được những địa chỉ
trong danh sách, nó có cần tuân theo sự chỉ định của người dùng hay không vv...
Vòng đời của danh sách: chỉ ra danh sách đã tồn tại bao nhiêu lâu? danh sách có
tự động hết hạn không hay cần huỷ bỏ nó bằng tay? Thao tác cần thực hiện để huỷ bỏ
một danh sách là gì?
Phương pháp này có ưu điểm là các thông điệp có thể được kiểm tra trước khi tải
xuống, do đó tiết kiệm được băng thông đường truyền. Nhược điểm của phương pháp
này là không phát hiện ra được những email giả mạo địa chỉ người gửi.
2.2.2.Lọc thư rác dựa theo chuẩn SMTP
Một trong những giới hạn của chuẩn SMTP nguyên thuỷ là nó không có khả
năng xác thực người gửi.Vì vậy, sau này chuẩn SMTP đã được mở rộng thành SMTP-
AUTH có thêm chức năng xác thực người gửi. Tuy nhiên SMTP-AUTH vẫn còn chứa
đựng những yếu tố phi thực tế khi triển khai trên diện rộng.
33
Trong thực tế, rất khó để mở rộng chuẩn SMTP một cách toàn diện hoặc thay thế
hoàn toàn SMPT thành một phiên bản khác, vì hiện nay, SMPT là cơ sở cho rất nhiều
ứng dụng mạng. Việc thay thế hoặc mở rộng có thể dẫn đến những khó khăn khó
lường trước.
Thư rác được phát tán nhờ một vài tác nhân bao gồm cả việc các nhà cung cấp
triển khai những MTA bị lỗi (thường là không tuân theo chuẩn nên gây khó khăn cho
những MTA khác), hoặc những điểm yếu bảo mật trong hệ điều hành (xuất hiện nhiều
nhất khi có kết nối mạng toàn cầu) cho phép kẻ phát tán thư rác điểu khiển từ xa máy
tính của người dùng và gửi đi các thư vô bổ. Ngoài ra một vấn đề nan giải hiện nay
còn tồn tại nữa là việc các MTA vẫn còn thiếu sự “thông minh”.
Lọc thư rác thông qua kiểm tra chuẩn SMTP có thể được sử dụng để ngăn chặn
những thư gửi đến từ những hệ thống không tuân theo mô tả RFC của chuẩn SMTP.
Rất nhiều kẻ phát tán sử dụng những chương trình được viết không cẩn thận hoặc
không thể tuân theo chuẩn do họ không được phép điều khiển máy tính gửi thư một
cách hợp lệ. Bằng việc giới hạn những thiết lập trên MTA, người quản trị có thể giảm
thiểu được số lượng thư rác.
Kiểm tra HELO/EHLO
Có thể giảm thiểu khá nhiều thư rác bằng một số kiểm tra đơn giản, tuy nhiên,
thật không may là đa số những MTA hiện nay đều bỏ qua những cài đặt kiểm tra này.
Trong nhiều trường hợp, yêu cầu một tên miền được giới hạn đầy đủ (FQDN –
Fully Qualified Domain Name) trong câu lệnh SMTP EHLO cũng đủ để ngăn 25% số
thư rác đến.
Từ chối kết nối từ những máy mà bắt đầu truyền dữ liệu trước cả việc trình diễn
câu lệnh HELO trên máy nhận.
Từ chối kết nối từ những máy đưa ra câu lệnh HELO không hợp lệ. Ví dụ: câu
lệnh HELO trên một máy không phải FQDN hoặc một IP không nằm trong dấu ngoặc
vuông.
Invalid HELO localhost
Invalid HELO 127.0.0.1
Invalid HELO domain.tld
Valid HELO [127.0.0.1]
Từ chối kết nối từ những máy đưa ra câu lệnh HELO rõ ràng gian lận. Ví dụ sử
dụng một FQDN hoặc một địa chỉ IP không phù hợp với địa chỉ IP của máy kết nối.
34
Fraudulent HELO friend
Fraudulent HELO -232975332
Từ chối chấp nhận thư yêu cầu từ tên miền khi máy gửi chưa được xác thực.
Từ chối chập nhận thư có tham số câu lệnh HELO/EHLO không thể trả về trong
DNS.
Tất cả các ví dụ trên đều là những kiểm tra đơn giản, và đều được tuân theo
những tiêu chuẩn hiện nay mô tả trong RFC. Tuy nhiên hầu hết các MTA hiện nay đều
bỏ qua những kiểm tra này.
2.2.3.Danh sách xám (Greylisting)
Danh sách xám loại bỏ tạm thời những thông điệp từ phía những máy chủ không
rõ xuất xứ. Một sự loại bỏ tạm thời được chỉ định với một mã lỗi là 4xx khả dĩ có thể
được nhận ra bởi toàn bộ các MTA thông thường, sau đó các MTA này tiếp tục xử lý
để thử phân phát lại sau đó. Nếu thư đó là hợp pháp, máy chủ gửi sẽ thử gửi lại nó cho
đến khi máy chủ nhận chấp nhận thông điệp. Ngược lại, nếu thư đó là một thư rác,
thông thường sẽ không được gửi lại và máy chủ gửi sẽ được thêm vào trong danh sách
đen (danh sách bị chặn).
Danh sách xám được dựa trên một tiền đề là những kẻ phát tán thư rác thường sẽ
không gửi lại thông điệp của chúng, chủ yếu vì vấn đề chi phí cho chiến lược gửi lại là
không đáng.
Thông thường, một máy chủ có sử dụng Danh sách xám sẽ lưu trữ cho mỗi thông
điệp nó nhận được 3 thông tin sau (gọi là bộ ba):
- Địa chỉ IP của máy có kết nối tới nó.
- Tem của người gửi.
- Tem của người nhận.
Bộ ba này sẽ được kiểm tra trong cơ sở dữ liệu nội tại của máy chủ đó. Nếu nó
chưa từng có trong cơ sở dữ liệu, thông điệp sẽ bị chặn lại đưa vào danh sách xám
trong một thời gian ngắn và coi như bị từ chối tạm thời. Lúc này, máy chủ nhận sẽ giả
vờ như có lỗi xảy ra trong quá trình vận chuyển thư và thông báo lại cho máy chủ gửi
đúng như trong mô tả RFC. Nếu máy chủ gửi là hợp pháp, nó sẽ thử kết nối lại sau đó
để gửi thông điệp.
35
Trong thực tế, địa chỉ người gửi và địa chỉ IP trong cơ sở dữ liệu không cần giống
nhau tuyệt đối. Vì với số lượng người gửi là rất lớn, thường sẽ có một vùng máy có thể
gửi (và gửi lại) thông điệp. Khi đó, có thể coi địa chỉ IP nào có 24 bit đầu giống nhau
thì hợp lệ.
Danh sách xám có hiệu quả khá cao vì rất nhiều công cụ phát tán thư rác không
thể gửi lại thông điệp nên thư rác sẽ không bao giờ được chuyển đi. Hoặc nếu công cụ
phán tán có thể thử gửi lại thông điệp thì vì nó phải gửi vô cùng nhiều thư rác một lúc,
nên khi gửi lại thông điệp, thời gian chờ đã hết hạn và địa chỉ máy chủ gửi đã bị liệt kê
vào danh sách đen (danh sách bị ngăn chặn).
Ưu điểm lớn nhất của việc sử dụng danh sách xám là cấu hình đơn giản. Với
người dùng cuối, họ không phải thêm bất cứ cấu hình gì. Nếu hệ thống hỗ trợ danh
sách xám, họ sẽ nhận được thông báo lỗi trong lần gửi thư đầu tiên. Với người quản trị
hệ thống, danh sách xám đòi hỏi một số rất ít các cấu hình và cấu hình đó tự thay đổi
trong quá trình hệ thống làm việc. Thêm nữa, việc từ chối thông điệp với mã lỗi tạm
thời 4xx tốn rất ít tài nguyên hệ thống nội tại trong khi các kỹ thuật lọc thư khác đều
sử dụng lượng tài nguyên đáng kể.
Tuy vậy, một vài MTA, khi nhận được thông báo từ chối tạm thời từ những máy
chủ có cài đặt danh sách xám sẽ gửi một thông báo cảnh báo trở lại người gửi bao gồm
cả thông báo nguyên gốc. Cảnh báo này không có nhiều ý nghĩa với người dùng cuối,
nhưng nó lại được định danh như một thông điệp bình thường, khiến người gửi tin
rằng thông báo đã không được gửi nhưng thật ra nó đã được gửi đi thành công vào một
thời điểm sau đó. Vì vậy danh sách xám gây ra sự tốn kém tài nguyên trên đường
truyền mạng và từ chối tạm thời quá nhiều thông điệp từ những máy chủ hợp pháp
nhưng chưa có trong danh sách. Trong một vài trường hợp, những thư điện tử hợp lệ
thậm chí cũng không được phân phát.
2.2.4.Lọc dựa vào checksum (kiểm tra tổng)
Lọc dựa vào checksum tận dụng ưu điểm của thực tế là với mỗi kẻ phán tán thư
rác, thường tất cả các thông điệp của hắn ta gửi đi đều có chung một định danh nhất
định, điều khác biệt duy nhất là các khi thông điệp chứa đựng tên và địa chỉ email của
người nhận. Vì vậy, hệ thống cần loại bỏ tất cả những thứ có thể khiến thông điệp bị
khác đi, rồi mới tính checksum. Sau đó, kiểm tra xem checksum đó có nằm trong cơ sở
dữ liệu những checksum của các thư rác hay không. Nếu có, thông điệp đó được coi là
thư rác.
36
Ưu điểm của kiểu lọc này là nó cho phép người sử dụng trợ giúp xác định thư rác
mà không phải chỉ có người quản trị, điều này có thể khiến cơ sở dữ liệu về thư rác
tăng lên rất lớn và ngày càng chính xác hơn. Tuy nhiên, nhược điểm của nó khá rõ
ràng. Những kẻ phán tán thư rác có thể dễ dàng chèn thêm những từ hay cụm từ “trong
suốt” đối với người sử dụng (hashbusters) vào giữa bức thông điệp của chúng, khiến
cho các thông điệp đều trở nên duy nhất và có checksum hoàn toàn khác nhau. Điều
này gây ra một cuộc chạy đua giữa những người phát triển phần mềm kiểm tra
checksum và những người phát triển phần mềm gửi thư rác.
2.2.5.Chứng thực và danh tiếng
Một số hệ thống đã được đề xướng để cho phép chấn nhận thông điệp từ những
máy chủ đã được chứng thực theo một cách nào đó như là một người gửi gửi những
thông điệp hợp lệ.
Thông thường, những kẻ phát tán thư rác sử dụng chương trình gửi thư rác với
địa chỉ người gửi là giả mạo và không hợp lệ. Vì vậy nhiều thư rác có thể bị phát hiện
bằng cách kiểm tra địa chỉ người gửi. Việc kiểm tra tính hợp lệ của địa chỉ người gửi
được thực hiện thông qua một kết nối bật tường (bounce) ngược lại từ máy chủ nhận
thư đến máy chủ gửi thư như thể là nó muốn gửi thư đi, nhưng việc này sẽ được dừng
lại trước khi có bất cứ thông điệp nào được gửi đi thật. Phương pháp này tuân theo
chuẩn SMTP được mô tả trong RFC, theo đó, các câu lệnh được thực hiện sẽ là:
HELO
MAIL FROM:
RCPT TO:
QUIT
Ưu điểm của phương pháp này chính là tính đơn giản, dễ cài đặt và tốn kém ít tài
nguyên, tuy nhiên nó cũng chứa đựng nhiều nhược điểm. Ví dụ như nhược điểm chính
của phương pháp này là buộc phải tin cậy vào những máy chủ bên ngoài gửi trả lại kết
quả truy vấn rất có thể không đáng tin cậy. Điều này cũng giống như trên thực tế hiện
nay, đa số kẻ phát tán đều sử dụng tài nguyên của người khác để gửi thư rác.
2.2.6.Lọc thư rác dựa vào nội dung
Cho tới gần đây, kỹ thuật lọc nội dung trở nên tin cậy hơn, theo đó, người quản
trị sẽ liệt kê danh sách các từ hoặc biểu thức chính quy không được chấp nhận trong
thông điệp thư. Như vậy, nếu có một thư quảng cáo “herbal Viagra”, người quản trị có
37
thể đặt những từ này trong cấu hình lọc. Máy chủ thư sau đó sẽ từ chối nhận những
thông điệp có chứa những cụm từ đó.
Lọc theo nội dung không chỉ dựa vào những từ hay cụm từ trong phần nội dung
thông điệp, ngoài ra nó còn lọc theo những phần khác ví dụ như phần đầu (header)
thông điệp. Phần đầu thông điệp cũng là một phần chứa đựng thông tin về thông điệp.
Những kẻ phán tán thường làm giả mạo trường trong phần đầu thông điệp nhằm mục
đích che dấu danh tính của chúng hoặc để cố làm cho thông điệp của chúng nhìn có vẻ
hợp lệ hơn. Tuy nhiên rất nhiều những giả mạo kiểu này có thể bị phát hiện. Hơn nữa,
những công cụ gửi thư rác thường sinh ra những phần đầu không tuân theo chuẩn RFC
được mô tả về định dạng thư điện tử.
Tuy nhiên, sự lọc thô kiểu này sẽ có một số nhược điểm chính: Thứ nhất, thời
gian tính toán có thể rất lớn. Thứ hai, nó có thể cho kết quả không đúng. Nếu lọc nội
dung bằng tay, có thể dễ dàng loại bỏ đi những thông điệp liên quan đến sản phẩm
được quảng cáo trong thư rác, nhưng với việc lọc tự động điều đó trở nên rất khó khăn.
Hoặc lọc tự động rất có thể chặn những thông điệp hợp pháp nói về cùng một chủ đề
với một thư rác nào đó.
Ngoài ra, những kẻ phát tán thư rác còn có thể thay đổi cụm từ và cách viết mà
họ sử dụng, hoặc sử dụng một số phương pháp ngăn chặn việc phát hiện cụm từ. Ví
dụ, từ “Viagra” có thể được viết thành “V1agra” hoặc “Via_gra”, mặc dù điều này gây
một chút khó khăn cho người đọc. Hoặc, có thể chèn một thẻ HTML ghi chú vào giữa
cụm từ (“Viagra”). Điều này là “trong suốt” đối với người dùng cuối vì họ vẫn
nhìn thấy chữ “Viagra” như bình thường. Phức tạp hơn, kẻ gửi thư rác còn có thể gửi
thông điệp dưới dạng hình ảnh, những phần mềm chống thư rác hiện nay không thể
phân tích từ hay cụm từ trong thông điệp bằng hình ảnh được vì thực ra trong đó
không hề chứa nội dung văn bản có thể đọc được.
Tuy nhiên, lọc nội dung cũng có thể được triển khai bằng phương pháp khảo sát
những đường dẫn URL trong thông điệp thư tín (ví dụ spamvertising). Dạng lọc theo
nội dung này an toàn hơn một chút vì các URL trong thông điệp buộc phải trả về một
tên miền hợp lệ nếu thông điệp đó muốn là một thông điệp hợp lệ. Lấy ra tất cả các
liên kết từ thông điệp và so sánh chúng với một danh sách các tên miền được công bố
trước là một các đơn giản và hiệu quả để loại trừ một số lượng phần trăm lớn thư rác
qua việc lọc theo nội dung.
38
2.2.7.Danh sách SURBL
Phương pháp sử dụng SURBL phát hiện thư rác dựa vào nội dung của thông
điệp. Chương trình chống spam sẽ phân tích nội dung của email xem bên trong nó có
chứa các liên kết đã được liệt kê trong Spam URI Realtime Blocklists (SURBL) hay
không. SURBL chứa danh sách các miền và địa chỉ của các kẻ phát tán (spammer) đã
biết. Cơ sở dữ liệu này được cung cấp và cập nhật thường xuyên tại địa chỉ
www.surbl.org.
Có nhiều danh sách SURBL khác nhau như sc.surbl.org, ws.surbl.org,
ob.surbl.org, ab.surbl.org..., các danh sách này được cập nhật từ nhiều nguồn. Thông
thường, người quản trị thường kết hợp các SURBL bằng cách tham chiếu tới địa chỉ
multi.surbl.org. Nếu một thông điệp sau khi kiểm tra nội dung có chứa các liên kết
được chỉ ra trong danh sách SURBL thì nó sẽ được đánh dấu là thư rác, còn không nó
sẽ được cho là một thông điệp thông thường.
Phương pháp này có ưu điểm phát hiện được các email giả mạo địa chỉ người gửi
để đánh lừa các bộ lọc. Nhược điểm của nó là thông điệp phải được tải xuống trước
khi tiến hành kiểm tra, do đó sẽ chiếm băng thông đường truyền và tài nguyên của
máy tính để phân tích các nội dung thông điệp.
2.2.8.Lọc thư rác dựa vào thống kê
Lọc dựa vào thống kê lần đầu tiên được đề cập tới vào năm 1998 bởi Mehran
Sahami tại hội thảo AAAI-98 về vấn đề Phân hạng văn bản. Theo đó, một máy lọc
theo thống kê chính là một loại hệ thống phân loại tài liệu và nó đã thu hút được sự
chú ý của rất nhiều người nghiên cứu về vấn đề học máy. Sau đó, lọc theo thống kê
chính thức được công bố năm 2002 trên bài báo A Plan for Spam của Paul Graham.
Bài báo đó sử dụng phương pháp phân loại văn bản Bayes để quyết định xem một
thông điệp có là thư rác hay không dựa vào một tập hợp các thông điệp đã biết rõ là
thư rác hoặc không phải thư rác do người dùng chỉ định.
Khi một hệ thống lọc dựa theo thống kê được cài đặt, nó không yêu cầu bất cứ sự
bảo trì nào. Thay vào đó, người dùng cuối sẽ đánh dấu các thông điệp cho biết đó là
thư rác hay không là thư rác và hệ thống lọc sẽ tự động học theo những phán quyết đó.
Như vậy, hệ thống không thiên về tác giả phần mềm hay người quản trị hệ thống, mà
thiên về người sử dụng. Điều này có nghĩa là người dùng sẽ tự chỉ dẫn cho hệ thống
biết rằng thông điệp nào là thư rác, thông điệp nào không phải là thư rác và dựa vào
những chỉ dẫn đó, hệ thống đưa ra quyết định cho một thông điệp khác có là thư rác
39
hay không. Ví dụ, một nhà sinh hoá học đang nghiên cứu về Viagra, nếu sử dụng
phương pháp lọc theo nội dung, sẽ không thể nhận được các thông điệp có từ
“Viagra”. Tuy nhiên, khi sử dụng phương pháp lọc dựa theo thống kê, ông ta có thể
nhận các thông điệp đó nhờ vào những chỉ dẫn từ trước. Hệ thống lọc theo thống kê
chủ yếu đọc nội dung của thông điệp, tuy nhiên trong nhiều trường hợp nó cũng đọc cả
thông tin phần đầu của thông điệp.
Những kẻ phán tán thư rác đã cố gắng chống lại hệ thống lọc theo thống kê bằng
cách cố ý chèn thêm nhiều từ hay câu một cách ngẫu nhiên nhưng hợp lệ vào thông
điệp chúng gửi đi. Chúng cố gắng giấu từ hay câu đó khéo léo sao cho người nhận
không nhìn thấy (thông thường các từ đó được đặt cỡ chữ rất nhỏ hoặc đặt màu trùng
với màu nền). Các biện pháp đối phó kiểu gây nhiễu đó khiến cho thông điệp gửi đi
trông tự nhiên và hợp lệ hơn, tuy nhiên phần lớn chúng đều không có hiệu quả.
Một số phần mềm phổ biến cài đặt hệ thống lọc dựa vào thống kê như Bogofilter,
DSPAM, Thunderbird, Mailwasher và các phiên bản về sau của SpamAssassin...hay
dự án CRM114 thống kê theo cách băm theo từng mệnh đề và phân loại dựa trên mệnh
đề sử dụng phương pháp Bayesian.
2.2.9.Bộ lọc Bayesian
Bộ lọc Bayesian hoạt động dựa trên định lý Bayes để tính toán xác suất xảy ra
một sự kiện dựa vào những sự kiện xảy ra trước đó. Kỹ thuật tương tự như vậy được
sử dụng để phân loại thư rác. Nếu một số phần văn bản xuất hiện thường xuyên trong
các thư rác nhưng thường không xuất hiện trong các thông điệp thông thường, thì có
thể kết luận rằng thông điệp đó là thư rác.
Trước khi có thể lọc thông điệp bằng bộ lọc Bayesian, người dùng cần tạo ra cơ
sở dữ liệu từ khóa và dấu hiệu (như là ký hiệu $, địa chỉ IP và các miền...) sưu tầm từ
các thư rác và các thông điệp không hợp lệ khác.
Mỗi từ hoặc mỗi dấu hiệu sẽ được cho một giá trị xác suất xuất hiện, giá trị này
dựa trên việc tính toán có bao nhiêu từ thường hay sử dụng trong thư rác, mà trong các
thông điệp hợp lệ thường không sử dụng. Việc tính toán này được thực hiện bằng cách
phân tích những thông điệp gửi đi của người dùng và phân tích các kiểu thư rác đã
biết.
40
Để bộ lọc Bayesian hoạt động chính xác và có hiệu quả cao, cần phải tạo ra cơ sở
dữ liệu về các thông điệp thông thường và thông điệp thư rác phù hợp với đặc thù kinh
doanh của từng công ty, đơn vị. Cơ sở dữ liệu này được hình thành khi bộ lọc trải qua
giai đoạn “huấn luyện”. Người quản trị phải cung cấp khoảng 1000 thông điệp thông
thường và 1000 thông điệp thư rác để bộ lọc phân tích tạo ra cơ sở dữ liệu cho riêng
nó.
2.2.10.Lọc thư rác bằng ước lượng
Lọc ước lượng được cài đặt ở một số chương trình như SpamAssassin và
Policyd-weight. Nó sử dụng một số hoặc tất cả các phương pháp lọc thư rác khác nhau
cho để thử nghiệm cho các thông điệp và mỗi phương pháp sẽ cộng thêm cho thông
điệp đó một điểm số. Mỗi thông điệp đều được lọc qua tất cả các phương pháp này và
điểm số của thông điệp sẽ được tăng lên sau mỗi thử nghiệm của phương pháp. Nếu
tổng số điểm thử nghiệm của thông điệp là lớn hơn một giá trị cố định nào đó, thông
điệp đó sẽ bị loại bỏ hoặc bị đánh dấu là thư rác.
2.3.Một số cài đặt thực tế
2.3.1.Spam Assassin (
Spam Assassin là một sản phẩm miễn phí, hoạt động dưới giấy phép Apache
License 2.0, được dùng cho việc lọc các thư rác (spam filtering) dựa vào các chính
sách được thiết lập trên nội dung thông điệp, dựa vào DNS, checksum hay các con số
thống kê. Spam Assassin hoạt động dựa trên một trình thứ hai hỗ trợ và một cơ sở dữ
liệu lưu trữ thông tin về các dấu hiệu nhận dạng thư rác trực tuyến trên Internet. Bản
thân Spam Assassin không phải là trình có thể xóa, di chuyển hay cảnh báo cho người
dùng về thư rác. Nó chỉ làm việc bằng cách kiểm tra các thư và đánh dấu nếu chúng là
các thư rác. Một trình thứ hai sẽ được sử dụng, dựa vào các dấu hiệu trên để thực hiện
việc di chuyển, xóa, … thư đó.
Đặc điểm hoạt động của SpamAssassin:
Spam Assassin hoạt động trên cơ sở các luật
Thực hiện những phân tích heuristic trên phần đầu thư (mail header), và trên
những từ và nhóm từ trong nội dung thư (mail body)
Sử dụng phương pháp Bayes để lọc thư
41
Các mail được nhận định sai là spam được gọi là ham. Bộ lọc Bayes sẽ có
những thư mục lưu trữ các spam và ham và có những thống kê về từ hay nhóm
từ (gọi là các token) đặc trưng cho spam và cho ham. Dựa vào đó, bộ lọc sẽ
cho điểm đối với một mail nào đó, điểm dương cho những từ có tính chất
“spam” và điểm âm cho từ thuộc dạng “ham”.
Tự động duy trì danh sách địa chỉ cho phép/cấm (automatic whitelist
(AWL)/blacklist)
AWL lưu trữ địa chỉ người gởi, IP của người gởi cùng với điểm spam trung
bình của người đó trong những lần gởi trước đây. Khi có một mail mới đến,
spamassassin truy cập vào AWL để biết điểm spam trung bình của người gởi.
Nếu điểm trung bình cao (xác suất là spam cao), thì điểm thư rác lần này của
thư sẽ được cộng thêm, ngược lại điểm thư rác sẽ được giảm bớt
Cho phép người dùng tự định nghĩa các danh sách địa chỉ cho phép/cấm
(manual whitelist/blacklist)
Cho phép hoạt động kết hợp với các cơ sở dữ liệu về địa chỉ spam có sẵn
Hỗ trợ danh sách tên miền đen (DNS Blocklists)
Khả năng học (learning): SpamAssassin có khả năng học dựa trên tập hợp
các spam mail và ham mail để điều chỉnh cách cho điểm khi định dạng thư rác.
Có thể thao tác trên nhiều bộ kí tự (character set and locale)
Khi đã được xác định là spam, mail sẽ được đánh dấu bằng thẻ spam (spam
tag), Sau đó, mail sẽ được ứng dụng MUA (mail user-agent) thực hiện lọc
mail.
SpamAssassin cũng hỗ trợ việc gởi các báo cáo về spam mail cho các kho cơ
sở dữ liệu hợp tác (collaborative filtering databases), ví dụ như Vipul's Razor (
).
Mail::SpamAssassin
Spamassassin Deamon gồm có spamd/spamc.
Spamd: đóng vai trò server, lắng nghe các yêu cầu xử lý mail trên port 783 (port
mặc định).
42
Spamc: đóng vai trò client, thường được gọi trong các script để thực thi
spamassassin. Spamc đọc mail từ stdin và đẩy mail đến kết nối với spamd, sau đó nhận
mail trả về từ spamd rồi đưa ra stdout.
Spamd thường được chạy như một dịch vụ nền (backgrounfd), còn spamc được
gọi thay cho spamassasin trong các cấu hình cho mailer của người dùng.
Spamd xác định spam dựa trên việc tính điểm (gọi là điểm spam) cho mail và so
sánh điểm đó với một giá trị ngưỡng (threshold). Sau khi qua xử lý của spamd, mail
đuợc thêm vào một số header khác. Ví dụ, khi mail đã được nhận dạng là spam, sẽ có
một số header đáng chú ý sau:
X-Spam-Status: Yes
X-Spam-Level: ********
Số kí hiệu * thể hiện cho phần nguyên trong điểm spam của mail. Trong ví dụ
trên, điểm spam có thể là 8.6.
Lưu ý: Chương trình lọc spam của Spam Assassin bản thân không tự hoạt động
được, hệ thống phải được cài đặt Qmail-scanner để đưa các thư đến Spam Assassin.
Spam Assassin được đánh giá là một trong những chương trình lọc thư rác hiệu
quả nhất, đặc biệt khi kết hợp sử dụng cơ sở dữ liệu trực tuyến trên Internet.
2.3.2.Chống thư rác đối với người dùng cuối
Ngoài việc sử dụng các bộ lọc chống spam, người sử dụng cũng đóng vai trò
quan trọng trong việc chống lại “đại dịch” thư rác. Bởi vậy người dùng cần tuân theo
một số nguyên tắc sau:
Luôn cập nhật các bản vá mới nhất của các phần mềm đang cài đặt trên máy.
Đảm bảo tất cả các máy luôn được cập nhật các phần mềm chống virus và
chống spam.
Sử dụng các firewall để bảo vệ hệ thống.
Không trả lời các email lạ không rõ nguồn gốc. Đối với những kẻ phát tán,
khi nhận được một trả lời từ hàng ngàn email họ gửi đi thì cũng chứng minh là
phương pháp đó có hiệu quả. Ngoài ra, việc trả lời lại còn xác nhận là địa chỉ
email của bạn là có thực và hiện đang được sử dụng. Do vậy địa chỉ email của
bạn sẽ “đáng giá” hơn, và những kẻ phát tán sẽ gửi nhiều thư rác hơn.
43
Không gửi các thông tin cá nhân của bạn (số thẻ tín dụng, mật khẩu, tài
khoản ngân hàng, v.v... ) trong thư điện tử. Những kẻ phát tán và những kẻ lừa
đảo qua mạng có thể tạo ra những trang web giả mạo các tổ chức, ngân hàng...
đề nghị bạn gửi mật khẩu và một số thông tin về thẻ tín dụng của bạn qua
email.
Không hồi đáp email bằng cách nhấn lên từ như “loại bỏ” (remove) hoặc
“ngừng đăng ký” (unsubscribe) trong dòng tiêu đề hoặc trong nội dung của thư
trừ khi đây là nguồn đáng tin cậy (các email tiếp thị trực tiếp). Đây là tiểu xảo
của những kẻ phát tán để người sử dụng hồi đáp lại các thư rác của họ. Khi
nhận được hồi đáp, những kẻ phát tán không những không loại bỏ địa chỉ
email của bạn ra khỏi danh sách mà còn gửi tới nhiều spam hơn bởi vì họ biết
rằng địa chỉ email của bạn hiện đang hoạt động.
Không bao giờ bấm vào các liên kết URL hoặc địa chỉ trang web được ghi
trong spam ngay cả khi nó hướng dẫn người nhận ngừng đăng ký. Điều này
cũng cho người gửi biết rằng địa chỉ email của bạn đang được sử dụng và bạn
có thể sẽ nhận được nhiều spam hơn.
Sử dụng hai địa chỉ email khác nhau, một địa chỉ sử dụng cho các việc riêng
như bạn bè, công việc. Một địa chỉ sử dụng để đăng ký trở thành thành viên
của các diễn đàn, các tổ chức... những nơi mà địa chỉ email của bạn có thể bị
lạm dụng hoặc bán.
Không nên đăng địa chỉ email của bạn ở những nơi công cộng (ví dụ như các
diễn đàn, bảng tin, chat room...) nơi những kẻ phát tán thường sử dụng các
tiện ích để thu thập và tìm kiếm địa chỉ email.
Không bao giờ được chuyển tiếp spam cho người khác.
Chuyển spam nhận được đến người quản trị hệ thống email. Quản trị viên sẽ
thay đổi chương trình lọc để lần sau hệ thống sẽ chặn lại những email tương tự
như thế.
44
Chương 3.ĐÓNG GÓI CÀI ĐẶT
Sau khi phân tích, lựa chọn sản phẩm phần mềm mã nguồn mở để cài đặt các
thành phần của hệ thống thư điện tử, chúng ta cần cấu hình các thành phần đó để
chúng hoạt động ăn khớp với nhau tạo thành một hệ thống chung có thể vận hành
được. Một đề nghị lựa chọn các thành phần cho hệ thống được đề cập tới ở phần trên
bao gồm:
(0) Hệ điều hành: Fedora Core 6
(1) Máy chủ xác thực: LDAP
(2) Máy chủ web: Apache
(3) Hệ quản trị cơ sở dữ liệu: MySQL
(4)Máy chủ SMTP: Qmail
(5)Máy chủ IMAP/POP3:Dovecot
(6) Web Mail: Squirrelmail
(7) Mail Scanner: Spam Assassin, AVG Antivirus
Đồng thời, hệ thống Mail server phải có các thành phần chống thư rác hoạt động
tốt bao gồm các kỹ thuật tiêu biểu:
- Hỗ trợ giao thức SMTP mở rộng vấn đề xác thực (SMTP-AUTH)
- Hỗ trợ lọc thư rác dựa vào danh sách tên miền đen (DNS-based Black List)
- Hỗ trợ lọc thư rác dựa vào nội dung thư sử dụng công thức Bayes
- Hỗ trợ lọc thư rác dựa vào phương pháp ước lượng (tính điểm)
Trong đó, các thành phần cơ bản cần phải có như: Hệ điều hành Fedora Core 6,
Web server Apache, Database server Mysql coi như đã cài đầy đủ và không có cấu
hình gì đặc biệt.
45
Hình 6.Cấu trúc hệ thống
3.1.Cài đặt và cấu hình Ldap
LDAP là một thành phần có sẵn trong bộ cài đặt của Fedora Core 6 nên vấn đề
cài đặt rất dễ dàng. Ta có thể cài đặt LDAP server qua lệnh:
[]# rpm -ivh openldap-servers-2.3.27-4.i386.rpm
46
Trong file cấu hình LDAP (/etc/openldap/slapd.conf) có rất nhiều lựa chọn cấu
hình. Lựa chọn buộc phải thiết lập đó là các thông tin về định danh máy chủ LDAP và
thông tin về tài khoản quản trị hệ thống LDAP. Dưới đây là một ví dụ:
database bdb
suffix "dc=g8soft,dc=local"
rootdn "cn=Manager,dc=g8soft,dc=local"
rootpw {crypt}ijFYNcSNctBYg
Để việc quản trị LDAP server được dễ dàng, ta có thể cài PhpLdapAdmin (là một
chương trình quản lý với giao diện nền web, có thể tải về từ
trên một máy chủ web.
Qmail mặc định sử dụng cơ sở dữ liệu người dùng từ cơ sở dữ liệu người dùng hệ
thống, vì vậy, để Qmail sử dụng cơ sở dữ liệu người dùng cung cấp bởi máy chủ
LDAP, cần cấu hình máy chủ cài Qmail sử dụng người dùng từ máy chủ LDAP. Việc
cấu hình được thực hiện đơn giản nhờ công cụ authconfig-tui
Hình 7.Công cụ authconfig-tui
47
3.2.Cài đặt và cấu hình Qmail
Có rất nhiều dẫn xuất khác nhau của Qmail như NetQmail, Qmailrocks…Trong
đó, NetQmail là một dẫn xuất đơn giản, gọn nhẹ với các thành phần cơ bản nhất. Phiên
bản hiện nay của NetQmail là 1.05.
Chỉ cài đặt NetQmail-1.05 với các thành phần cơ bản để đảm bảo tốc độ và hiệu
năng của nó bao gồm:
- Qmail-smtpd: module STMP server
- Qmail-pop3d: module POP3 server (có thể cài đặt thêm như một tùy chọn)
- Các bản vá:
+ netQmail-1.05-tls-smtpauth-20070417.patch: bản vá hỗ trợ vấn đề xác thực
SMTP, cung cấp cho máy chủ dịch vụ SMTP AUTH.
+ Qmail-smtpd-viruscan-1.3.patch: bản vá hỗ trợ việc quét virus trong thư (sử
dụng kèm với Qmail-Scanner).
- Qmail-Scanner: cho phép lọc thư trong việc phòng tránh thư rác (kết hợp với
SpamAssassin).
Qmail và các thành phần của nó đều là những sản phẩm không có sẵn trong bản
phân phối Fedora Core 6 vì vậy việc cài đặt buộc phải thực hiện nhờ biên dịch lại toàn
bộ mã nguồn Qmail.
Các bước cài đặt và cấu hình Qmail được viết lại với một Shellscript để giúp cho
việc cài đặt được dễ dàng và an toàn hơn.
Sau khi biên dịch và cài đặt Qmail cùng với các thành phần đi kèm nó, có thể
kiểm tra sự hoạt động của Qmail qua lệnh Qmailctl stat và nmap
48
Hình 8.Các dịch vụ được cung cấp bới Qmail
3.3.Cài đặt và cấu hình Dovecot (IMAP/POP3 server)
Dovecot là một thành phần có sẵn trong bản phân phối Fedora Core 6, việc cài
đặt rất đơn giản và dễ dàng. Có thể cài đặt trực tiếp qua lệnh:
[]# rpm -ivh dovecot-1.0-0.1.rc7.fc6.i386.rpm
Dovecot vừa cung cấp máy chủ POP3 vừa cung cấp máy chủ IMAP trong khi
Qmail cũng thành phần bổ sung cung cấp máy chủ POP3 (qmail-pop3d). Vì vậy, hiển
nhiên có thể sử dụng máy chủ POP3 của Dovecot hoặc Qmail. Nếu đã sử dụng máy
chủ POP3 của Qmail, cần phải tắt dịch vụ máy chủ POP3 của Dovecot. Trong file cấu
hình của Dovecot, sửa tùy chọn protocols:
# Protocols we want to be serving: imap imaps pop3 pop3s
protocols = imap imaps imaps pop3 pop3s
49
3.4.Cài đặt và cấu hình Squirrelmail
Squirrelmail là một thành phần có sẵn trong bản phân phối Fedora Core 6, như
vậy việc cài đặt rất đơn giản và dễ dàng. Có thể cài đặt trực tiếp qua lệnh:
[]#rpm -ivh squirrelmail-1.4.8-2.fc6.noarch.rpm
Có thể cấu hình squirrelmail qua công cụ được viết bằng ngôn ngữ Perl:
/usr/share/squirrelmail/config/conf.pl
Hình 9.Công cụ cấu hình SquirrelMail
Chọn các mục thích hợp và cung cấp những thông tin cần thiết. Quan trọng nhất
ở bước này là mục "2. Server Settings" và phần IMAP server. Sau khi chỉnh sửa xong,
chọn "S Save data" (lưu giữ cấu hình) và "Q Quit" (thoát). Cấu hình sẽ được ghi lại
trong file "/etc/squirrelmail/config.php".
Cài đặt plugin BayesSpam - Intelligent Spam Filter
Plugin BayesSpam là một bộ lọc thư rác thông minh sử dụng công thức xác xuất
Bayes, có cơ chế tự “học” từ quyết định là thư rác hoặc không phải là thư rác của
50
người dùng về những thông điệp và nhờ đó có khả năng lọc thư rác với độ chính xác
ngày càng cao.
Sau khi tải mã nguồn của BayesSpam, xả nén vào chép bộ mã nguồn vào thư
mục /usr/share/squirrelmail/plugins
Trong công cụ cấu hình Squirrelmail, chọn mục 8. Plugins lúc này sẽ thấy
BayesSpam xuất hiện trong phần các plugin chưa được cài đặt (Available Plugins).
Chọn cài đặt BayesSpam bằng cách nhập số thứ tự của nó trong danh sách vào thực
đơn.
Hình 10.Cài đặt plugin BayesSpam
BayesSpam sử dụng cơ sở dữ liệu mặc định là MySQL để lưu trữ dữ liệu về thư
rác của nó, vì vậy cần tạo mới một cơ sỡ dữ liệu và người dùng, sau đó khai báo các
thông số đó trong file config.php của BayesSpam. Ngoài ra, BayesSpam cũng cung
cấp một cơ sở dữ liệu là nền tảng bao gồm cấu trúc các bảng mà nó sử dụng trong file
bayesspam.sql. Có thể sử dụng file này để tạo mới cơ sở dữ liệu thay cho việc tạo thủ
công.
51
BayesSpam còn thay đổi một số thành phần trong giao diện người dùng như
thêm một số nút bấm, đường dẫn liên kết...Cần cập nhật các thay đổi đó một cách thủ
công (sửa trực tiếp mã nguồn của Squirrelmail).
Hình 11.Các tùy chọn cài đặt cho BayesSpam
52
BayesSpam Probability Display – Thêm một dòng vào phần đầu của thư nhận
được cho biết xác suất thư đó là thư rác nếu tuỳ chọn được bật.
BayesSpam Links – Thêm một số liên kết vào phần đầu của thư nhận được cho
phép phân loại thư rác và không phải thư rác.
BayesSpam Filtering – Để hệ thống BayesSpam hoạt động, tuỳ chọn này cần
phải được bật. Nếu không, hệ thống sẽ không hoạt động, tức là bộ lọc sẽ không phân
loại thư rác hoặc không phải thư rác nếu tuỳ chọn này bị tắt. Những thư nhận được sẽ
không được chuyển vào thư mục đã được định sẵn, chúng vẫn ở trong INBOX.
Filtering Uncertain Messages – Tuỳ chọn này chỉ xuất hiện nếu tuỳ chọn
BayesSpam Filtering được bật. Tuỳ chọn này cho phép bộ lọc chuyển những thư mà
nó chưa xác định được là thư rác hay không phải thư rác vào một thư mục định sẵn
Spam Deletion – KHÔNG nên bật chức năng này. Có thể nó sẽ khiến bộ lọc xóa
đi những thư không phải thư rác.
Rebuild On Folder Refresh – Tuỳ chọn này cho bộ lọc biết có xây dựng lại cơ sở
dữ liệu xác suất về thư rác mỗi khi làm mới các thư mục thư tín.
Rebuild On Login – Tuỳ chọn này cho bộ lọc biết có xây dựng lại cơ sở dữ liệu
xác suất về thư rác mỗi khi đăng nhập.
Stats Tracking – Tuỳ chọn này cho phép hiển thị các thống kê của bộ lọc về phân
loại thư rác. Từ đó bạn có thể thấy độ chính xác của việc phân loại thư rác.
Bytes of message to scan – Tuỳ chọn này giới hạn độ lớn của thư mà bộ lọc sẽ
phân loại. Nếu độ lớn này quá lớn, bộ lọc có thể chạy rất lâu để phân loại được những
bức thư lớn. Mặc đinh là 65536 bytes.
Folder To Filter Into – Thiết lập thư mục lưu trữ những thư được phân loại là
thư rác. Hãy nhớ bấm vào nút Save nếu bạn thay đổi giá trị này.
Folder To Filter Uncertain Messages Into – Thiết lập thư mục lưu trữ những thư
mà bộ lọc chưa thể phân loại là thư rác hay không.
Check Inbox Only - Nếu bật chế độ này thì chỉ những thư tới Hộp thư đến của
bạn mới được kiểm tra. Sự hiểu biết của tôi với điều này là những thư được chuyển tới
những thư mục khác sẽ không phải kiểm tra.
53
Add Folder To Ignore List – Nếu một thư mục được thêm vào danh sách Ignore,
tất cả các thư của thư mục đó sẽ không được bộ lọc quét qua. Mặc định là tất cả các
thư mục đều được quét.
Remove Folder From Ignore List – Gỡ bỏ một thư mục ra khỏi danh sách
“Ignore”. Thư mục này sẽ được bộ lọc quét qua để phân loại thư rác.
Spam Database Stats – Thống kê số lượng và phần trăm các thư đã lọc và phân
loại.
Empty Database Now – Liên kết này sẽ xoá bỏ hoàn toàn cơ sở dữ liệu về thư
rác.
3.5.Cài đặt và cấu hình SpamAssassin
SpamAssassin cũng là một thành phần trong bản phân phối Fedora Core 6 nên
việc cài đặt cũng dễ dàng qua dòng lệnh:
[]# rpm -ivh spamassassin-3.1.4-1.fc6.i386.rpm
Thông điệp đến máy chủ sẽ được xử lý như sau: Qmail → spamassassin → hộp
thư của người dùng. SpamAssassin phát hiện và đánh dấu thư rác bằng cách phân tích
thông tin trong phần đầu thư và nội dung thư, như vậy nó là một cài đặt tiêu biểu cho
phương pháp lọc dựa vào nội dung. Bên cạnh đó, SpamAsassin cũng sử dụng công
thức Bayes cho vấn đề phân loại văn bản để xác định thư rác và một số phương pháp
lọc thư dựa vào danh sách đen DNS. SpamAsassin là một bộ lọc thư rác thông minh,
nó lọc thư dựa vào những kiến thức đã được học từ trước, đồng thời trong quá trình lọc
nó sẽ cập nhật thêm các kiến thức mới về thư rác. SpamAssassin tiêu tốn khá nhiều tài
nguyên (cpu, bộ nhớ, thời gian xử lý) của máy chủ, đặc biệt khi phải xử lý những
thông điệp có kích thước lớn. Cấu hình để SpamAssassin hoạt động tốt, đồng thời
giảm nhẹ sự tiêu tốn tài nguyên cho máy chủ là một vấn đề quan trọng.
54
Hình 12.Sơ đồ kiểm tra thư rác của SpamAssassin
File /etc/mail/spamassassin/local.cf lưu trữ những quy tắc kiểm tra thư chung cho
mọi người dùng hệ thống.
55
required_score 5
Thiết lập required_score cho biết số điểm tối thiểu mà một thông điệp bị coi là
thư rác. Mặc định là 5, với các hệ thống lớn thường chỉ số này được đặt cao hơn (từ 8
đến 10).
whitelist_from add@ress.com
Thiết lập danh sách trắng những địa chỉ thư mà không bao giờ lọc thư rác.
blacklist_from add@ress.com
Danh sách các địa chỉ mà luôn coi thư gửi từ đó là thư rác.
rewrite_header { subject | from | to } STRING
Đánh dấu thư là thư rác với việc thay đổi phần đầu thư theo khai báo. Ví dụ có
thể đổi tiêu đều thư thành “[SPAM]”.
ok_locales vi en
Tùy chọn cho biết các ngôn ngữ mà spamassassin sẽ hỗ trợ.
use_bayes ( 0 | 1 )
use_bayes là khai báo giúp SpamAssassin biết có sử dụng phương pháp phân lớp
văn bản Bayes để phân tích nội dung thông điệp hay không.
Sau khi khởi động, spamd (spamassassin daemon) sẽ lắng nghe ở cổng 783 của
máy chủ.
Hình 13.SpamAssasin đang hoạt động trên cổng 783
Lưu ý: Theo như cấu hình spamd, mỗi người dùng có thể dùng bộ lọc mặc định
(là file /etc/mail/spamassassin/local.cf do người quản trị hệ thống quản lý), hoặc có thể
56
tự điều chỉnh bộ lọc riêng cho mình nếu không thỏa mãn với cấu hình của bộ lọc mặc
định. Cấu hình bộ lọc thư rác cho người dùng nằm ở file
$HOME/.spamassassin/user_prefs
Mỗi khi kiểm tra thư, spamd sẽ sử dụng bộ lọc user_prefs trước (ưu tiên), nếu
không tìm thấy user_prefs, spamd sẽ dùng bộ lọc mặc định local.cf. Những tuỳ chọn
để cấu hình user_prefs hoàn toàn giống như của local.cf
Toàn bộ quá trình cài đặt Qmail các thành phần kèm theo được đóng gói dưới
dạng Shell Script nhằm giúp cho việc cài đặt được dễ dàng, thuận tiện và an toàn hơn.
Để triển khai cho một đơn vị nhất định, chỉ cần sửa một số thông số như tên máy chủ,
tên miền… trong các file cài Shell Script cài đặt (các thông số được đặt ở đầu mỗi
file). Khi thực thi file Shell Script, Qmail và các thành phần sẽ được cài đặt tự động.
57
Chương 4.KẾT QUẢ CÀI ĐẶT
4.1.Đáp ứng các chức năng gửi/nhận thư điện tử
Hệ thống thư điện tử với cấu trúc và các thành phần mã nguồn mở như trên đã
được triển khai thành công tại công ty Cổ phần tư vấn và chuyển giao công nghệ G8
có trụ sở tại phòng 102 nhà A1 Khu cư xá Thăng Long. Máy chủ hệ thống có cấu hình
trung bình (CPU: Pen 4, RAM: 512MB) nhằm tiết kiệm tối đa chi phí xây dựng. Trước
đó, hệ thống đã được cài đặt trên nhiều hệ thống thử nghiệm (bao gồm cả máy thật và
máy ảo).
Hệ thống hoạt động trong tình trạng ổn định, các thao tác gửi/nhận thư đều thành
công.
Hình 14.Gửi thư từ Local đến Local
58
Hình 15.Nhận thư từ Local đến Local thành công
Hình 16.Gửi nhận thư từ hệ thống ra ngoài Internet thành công
Hình 17.Gửi nhận thư từ Internet vào hệ thống thành công
4.2.Máy chủ hỗ trợ giao thức SMTP AUTH với TLS
Kiểm tra lại hệ thống hỗ trợ SMTP AUTH bằng cách kết nối tới hệ thống qua
cổng 25 (mặc định của SMTP) và lệnh ehlo, nếu trong thông điệp trả lời của máy chủ
có dòng 250 AUTH LOGIN PLAIN CRAM-MD5 thì hệ thống có hỗ trợ SMTP AUTH
(như trong hình chụp). Đồng thời, trong thông điệp trả lời từ máy chủ có dòng 250
STARTTLS nghĩa là hệ thống có hỗ trợ truyền tin an toàn với chuẩn TLS
Sau đó có thể sử dụng lệnh AUTH LOGIN hoặc AUTH PLAIN để chứng thực
SMTP và sử dụng dịch vụ.
59
Hình 18.Hệ thống hỗ trợ SMTP AUTH
60
Hình 19.Gửi thư thành công với SMTP AUTH và TLS
61
Hình 20.Nhận được thông điệp gửi thành công
4.3.Máy chủ hỗ trợ phương pháp lọc thư rác dựa vào DNS
Sau khi tạo kết nối tới hệ thống thư điện tử, máy chủ sẽ kiểm tra tên miền và địa
chỉ IP của máy khách, nếu tên miền hoặc địa chỉ IP nằm trong danh sách đen, máy chủ
sẽ từ chối kết nối đó.
Hình 21.IP bị từ chối kết nối vì có tên trong danh sách đen
4.4.Máy chủ hỗ trợ phương pháp lọc thư rác dựa vào nội dung
Hệ thống hỗ trợ lọc thư rác bằng SpamAssassin được kiểm thử với việc gửi ba
thông điệp liên tiếp từ một địa chỉ đến một địa chỉ khác.
Thông điệp đầu tiên, với cấu hình mặc định và cơ sở dữ liệu về thư rác của
SpamAssassin là trống, thông điệp được coi không phải là thư rác và được chuyển vào
INBOX của người dùng:
62
Hình 22.Thông điệp không phải là thư rác
Thông điệp thứ 2 được gửi đi sau khi cấu hình lại SpamAssassin với địa chỉ
người gửi được đưa vào danh sách đen. Thông điệp ngay lập tức bị coi là thư rác và
tiêu đề được thay đổi:
Hình 23. Thông điệp bị coi là thư rác vì có tên trong danh sách đen
63
Thông điệp thứ 3 được gửi đi sau khi loại bỏ địa chỉ người gửi ra khỏi danh sách
đen, sau đó cập nhật cơ sở dữ liệu của SpamAssassin với việc thông báo 2 thông điệp
vừa gửi là thư rác. Thông điệp thứ 3 sẽ được bộ lọc phân tích và kiểm tra nội dung, sau
đó so sánh với cơ sở dữ liệu để tính điểm. Nếu điểm của thông điệp lớn hơn “điểm
chuẩn thư rác”, thông điệp bị coi là thư rác và tiêu đề được thay đổi như hình chụp.
Hình 24.Thông điệp bị coi là thư rác vì có điểm cao hơn “điểm thư rác”
4.5.Máy chủ hỗ trợ phương pháp lọc thư rác sử dụng bộ lọc BayesSpam
Bộ lọc thư rác BayesSpam là một bộ lọc thông minh, cung cấp cho người dùng
giao diện để thông báo một thông điệp là thư rác hay không tới máy chủ hệ thống. Từ
đó, bộ lọc sẽ quyết định các thư tiếp theo đến là thư rác hay không là thư rác.
Báo cáo một thư là thư rác:
Để báo cho hệ thống biết một thư nào đó là thư rác, cần chọn thư đó và bấm vào
nút “Spam
Khi một thư được báo cáo là thư rác, hệ thống sẽ tự động tính toán các thông tin
về bức thư đó và lưu vào cơ sở dữ liệu để phục vụ cho việc phân loại, và bức thư đó sẽ
được chuyển vào thư mục mà bạn đã thiết lập trong mục Folder To Filter Into
Báo cáo một thư không phải là thư rác
Để báo cáo cho hệ thống biết một thư nào đó không phải là thư rác, cần chọn thư
đó và bấm vào nút “NonSpam”.
64
Khi một thư được báo cáo là không phải thư rác, hệ thống sẽ tính toán lại thông
tin và lưu lại trong cơ sở dữ liệu. Bức thư đó không thể tự chuyển sang thư mục khác.
Cần chọn nó và sử dụng chức năng “Move”.
Hình 25.Thư bị coi là thư rác, tự động chuyển vào Junk
Hình 26.Thống kê của bộ lọc Bayes
65
4.6.Đánh giá chung
Hệ thống sau khi được triển khai hoạt động tốt, đảm bảo các chức năng cơ bản
của một hệ thống thư điện tử như thao tác gửi/nhận/kiểm tra thư hoạt động tốt.
Các thành phần phòng chống và lọc thư rác bao gồm phương pháp chống thư rác
dựa vào chuẩn SMTP, chống thư rác nhờ danh sách tên miền đen, lọc thư rác dựa vào
nội dung và công thức xác suất Bayes… đều hoạt động tốt, tuy nhiên mới phòng chống
thư rác ở mức hạn chế. Các phương pháp phòng chống dựa vào chuẩn SMTP và danh
sách tên miền, danh sách địa chỉ hoạt động chính xác nhất. Còn phương pháp lọc thư
theo nội dung và công thức Bayes hoạt động kém chính xác hơn chủ yếu vì hệ thống
được triển khai trong thời gian ngắn, cơ sở dữ liệu về thư rác chưa đủ lớn nên phương
pháp “học” thư rác hoạt động kém hiệu quả. Ngoài ra, yếu tố ngôn ngữ cũng góp phần
làm giảm độ chính xác của phương pháp này, vì bộ lọc này chủ yếu được sử dụng cho
tiếng Anh, chưa hỗ trợ đầy đủ cho tiếng Việt và bộ mã Unicode.
Một điểm đáng lưu ý là bộ cài đặt được đóng gói hoàn toàn dưới dạng
ShellScript giúp cho quá trình cài đặt trở nên dễ dàng, thuận tiện và an toàn hơn.
66
KẾT LUẬN
Hệ thống thư điện tử an toàn được xây dựng dựa trên nền tảng phần mềm mã
nguồn mở miễn phí, tự do phát triển dành cho các đơn vị, trường học, cơ quan chuyên
biệt. Hiện nay, hệ thống đã được triển khai tại công ty CPTV&CG Công nghệ G8
(
Trong giai đoạn đầu, nghiên cứu chủ yếu tập trung vào các tính năng cơ bản của
một MailServer và các kỹ thuật đảm bảo an toàn, phòng tránh thư rác. Vì vậy, hệ thống
đã đảm bảo được các dịch vụ như:
- SMTP Server
- POP3 Server
- IMAP Server
- Webmail client
- Phòng chống và lọc thư rác
Mặc dù vậy, để giúp cho hệ thống trở nên hoàn thiện hơn nữa, tính ứng dụng cao
hơn nữa, sẽ cần một sự đầu tư nghiên cứu phát triển nhiều hơn. Trong thời gian tới,
hướng phát triển hệ thống sẽ tập trung đi sâu giải quyết một số vấn đề còn lại:
- Tối ưu hóa các thành phần trong hệ thống, giảm bớt số dòng mã nguồn không
thật sự cần thiết để tăng tốc độ thực thi của chương trình. Tạo bộ cài đặt nhỏ gọn và
chuyên biệt hơn nữa. Việc làm này đồng thời sẽ làm tăng tính an toàn, bảo mật cho hệ
thống.
- Nghiên cứu và cài đặt các phương pháp phòng chống và lọc thư rác tốt hơn nữa
để đảm bảo an toàn cho hệ thống, đặc biệt nghiên cứu các phương pháp lọc thư rác
tiếng Việt.
- Cung cấp các giao diện đồ họa thân thiện cho người dùng, giao diện quản trị
các thành phần hệ thống qua nền web.
- Nghiên cứu các phương pháp phát hiện và phòng chống xâm nhập bất hợp pháp
từ ngoài vào hệ thống
67
TÀI LIỆU THAM KHẢO
[1]. Dương Thị Mỹ Lệ. Xây dựng hệ thống dịch vụ Email và dịch vụ File dựa
trên mã nguồn mở. Khóa luận tốt nghiệp ĐHCQ 2005. ĐHCN
[2]. Nguyễn Duy Kiên. Xây dựng hệ thống Mailserver trên môi trường Linux.
Khóa luận tốt nghiệp ĐHCQ 2006. ĐHCN
[3]. Dave Sill. The Qmail Handbook by Dave sill. Apress. 2002
[4]. John Livene. Qmail. O’Reilly. 2004
[5]. Life With Qmail (OpenContent).
WEBSITE THAM KHẢO
[6].
[7].
[8].
[9].
[10].
[11].
[12].
[13].
[14].
68
Các file đính kèm theo tài liệu này:
- xay_dung_giai_phap_toan_bo_cho_he_thong_thu_dien_tu_tren_nen_tang_he_dieu_hanh_linux_0473.pdf