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

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.

pdf78 trang | Chia sẻ: lylyngoc | Lượt xem: 3656 | Lượt tải: 4download
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:

  • pdfxay_dung_giai_phap_toan_bo_cho_he_thong_thu_dien_tu_tren_nen_tang_he_dieu_hanh_linux_0473.pdf