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

Chương 11: Dịch vụ 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 (366.44 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
sendmai
router". Nó nhận mail từ MUA lẫn
l,
MTA, căn cứ vào header của
qmail,
mail mà nó quyết định chuyển đi exchang
bằng cách nào
e
server

Mail
Delivery
Agent
(MDA)

MDA chấp nhận các mail từ MTA mail.loc
và chuyển đi cụ thể đến user
al

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.
2.

3.
4.

5.
6.

jsmith's MUA (pine, outlook, … ) trên host1.uiuc.edu chuyển
message đến MTA (sendmail) trên local host.
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 ngồi).
SMTP MDA kết nối vào MTA trên host2.uiuc.edu (sendmail)

và gửi nó 1 message.
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.
Local MDA lưu message trong mailbox của johndoe .
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 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ị
xố 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 xố 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 machineparsed

yes

no


Cấu trúc của .mc



Cấu hình cơ bản của.mc là như sau:
OSTYPE()





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 :




Ví dụ: OSTYPE(linux), m4 sẽ đọc
cf/ostype/linux.m4.

define(`variable', `value')

Thơng thường, cả variable và value được
đặt trong dấu nháy.


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×