Máy chủ mail gồm những gì

Để cài đặt một máy chủ email, có nhiều cách làm, nhiều lựa chọn. Tôi chia sẻ một vài điều “lọ mọ” được.

Đại thể khi gửi, nhận thư điện tử các bước và các phần mềm sau được sử dụng;

  1. Người gửi thư dùng một trong những phần mềm thư điện tử cá nhân (email client: Outlook, Outlook Express, Thunderbird, KMail, … hoặc các webmail như Gmail, Yahoo Mail, Squirrel Mail,,…) để soạn thư. Các email client còn được gọi là Mail User Agent (MUA).
  2. Khi nhấn nút Send, một kết nối theo giao thức SMTP qua cổng 25 được thiết lập với máy chủ mail. Để đảm bảo an toàn, kết nối này có thể dùng các giao thức mã hóa SSL (Secure Socket Layer) hoặc TLS (Transport Layer Security) để mã hóa các thông tin trao đổi giữa email client và máy chủ mail.
  3. Username và password của người gửi được một chương trình xác thực (authentication) kiểm tra. Chương trình này thường là OpenLDAP hoặc một cơ sở dữ liệu (MySQL, ….).
  4. Nếu kết quả kiểm tra xác nhận người gửi là người đã đăng ký, thư được chuyển cho chương trình Mail Transfer Agent (MTA). Chương trình này có thể là Sendmail, Postfix, Courrier, qmail, v.v…Trước khi nhận, MTA (hoặc một chương trình riêng Mail Submission Agent -MSA) soát, sửa các lỗi của thư (lỗi địa chỉ, ngày tháng, …).
  5. MTA sẽ đọc domain trong địa chỉ người nhận (phần bên phải @) rồi hỏi các DNS server trên Internet để tìm địa chỉ máy chủ mail của domain đó theo các MX record đã khai trong DNS server. Khi tìm được, MTA gửi thiết lập kết nối với MTA nhận qua cổng 25.
  6. Chương trình xác thực trên máy chủ nhận (OpenLDAP, MySQL, …) sẽ kiểm tra xem người nhận có được đăng ký trên máy đó không. Nếu không, sẽ có báo lỗi 550 về cho người gửi và từ chối nhận thư.
  7. Nếu người nhận được xác thực, thư sẽ được tiếp tục kiểm tra virus, spam bằng các chương trình antivirus (ví dụ clamAV), chương trình antispam (ví dụ Spamassasin hoặc Postgrey, …) và quota dung lượng hộp thư người nhận trên máy chủ cũng được kiểm tra xem còn không hay đã đầy. Nếu hộp thư đầy hoặc thư có virus sẽ có mail thông báo cho người gửi và thư bị từ chối.
  8. Sau khi kiểm tra mail xong, MTA chuyển giao thư cho phần mềm Mailbox Server qua giao thức LMTP. Tại đây, một phần mềm Mail Delivery Agent sẽ lưu thư vào hộp thư người nhận (Inbox hoặc Spam tùy theo thư có bị đánh dấu là spam hay không).
  9. Tại Mailbox Server còn một loạt hoạt động khác được thực hiện: lập chỉ số (index) của thư và file đính kèm bằng Lucent để tìm kiếm nhanh, lưu meta-data của mail vào một cơ sở dữ liệu nào đó, lưu thư theo định dạng mailbox hoặc maildir đã chọn vào một hệ thống file, convert các file đính kèm thành dạng HTML để xem trong trình duyệt, v.v… Các dịch vụ này có thể có hoặc không theo ý đồ của người thiết kế hệ thống mail.
  10. Người nhận dùng một phần mềm email client (Outlook, webmail, …) kết nối với máy chủ mail bằng giao thức POP3 hoặc IMAP để đọc thư. Trên máy chủ, phần mềm POP3 hoặc IMAP server (Dovecot, Courrier, …) phụ trách việc kết nối này và tìm thư từ mailbox để chuyển về hoặc hiển thị trên email client. Quá trình kết thúc ở đây.
  11. Ngoài ra trên máy chủ Mail server còn có thể có một số thành phần phụ nữa theo ý người cài đặt: webmail, một giao diện quản lý (Administrator consol) thường cũng là giao diện web, phần mềm backup, phần mềm clustering nếu muốn hệ có tính sẵn sàng cao, v.v…Với một hệ thống lớn có thể dùng nhiều máy chủ, thiết lập một cơ chế tự động cân bằng tải, bổ xung hoặc thay thế các máy chủ khi cần.

