580 likes | 785 Views
Mail Server 建置與 管理維護. 台灣大學計資中心 陳永樵 chenyc@ntu.edu.tw. Outline . 電子郵件系統架構介紹 電子郵件系統建置 – sendmail 郵件系統的維護與管理. Part I. 電子郵件系統架構介紹. 電子郵件系統架構介紹. 電子郵件概念 電子郵件傳送程序 直接利用 SMTP 寄信. 電子郵件概念. Mail User Agent. 使用者直接執行,用來讀取,撰寫郵件的程式 例如:/ bin/mail, elm, outlook, netscape composer.
E N D
Mail Server建置與管理維護 台灣大學計資中心 陳永樵 chenyc@ntu.edu.tw
Outline • 電子郵件系統架構介紹 • 電子郵件系統建置 –sendmail • 郵件系統的維護與管理
Part I 電子郵件系統架構介紹
電子郵件系統架構介紹 • 電子郵件概念 • 電子郵件傳送程序 • 直接利用SMTP寄信
Mail User Agent • 使用者直接執行,用來讀取,撰寫郵件的程式 • 例如:/bin/mail, elm, outlook, netscape composer
Mail Transfer Agent • 在主機之間轉送郵件訊息 • 由MUA將訊息交給MTA,使用者通常不需直接執行MTA • SMTP (Simple Mail Transfer Protocol) • Sendmail, qmail, postfix …
Mail Delivery Agent • 將從MTA接到的郵件訊息放置在接收者的mailbox中 • /bin/mail, /bin/sh, mail.local, procmail … • 郵件可被傳遞給 • A person • 另一個email address • A file • mailbox • A program • Filter
Email delivery • End-to-end delivery • Based on TCP/IP end-to-end connectivity • 保證每個訊息被成功遞送到接收端主機上之前,在傳送端主機上會存有備份 • Mail gateway • 訊息傳送會經過多個mail gateways • Disadvantages • Unreliability • Delay • Advantage • interoperability
TCP/IP standards for email service • The Format for mail messages • Header and body separated by a blank line • Header -- keyword : value • From : <email address> • To : <email address> • The details of email exchange • SMTP: specifies how the underlying mail delivery system passes messages across an internet from one machine to another
SMTP • 每個SMTP session由一個client和一個server組成 • SMTP牽涉client與server間一連串訊息交換 • HELO, MAIL, RCPT, DATA, QUIT
john@hostA:~> telnet hostB 25 Trying 140.112.2.3... Connected to hostB.ntu.edu.tw. Escape character is '^]'. 220 hostB.ntu.edu.tw ESMTP Sendmail 8.9.3/8.9.3; Wed, 4 Jul 2001 15:45:58 +0 CST) helo hostA 250 hostB.edu.tw Hello john@hostA.ntuedu.tw [140.112.3.75], pleased to meet you mail from: <john@hostB.ntu.edu.tw>250 <john@hostB.ntu.edu.tw>... Sender ok rcpt to: <john@hostC.ntu.edu.tw>250 <john@hostC.ntu.edu.tw>... Recipient ok data354 Enter mail, end with "." on a line by itself test.250 UAA02587 Message accepted for delivery quit
From john@hostB.ntu.edu.tw Wed Jul 4 15:45:58 2001 Received: from hostB.ntu.edu.tw (hostB [140.112.2.3]) by hostC.ntu.edu.tw (8.8.5/8.8.5) with ESMTP id UAA05162 for <john@hostC.ntu.edu.tw>; Wed, 4 Jul 2001 15:45:58 +0800 (CST) Received: from hostA (john@hostA.ntu.edu.tw [140.112.3.75]) by hostB.ntu.edu.tw (8.8.8/8.8.8) with SMTP id UAA02587 for <john@hostC.ntu.edu.tw>; Web, 4 Jul 2001 15:45:58 +0800 (CST) Date: Wed, 4 Jul 2001 15:45:58 +0800 (CST) From: staff <john@hostB.ntu.edu.tw> Message-Id: 199805211246.UAA02587@hostB.ntu.edu.tw test
郵件傳遞流程 • hostA上的user1用MUA寫了一封信,寄給user2@hostC • 這封信立刻郊遊MTA送往hostC • hostA上的MTA與hostC上的MTA透過SMTP交談,轉送彼此的信件 • 當信件無法立刻送往hostC時,MTA將信件暫存到系統的Mail Queue等過一段時間載送 • hostC上的MTA收到信件後,首先判斷這封信件的目的地是否為hostC,如果不是則MTA再往其他的host送,如果這封信件的目的地是hostC,將其交由本地MDA處理 • 本地MDA將信件寫入系統信箱目錄中的user2檔案 • hostC上的user2用MUA讀取系統信箱,然後信件被存到使用者個人信箱中
Mail Retrieval and Mailbox Manipulation Protocols • Post Office Protocol (POP3) • POP3 client creates a TCP connection to a POP3 server on the mailbox computer • Internet Message Access Protocol (IMAP4) • User can obtain info about msg or examine header without retrieving the entire msg • Partial retrieval
MIME • Multipurpose Internet Mail Extensions • Allow transmission of non-ASCII data through email • Each MIME message includes info • The type of the data • The encoding used From: bill@acollege.edu To: john@example.com MIME-Version: 1.0 Content-Type: image/gif Content-Transfer-Encoding: base64 ……
郵件路由 – Mail and DNS • DNS Mail eXanger (MX) record • MX records can point to hosts in different domains • a MX record must point to a hostname that has an A record hostA IN MX 10 hostB <- illegal IN MX 20 hostC hostB IN MX 10 hostC hostC IN A 123.45.67.8
MX to CNAME causes extra lookups • MX records are nonrecursive hostA IN MX 10 hostB hostB IN MX 10 hostB IN MX 20 hostC • Wildcard MX records ; domain is sub.dc.gov *.dc.gov. IN MX 10 hostB.dc.gov *.sub.dc.gov. IN MX 10 hostC.dc.gov hostA IN MX hostB hostB IN A 123.45.67.8 hostC IN A 123.45.67.9
Mail RelayhostC IN MX 50 hostB.cc.ntu.edu.tw.hostC IN MX 100 hostD.cc.ntu.edu.tw.
區分Email流量型態 • Outgoing traffic • Email that originate from our server • Incoming traffic • Email that bypass/destined to our server
Patterns of modern email traffic • 從前 • 大多是 one-to-one email • 部分是one-to-many, mailing lists • Email內容主要是文字 • 最近 • 大量的one-to-many emails • Email內容包含巨大的圖片和多媒體檔案
電子郵件接收系統運作圖 網際網路 SMTP-server SMTP server (1) (1b) (1c) 硬碟 POP3/IMAP server (2) • MSIE , Netscape 瀏覽程式
外送電子郵件系統運作示意圖 Internet 網際網路 SMTP server (2) • 電子郵件傳送 server SMTP-server (1) • MSIE, Netscape 等 瀏覽程式
Email Forwarders • 將所有外送流量轉送到forwarder • 減輕email伺服器的負擔 • 要求使用者直接設定正確的SMTP伺服器 • 架設考量 • 較快的網路連線 • 較快較可靠的機器
Mail 的寄送- 直接傳送模式 Internet outgoing • Local SMTP Server
Mail 的寄送- 間接傳送模式 Internet 區網中心 Mail Forwarder
增加email service的可靠性 • 建置備份或relay伺服器 • 放置於不同的網段 • 放置於不同的地點 • 透過不同的ISP • 利用DNS的MX records
Mail 的接收- 直接傳送模式 Internet incoming • Local SMTP Server
Mail 的接收- 混成傳送模式 Internet 區網中心 • Mail Relay
郵件系統架構的重要性 • 為了釐清問題所在 • 為了指出並解決可能的瓶頸 • 教育使用者向正確的負責人投訴
建置可靠的郵件系統 • 穩定的網路連線 • 穩定的DNS服務 • 穩定的郵件伺服器 • 硬體/作業系統/軟體(sendmail) • 分散且負載平衡的伺服器 • 藉由DNS round-robin機制的負載平衡 • 獨立的outgoing forwarder • Backup servers • relay servers • 正確的DNS MX records設定
台大郵件伺服器架構 • 舊帳號 • 老師:ccms • 師生員工:ms.cc, ms1.cc, ms2.cc • 新帳號 • 學生(依學號):ms86.ntu, ms87.ntu, ms88.ntu, ms89.ntu, ms90.ntu • 老師職員:ms.ntu • 校友:alumni.ntu • 外送伺服器:smtp.ntu, smtps.ntu • Relay伺服器:relay1-gw.tp1rc.edu.tw
Part II 電子郵件系統建置 sendmail
Sendmail • Web site: • www.sendmail.org • www.sendmail.net • www.sendmail.com • ftp site: • ftp.sendmail.org • Latest version • Sendmail 8.11.4 • Book: • O’Reilly bible: sendmail
Sendmail – three important parts • The Configuration file • The Queue Directory • The Aliases and mailing lists
Configuration files • /etc/mail • main configuration file • sendmail.cf • relay control files • relay-domains (text file) • access (database) • alias definition file • aliases (text file or database)
sendmail.cf • 檔案中定義 • 運作需要之所有檔案與目錄的位置 • 許多選項,可設定sendmail的運作方式 • 改寫地址的規則與規則集 • Example: • O AliasFile=/etc/mail/aliases • O QueueDirectory=/var/spool/mqueue • FR–o /etc/mail/relay-domains • DSsmtp.ntu.edu.tw
aliases • Sample: • Mandatory aliases • postmaster: root • MAILER-DAEMON: postmaster • Five forms of aliases • John_Adams: adamj • admin: root, sysadmin@server • staff: :inclue:/etc/mail/list/staff.list • nobody: /dev/null • ftphelp: |/usr/local/bin/sendhelp
relay-domains • Sample: 140.112 ntu.edu.tw 140.112.228.147 reject
/etc/mail/access • 在檔案中加入要擋信的來源 • <Source IP/Domain/User> <處理方法> • 處理方法: • RELAY :允許使用 • REJECT :拒絕使用 • DISCARD :收下後丟棄 • OK :在已經被設定為REJECT的Domain中網開一面 • 550 <message>:將連線拒絕,並傳送<message>訊息給對方 • Update: • makemap hash access.db < /etc/mail/access
sendmail.cw • Specify the names of hosts for which we receive email • In sendmail.cf • Fw/etc/mail/sendmail.cw • 以台大ccms.ntu.edu.tw為例 ccms -> 必須配合/etc/resolv.conf定義本地domain ccms.ntu.edu.tw -> 此設定較有效率
Smart Relay • /etc/mail/sendmail.cf • DSsmtp.ntu.edu.tw
Part III 郵件系統維護與管理
Anti-Relay & Anti-SPAM • Anti-Relay • 讓Mail Server除了本地所允許的轉信區域以外,不替其他人轉送信件 • Anti-SPAM • 當Mail Server接到某來源IP送來的信件,經過比對之後發現該IP在系統的黑名單中,不管該信件的目的地為何處,一律拒絕其連線
Mail Relay • Sendmail 8.9.0以後已經改掉「無條件幫其他機器轉送信件」的特性 • 建議sendmail 8.8.x之前的版本更新 • 設定為某些domain轉信 • sendmail.cf中的設定 • FR-o /etc/mail/relay-domains • 將要代為轉信的domain寫入relay-domains檔案中 • 一行一個domain
防範SPAM • SPAM • Send Phenomenal Amounts of Mail • 不請自來的垃圾郵件 • 浪費使用者時間 • 佔用Internet頻寬 • 耗費郵件伺服器的資源
防堵Incoming SPAM • 系統層面防堵SPAM的措施 • 利用複雜的比對演算法判斷訊息是否屬於spam • 識別及防堵已知的spam來源 • MTA上是最適合防堵SPAM的地方 • Sendmail 8.9版以後提供內建的anti-spam及anti-relay規則,及功能強大的過濾功能 • 參考http://www.sendmail.org/antispam.html