Tải bản đầy đủ (.pdf) (52 trang)

bài giảng tổng quan về linux chương 10 sendmail

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (614.7 KB, 52 trang )

SENDMAIL
Giới thiệu
 MUAs, MTAs, and MDAs
 Cấu trúc của 1 Email Message
 SMTP và the Message Envelope
 Lịch sử sendmail
 The Mail Queue
 Aliases
Biên dịch sendmail và cài đặt
 Tại sao dùng Berkeley sendmail?
 Tải Source Code
 Cấu hình Build-Time
 Database Map Support
 Ví dụ site.config.m4
 Biên dịch sendmail
Cấu hình sendmail
 File cấu hình có thể làm gì ?
 So sánh .cf files với .mc files
 Cấu trúc của .mc File
 Biến cấu hình
 FEATURE() Macros
 Masquerading
 Relaying
 Database Maps
 Sinh ra .cf file từ .mc file
Anti-Spam
 Định nghĩa "spam"
 No Default Relaying
 Access Control Database
 Better Checking on Sender Information
Chạy sendmail:


 Các tham số dòng lệnh
 Khởi động
MUAs, MTAs, and MDAs
Part What It Does Examples
Mail User
Agent
(MUA)
MUA là chương trình dùng để
đọc và gửi mail. Có thể gọi là
mail client.
elm, pine,
Outlook,
Eudora
Mail
Transfer
Agent
(MTA)
MTA làm nhiệm vụ như là "mail
router". Nó nhận mail từ MUA lẫn
MTA, căn cứ vào header của
mail mà nó quyết định chuyển đi
bằng cách nào
sendmail,
qmail,
exchange
server
Mail
Delivery
Agent
(MDA)

MDA chấp nhận các mail từ MTA
và chuyển đi cụ thể đến user
mail.local
procmail
Ví dụ
 MTA: phần quan trọng nhất. Nó chịu
trách nhiệm làm các công việc chuyển
mail “thông minh".
Quá trình gửi nhận mail
1. jsmith's MUA (pine, outlook, … ) trên host1.uiuc.edu chuyển
message đến MTA (sendmail) trên local host.
2. MTA (sendmail) chú ý message được đánh địa chỉ đến 1 user
tại host2.uiuc.edu. Khi đó nó được cấu hình để biết rằng nó
có thể đến host2.uiuc.edu thông qua SMTP, nó chuyển
message sang SMTP MDA (thường SMTP MDA được build sẵn
trong sendmail, nhưng các MDA khác có thể là 1 chương
trình ngoài).
3. SMTP MDA kết nối vào MTA trên host2.uiuc.edu (sendmail)
và gửi nó 1 message.
4. MTA trên host2.uiuc.edu (sendmail) thông báo rằng message
được đánh địa chỉ đến 1 user trên localhost, do đó nó
chuyển message vào local MDA.
5. Local MDA lưu message trong mailbox của johndoe .
6. Kế tiếp johndoe kết nối vào host2.uiuc.edu và chạy MUA,
message sẽ ở đó để anh ta đọc.
Structure of an Email Message
 Email messages có 2 phần :
 Headers: dòng có dạng "field: value" chứa
thông tin về message, như là "To:", "From:",
"Date:", and "Message-ID:"

 Body: nội dung của message
 From Tue Nov 30 09:54:29 2010
 Return-Path: <>
 Received: from alibaba.citd.edu.vn (alibaba [127.0.0.1])
 by alibaba.citd.edu.vn (8.12.8/8.12.8) with ESMTP id
oAU2sNOR003125
 for <>; Tue, 30 Nov 2010 09:54:28
+0700
 Received: (from root@localhost)
 by alibaba.citd.edu.vn (8.12.8/8.12.8/Submit) id oAU2sNKh003123
 for natuan; Tue, 30 Nov 2010 09:54:23 +0700
 Date: Tue, 30 Nov 2010 09:54:23 +0700
 From: root <>
 Message-Id: <>
 To:
 Subject: Test sendmail program
 This is the message body.
SMTP and the Message Envelope
 [root@alibaba mail]# telnet 172.16.10.1 25
 Trying 172.16.10.1
 Connected to 172.16.10.1.
 Escape character is '^]'.
 220 pascal.citd.edu.vn ESMTP Sendmail
8.12.8/8.12.5; Sun, 30 Nov 2003 09:14:37 -
0500
 helo pascal
 250 pascal.citd.edu.vn Hello [192.168.1.13],
pleased to meet you
 mail from:
 250 2.1.0 Sender ok

Quá trình gửi mail
 rcpt to:
 250 2.1.5 Recipient ok
 data
 354 Enter mail, end with "." on a line by itself
 subject: Test mail from alibaba CITD
 This is the message body
 .
 250 2.0.0 hAUEEb7S003989 Message accepted
