1 / 56

Mail Server 建置與 管理維護

Mail Server 建置與 管理維護. 台灣大學計資中心 陳永樵 chenyc@ntu.edu.tw. Outline . 電子郵件系統架構介紹 電子郵件系統建置 – sendmail 郵件系統的維護與管理. Part I. 電子郵件系統架構介紹. 電子郵件系統架構介紹. 電子郵件概念 電子郵件傳送程序 直接利用 SMTP 寄信. 電子郵件概念. Mail User Agent. 使用者直接執行,用來讀取,撰寫郵件的程式 例如:/ bin/mail, elm, outlook, netscape composer.

neila
Download Presentation

Mail Server 建置與 管理維護

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mail Server建置與管理維護 台灣大學計資中心 陳永樵 chenyc@ntu.edu.tw

  2. Outline • 電子郵件系統架構介紹 • 電子郵件系統建置 –sendmail • 郵件系統的維護與管理

  3. Part I 電子郵件系統架構介紹

  4. 電子郵件系統架構介紹 • 電子郵件概念 • 電子郵件傳送程序 • 直接利用SMTP寄信

  5. 電子郵件概念

  6. Mail User Agent • 使用者直接執行,用來讀取,撰寫郵件的程式 • 例如:/bin/mail, elm, outlook, netscape composer

  7. Mail Transfer Agent • 在主機之間轉送郵件訊息 • 由MUA將訊息交給MTA,使用者通常不需直接執行MTA • SMTP (Simple Mail Transfer Protocol) • Sendmail, qmail, postfix …

  8. Mail Delivery Agent • 將從MTA接到的郵件訊息放置在接收者的mailbox中 • /bin/mail, /bin/sh, mail.local, procmail … • 郵件可被傳遞給 • A person • 另一個email address • A file • mailbox • A program • Filter

  9. Email delivery • End-to-end delivery • Based on TCP/IP end-to-end connectivity • 保證每個訊息被成功遞送到接收端主機上之前,在傳送端主機上會存有備份 • Mail gateway • 訊息傳送會經過多個mail gateways • Disadvantages • Unreliability • Delay • Advantage • interoperability

  10. 電子郵件傳輸

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

  12. SMTP • 每個SMTP session由一個client和一個server組成 • SMTP牽涉client與server間一連串訊息交換 • HELO, MAIL, RCPT, DATA, QUIT

  13. 直接利用SMTP寄信

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

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

  16. 郵件傳遞流程 • 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讀取系統信箱,然後信件被存到使用者個人信箱中

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

  18. 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 ……

  19. 郵件路由 – 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

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

  21. Mail RelayhostC IN MX 50 hostB.cc.ntu.edu.tw.hostC IN MX 100 hostD.cc.ntu.edu.tw.

  22. 區分Email流量型態 • Outgoing traffic • Email that originate from our server • Incoming traffic • Email that bypass/destined to our server

  23. Patterns of modern email traffic • 從前 • 大多是 one-to-one email • 部分是one-to-many, mailing lists • Email內容主要是文字 • 最近 • 大量的one-to-many emails • Email內容包含巨大的圖片和多媒體檔案

  24. 電子郵件接收系統運作圖 網際網路 SMTP-server SMTP server (1) (1b) (1c) 硬碟 POP3/IMAP server (2) • MSIE , Netscape 瀏覽程式

  25. 外送電子郵件系統運作示意圖 Internet 網際網路 SMTP server (2) • 電子郵件傳送 server SMTP-server (1) • MSIE, Netscape 等 瀏覽程式

  26. Email Forwarders • 將所有外送流量轉送到forwarder • 減輕email伺服器的負擔 • 要求使用者直接設定正確的SMTP伺服器 • 架設考量 • 較快的網路連線 • 較快較可靠的機器

  27. Mail 的寄送- 直接傳送模式 Internet outgoing • Local SMTP Server

  28. Mail 的寄送- 間接傳送模式 Internet 區網中心 Mail Forwarder

  29. 增加email service的可靠性 • 建置備份或relay伺服器 • 放置於不同的網段 • 放置於不同的地點 • 透過不同的ISP • 利用DNS的MX records

  30. Mail 的接收- 直接傳送模式 Internet incoming • Local SMTP Server

  31. Mail 的接收- 混成傳送模式 Internet 區網中心 • Mail Relay

  32. 郵件系統架構的重要性 • 為了釐清問題所在 • 為了指出並解決可能的瓶頸 • 教育使用者向正確的負責人投訴

  33. 建置可靠的郵件系統 • 穩定的網路連線 • 穩定的DNS服務 • 穩定的郵件伺服器 • 硬體/作業系統/軟體(sendmail) • 分散且負載平衡的伺服器 • 藉由DNS round-robin機制的負載平衡 • 獨立的outgoing forwarder • Backup servers • relay servers • 正確的DNS MX records設定

  34. 台大郵件伺服器架構 • 舊帳號 • 老師: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

  35. Part II 電子郵件系統建置 sendmail

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

  37. Sendmail – three important parts • The Configuration file • The Queue Directory • The Aliases and mailing lists

  38. 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)

  39. sendmail.cf • 檔案中定義 • 運作需要之所有檔案與目錄的位置 • 許多選項,可設定sendmail的運作方式 • 改寫地址的規則與規則集 • Example: • O AliasFile=/etc/mail/aliases • O QueueDirectory=/var/spool/mqueue • FR–o /etc/mail/relay-domains • DSsmtp.ntu.edu.tw

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

  41. Alias運作機制

  42. relay-domains • Sample: 140.112 ntu.edu.tw 140.112.228.147 reject

  43. /etc/mail/access • 在檔案中加入要擋信的來源 • <Source IP/Domain/User> <處理方法> • 處理方法: • RELAY :允許使用 • REJECT :拒絕使用 • DISCARD :收下後丟棄 • OK :在已經被設定為REJECT的Domain中網開一面 • 550 <message>:將連線拒絕,並傳送<message>訊息給對方 • Update: • makemap hash access.db < /etc/mail/access

  44. 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 -> 此設定較有效率

  45. Smart Relay • /etc/mail/sendmail.cf • DSsmtp.ntu.edu.tw

  46. Part III 郵件系統維護與管理

  47. Anti-Relay & Anti-SPAM • Anti-Relay • 讓Mail Server除了本地所允許的轉信區域以外,不替其他人轉送信件 • Anti-SPAM • 當Mail Server接到某來源IP送來的信件,經過比對之後發現該IP在系統的黑名單中,不管該信件的目的地為何處,一律拒絕其連線

  48. Mail Relay • Sendmail 8.9.0以後已經改掉「無條件幫其他機器轉送信件」的特性 • 建議sendmail 8.8.x之前的版本更新 • 設定為某些domain轉信 • sendmail.cf中的設定 • FR-o /etc/mail/relay-domains • 將要代為轉信的domain寫入relay-domains檔案中 • 一行一個domain

  49. 防範SPAM • SPAM • Send Phenomenal Amounts of Mail • 不請自來的垃圾郵件 • 浪費使用者時間 • 佔用Internet頻寬 • 耗費郵件伺服器的資源

  50. 防堵Incoming SPAM • 系統層面防堵SPAM的措施 • 利用複雜的比對演算法判斷訊息是否屬於spam • 識別及防堵已知的spam來源 • MTA上是最適合防堵SPAM的地方 • Sendmail 8.9版以後提供內建的anti-spam及anti-relay規則,及功能強大的過濾功能 • 參考http://www.sendmail.org/antispam.html

More Related