Mô tả thì hơi dài nhưng trong thực tế, một số phần mềm kiêm nhiều chức năng đã nêu ở trên.

Như vậy, cái gọi là Mail server không phải chỉ là một phần mềm. Nó là cả một cỗ máy gồm nhiều bộ phận kết hợp hài hòa với nhau mà gọi chính xác là một email solution. Do đó, để cài một Mail server ta có vài cách làm (cũng như khi xây nhà):

  1. Nếu bạn có đủ các điều kiện sau đây: chỉ sô IQ cao, lòng say mê, tính kiên nhẫn và thời gian dài rộng bạn có thể tự mình chọn lựa, thiết kế, tích hợp và cài đặt một mail server từ các bộ phận nói trên. Chỉ tìm đọc trên Internet và chọn thật sự một bộ phận đúng ý mình cũng đủ mệt rồi. Bước tiếp theo cài cho chúng làm việc khớp với nhau có thể theo các hướng dẫn kiểu như thế này. (thực hiện đến từng dòng lệnh). Nhưng phần còn lại mới là khó nhất: điều khiển (control), tinh chỉnh (fine tuning), khắc phục lỗi từng bộ phận sao cho toàn hệ thống làm việc đạt tốc độ tối ưu, trơn tru liên tục. Xây một cái trông giống như cái nhà không khó. Chất lượng thật của cái nhà đó sau một thời gian ở và vài cơn mưa bão mới là cái đáng bàn. Những ai đã từng tự xây nhà để ở đều hiểu những khó khăn chầy chật của cách làm này. Bù lại, kiến thức, tay nghề lên trông thấy, hiểu đến từng file config trong hệ thống. Nhưng nếu trình thấp, đọc tiếng Anh còn không thông, hay sốt ruột làm bừa thì …. cái bạn làm ra sẽ gieo tai họa cho người dùng. Tôi phải nhấn mạnh điều này vì tôi đã và có nguy cơ sẽ là nạn nhân của kiểu sản phẩm như vậy.
  2. Cách thứ hai là dùng các sản phẩm tích hợp sẵn ở mức cơ bản.Những sản phẩm này (eBox, iRedMail, deefOfix, …) có các bộ phận cấu thành vẫn là các phần mềm nguồn mở thông dụng như đã nêu ở mục trên nhưng được tích hợp sẵn, chặt chẽ với nhau. Các lệnh cài đặt, cấu hình được tập hợp lại thành một chương trình scripts. Vì vậy khi cài theo một mạch từ đầu đến cuối. Và đặc biệt khi thay đổi, cấu hình một bộ phận nào thì các phần liên quan sẽ tự động thay đổi theo. Thường cũng có thêm một phần mềm quản trị dưới dạng web.Tính năng của cả sản phẩm nằm trong phạm vi tính năng của từng bộ phận cấu thành và vì vậy thường đơn giản nhưng đủ dùng cho những nhu cầu cơ bản. Các tính năng mở rộng cũng có nhưng phải tự cài qua các extensions.
  3. Loại sản phẩm thứ ba có các bộ phận cơ bản cũng vẫn như trên (postfix, openldap, spamassassin, …) nhưng phần giá trị gia tăng rất đáng kể. Zimbra, Open-Xchange, Scalix,. v.v… thuộc loại này. Giá trị gia tăng ở đây có thể là thiết kế hệ thống phức tạp và tinh vi hơn, nhiều bộ phận hơn, tính năng mở rộng, đầy đủ hơn, có nhiều phần mềm bổ xung, viết thêm ngoài những phần mềm nguồn mở cơ bản có sẵn, giao diện quản trị và sử dụng đầy đủ. Nhóm này thường không chỉ có mail mà là một bộ phần mềm cộng tác (collaborative software) có thể chia sẻ mail, lịch công tác, file, sổ địa chỉ, danh mục công việc, lên lịch họp và tự động gửi mail mời họp, báo thời gian bận, rỗi v.v… tương tự như cặp MS Exchange + Outlook.

Vì vậy, để học và nắm vững thì nên theo cách thứ nhất. Nhưng sau đó để dùng thì nên theo cách 2 hoặc 3.

One thought on “Máy chủ mail gồm những gì

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s