for delivery
 quit
 221 2.0.0 pascal.citd.edu.vn closing connection
 Connection closed by foreign host.
Lịch sử sendmail
 The Past:
 sendmail là một trong những MTA cổ nhất và dùng
nhiều nhất trên Internet
 Bản gốc được viết trước khi Internet được chuẩn
hoá
 Được thiết kế đủ linh hoạt để chuyển mail cho các
mail systems khác nhau bất kể tính chất của nó
 Today:
 Internet được chuẩn hoá nhiều hơn
 Dùng SMTP (Simple Mail Transfer Protocol)
 Nhiều tính năng cũ của sendmail được bỏ qua
 Mặc dù dùng SMTP, MTA vẫn còn được dùng cho
việc dẫn đường mail!
The Mail Queue
 sendmail chạy background đợi new
messages. Khi có 1 kết nối đến, một child

process được sinh ra để xử lý kết nối, trong
khi parent process quay trở lại tiếp tục đợi
new connections.
 Khi một message được nhận, sendmail
child process đặt chúng vào mail queue
(/var/spool/mqueue) và theo định kỳ nó sẽ
được chuyển đi. Sau khi mail được chuyển
đi, nó sẽ bị xoá khỏi mqueue
 Messages nằm trong mqueue sẽ ở đó cho
đến khi queue được xử lý. parent sendmail
sẽ thường xuyên fork một child process để
chuyển bất cứ mail nào còn nằm trong
queue theo những quãng thời gian nhất
định
Xử lý mqueue
Tập tin /etc/mail/aliases
 Một alias cho phép sendmail chuyển hướng
(redirect) mail gửi đến một address. mail này
có thể được redirected đến một email address
khác
 sendmail's alias database thường được lưu
dạng flat-text trong file /etc/mail/aliases.
 Ví dụ:
 # Basic system aliases these MUST be present.
 MAILER-DAEMON: postmaster
 postmaster: tuanna
 root: tuanna
 tuan: ,
Tập tin /etc/mail/aliases
 Mailling list

 k11: ,
, ,
, ,
,
, ,
,
, ,
, ,
,
, , ,
,
, ,
,
,
Tập tin /etc/mail/aliases
 Sau khi đã hiệu chỉnh lập tin aliase ta
phải compile thành binary để
sendmail hiểu.
 Sử dụng lệnh newaliases. Tập tin
aliases.db sẽ được sinh ra
Tại sao dùng Berkeley sendmail?
 Security fixes: Các lỗi về security
được cập nhật và sửa thường xuyên
 Features: Các tính năng của
sendmail hỗ trợ rất nhiều
 Standards: Sendmail là một mail
server hỗ trợ chuẩn SMTP và được
chuẩn hoá trên Internet
 Support: Sendmail được hỗ trợ


Sendmail source code
 Có thể tải sendmail source code từ :

(home site)
 />es/mail/sendmail (local mirror)
Cấu hình sendmail
 Nhiệm vụ của tập tin
/etc/mail/sendmail.cf: chỉ cho sendmail
biết các công việc phải xử lý khi nhận và
gửi mail :
 General configuration options, such as queue
directory and timeout values
 Definitions for each MDA, including pathnames
and options
 Rulesets for header processing/rewriting, and
the "routing table" which determines which
MDAs get used for which messages
 Các thông tin này thường là phức tạp đặc
biệt là ở các large mail hub.
Tập tin .cf và tập tin .mc
"He who has never hacked
sendmail.cf has no soul;
he who has hacked sendmail.cf
more than once has no brain.“
Old Hacker Proverb
/etc/mail/sendmail.cf
 /etc/mail/sendmail.cf được thiết kế để
sendmail có thể parse nhanh, không phải
để human-readable, và nó được xem là
một trong những cái bí hiểm nhất mà

Unix administrator cần phải đương đầu.
 Do đó, từ version 8, tập các macros cho
m4 macro language được viết để làm nó
dễ dàng hơn trong việc thêm xoá sửa và
bảo trì cấu hình trong sendmail.cf. Tập tin
chứa các macro này gọi là .mc file.
Bảng so sánh .cf với .mc
.cf .mc
Flexible very
not totally, but covers
99% of situations
Understandable no yes
Quickly machine-
parsed
yes no
Cấu trúc của .mc
 Cấu hình cơ bản của.mc là như sau:
 OSTYPE()
 Ví dụ: OSTYPE(linux), m4 sẽ đọc
cf/ostype/linux.m4.
 define()
 Có thể dùng 0 hay nhiều chỉ dẫn define()
để thiết lập biến điều khiển thao tác của
các cấu hình macro. Cú pháp :
 define(`variable', `value')
 Thông thường, cả variable và value được
đặt trong dấu nháy.

×