Hệ thống Sendmail được cấu hình chủ yếu thông qua một file nàm ở
/etc/senmail.cf (mặc dù một vài hệ thống đặt nó ở /usr/lib/sendmail.cf hoặc ở nơi
khác). Ngôn ngữ sử dụng trong file cấu hình senmail.cf thì hồn tồn khác so với các file cấu hình khác và rất phức tạp.
File Sendmail.cf điều khiển các chức năng mặc định của hệ thống gửi mail. Có nhiều file khác cũng có liên qua trong q trình cấu hình, đó là:
Decnetxtable: có nhiệm vụ đổi địa chỉ thơng thường sang địa chỉ DEC. Genericfrom: Có nhiệm vụ đổi địa chỉ bên trong sang địa chỉ thông thường. Mailtertable: Định nghĩa các xử lý đặc biệt cho các máy chủ từ xa và các tên
Pathtable: Định nghĩa các đường dẫn UUCP đến các máy từ xa và các tên
miền.
Uucprelays: Cho phép gián tiếp đến các máy chủ từ xa. Xaliases: Đổi địa chỉ thông thường thành địa chỉ bên trong.
Sendmail + hệ thống IDA sử dụng một bộ tiền xử lý chẳng hạn như m4 hoặc dbm để tạo ra các file cấu hình sau khi người sử dụng chỉ định các giá trị cho các thông số. Sau khi sử dụng bộ tiền xử lý, hệ thống sử dụng một bộ tạo file để tạo ra các file cấu hình cuối cùng.
1. File sendmail.cf
Khi sử dụng Sendmail + IDA, file sendmail.cf không được thiết lập các giá trị phù hợp với hệ thống và cơng việc của người sử dụng. Thay vì quá trình cấu hình xử lý các thay đổi sinh ra, một quá trình cấu hình bình thường được điều khiển bởi một file gọi là sendmail.m4, nó cung cấp các thông tin cơ bản về tên hệ thống, đường dẫn sử dụng trên hệ thống của người sử dụng và mailer mặc định đang sử dụng. Mặc dù việc thay đổi file sendmail.m4 có thể mất nhiều thời gian nhưng nó cần thiết đối với các thông tin cơ bản cho việc cài đặt Linux sử dụng uucp và SMTOP cho việc chuyển vận mail.
Phần quan trọng nhất trong file sendmail.m4 là phần khai báo các thư mục. Phần này thường bắt đầu với một dòng khai báo LIBDIR:
dnl #define(LIBDIR, /usr/local/lib/mail)
Thư mục LIBDIR là nơi Sendmail + hệ thống IDA tìm kiếm các file định dạng và các bảng router, thơng thường dịng này được bỏ qua nhưng đường dẫn mặc định thì nằm ở vị trí thơng thường cho tất cả hệ thống Linux mail. Nếu đường dẫn hiển thị trong Sendmail là chính xác, khơng cần điều chỉ lại file này. Đường dẫn này thường ghi mã trực tiếp vào trong bộ nhị phân Sendmail và không cần thiết để ghi đè lên bởi file sendmail.m4 (hoặc sendmail.cf). Nếu cần phải thay đổi đường dẫn này, phải gỡ bỏ giá trị dnl ở dòng bắt đầu, thêm vào đường dẫn đúng và sau đó lưu lại trong file sendmail.cf
Mailer cục bộ được sử dụng bởi Sendmail được khai báo tại một dịng có giá trị LOCAL_MAILER_DEF
define(LOCAL_MAILER_DEF, mailers.linux)dnl
Dịng này là cần thiết bởi vì Sendmail khơng điều khiển các mail gửi đi. Một chương trình khác sẽ đảm nhận việc này thay cho Sendmail. Mặc dịnh, giá trị dùng cho mailer cục bộ được chứa trong một file gọi là mailers.linux. File này được chuyển đến mục nhập LOCAL_MAILER_DEF trong file sendmail.m4, điều này có nghĩa là người sử dụng cần phải kiểm tra file mailer.linux trong thư mục con tương tự (thường là /usr/local/lib/mailer.linux) để chắc chắn chương trình chuyển (hoặc một chương trình bất kỳ đã sử dụng) đã được nhập các thuộc tính.
Nội dung một file mailer.linux sẽ bao gồm như sau:
# mailers.linux
Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10,R=25/10, A=deliver $u Mprog, P=/bin/sh, F=lsDFMeuP, S=10, A=sh -c $u
Một agent phát thư đi cũng được chỉ định trong file sendmail.mc, file này
được dùng để xây dựng file sendmail.cf. Nếu agent phát không chuyển thư đi, phải kiểm tra file sendmail.mc để chắc rằng agent chuyển mail đã được thiết lập các thuộc tính. Sendmail.mc là một file quan trọng và nó phải được đọc khi
sendmail.m4 được xử lý. Thường có một dịng khai báo trong file sendmail.m4 để
chắc rằng việc này phải xảy ra. Dòng này thường nằm ở phần đầu file sendmail.m4
include(Sendmail.mc)dnl
Người sử dụng cần phải chỉ định một vài mục nhập trong biến PSEUDOMAINS. Biến này được dùng để điều khiển hệ thống mà nó khơng thể mở rộng vào trong các tên miền một cách chính xác, thơng thường là hệ thống UUCP. Các mục nhập trong trường PSEUDOMAINS chỉ ra rằng Sendmail + IDA khơng sử dụng DNS cho những mạng đó. Biến PSEUDOMAINS được khai báo như sau:
define(PSEUDODOMAINS, BITNET UUCP)dnl
Có thể sử dụng biến PSEUDONYMS để làm ẩn tên máy của người sử dụng. Ví dụ, một mail nhận trên mạng khác sẽ chỉ thấy địa chỉ tpci.com mà không quan tâm đến việc dù là được gửi từ merlin.tpci.com hay chatton.tpci.com. Khi sử dụng biến PSEUDONYMS, Sendmail chấp nhận mail từ tất cả các máy được khai báo trong trường PSEUDONYMS. Trường PSEUDONYMS được hiển thị như sau:
define(PSEUDONYMS, tpci.com)dnl
Mục vào nhày cho phép một máy tính bất kỳ của mạng tpci.com gửi mail thơng qua Sendmail.
Để định nghĩa tên máy, sử dụng biến DEFAULT_HOST. Biến này thường được gán giá trị tên mail server của người sử dụng. Người sử dụng có thể khai báo như sau để thiết lập tên mail server mặc định:
define(DEFAULT_HOST, merlin.tpci.com)dnl
Nếu không gán một tên đúng cho biến DEFAULT_HOST sẽ khơng có mail được trả về chính xác đến hệ thống đang sử dụng.
Nếu hệ thống không phải là một cổng nối mail lên Internet (hoặc các mạng khác được truy cập từ mạng LAN) người sử dụng có thể thiết lập cho hệ thống Linux cho phép gửi mail lên một máy khác để xử lý bằng cách thiết lập các biến RELAY_HOST và RELAY_MAILER trong file sendmail.m4. Các biến này sẽ đặt tên của mail server mà tất cả các mail sẽ được chuyển đến. Ví dụ: Để thiết lập cho hệ thống cục bộ dẫn hướng tất cả các mail bên ngoài đến một máy tên là wizard, phải khai báo 2 dòng như sau:
define(RELAY_HOST, wizard)dnl define(RELAY_MAILER, UUCP=A)dnl
Dòng thứ hai chỉ định mailer sử dụng để gửi message đến máy RELAY_HOST.
2. Điều chỉnh UUCP:
Nếu phải đang làm việc với một hệ thống mail trên nền tảng UUCP, người sử dụng phải điều chỉnh một vài mục nhập trong file sendmail.m4. Sự điều chỉnh này là cần thiết bởi vì một hệ thống mail UUCP thường đánh địa chỉ khác so với các hệ thống trên nền tảng DNS. Các khai báo của UUCP trong file sendmail.m4 như sau:
define(UUCPNAME, tpci)dnl
define(UUCPNODES, |uuname|sort|uniq)dnl define(BANGIMPLIESUUCP)dnl
define(BANGONLYUUCP)dnl
Dòng đầu tiên khai báo UUCPNAME dùng để chỉ định tên của hệ thống cục bộ trong giới hạn UUCP. Tên này có thể khác hơn tên sử dụng trong DNS, mặc dù thơng thường thì các tên đó trơng cũng khơng khác nhau mấy.
Biến UUCPNODES khai báo lệnh sử dụng để cung cấp một danh sách tên các host mà hệ thống kết nối tới thông qua UUCP.
Biến BANGIMPLIESUUCP để cho Sendmail biết là bất kỳ một địa chỉ nào chứa dấu ! đều là địa chỉ kiểu UUCP. Biến BANGONLYUUCP thì làm điều ngược lại. Cả 2 biến này thường được khai báo bởi vì một vài hệ thống DNS sử dụng phương pháp đánh địa chỉ kiểu dấu chấm than.
3. Cấu hình các bảng định vị
Có nhiều dịng trong file sendmail.m4 dùng để khai báo các bảng cấu hình. Các bảng cấu hình này nằm dưới thư mục khai báo bởi biến LIBDIR. Phần này
gồm các dịng sau:
define(ALIASES, LIBDIR/aliases)dnl
define(DOMAINTABLE, LIBDIR/domaintable)dnl
Có khoảng 7 file cấu được chỉ định trong tồn bộ. Người sử dụng có thể thay đổi bất kỳ giá trị nào nếu muốn nhưng phải chắc chắn rằng việc di chuyển nó thị vị trí được chỉ định. Để bảo đảm, tốt nhất nên gỡ bỏ các file khỏi các ví trí mặc định của nó.
4. Cấu hình mailertable
Bảng mailertable khai báo các điều khiển đặc biệt cho cac host hoặc các tên miền. Trong hầu hết các trường hợp, mailertable chỉ định các tên miền chắc chắn hoặc các host được truy cập và các giao thức nào sử dụng cho các tên miền và các host đó. Người sử dụng khơng phải điều chỉnh file này nếu hệ thống đang sử dụng UUCP nhưng phải kiểm tra nội dung của nó nếu là đang sử dụng SMTP hoặc DNS.
File mailertable được dọc từ dòng đầu tiên xuống và Sendmail xử lý mail dựa trên mỗi dòng trong file này. Trong mỗi trường hợp, nơi mà hầu hết các quy tắc chỉ định nằm ở đầu file, theo sau bởi các quy tắc thông thường khác. Các quy tắc chỉ ra phương thức của kết nối đầu tiên và sau đó liệt kê các hệ thống từ xa hoặc tên miền:
mailer delimiter relayname remote
Trong khai báo trên, mailer là giao thức chuyển vận được sử dụng, delimiter là ký tự đặc biệt, relayname là tên của hệ thống chuyển mail đến và remote là host từ xa hoặc tên miền.
Mailer có thể là các giá trị:
TCP-A: TCP với địa chỉ kiểu Internet. TCP-U: TCP với địa chỉ kiểu UUCP. UUCP-A: UUCP với địa chỉ kiểu Internet.
Delimiter có một ý nghĩa đặc biệt và phải là một trong cac ký tự sau: ! Gỡ bỏ tên host từ phần địa chỉ trước khi gửi đi.
, Không điều chỉnh địa chỉ cho tất cả.
: Gỡ bỏ tên host chỉ khi các host trung gian được chỉ định.
Có thể xây dựng các quy tắc mailertable một các dễ dàng khi chuyển mail đến một mail server từ xa. Ví dụ, để bắt buộc Sendmail sử dụng UUCP thông qua một mail server từ xa gọi là wizard kết nối đế một hệ thống từ xa roy.sailing.org, thêm một quy tắc như sau vào file mailertable:
UUCP-A,wizard roy.sailing.org
5. File cấu hình uucprelays
File uucprelays dùng để bỏ qua đường dẫn UUCP đến một site từ xa khi một đường dân tốt hơn đã tồn tại. Ví dụ, nếu người sử dụng thường sử dụng đường dẫn
wizard!bignet!merlin!tpci và có thể tạo ra một liên kết chỉ đường đến tpci, nên sử dụng file uucprelays để đổi lại đường dẫn địa chỉ mail.
6. File cấu hình uucpxtalbe
File uucpxtalbe được sử dụng khi một địa chỉ kiểu UUCP được sử dụng trong việc vận chuyển mail. File này cung cấp các chỉ dẫn cho công việc chuyển một địa chỉ kiểu DNS sang UUCP. Nếu người sử dụng đang sử dụng một mail server khác hơn mail server hiện tại hoặc muốn sử dụng UUCP để kết nối đến một máy cụ thể vì độ tin cây, file này thực sự cần thiết.
File này chứa các mục vào liệt kê tên kiểu UUCP theo sau bởi tên miền: Chatton chatton.com
Mục vào này chỉ ra rằng Sendmail mà một mail chatton.com bất kỳ nào đó đều phải được cập nhập qua UUCP đến chatton ( đánh địa chỉ kiểu UUCP). Mục vào này bắt buộc các địa chỉ mail đến yvone@chatton.com phải được viết lại giống như chatton!yvone, một địa chỉ mà UUCP có thể sử dụng.
7. Xây dựng file sendmail.cf từ file sendmail.m4
Bây giờ, đã cấu hình xong file sendmail.m4 và các file có liên qua của nó, có thể sử dụng bộ xử lý m4 để tạo ra file sendmail.cf. Một khi file sendmail.m4 đã sẵn sàng để làm việc, bắt nguồn từ dòng lệnh: