如何把 sendmail 換成 Postfix

Copyright 2002 OLS3, 本講義僅供教育人員參考, 任何引用, 請先取得作者的同意.

(以上聲明, 主要是防止商人拿本文沽取利益, 除此, 請自行取用, 勿受限制, 或對此感到有任何的不愉快)


一. 注意:

sendmail 又出問題了, 近來 sendmail 經常被發現 local root 攻擊漏洞.

出處: http://www.sendmail.org/8.12.1.html

若您對 sendmail 經常發生安全漏洞不耐, 建議: 考慮改架 Postfix.

其實, 存有這種想法的, 並非僅只在下一人.

許多套件整理商或團體, 已開始不再使用 sendmail, 而改用 Postfix 了.

比如: Mandrake Linux 8.x 已開始將 Postfix 定為預設的 MTA (Mail Transfer Agent).

本文擬簡單介紹如何去掉系統中原有的 sendmail, 而改用 Postfix 來取代它.

操作之前先來談點 sendmail 的不安全漏史.

二. sendmil 的不安全漏史

sendmail 是一套功能強大、具有重要地位的郵件轉遞系統(Mail Transfer Agent ), 但只要是在網路界有待上一陣子的人都知道, 過去以來, sendmail 出現不少重大的安全瑕疪, 有些漏洞足以讓攻擊者輕易入侵, 進而摧毀整個系統.

另一方面, sendmail 的設定檔艱深難懂, 可以讓系統管理人員輕易掌控的地方並不多, 這一直也被大家所垢病不已.

可以說, 在安全性及設定容易度這二方面, 是 sendmail 較受人爭議的地方, 甚至在效能方面, 有些人也抱怨 sendmail 的演算法十分緩慢.

但因為 sendmail 推出修正的速度相當地快, 而且, 在一時之間, 也找不到功能足以和 sendmail 相比美的替代品, 因此早期, 有些人認為 sendmail 的利大於弊, 倒也還可以忍受.

不過, 由 sendmail 經常出現漏洞的這個事實來看, 多少也反應出, 這個古老的郵件系統, 在設計架構理念上, 的確是有待改進的地方.

在這個想法之下, 出現了二個重要的 sendmail 替代品.

最有名的當屬 qmail (http://www.qmail.org/), 及 Postfix (http://www.postfix.org/)

qmail 自己宣稱它是一個安全的套件, 甚至在網站上懸賞 1000 美金.

相較於 qmail, Postfix 顯得較為謙虛且優雅, 並且有後來居上的態勢.

Postfix 的作者認為, postfix 是 qmail 的良性競爭者, 而非敵人.

筆者私下認為, Postfix 無論在安全性、穩定性、效能、設定等方面, 都是十分出色的, 是一套不可多得的 MTA. 國內某大型入口網站, 甚至用 Postfix 來做電子報的發報服務哩!

現在開始, 您不必再忍受 sendmail 了, 改架 Postfix 吧! (台南縣教網中心改用Postfix已有很長一段時間, 效果令人滿意!)

Postfix 可以相容於您目前使用中的 sendmail, 無需做太大的變動.

國內有 Mirror 站台:

http://d2.nctu.edu.tw/postfix/start.html (交大)

http://postfix.cdpa.nsysu.edu.tw/start.html (中山大學)

也可到本中心 FTP 下載:

ftp://linux.tnc.edu.tw/pub/Sysop/MAIL/postfix/

截至目前2002/02/15為止, 最新版是 postfix-1.1.3.tar.gz, 也有 rpm 檔喔!

rpm 檔可至: http://www.ea4els.ampr.org/~sjmudd/postfix/ 或至: ftp://ftp.tnc.edu.tw/pub/Sysop/MAIL/postfix-RPMS/ 下載

RedHat 也有 Postfix 的 FAQ:

http://www.redhat.com/support/resources/faqs/RH-postfix-FAQ/book1.html

三. 架設

1. 備份 sendmail 及 /etc/aliases 檔, /etc/mail 等目錄, 以防範不測.

2. 停止運作中的 sendmail:

/etc/rc.d/init.d/sendmail stop

or

kill -9 `cat /var/run/sendmail.pid`

3. 移除相關套件:

4. 安裝 Postfix

四. Mail Relay:

Postfix 預設值只為 local 網路轉遞郵件, 因此不必擔心 Mail Relay 的問題. 若您想修改 Mail Relay, 可由 /etc/postfix/main.cf 中去修改 mynetworks 的範圍.

五. 升級:

Postfix 升級十分簡單, 停止 postfix 的運作之後(postfix stop), 再把上述 Postfix 的安裝步驟做一次即可.

六. 相容性:

Postfix 一開始便定位在相容於 sendmail, 因此, 大部份的情況下, 都可以正確地使您的郵件系統繼續運作.

若您有寫 cgi 程式, 有使用到 sendmail, 也都能正常地執行. 其它如 majordomo 等 mailing list 程式也可以在 Postfix 下運作.

Postfix 可以說是最無痛性的 sendmail 替代品.

筆者私自預料, 再過不久, Postfix 將會全面普及!

七. 和 procmail 搭配:

procmail 在郵件系統中的地位, 是屬於 MDA (Mail Delivery Agent ) 的角色, procmail 用來過濾信件非常好用, 比如最近的思坎病毒,Nimda病毒, 都可以利用 procmail, 在伺服器端將病毒信件濾除, 免除校內教師受病毒信件的威脅.

(註: 教網中心會定期更新 procmailrc 檔)

Postfix 有它自己的 MDA, 若您想和 procmail 搭配使用, 請修改 /etc/postfix/main.cf , 加入以下設定:

mailbox_command = /usr/bin/procmail

(請先確定主機中有安裝 procmail)

然後再重載 postfix 即可: postfix reload

八. 結語:

郵件轉遞系統(MTA), 可以說是網管人員的主要罩門所在, 一套安全效能良好且容易維護的 MTA, 將可使網管人員安心泰半, 舒舒服服的過日子.

九. 參考文件:


希望這份講義對台南縣中小學能有所助益....

Written by OLS3 All right reserved. 02/15/2002

OLS3's homepage: http://teacher.mdjh.tnc.edu.tw/~ols3/