茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1675552 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_0040.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [轉貼]建置 POSTFIX 伺服器

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]建置 POSTFIX 伺服器
建置 POSTFIX 伺服器

作者:李忠憲 shane@mail.syups.tp.edu.tw

200 3 /1 2 / 09

增補第九章:2004/01/05

增補第零章及內容更新:2006/05/29

前言

postfix 是除了 sendmail 以外 ,最被廣泛採用的 Linux 郵件伺服器,一般使用的觀感不外乎兩點:

一、安全:垃圾信過濾機制較聰明,就算什麼都沒設定,也能濾掉許多 sendmail 擋不到的信。

二、簡單:不需設定,伺服器就能正常運作。

雖然以上談的這兩點特色,到底是好是壞還有許多爭議,但 Postfix 對於郵件服務需求量不高的校園來說,可以說是一個很好的選擇!

零、Email 概論

電子郵件系統的發展源遠流長,早從網路萌芽階段就被實作出來,早期電子郵件系統僅能應用在 ARPANET 網路上( 1972 年,當時 Internet 尚未誕生,而且是使用 FTP 傳送電子郵件),要參與交換郵件的主機都 必須安裝 sendmail ,要看信必須 telnet 到主機上才看得到。在 1982 年時因應網際網路的誕生,制定 SMTP 協定作為不同網路系統間交換郵件的標準,當然在這樣的年代裡,還沒有病毒信和垃圾郵件的困擾。

電子郵件普及後,連一般無法安裝 sendmail 的工作站也都有寄信和收信的需求,這時就需要開發另一種通訊協定來應付這個需求,那就是 POP ,這個通訊協定用來讓工作站可以連上郵件伺服器,進行帳號認證 後下載自己的郵件,並能將伺服器上的郵件刪除,目前是使用第三個版本稱為 POP3 。另外還有一個功能更強大的通訊協定稱為 IMAP ,它除了收信外還可以進行郵件信箱管理,多半應用於網頁郵件系統,例如: SquirrelMail...... 等 。


由於 SMTP 通訊協定當初在設計時並未考量使用者認證的問題(僅設計了遞送功能),另一方面能提供使用者認證的 POP3 卻又未設計信件上傳功能(僅設計下載功能),這樣的設計當然會衍生出許許多多的弊病,包括郵件來源不明、反覆多餘的濾信機制、郵件轉寄難以防堵、郵件帳號驗證有安全漏洞、郵件容易偽裝 ...... 等等弊端。 而這些問題必須從通訊協定著手改良才行,目前新版的 SMTP 通訊協定已經加入了認證與安全連線機制足以應負此需求。

在實際安裝設定之前,先介紹幾個電子郵件系統的術語:


MUA 使用者透過這個程式與郵件伺服器溝通,包括收信(以 POP3 連接收信伺服器程式 imapd )或寄信(以   SMTP 連接 MTA ),例如: Outlook Express...... 等。
MTA 使用 SMTP 通訊協定將信件傳遞到不同郵件主機上面,例如: sendmail, postfix, Qmail...... 等。
MSA 是新版 sendmail 發展給 SSMTP 進行 TLS/SSL 連線的 client 端代理器。
MDA 收到信後將信件分配到不同使用者信箱內,算是 MTA 的一個子系統,譬如 BBS 從定義上來說也算是 MDA 的 一種,有些 MDA 被設計來進行濾信動作,它們必須在 local 端運作,因此又被稱為 LDA ,例如: procmail...... 等。
MailBox 尚未被使用者下載的郵件,會暫存在伺服器的硬碟空間裡,稱之為信箱。所有使用者信箱的總合必須約等於該分割區總容量的一半,以避免造成信箱尚有空間但郵件系統卻無法運作的現象。
M ail Gateway 是一種特殊的郵件伺服器,通常扮演代理器的角色,負責統籌某機構內所有信件的收發,並分配郵件給下屬的郵件伺服器群,透過這個機制能夠加速郵件的交換,並且能夠進行一致的濾信控制。

對於大型組織來說,通常會有超過一臺郵件伺服器,如果每一台都要做郵件過濾,管理上很麻煩,因此市面上已出現硬體式郵件閘道器,所有的郵件寄入或寄出都會經由該設備過濾後再分送給 下屬的郵件伺服器群。

sendmail 是最多人使用的 MTA ,但同時也是安全漏洞最多的系統,如果您安裝 sendmail ,那麼定期更新程式是免不了的工作,為了這個原因有許多版本的 Linux 改採 postfix 作為內建電子郵件程式,如果安全需求更高則可以考慮購買商業版的 Qmail ,這支程式到目前為止尚未被發現有任何安全漏洞。

使用 Mail Gateway 時必需配合進行 DNS MX 記錄的設置,以 Windows DNS Server 為例:


MX紀錄中應包含三個欄位,首先是郵件遞送的目的地(以網域名稱來判斷),接著指定要處理信件的伺服器,最後是優先權,數字越小越優先。一般觀念中認為 MX 紀錄是用來讓對方寄信給我們時查詢用的,這觀念並不完全正確,事實上當我們的郵件主機嘗試寄信時也會去查詢 MX 紀錄,以便得知是否要將信件傳遞給某台特定主機由它統一轉信,這個機制是用來實作 mail gateway ,請用這個觀點來理解 sendmail.mc 中跟 MX 相關的選項,這樣觀念才不會錯誤!

電子郵件結構

