簡介
毫無疑問,雲計算是今年和今後幾年IT界最重要的概念之一,而随着雲的提出,各種應用也不斷出現,在雲計算領域,各大著名IT廠商都推出自己的特有“雲”。在一個新技術的探索階段,在雲計算的模式最終成熟之前,任何一方任何一家廠商甚至是個人開發者都有權利來解釋它将來的雲計算的模樣。在這些概念與實踐中,微軟Azure是不能被業界漠視的,畢竟,在PC作業系統領域、在辦公軟體領域、在開發工具領域,在許多軟體界相關的領域,微軟都是最重要的力量,它切切實實地出現在我們工作生活的應用中。這可能也是微軟走向雲端最可炫耀的資本:雖然雲計算是一種新興的計算模式,但它走向成熟是一個演變的過程,它的技術應用也并不是在瞬間橫空出世,雲不能建造在空中樓閣之一,雲計算必定是從曆史中走來。
什麼是Azure
用微軟自己給Azure下的定義,它是一個雲計算作業系統平台,可以為開發者提供按需定制的計算服務和基于微軟資料中心的Web應用程式。已推出将近兩年的Windows Azure platform融合了許多微軟應用。其中包括Windows Azure、SQL Azure和Windows Azure platform AppFabric。Windows Azure可看成一個雲計算服務的作業系統;SQL Azure是雲中的資料庫;AppFabric是一個基于Web的開發服務,它可以把現有應用和服務與雲平台的連接配接和互操作變得更為簡單。通俗點來說,微軟想通過Azure來打通一條從本機到網際網路的通道,而本機的常見應用在Azure的協調下可以很好地應用到網間,微軟首席架構同Ray Ozzier的描述令人想入非非:“我們已經提出了一項以改變規則的技術,将帶來新的機遇,Web開發者和企業開發者将會一樣。Azure雲計算服務平台将符合微軟所做出的承諾,開放性及互操作性,我們将承諾改變經營模式及使用者以往所建立的習慣。最重要的是,它使我們的客戶選擇的權力部署在以雲計算為基礎的網際網路服務上,或通過伺服器,或把它們混合起來以任何方式提供給需要的業務。”微軟想通過Azure團結更多的開發人員,将旗下的基于Web服務的.net在這個平台上盤活,另外,資料庫服務系統SQL也是其中的一枚很重要棋子,并且,現即時通訊與搜尋領域推廣的Live 服務也納入其中,當然,還少不了基于Web的其他服務。
雲平台示意
Azure目的
以雲為名義,Azure很容易令人想到亞馬遜的雲平台,和Google的雲應用平台App Engine,微軟此次出手的力度自然絲毫不遜于賣書的亞馬遜和搜尋大哥Google,因為在非開源的開發工具市場,微軟的号召力還是無人能敵的,其老的Visual Studio系列和新的.net系列成為很多程式員的飯碗,現在Azure通過網絡繼續向開發人員們抛出橄榄枝。
Azure是一個讓開發者通過微軟現有的開發建立web應用程式的雲計算平台,還可以通過微軟資料中心部署在該平台上。看一下它們的特性,就不難分析它的目的了。
首先,它給現存的應用程式增加Web服務便利,而且為後續的管理提供了友善,可以用最少的必備資源在Web建立、修改和部署應用程式,此外,為基于海量存儲、批處理、高強度大容量計算等無前提的執行服務,這就使得開發者或使用者可以快速廉價地建立、試驗、調試、和部署Web服務。而對于金融危機目前的形勢下,這種方法不僅削減建立和擴建資源必需成本,還使IT管理成本削減。并且微軟開出了自己的第一張免費清單,對于技術方面對于開發人員免費,微軟把Azure建成為開放平台。
遍尋上述特點中,一個是Web,第二個是開放。Azure其實是以雲的目的為Web而生的,而通過開放和免費可以加強其人脈。
具體步驟:
1. 準備工作
為了避免發生端口沖突、程式沖突等現象,應将系統自帶的sendmail服務停用,并将預設啟動狀态設為關閉。由于Postfix系統相容并沿用了Sendmail的部分設定,是以建議保留Sendmail軟體包,而不是直接解除安裝。
除此以外,因在下一章中需要Postfix支援SASL認證(通過軟體包cyrus-sasl),是以應确認已安裝好相關軟體包。
2. 源碼編譯及安裝
1) 建立運作組、使用者
為了加強郵件服務的權限控制,需要建立專門的運作組賬号postfix和postdrop,以及使用者賬号postfix。運作使用者不需要直接登入到系統,也無需建立宿主檔案夾。
2) 解包
将下載下傳的postfix源碼包解壓,釋放到/usr/src/目錄下,并切換到展開後的源碼目錄。
3) 配置
Postfix軟體包的配置步驟使用“make makefiles”進行,具體配置選項可以參考源碼目錄中README_FILES/檔案下的說明檔案。例如,若要使Postfix支援發信認證,可參考檔案SASL_README中的相關資訊。
其中,編譯參數CCARGS和AUXLIBS的作用如下:
Ø CCARGS參數:為編譯器提供額外的擴充參數。例如,啟用SASL認證,并指出cyrus-sasl認證程式的頭檔案位于/usr/include/sasl/。
Ø AUXLIBS參數:為編譯器指出位于标準位置之外的額外函數庫。例如,cyrus-sasl認證程式的庫檔案位于/usr/lib/sasl2/。
注:1. 如果配置寫錯誤,需要重新配置,首先輸入“make makefies clean”指令清除。
2.如果配置失敗,可能是缺少db*-devel包。
4) 編譯并安裝
注:如果編譯失敗,除了缺少ncurses-devel包之外,可能還缺少cyrus-sasl*包。
執行make install指令以後,最後階段會需要設定一些安裝參數,一般直接按Enter鍵接受預設或自動識别的配置即可。完成安裝以後,應執行postconf –a指令檢查所支援的認證方式,若輸出結果中未包含“cyrus”,則應檢查配置步驟,糾正錯誤後重新進行配置、編譯并安裝。
3. Postfix服務控制
Postfix郵件系統的控制主要通過/usr/sbin/postfix指令進行,結合start、stop、check、reload選項分别實作啟動、停止、檢查、重載服務的操作。
需要注意的是,實際監聽服務的程序名并不是postfix,而是master。
當重新調整郵件服務配置以後,可以通過check選項進行基本的文法檢查,檢查無誤後再通過reload選項來重載服務。
n 主要目錄和配置檔案
1. 主要目錄
Ø /etc/postfix:包括postfix服務的主配檔案、各類腳本、查詢表等。
Ø /usr/libexec/postfix/:包括postfix服務的各個伺服器程式檔案。
Ø /var/spool/postfix/:包括postfix服務的郵件隊列相關的子目錄,每個隊列子目錄用于儲存不同的郵件。常見的幾個子目錄及用途如下所述:
u incoming(傳入):存放剛接收到的郵件。
u active(活動):存放正在投遞的郵件。
u deferred(推遲):存放以前投遞失敗的郵件。
u hold(限制):存放被阻止發送的郵件。
u corrupt(錯誤):存放不可讀或不可分析的郵件。
Ø /usr/sbin/:包括postfix服務的各種管理工具程式,這些程式檔案名以post開頭。主要的幾個程式檔案及其用途如下所述:
u postalias:構造、修改和查詢别名表。
u postconf:顯示和編輯main.cf配置檔案。
u postfix:啟動、停止postfix郵件服務,要求有root使用者權限。
u postmap:構造、修改或者查詢查詢表檔案(記錄如别名等映射關系的檔案)。
u postqueue:檢視郵件隊列,一般使用者也可以使用。
u postsuper:管理郵件隊列,要求有root使用者權限。
2. 主要配置檔案
Postfix郵件系統的主要配置檔案包括main.cf、master.cf,都位于/etc/postfix/檔案夾下。其中,main.cf是postfix服務的配置檔案,設定郵件伺服器時以修改此檔案的内容為主;而master.cf是主程式master的配置檔案,一般不需要修改。
在主配置檔案main.cf中,可以調整的各種配置參數有近千個。大部分的配置參數都被自動設定了預設值,如果在main.cf檔案中沒有對應的設定,那麼postfix伺服器将使用預設值來啟動及運作。是以,隻需要修改很少的幾個配置參數,就可以滿足基本郵件伺服器的要求了。
使用postconf工具可以輔助配置過程,不帶任何選項時将列出目前postfix伺服器啟用的所有配置參數,若添加“-n”選項則隻列出使用非預設值的配置參數。
為了避免配置參數過多帶來的幹擾,提高易讀性,建議對main.cf配置檔案進行适當的簡化,隻保留與預設配置不同的參數。
3. Postfix的日志檔案
Postfix郵件服務的日志檔案位于/var/log/maillog,該檔案中記錄了本機中的郵件進出相關的資訊,包括郵件服務的啟動、出錯、與其他SMTP伺服器的會話資訊等。在維護郵件伺服器的過程中,經常會使用帶“-f”選項的tail指令來跟蹤日志變化。
當日志内容較多時,還可以使用egrep指令進行過濾,隻檢視包含reject、error、fatal等較重要的記錄。
n 配置SMTP發信服務
在整個電子郵件系統中,postfix基于SMTP協定提供郵件傳遞服務,并負責将郵件分發到使用者的郵箱空間。對postfix服務的配置主要通過修改主配置檔案/etc/postfix/main.cf來進行。
在main.cf檔案中,以“#”号開頭的行表示注釋資訊,其他行表示有效設定。設定行的格式與為shell變量指派的形式非常類似,采用“配置參數=值”的形式,其中等号兩邊的空格可有可無。當某個配置參數包含多個值時,使用逗号或空格進行分隔,也允許換行進行分隔,但行首至少應有一個空格。
1. 設定main.cf,并啟動服務
在上述配置中,将mydestination的值設定為“$mydomain,$myhostname”,表示将@benet.com和@mail.benet.com域作為本地目标域,允許投遞到本地郵箱空間。各使用者的郵件将被儲存到宿主目錄下的Maildir/檔案夾中。
郵箱空間用來存放每個使用者的電子郵件内容。在postfix伺服器中,支援兩種最常見的郵箱存儲方式:Mailbox、Maildir(當指定的存儲位置最後一個字元為“/”時,自動使用Maildir存儲方式)。
Ø Mailbox:同一個使用者的所有郵件内容存儲為單個檔案,通常儲存在/var/spool/mail/目錄下,檔案名與使用者名相同。Mailbox存儲方式比較古老,當郵件數量較多時會降低查詢和管理的效率。
Ø Maildir:使用目錄結構來存儲使用者的郵件内容,每一個使用者使用一個檔案夾,每封郵件都作為一個獨立的檔案存放。Maildir方式的存取速度和效率要好一些,對于管理郵件内容也更加友善,大多數較新的郵件伺服器都采用這種方式。
2. 添加郵箱賬号
Postfix伺服器預設使用本機中的系統使用者作為郵件賬号,是以使用時隻需要添加Linux使用者賬号即可。測試時,可以添加兩個郵件賬号xiaoqi和lisi,并為其設定密碼。
3. SMTP發送郵件測試
将postfix伺服器傳遞使用之前,最好先在本機測試一下發信功能是否正常。指令行中的測試工作可以通過telnet指令進行。例如:可以連接配接到郵件伺服器的25端口,并輸入相關的SMTP指令,
以郵件賬戶[email protected]作為發件人,
給[email protected]發送一封測試郵件。
郵件發送并投遞成功以後,可以到伺服器中lisi使用者的宿主目錄下進行檢視,新接收到的郵件儲存在Maildir/new/目錄中。
通過以上測試結果,不難發現已經能夠通過postfix伺服器發送并投遞郵件了,但是還隻能在伺服器本機檢視收到的郵件。若要使收件人能夠從其他主機查收郵件,還需要進一步安裝POP3或IMAP伺服器,以提供郵件的下載下傳服務。
n 配置POP/IMAP收信服務
Dovecot是一個安全性較好的POP3/IMAP伺服器軟體,響應速度快而且擴充性好。Dovecot預設也使用Linux的系統使用者,并通過PAM(Pluggable Authentication Module,可插拔認證子產品)機制進行身份認證,隻有通過認證後才允許使用者收取郵件。
1. 編譯安裝Dovecot軟體包
1) 預先建立運作使用者
2) 源碼編譯安裝
注:在編譯安裝之前,先确認pam-devel包是否安裝。如果沒有安裝,必須先安裝成功後,然後再配置。
3) 添加為系統服務dovecot
2. 建立配置檔案,并啟動服務
1)建立配置文檔
Dovecot的配置檔案位于/etc/dovecot/目錄下,主配置檔案為dovecot.conf,預設并沒有此檔案,需要參考樣例目錄重新建立。為了友善以後的擴充配置,建議将各種樣例配置檔案都複制到/etc/dovecot/目錄下。
若要支援系統使用者認證,還應建立相應的PAM認證檔案/etc/pam.d/dovecot,具體内容請參考/etc/pam.d/目錄下的其他檔案。
2)調整主配置檔案
為了降低初學難度,這裡隻使用系統使用者認證,而并不使用SSL等安全機制。是以需要修改主配置檔案dovecot.conf,将“!include conf.d/*.conf”行改為“!include conf.d/10-auth.conf”,并禁用SSL機制,允許在驗證時使用明文的使用者名和密碼。除此之外,還需要指定郵箱格式及存儲位置。
4) 啟動dovecot服務,并确認監聽狀态
Dovecot預設已配置為監聽POP3/IMAP郵件協定,是以啟動dovecot服務後,可以檢視對TCP端口143、110的監聽。
3. POP3接收郵件測試
使用telnet連接配接到Dovecot郵件伺服器的110端口,輸入POP3操作指令,
以郵箱賬戶[email protected]的身份查收郵件内容。測試過程如下所述:
通過以上測試結果,不難發現使用者已經能夠通過Dovecot伺服器收取郵件。該伺服器具備了SMTP發信功能、POP3/IMAP收信功能,一台簡單的郵件伺服器的設定就基本上大功告成了。
n 測試發信、收信功能
1. 設定郵箱賬号
在點選上圖中的“測試賬戶設定”後,會彈出如下圖所示的視窗,并自動測試。如果顯示狀态都為“已完成”,說明設定沒問題。
2. 發送測試郵件
3. 接受郵件測試
在測試收信、發信的過程中,若出現失敗的情況,應及時檢視/var/og/maillog郵件進出日志,并根據相關資訊分析、排查故障。
n 郵件系統的角色
Ø MTA(Mail Transfer Agent,郵件傳輸代理):一般被稱為郵件伺服器軟體。MTA軟體負責接收用戶端軟體發送的郵件,并将郵件傳輸給其他的MTA程式,是電子郵件系統中的核心部分。
Ø MUA(Mail User Agent,郵件使用者代理):一般被稱為郵件用戶端軟體。MUA軟體的功能是為使用者提供發送、接收和管理電子郵件的界面。
Ø MDA(Mail Delivery Agent,郵件分發代理):MDA軟體負責在伺服器中将郵件分發到使用者的郵箱目錄。MDA軟體相對比較特殊,它并不直接面向郵件使用者,而是在背景默默的工作。有時候MDA的功能可以直接內建在MTA軟體中,是以經常被忽略。
n 郵件通信協定
Ø SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協定):主要用于發送和傳輸郵件。MUA使用SMTP協定将郵件發送到MTA伺服器中,而MTA将郵件傳輸給其他MTA伺服器時同樣也使用SMTP協定。SMTP協定使用的TCP端口為25。對于支援發信認證的郵件伺服器,将會采用擴充的SMTP協定(Extended SMTP)。
Ø POP(Post Office Protocol,郵局協定):主要用于從郵件伺服器中收取郵件。目前POP協定的最新版本是POP3。大多數MUA軟體都支援使用POP3協定,是以該協定應用最為廣泛。POP3協定使用的TCP端口号為110。
Ø IMAP(Internet Message Access Protocol,網際網路消息通路協定):同樣用于收取郵件。目前IMAP協定的最新版本是IMAP4。與POP3相比較,IMAP4協定提供了更為靈活和強大的郵件收取、郵件管理功能。IMAP4協定使用的TCP端口号為143。
總結!雲風暴愈演愈烈........