郵件系統(tǒng)postfix安裝配置指南
在Internet世界中,大部分的電子郵件都是通過sendmail來投遞的,大約有100萬用戶使用sendmail,每天投遞上億封郵件。這真實(shí)一個(gè)讓人吃驚的數(shù)字。Postfix試圖更快、更容易管理、更安全,同時(shí)還與sendmail保持足夠的兼容性。以下介紹postfix安裝配置
郵件系統(tǒng)postfix安裝配置
一、postfix概述
postfix是WietseVenema在IBM的GPL協(xié)議之下開發(fā)的MTA(郵件傳輸代理)軟件。下面一段話摘自postfix的官方站點(diǎn):“postfix是WietseVenema想要為使用最廣泛的sendmail提供替代品的一個(gè)嘗試。在Internet世界中,大部分的電子郵件都是通過sendmail來投遞的,大約有100萬用戶使用sendmail,每天投遞上億封郵件。這真實(shí)一個(gè)讓人吃驚的數(shù)字。Postfix試圖更快、更容易管理、更安全,同時(shí)還與sendmail保持足夠的兼容性?!?BR>
二、postfix的特點(diǎn)
1.postfix是免費(fèi)的:
postfix想要作用的范圍是廣大的Internet用戶,試圖影響大多數(shù)的Internet上的電子郵件系統(tǒng),因此它是免費(fèi)的。
2.更快:
postfix在性能上大約比sendmail快三倍。一部運(yùn)行postfix的臺式PC每天可以收發(fā)上百萬封郵件。
3.兼容性好:
postfix是sendmail兼容的,從而使sendmail用戶可以很方便地遷移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、NIS、和~/.forward文件。
4.更健壯:
postfix被設(shè)計(jì)成在重負(fù)荷之下仍然可以正常工作。當(dāng)系統(tǒng)運(yùn)行超出了可用的內(nèi)存或磁盤空間時(shí),postfix會自動減少運(yùn)行進(jìn)程的數(shù)目。當(dāng)處理的郵件數(shù)目增長時(shí),postfix運(yùn)行的進(jìn)程不會跟著增加。
5.更靈活:
postfix是由超過一打的小程序組成的,每個(gè)程序完成特定的功能。你可以通過配置文件設(shè)置每個(gè)程序的運(yùn)行參數(shù)。
6.安全性
postfix具有多層防御結(jié)構(gòu),可以有效地抵御惡意入侵者。如大多數(shù)的postfix程序可以運(yùn)行在較低的權(quán)限之下,不可以通過網(wǎng)絡(luò)訪問安全性相關(guān)的本地投遞程序等等。
三、postfix的總體結(jié)構(gòu)
postfix由十幾個(gè)具有不同功能的半駐留進(jìn)程組成,并且在這些進(jìn)程中并無特定的進(jìn)程間父子關(guān)系。某一個(gè)特定的進(jìn)程可以為其他進(jìn)程提供特定的服務(wù)。大多數(shù)的postfix進(jìn)程由一個(gè)進(jìn)程統(tǒng)一進(jìn)行管理,該進(jìn)程負(fù)責(zé)在需要的時(shí)候調(diào)用其他進(jìn)程,這個(gè)管理進(jìn)程就是master進(jìn)程。該進(jìn)程也是一個(gè)后臺程序。這些postfix進(jìn)程是可以配置的,我們可以配置每個(gè)進(jìn)程運(yùn)行的數(shù)目,可重用的次數(shù),生存的時(shí)間等等。通過靈活的配置特性可以使整個(gè)系統(tǒng)的運(yùn)行成本大大降低。
postfix的郵件隊(duì)列(mailqueues)
postfix有四種不同的郵件隊(duì)列,并且由隊(duì)列管理進(jìn)程統(tǒng)一進(jìn)行管理:
1.maildrop:本地郵件放置在maildrop中,同時(shí)也被拷貝到incoming中。
2.incoming:放置正在到達(dá)或隊(duì)列管理進(jìn)程尚未發(fā)現(xiàn)的郵件。
3.a(chǎn)ctive:放置隊(duì)列管理進(jìn)程已經(jīng)打開了并正準(zhǔn)備投遞的郵件,該隊(duì)列有長度的限制。
4.deferred:放置不能被投遞的郵件。
隊(duì)列管理進(jìn)程僅僅在內(nèi)存中保留active隊(duì)列,并且對該隊(duì)列的長度進(jìn)行限制,這樣做的目的是為了避免進(jìn)程運(yùn)行內(nèi)存超過系統(tǒng)的可用內(nèi)存。
四、postfix對郵件風(fēng)暴的處理
當(dāng)有新的郵件到達(dá)時(shí),postfix進(jìn)行初始化,初始化時(shí)postfix同時(shí)只接受兩個(gè)并發(fā)的連接請求。當(dāng)郵件投遞成功后,可以同時(shí)接受的并發(fā)連接的數(shù)目就會緩慢地增長至一個(gè)可以配置的值。當(dāng)然,如果這時(shí)系統(tǒng)的消耗已到達(dá)系統(tǒng)不能承受的負(fù)載就會停止增長。還有一種情況時(shí),如果postfix在處理郵件過程中遇到了問題,則該值會開始降低。當(dāng)接收到的新郵件的數(shù)量超過postfix的投遞能力時(shí),postfix會暫時(shí)停止投遞deferred隊(duì)列中的郵件而去處理新接收到的郵件。這是因?yàn)樘幚硇锣]件的延遲要小于處理deferred隊(duì)列中的郵件。
五、postfix對無法投遞的郵件的處理
當(dāng)一封郵件第一次不能成功投遞時(shí),postfix會給該郵件貼上一個(gè)將來的時(shí)間郵票。郵件隊(duì)列管理程序會忽略貼有將來時(shí)間郵票的郵件。時(shí)間郵票到期時(shí),postfix會嘗試再對該郵件進(jìn)行一次投遞,如果這次投遞再次失敗,postfix就給該郵件貼上一個(gè)兩倍于上次時(shí)間郵票的時(shí)間郵票,等時(shí)間郵票到期時(shí)再次進(jìn)行投遞,依此類推。當(dāng)然,經(jīng)過一定次數(shù)的嘗試之后,postfix會放棄對該郵件的投遞,返回一個(gè)錯(cuò)誤信息給該郵件的發(fā)件人。postfix對不可到達(dá)的目的地郵件的處理,postfix會在內(nèi)存中保存一個(gè)有長度限制的當(dāng)前不可到達(dá)的地址列表。這樣就避免了對那些目的地為當(dāng)前不可到達(dá)地址的郵件的投遞嘗試。從而大大提高了系統(tǒng)的性能。
1.postfix的安全性
postfix通過一系列的措施來提高系統(tǒng)的安全性,這些措施包括:
(1).動態(tài)分配內(nèi)存,從而防止系統(tǒng)緩沖區(qū)溢出;
(2).把大郵件分割成幾塊進(jìn)行處理,投遞時(shí)再重組;
(3).Postfix的各種進(jìn)程不在其他用戶進(jìn)程的控制之下運(yùn)行,而是運(yùn)行在駐留主進(jìn)程master的控制之下,與其他用戶進(jìn)程無父子關(guān)系,所有有很好的絕緣性。
(4).Postfix的隊(duì)列文件有其特殊的格式,只能被postfix本身識別;以上介紹postfix安裝配置。
【編輯推薦】