下表是一封完整的電子郵件內容,你可以在 Outlook Express 中在信件上按右鍵選「內容」來觀察。當電子郵件在郵件主機之間傳送時,會紀錄詳細的傳送過程,稱為信封。信封是給郵件主機追蹤郵件用的,對一般使用者意義並不大,因此通常會被 MUA 應用程式隱藏起來。信件本文則又區分為標頭和內文兩個部分:標頭用來紀錄寄信人、收信人、信件主旨、優先等級 ...... 等等,這些都會用來作為郵件索引,以方便使用者搜尋想閱讀的信件;郵件內文就是我們看到的信件內容,它允許使用 MIME 格式來夾帶檔案。

當郵件主機收到信件時,會先進行郵件剖析將各個部分分離出來以方便進行後續處理,所謂後續處理包含:網址偽裝、使用者偽裝、檢查寄信人及收信人欄位是否完整、檢查是否轉信、分信、濾信 ...... 等等,這些過程將在後面討論。

mail envelope (信封)
Return-Path: <syups@mail.syups.tp.edu.tw>

Received: from www.syups.tp.edu.tw (www.syups.tp.edu.tw [192.57.1.2]) (authenticated bits=0) by mail.syups.tp.edu.tw (8.12.8/8.12.5) with ESMTP id h2K3qpnv011171 for <shane@mail.syups.tp.edu.tw>; Thu, 20 Mar 2003 11:52:51 +0800
Received: from mail pickup service by www.syups.tp.edu.tw with Microsoft SMTPSVC; Thu, 20 Mar 2003 11:40:30 +0800
mail content ( 信 件本文)
 
Header (信件標頭)
From: syups@mail.syups.tp.edu.tw
To: <shane@mail.syups.tp.edu.tw>
Subject: ● 修繕 報修 通知 ●
Date: Thu, 20 Mar 2003 11:40:30 +0800
Body (信件內文)
●報修者姓名:林 XX ,他的E-mail是:xxx@mail.syups.tp.edu.tw

●問題類別:技術問題
●問題主旨:114電腦一直當機
●問題內容:
●請系統管理師盡速處理。
<<附加檔案>>

啟動收信服務

Fedora 已經不再使用過去 RedHat 時代所提供的 Super Server(xinetd)簡易服務,而改採安全性更高的 dovecot 獨立伺服器,設定上更為簡易,風格也近似於 Postfix 的設定方式,打開設定檔 /etc/dovecot.conf :

通訊協定設定

#protocols = imap imaps pop3 pop3s 設定要啟動的通訊協定,建議使用 pop3s

認證方式設定


#disable_plaintext_auth = no 關閉純文字驗證功能,建議設為 yes
#ssl_disable = no 關閉加密驗證功能,建議設為 no
#ssl_cert_file = /etc/pki/dovecot/ certs/dovecot.pem 指定 SSL 驗證金鑰(公鑰)
#ssl_key_file = /etc/pki/dovecot/ private/dovecot.pem 指定 SSL 驗證金鑰(私鑰)

登入牢籠設定

#login_dir = /var/run/dovecot/login 登入殼層後所對應的資料夾,設定給 chroot 使用
#login_chroot = yes 開啟登入牢籠,會用上述路徑取代 / 目錄
#login_user = dovecot 登入後模擬成 dovecot 身份,請檢查 /etc/passwd 是否有此帳號

如果要啟用 SSL 安全通道,讓支援 spop3 或 simap 的 MUA 能夠以更安全的方式來連線,請執行底下的指令,以便建立安全憑證, 並將此兩個金鑰檔案的權限設定為 600 :

cd /etc/pki/dovecot
openssl req -new -x509 -nodes -out certs/dovecot.pem -keyout private/dovecot.pem -days 3650

配合 pop3s 的使用,請修改 outlook express 的設定:

手動測試 POP3 Server


想要知道 POP3 伺服器是否有正常運作,我們可以直接以 telnet 來進行測試,這樣做可以直接看到伺服器的反應,假設使用 Outlook Express 來測試,則伺服器的回應訊息大部分都會被隱藏起來,只有當發生問題時才會以蹦現視窗通知你,這樣比較無法達到學習效果,請依照下列步驟實際操作練習:

$ telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
+OK Dovecot ready. //POP3 歡迎訊息
AUTH // 查詢認證機制
+OK
PLAIN // 支援的認證方式為純文字密碼
.
AUTH PLAIN // 提出純文字認證
+
USER shane // 送出登入帳號
+OK
 PASS mypasswd // 送出密碼
+OK Logged in.
LIST  // 列出信件
+OK 1 messages:
1 741
// 第一封信共 741 Byte

.
RETR 1 // 下載第一封信
+OK 741 octets
Return-Path: <mailer@mail.syups.tp.edu.tw>
Received: from www.syups.tp.edu.tw (www.syups.tp.edu.tw [192.57.1.2])
by mail.syups.tp.edu.tw (8.12.8/8.12.5) with SMTP id h2EAfGkf032324
 for <shane@mail.syups.tp.edu.tw>; Fri, 14 Mar 2003 18:41:16 +0800
From: mailer@mail.syups.tp.edu.tw
Received: from mail pickup service by www.syups.tp.edu.tw with Microsoft SMTPSVC;
Fri, 14 Mar 2003 18:29:44 +0800
To: <shane@mail.syups.tp.edu.tw>
Date: Fri, 14 Mar 2003 18:29:44 +0800
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Message-ID: <WWWXf2LTrpwACkWHZqY000008b2@www.syups.tp.edu.tw>
X-OriginalArrivalTime: 14 Mar 2003 10:29:44.0578 (UTC) FILETIME=[A1464E20:01C2E]
Status:

寄信單位:5年04班 寄信人:黃元奎

.
DELE 1 // 刪除第一封信件

+OK Marked to be deleted.
QUIT // 結束連線
+OK Logging out, messages deleted.
Connection closed by foreign host.

前一個主題 | 下一個主題 | | | |

討論串




Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|