Sendmail郵件服務(wù)器快速升級技巧
Sendmail作為郵件服務(wù)軟件,一直以來,始終為各IT行業(yè)廠家的郵件服務(wù)器廣泛使用,但由于Sendmail在設(shè)計(jì)當(dāng)初,只考慮為用戶提供郵件發(fā)送和接收等服務(wù),并未對網(wǎng)絡(luò)安全作過多考慮,因此這就為日后的網(wǎng)絡(luò)黑客提供了攻擊他人郵件服務(wù)器的可乘之機(jī),即我們通常所說的"郵件轉(zhuǎn)發(fā)"。
郵件黑客正是利用了Sendmail的這一漏洞,利用某些服務(wù)器的SMTP不設(shè)防的缺陷,將自己的私人郵件通過他人的郵件服務(wù)器發(fā)向目的地,以滿足一己私欲;更有甚者,利用他人郵件服務(wù)器,肆意的向外界的任意地址發(fā)送"垃圾郵件",這樣做,不僅給他人的網(wǎng)絡(luò)維護(hù)造成巨大損失,同時(shí)也給接收方帶來的諸多不便。
由于Sendmail自始至終一直作為郵件服務(wù)器的標(biāo)準(zhǔn)后臺進(jìn)程,并為廣大服務(wù)器生產(chǎn)廠家所采納,因此現(xiàn)階段,想通過其它軟件替代Sendmail做為郵件服務(wù),似乎有遠(yuǎn)水難解近渴之感;當(dāng)務(wù)之急,只有通過升級Sendmail來達(dá)到防止"郵件轉(zhuǎn)發(fā)"的目的。
鑒于篇幅有限,現(xiàn)只對Sendmail的實(shí)現(xiàn)做具體說明,有關(guān)Sendmail的詳細(xì)原理,請讀者查詢相關(guān)文檔。
一. Sendmail的獲取
在一般情況下,將sendmail升級到sendmail.8.9.3即可達(dá)防止郵件服務(wù)器轉(zhuǎn)發(fā)的功能。
TIPS:可到以下WWW或FTP站點(diǎn)下在最新的sendmail版本:
http://www.sendmail.org
ftp://ftp.ncic.ac.cn
ftp://ftp.pku.ac.cn
ftp://ftp.tsinghua.edu.cn
sendmail的源代碼文件為:sendmail..8.9.3.tar.gz
在獲得sendmail.8.9.3.tar.gz后,可通過gunzip和tar命令將此文件解包。
二. Sendmail的生成
這是sendmail升級過程中較為重要的一步,它將生成sendmail可執(zhí)行文件。
1. 進(jìn)入當(dāng)前目錄下的/src目錄,編輯文件Makefile.m4
將:MAPDEF= ifdef(`confMAPDEF', `confMAPDEF')
改為:MAPDEF= ifdef(`confMAPDEF', `confMAPDEF',`NDBM')
2. 在/src目錄下,運(yùn)行./Build進(jìn)行編譯。
TIPS:在編譯過程中,可能會出現(xiàn):sh groff not found 的提示信息。
可將Makefile.m4文件中有關(guān)groff的行注釋掉即可:
#NROFF= ifdef(`confNROFF', `confNROFF', `groff -Tascii')
若想將編譯結(jié)果直接安裝到缺省目錄下,可通過:
./Build install 來實(shí)現(xiàn)。
若出現(xiàn)gcc not found 或cc not found,可在/usr/bin下做如下軟連接:
ln -s /usr/bin/gcc gcc的實(shí)際位置,或 ln -s /usr/bin/cc cc的實(shí)際位置。
如果還出現(xiàn)上述信息,則需要你重新安裝gcc或cc編譯器。
#p#
三. 生成配置文件sendmail.cf
1. 進(jìn)入sendmail-8.9.3目錄下的cf/cf目錄,編輯tcpproto.mc文件:
將源代碼:
divert(0)dnl
VERSIONID(`@tcpproto.mc 8.10 (Berkeley) 5/19/1998')
OSTYPE(*Your Os Type)
DOMAIN(*Your Domain Name)
FEATURE(access_db,dbm -o /etc/mail/access)
FEATURE(blacklist_recipients)
FEATURE(nouucp)
MAILER(local)
MAILER(smtp)
TIPS:在*Your Os Type一項(xiàng)中填寫"你的系統(tǒng)類型"(例如:solaris2),該型文件可在sendmail-8.9.3目錄下的/cf/ostype目錄下查到。
在*Your Domain Name一項(xiàng)中填寫你的域名,并用單引號括起(例如:'cstnet.net.cn')
這其中FEATURE(blacklist_recipients),也可省略。
2. 進(jìn)入sendmail-8.9.3目錄下的cf/domain目錄,將文件"generic.m4"更名為"你的域名.m4"(例如:cstnet.net.cn.m4)。
3. 用m4編譯生成sendmail.cf文件。在sendmail-8.9.3/cf/cf目錄下執(zhí)行: m4 ../m4/cf.m4 tcpproto.mc>sendmail.cf 在m4編譯過程中不應(yīng)該出現(xiàn)任何錯誤提示。
四. 重新啟動sendmail 在重新啟動sendmail之前,需要做一些配置工作:
1. 檢查在/etc目錄下是否存在sendmail.cw和aliases文件,若沒有,需要建立此二文件:touch /etc/sendmail.cw /etc/aliases
2. 檢查是否存在/etc/mail目錄,若沒有,則建立此目錄并在該目錄下建立文本文件access,此文件非常重要,它是用來控制可用此郵件服務(wù)器發(fā)送郵件的IP地址。此文件將在后面做具體說明.
3. 在sendmail-8.9.3/makemap目錄下,運(yùn)行./Build,此時(shí)在當(dāng)前目錄下會生成一個(gè)obj.xxx目錄,在此目錄下,已經(jīng)生成了makemap可執(zhí)行文件。
TIPS:此時(shí),可在/usr/bin下做makemap的軟連接,以備將來使用: Ln -s /usr/bin/makemap makemap的實(shí)際位置
4. 下面,我們對access文件的格式加以說明: 左邊 右邊 解釋說明
左邊 右邊 解釋說明
159.226.8.5 RELAY RELAY必須大寫,表示允許159.226.8.5主機(jī)通過此郵件服務(wù)器發(fā)送和接收郵件,其余IP格式相同。
159.226.8 RELAY RELAY必須大寫,表示允許159.226.8這一個(gè)C通過此郵件服務(wù)器發(fā)送和接收郵件,其余網(wǎng)段格式相同。
*aaa@cstnet.net.cn OK或RELAY OK或RELAY必須大寫,表示允許aaa@cstnet.net.cn這個(gè)郵箱可通過此郵件服務(wù)器發(fā)送和接收郵件。
*@cstnet.net.cn OK或RELAY OK或RELAY必須大寫,表示允許域名 為cstnet.net.cn郵箱通過此郵件服務(wù)器發(fā)送和接收郵件。
注釋:帶*號的格式在實(shí)際升級過程中往往不成立,一般情況下請讀者不要使用。
TIPS:在m4編譯工程中,有可能出現(xiàn):m4 not found的提示信息,此時(shí)之需要輸入m4的完整路徑(例如:/usr/bin/m4 ../m4/cf.m4 tcpproto.mc>sendmail.cf)即可。
如果還未找到m4,那就需要你重新安裝m4編譯器了。
這時(shí),可將生成的sendmail.cf文件拷貝到/etc目錄下,以備日后使用。
5. 接下來需要用makemap(上文中已提到)將文本文件/etc/mail/access生成庫文件:
makemap dbm /etc/mail/access
運(yùn)行后,將在/etc/mail/目錄下生成access.dir和access.pag兩個(gè)庫文件。
6. 最后啟動Sendmail
執(zhí)行:/usr/lib/sendmail -bd -q15m
如果sendmail在缺省目錄下,可直接執(zhí)行:sendmail -bd -q15m
如果sendmail.cf不再缺省目錄下,則執(zhí)行:/usr/lib/sendmail -bd -q15m -C"sendmail.cf的實(shí)際位置"。
五. 升級維護(hù)
當(dāng)你需要添加/刪除某些用戶,允許/禁止他們通過本郵件服務(wù)器轉(zhuǎn)發(fā)郵件時(shí),只需按照以上格式修改/etc/mail/access文本文件,并執(zhí)行:
makemap -dbm /etc/mail/access
通過文章的描述,我們知道了如何快速的進(jìn)行Sendmail郵件服務(wù)器升級。希望對大家有所幫助!
【編輯推薦】
- 深入了解 Linux下安裝DNS+Sendmail服務(wù)
- 圖文并茂 講解Sendmail工作環(huán)境
- 如何在Linux下安裝Sendmail服務(wù)器
- Linux下的Sendmail配置的簡單流程
- Linux Sendmail配置攻略
- Sendmail的安全篇之Smrsh
- Sendmail 配置文件(一)
- Sendmail 配置文件(二)