Qmail as a Mail Gateway - Phần 4

Chi tiết các hồ sơ cần điều chỉnh cho qmail cho vấn đề tối ưu hoá.

4.2 Danh mục các hồ sơ trong "qmail-control" cần thiết cho Qmail relay server:
Ngoại trừ bạn dùng Qmail để thiết lập một mail server hạng nặng và muốn xử dụng tối đa chức năng của mỗi chương trình trong Qmail suite bạn sẽ hiếm khi phải xử dụng tới trọn bộ 28 hồ sơ ở trên. Với trường hợp Qmail là một relay server bạn không cần quá một chục hồ sơ trong nhóm các hồ sơ thuộc "qmail-control". Sau đây là danh sách các hồ sơ tôi dùng cho "qmail-control" và nội dụng của từng hồ sơ để giúp bạn hình dung dễ dàng hơn chức năng của từng hồ sơ:

4.2.1 Hồ sơ "me" thuộc qmail-send:
- Hồ sơ "me" là khởi điểm cho mọi hoạt động của Qmail thiếu nó Qmail sẽ không chạy. Hồ sơ này được tạo ra từ bước 2.4.4 khi bạn chạy lệnh ./config để thiết lập hostname cho mail server của bạn. Hồ sơ này chỉ có một dòng chỉ định cho domain entry của mail relay server.

- Nội dung của hồ sơ này có dạng: mail.mydomain.com trong đó: mail là hostname của mail relay server mydomain.com là fully qualified domain name bạn có.

4.2.2 Hồ sơ "locals" thuộc qmail-send:
- Hồ sơ này dùng để chỉ định các địa chỉ e-mail được xem là "local" đối với mail relay server. Nếu không có entry nào trong "locals" thì qmail-send cho rằng chỉ có mỗi host trong "me" thuộc local. Trường hợp dùng Qmail như một mail relay server không cần "locals" nữa nếu có hồ sơ "locals" này có một dòng chỉ định y hệt như "me" vậy thôi.

4.2.3 Hồ sơ "concurincoming"(hay còn gọi là concurrencylocal) thuộc qmail-send:
- Hồ sơ này ấn định số lượng mail được chuyển giao cùng một lúc. Default có giá trị là 10 với giá trị này Qmail đủ sức chuyển giao mail cho một server cỡ nhỏ đến cỡ trung. Nên tránh dùng giá trị quá nhỏ để đề phòng trường hợp bị "denial attack". Tôi dùng giá trị là 20 cho một văn phòng cỡ 100 nhân viên (khoảng 140 e-mails tổng cộng bao gồm các e-mail chung cho từng nhóm nhân viên).

4.2.4 Hồ sơ "defaultdomain" thuộc qmail-inject:
- Hồ sơ này dùng như một dạng bản mẫu nếu vì một lý do gì đó mail client không dùng trọn bộ tên người dùng + tên domain như một e-mail thông thường ví dụ: me@mycom.com mà chỉ có tên người dùng là me thì "defaultdomain" được qmail dùng để "gắn" thêm cái đuôi tên domain trước khi nó gởi mail ra ngoài. Nếu qmail không tìm thấy "defaultdomain" nó sẽ tự động dùng entry trong hồ sơ "me" ở trên. Hồ sơ này không quá cần thiết sự hiện diện của nó thường để loại trừ trường hợp mail client không gởi "sender" đúng và dùng để giao chuyển giữa các mail account trong cùng mail relay server.

- Hồ sơ này chỉ đơn giản có 1 entry là domain name của bạn ví dụ: mycompany.com

4.2.5 Hồ sơ "queuelifetime" thuộc hồ sơ qmail-send:
- Hồ sơ này dùng để chỉ định thời gian (tính theo đơn vị giây) mail được giữ trong mail queue (vì lý do gì đó không chuyển gởi được) trước khi bị xoá. Khi mail đợi trong queue đến hạn cuối của "queuelifetime" qmail sẽ chuyển gởi mail đó lần cuối trước khi thực sự xoá nó khỏi mail queue (nếu mail này vẫn không thể chuyển giao được).

- Giá trị default của hồ sơ "queuelifetime" là 604800 giây (tương đương với 1 tuần lễ). Giá trị này tùy thuộc vào môi trường của bạn mà thiết lập cho thích hợp. Ví dụ mail relay server của bạn chỉ phục vụ cho một số ít người và thuộc mạng "chậm" thì nên thiết kết giá trị của "queuelifetime" cao hơn một tí để mail có cơ hội được chuyển giao trong trường hợp mạng bi nghẽn (thật ra queuelifetime cho 1 tuần là rất lâu). Tôi chọn giá trị 172800 (khoảng 48 giờ) vì mail relay server trong trường hợp tôi thiết kế phục vụ cho khá nhiều người và đường dẫn khá tốt.

4.2.6 Hồ sơ "badmailfrom" thuộc qmail-smtpd:
- Hồ sơ này là một trong những hồ sơ tiện dụng của qmail nó dùng để chứa các e-mail bạn không cho phép qmail server nhận vào (nó thuộc qmail-smtpd nên thuộc phần "nhận"). Dù phương pháp chống "bom thư" hay spam này không được linh động cho lắm nhưng nó là một trong những chức năng chứng tỏ sự quan tâm của ông Bernstein khi viết Qmail trong vấn đề chống spam.

- Hồ sơ này chứa các e-mail hoặc trọn bộ domain bạn không muốn nhận bất cứ tin tức gì mỗi e-mail phải nằm trên một dòng. Ví dụ:
spamboy@spamhouse.com (không nhận mail từ 1 địa chỉ này)
@spamhouse.com (không nhận mail từ trọn bộ domain này).

