1 / 25

Mail Server 的架設

Mail Server 的架設. kenduest (小州). Kenduest@cynix.com.tw. 章節內容. Mail Server 系統的簡介 Sendmail 的編譯安裝 Relay 觀念與設定 相關設定檔案 Access、Relay 、VirtualUserTable 等機制 Forward、Aliases 等機制 POP3/IMAP 的編譯安裝與設定. Mail Server 系統的簡介. MTA 與 MUA 、Deliver 解釋: MTA (Mail Transfer Agent)

waite
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 的架設 kenduest (小州) Kenduest@cynix.com.tw

  2. 章節內容 • Mail Server 系統的簡介 • Sendmail 的編譯安裝 • Relay 觀念與設定 • 相關設定檔案 • Access、Relay 、VirtualUserTable 等機制 • Forward、Aliases 等機制 • POP3/IMAP 的編譯安裝與設定

  3. Mail Server 系統的簡介 • MTA 與 MUA 、Deliver 解釋: • MTA (Mail Transfer Agent) • 所謂的 MTA 就是 Mail Transfer Agent • Sendmail、PostFix、Qmail 或者是 Microsoft 的 Exchange Server 等等都是 MTA 程式 • MUA (Mail User Agent) • 所謂的 MUA 就是 Mail User Agent • Outlook Express、Outlook、Eudora 或者是 Linux 下的 pine、mutt、elm 等等讀信程式 都是 MUA 程式

  4. Mail Server 系統的簡介 • Mail Deliver (Mail Deliver Agent) • Mail Deliver Agent 為信件遞送程式 • procmail、bbsmail、mail.local 都是這類程式 • 運作的流程: • 當 userA@host1 使用者使用 UA 程式 寫信要寄給 userB@host2 • 當 userA@hostnameA 使用 hostA 主機寄信, 該 hostsA MTA 程式的工作就是把信件傳送到 host2 的 MTA,再透過 host2 上的 MDA 存到 userB 的信箱內,最後 userB 使用 MUA 讀信

  5. Mail Server 系統的簡介 • SMTP : • Simple Mail Transfer Protocol,為 Mail 傳輸的協定 • SMTP 傳輸,是透過 port 25 與對方 MTA 交談 • POP : • Post Office Protocol ,為抓取遠端 Mail 的協定 • POP 有 POP2 與 POP3。目前多半使用 POP3 • IMAP : • Internet Message Access Protocol • 與 POP 功能相同,不過有更多功能機制

  6. sendmail 的安裝 • 原始碼編譯安裝的方式 • 請參考附件 • 使用 RPM 安裝的方式 • mount /mnt/cdrom • cd /mnt/cdrom/RedHat/RPMS • 使用 rpm –ihv 安裝下面檔案 : • sendmail-8.xx.xx-xxx.i386.rpm (主程式套件) • sendmail-cf.xx.xx-xxx.i386.rpm (組態套件檔案) • sendmail-doc-xx.xx.xx.i386.rpm (文件說明套件)

  7. 與 MTA 直接交談寄信 • 與 MTA 直接交談寄信 • 請參考附件 • 使用 hlo / ehlo 打招呼。 • 使用 expn or vrfy 可以確認帳號是否存在 • 使用 mail from : username userid@hostname 指定寄信者 e-mail 帳號 • 使用 rcpt to: username userid@hostname 指定寄給 userid@hostname 帳號。rcpt to: 可以多次指定使用者 • 使用 data 開始送內容,使用 . 結束內容傳送, 使用 quit 離開連線

  8. Relay 觀念與設定 • 相關設定檔案與目錄 • 新版 sendmail 8.10.x 相關設定檔案都在 /etc/mail 目錄內。 • sendmail 8.9.x 或者是更舊的版本則是有一部份 的設定檔案放置在 /etc 目錄內 (ex: aliases 與 sendmail.cf) • /var/spool/mail 目錄內為放置使用者 mailbox • /var/spool/mqueue 目錄為放置 queue 信件

  9. sendmail 相關檔案 • sendmail 相關檔案: • /etc/mail/sendmail.cf (舊版在 /etc 目錄內) • /etc/mail/sendmail.mc (舊版在 /etc 目錄內) • /etc/sendmail.cw (sendmail 8.10.x 以後為 local-host-names) • /etc/mail/aliases (舊版在 /etc 目錄內) • /var/log/sendmail.st • /etc/mail/access • /etc/mail/domaintable • /etc/mail/mailertable • /etc/mail/virtusertable • /etc/smrsh • /var/log/maillog

  10. sendmail.cf • sendmail.cf 檔案的功能: sendmail.cf 主要的設定檔案為 sendmail.cf • 主要功能為設定 sendmail 運作環境與相關功能機制 • 信件檔頭相關資訊處理 • 重寫 address • 把信件內容傳給本地端 deliver 程式 • mail relay、deny、virtual host 等處理 • 新版 sendmail 8.10.x or above 檔案放置在 /etc/mail 目錄內。舊版則是在 /etc 目錄

  11. Mail Relay • 何謂 Mail Relay : • 簡單來說,mail relay 就是 sendmail 代為把 信件收信,然後傳遞給指定的收件者 • 在 sendmail 8.8.x 版本以前,sendmail 預設 是開放可以任意 mail relay 的機制。簡單說, 就是任何人都可以連上這台 mail server 寄信 • 在 sendmail 8.8.x 以後,可以任意 mail relay 的功能關掉了。因為目前 internet 爆炸,mail 傳輸量很多,廣告信相當猖獗。為了避免有人 亂用他人的 mail server 發信。

  12. Access Database 檔案 • access database 檔案名稱為 access • 要使用 access 機制,當初建立 sendmail.mc 需要: FEATURE(`access_db', `hash -o /etc/mail/access') • access 主要用途為設定 mail 接收的權限 • access 檔案變更後,需要使用 makemap 建立 access.db 檔案。ex: makemap hash /etc/mail/access < /etc/mail/access 如此會建立 sendmail 實際使用的 access.db 檔案

  13. Access Database 檔案 • access 檔案內容敘述: • OK • 預設主機名稱不存在會發出錯誤,加入此項可以忽略 • OK 同時也是等於 RELAY • RELAY • 允許該連線端可以透過該 Mail Server 發信 • DISCARD • 把信件丟棄 • DENY • 發出錯誤,拒絕連線端 mail 請求 • ### any text • 與 DENY 功能一樣,不過可以自訂錯誤訊息

  14. Access Database 檔案 • access 檔案例子: • not_exist.com.tw OK • mail.xxxx.com.tw RELAY • 210.242.57 RELAY • some.xxxxx.com “550: reject this domain” • spam.xxx.edu DISCARD • xxx@hotmail.com “550: reject this mailbox” • sendmail 8.10.x or above 新增: • connect:mail.xxx.com.tw “550: Spam MailServer” • from:some.xxxx.edu “550: from host not allow” • to:userid@hostname.com “550: do not allow this ID”

  15. Relay-domains 檔案 • relay-domains 檔案 • relay-domains 檔案用途與 access 類似,不過只有 relay 相關功能設定而已 • relay-domains 檔案內容只有加上主機名稱 or ip,後面不用加上 RELAY 的敘述 • relay-domains 檔案範例: • .xxxxx.com.tw • 192.168 • host.xxx.com.tw

  16. Aliases 功能機制 • aliases 檔案 (/etc/mail/aliases or /etc/aliases) • aliases 檔案,為別名檔案 • aliases 可以產生一個帳號,可以應對寄給許多帳號 • 改過 aliases 檔案,要執行 newaliases 更新 • 可以在 sendmail.cf 檔案內自訂其他 aliases 檔案 • aliases 範例 • antispam: root • somebody : userid1,userid2,xxx@hostname • maillist: “|/usr/sbin/wrapper maillinst” • people: :include:/path/email_list/filename

  17. Forward 功能機制 • forward 為轉寄的功能 • 提供使用者可以把寄到 mail server 的信件, 自動轉寄到另外一個信箱 • 使用者在自己家目錄內建立 .forward 檔案, 權限為 600,內容就是要轉寄的位址。 • 若是希望轉寄還可以保留一份不要刪除, 要加上 \userid 。 userid 就是自己的 id • 使用範例: • \myid,peter@ms1.hinet.net,peter

  18. Virtusertable 功能機制 • virtusertable 檔案 (/etc/mail/virtualuser) • 為應對某個 id 對應到另外的 id 或者是把某個 id 對應到另外的 e-mail 帳號。或者是把某個 e-mail 帳號對應到另外一個 id 或者是帳號 • 一般是用來解決一台 Mail Server 有多個主機名稱, 好讓於相同 id 能夠對應到不同的 id 使用者, 或者是對應到另外一個 e-mail 帳號 • virtusertable 檔案使用範例: service@mail.xxxxx.com.tw peter service@mail.yyyyy.com.tw john

  19. Mailertable 功能機制 • Mailertable 檔案為 /etc/mail/mailertable,該檔案是用來指定部份信件的轉信主機。 • 格式: 收件人 host mailer:host 配對 。舉例: .xxxx.tw smtp:mail.xyz.com.tw mail.xyz.com.tw esmtp:mail.xyz.net.tw .ooxx.com.tw esmtp:[192.168.1.1] 當收信人帳號網域是 xxxx.tw 結尾,把信件丟給 mail.xyz.com.tw MTA 處理。當收信人帳號主機名稱是 mail.xyz.com.tw ,把信件 丟給 mail.xyz.com.tw MTA 處理 (使用 ESMTP) 當收信人帳號主機網域是 ooxx.com.tw ,把信件丟給 192.168.1.1 該主機的 MTA 處理 (使用 ESMTP)

  20. 其他功能機制 • 指定透過另外一個 MTA 代為寄信: • sendmail.mc 檔案加入: (方法一) define(`SMART_HOST', `mail.xxxxx.com.tw') • sendmail.cf 檔案加入: (方法二) DSmail.xxxx.com.tw • 注意,所指定的 mail server 主機當然要能夠 允許您透過他連線寄信

  21. Spam Mail • spam mail : • 廣告信,不受歡迎的 mail • mail bomb,郵件炸彈,影響系統運作 • 使用 quota 管制使用者 mailbox 可使用大小 • spammer • 專寄發 spam mail 的人,稱呼為 spammer • spam mail 解決方式: • Access Control List (/etc/mail/access) 控管 • 使用 firewall / filter 等方式阻擋連線

  22. 相關檔案與設定 • makemap : 讀取文字檔案建立 sendmail 讀取的二進位檔 • newaliases : 讀取 aliases 檔案建立 aliases.db 檔案 • mailq : 觀察 mqueue 待寄信件狀態 (ex: mailq –v) • /var/log/maillog : mail 發送的記錄檔案 • /etc/mail/sendmail.cf : DMaaa.bbb.ccc.ddd O AliasFile=/path/filename O MaxMessageSize=xxxxx O PrivacyOptions=authwarnings,noexpn,novrfy O MaxDaemonChildren=xx O SmtpGreetingMessage=$j Sendmail $v/$Z; $b

  23. POP3/IMAP 安裝 • 使用 rpm 套件安裝 : • redhat、mandrake、openlinux 等提供的 pop3、 pop2、imap 等 daemon 程式放在 imap 套件內 • 步驟 : mount /mnt/cdrom cd /mnt/cdrom/RedHat/RPMS rpm –ihv imap*

  24. POP3/IMAP 啟動設定 • pop3/imap 服務,是透過 inetd 啟動該服務,所以 /etc/inetc.conf 檔案需要有 pop3d 、imap 敘述。 • /etc/inetd.conf : pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d imap stream tcp nowait root /usr/sbin/tcpd imapd • /etc/services 檔案內需要有對應的項目 pop-3 110/tcp # POP version 3 imap 143/tcp # imap version 2 • 變更了 inetd.conf 檔案,需要重新啟動 inetd daemon • /etc/rc.d/init.d/inet restart

  25. fetchmail 程式的使用 • fetchmail 是一個可以透過 pop2、pop3、imap 等協定 到指定 mail server 把信件抓回,然後寄回到 使用者 mailbox 內的程式軟體 • fetchmail 的使用: fetchmail -p POP3 -u kenduest mail.cynix.com.tw • .fetchmailrc 自動化設定檔案: poll mail.xxxxx.com.tw with proto POP3 user “userid" there with password “passwd" is l_id here mail.xxxxx.com.tw : mail server 名稱 userid : 使用者 id,passwd : 密碼,l_id : 本地端 id

More Related