- Các phương pháp phòng chống "bom thư" linh động hơn sẽ được đi sâu hơn trong những phần tới.

4.2.7 Hồ sơ "rpcthosts" thuộc qmail-smtpd:
- Hồ sơ rcpthosts là một hồ sơ hết sức quan trọng đối với qmail-smtpd nhất là cho một mail relay server. Hồ sơ này cung cấp dữ kiện cho qmail-smtpd daemon này thay mặt các hosts và domains nào muốn nhận chuyển mail. Ví dụ bạn có 2 mail server trong LAN nội bộ có tên là domain1.com và domain2.com hồ sơ rcpthosts phải có dữ kiện của 2 mail server này nếu không mail từ bên ngoài vào 2 server này sẽ bị qmail-smtpd từ chối chuyển nhận vào bên trong. Nên nhớ phải có ít nhất là một dữ kiện cho chính mail relay server không thì sẽ không có mail nào được vào (ngay cả cho chính mail relay server).

- Hồ sơ rcpthosts chứa các dữ kiện theo mặc định mỗi dòng một host/domain. Hồ sơ này có cấu trúc tương tự như sau:
mail.mydomain.com (mail là hostname của mail relay server và domain.com là fully qualified domain name. Ðây chính là dữ kiện thiết yếu và đầu tiên cho mail relay server).

exchange1.mydomain.com (exchange1 là hostname của MS exchange thuộc LAN nội bộ. Tất nhiên DNS của bạn (hoặc của ISP cung cấp cho bạn) phải có entry cho host exchange1 này và mail relay server phải biết được địa chỉ (bên trong) của host exchange1).

exchange2.mydomain.com (tương tự như exchange1 và nhiều mail server bên trong theo cấu trúc này nếu cần).

mydomain.net (giả sử bạn có thêm một domain name khác với đuôi .net và một trong những mail server thuộc LAN nội bộ đã thiết lập để nhận mail cho domain.net này entry domain.net trong rcpthosts cần thiết để mail relay server biết domain.net được phép nhận mail từ bên ngoài thông qua mail relay server).

mail.myfriend.com (giả sử một người bạn có domain name là myfriend.com và anh ta bị trục trặc với mail server. Bạn có thể "tạm thời" giúp anh ta bằng cách cho phép mail relay server của bạn nhận các mail thuộc myfriend.com vào host mail để anh ta có thể dial in host mail này mà lấy mail (chẳng hạn). Kỹ thuật này còn có cái tên là "chuyển nhận có lựa chọn" (selective relay policy).

- Sự hiện diện của hồ sơ rpcthosts là một trong những đặc thù của qmail trong vấn đề phòng chống open-relay. Chỉ có những host/domain hiện diện trong rpcthosts được phép nhận mail từ mai relay server của bạn. Ðiều này có nghĩa một người ở hostA (mang IP address xx.xx.xx.xx) có ý định dùng mail relay server của bạn để chuyển tới một mail server nào đó (có IP address zz.zz.zz.zz) ngoài giới hạn quy định của rpcthosts tuyệt đối không thể được. Phần "Thử nghiệm sau khi cài đặt" trong phần 6 sẽ đi xuyên qua một số bước kiểm tra cụ thể.

4.2.8 Hồ sơ "smtpgreeting" thuộc qmail-smtpd:
- Hồ sơ này trên mặt chức năng gần như không cần thiết nhưng trên mặt tâm lý nó mang ít nhiều tính chuyên nghiệp (professionalism) sự sắp xếp và hiện diện của một mail relay server trên Internet. Hồ sơ smtpgreeting không chứa gì ngoài một giòng thông điệp "chào mừng" những ai đến mail relay server này (bao gồm sự trao đổi giữa các mail relay servers và ngay cả các tay chuyên dùng telnet hoặc các loại dụng cụ thăm dò mail server lỗ hổng open-relay).

- Hồ sơ này tùy thuộc vào tinh thần của bạn mà hình thành một lời "chào mừng" đúng mức. Tôi đã từng thấy một số mail relay server có lời "chào mừng" khá thách thức chẳng hạn như: "Kiddies this server is not your playground. Stay away or stick around for a challenge" (Tạm dịch: Mấy ông nhóc con server này không phải là chỗ chơi của các ông. Tránh xa hay nhào vô mà thử thách). Dù cơ chế làm việc của qmail mang nặng tính bảo mật không có nghĩa là nó hoàn hảo và không cách gì phá được. Một thông điệp mang tính hoà nhã và nghiêm túc thường có tác dụng tốt đẹp hơn nhiều (bạn sẽ phải hối hận nếu lỡ buông lời thách thức trong thế giới bảo mật).

- Tôi giả định nên dùng một thông điệp ngắn gọn và rõ ràng như sau: "Welcome to company ABC mail server and have a nice time". Xét cho cùng bạn không muốn tạo nên phiền toái mà làm gì. Nếu một tay chuyên tìm open-relay thất vọng khi "đụng" phải mail server của bạn đã là một thành tựu; một thông điệp nhẹ nhàng sẽ giúp cho anh ta quyết định "để yên server" của bạn. Nên nhớ rằng dù mail relay server của bạn không open-relay những kẻ muốn phá vẫn có thể "flood" server của bạn được tổn thất ở chỗ người dùng trong nội mạng không có cơ hội gởi và nhận mail trong khi mail relay server bị "flood".

4.2.9 Hồ sơ "