GB | BIG5
|
| 首頁 > 應用技術 > Sendmail > 正文 |
 |
| Sendmail升級速成 |
| 本文出自:http://noc.cstnet.net.cn/ 趙巖 (2001-06-08 13:04:00) |
Sendmail作為郵件服務軟件,一直以來,始終為各IT行業廠家的郵件服務器廣泛使用,但由Sendmail在設計當初,只考慮為用戶提供郵件發送和接收等服務,並未對網絡安全作過多考慮,因此這就為日的網絡黑客提供了攻擊他人郵件服務器的可乘之機,即我們通常所說的"郵件轉發"。
郵件黑客正是利用了Sendmail的這一漏洞,利用某些服務器的SMTP不設防的缺陷,將自己的私人郵件通過他人的郵件服務器發向目的地,以滿足一己私欲;更有甚者,利用他人郵件服務器,肆意的向外界的任意地址發送"垃圾郵件",這樣做,不僅給他人的網絡維護造成巨大損失,同時也給接收方帶來的諸多不便。
由Sendmail自始至終一直作為郵件服務器的標準台進程,並為廣大服務器生產廠家所採納,因此現階段,想通過其它軟件替代Sendmail做為郵件服務,似乎有遠水難解近渴之感;當務之急,只有通過升級Sendmail來達到防止"郵件轉發"的目的。
鑒篇幅有限,現只對Sendmail的實現做具體說明,有關Sendmail的詳細原理,請讀者查詢相關文檔。
一. Sendmail的獲取
在一般情況下,將sendmail升級到sendmail.8.9.3即可達防止郵件服務器轉發的功能。
TIPS:可到以下WWW或FTP站點下在最新的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可執行文件。
1. 進入當前目錄下的/src目錄,編輯文件Makefile.m4
將:MAPDEF= ifdef(`confMAPDEF', `confMAPDEF')
改為:MAPDEF= ifdef(`confMAPDEF', `confMAPDEF',`NDBM')
2. 在/src目錄下,運行./Build進行編譯。
TIPS:在編譯過程中,可能會出現:sh groff not found 的提示信息。
可將Makefile.m4文件中有關groff的行注釋掉即可:
#NROFF= ifdef(`confNROFF', `confNROFF', `groff -Tascii')
若想將編譯結果直接安裝到缺省目錄下,可通過:
./Build install 來實現。
若出現gcc not found 或cc not found,可在/usr/bin下做如下軟連接:
ln -s /usr/bin/gcc gcc的實際位置,或 ln -s /usr/bin/cc cc的實際位置。
如果還出現上述信息,則需要你重新安裝gcc或cc編譯器。
三. 生成配置文件sendmail.cf
1. 進入sendmail-8.9.3目錄下的cf/cf目錄,編輯tcpproto.mc文件:
將源代碼:
divert(0)dnl
VERSIONID(`@(#)tcpproto.mc 8.10 (Berkeley) 5/19/1998')
OSTYPE(unknown)
FEATURE(nouucp)
MAILER(local)
MAILER(smtp)
改為:
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一項中填寫"你的系統類型"(例如:solaris2),該型文件可在sendmail-8.9.3目錄下的/cf/ostype目錄下查到。
在*Your Domain Name一項中填寫你的域名,並用單引號括起(例如:'cstnet.net.cn')
這其中FEATURE(blacklist_recipients),也可省略。
2. 進入sendmail-8.9.3目錄下的cf/domain目錄,將文件"generic.m4"更名為"你的域名.m4"(例如:cstnet.net.cn.m4)。
3. 用m4編譯生成sendmail.cf文件。在sendmail-8.9.3/cf/cf目錄下執行: m4 ../m4/cf.m4 tcpproto.mc>sendmail.cf 在m4編譯過程中不應該出現任何錯誤提示。
四. 重新啟動sendmail 在重新啟動sendmail之前,需要做一些配置工作:
1. 檢查在/etc目錄下是否存在sendmail.cw和aliases文件,若沒有,需要建立此二文件:touch /etc/sendmail.cw /etc/aliases
2. 檢查是否存在/etc/mail目錄,若沒有,則建立此目錄並在該目錄下建立文本文件access,此文件非常重要,它是用來控制可用此郵件服務器發送郵件的IP地址。此文件將在面做具體說明.
3. 在sendmail-8.9.3/makemap目錄下,運行./Build,此時在當前目錄下會生成一個obj.xxx目錄,在此目錄下,已經生成了makemap可執行文件。
TIPS:此時,可在/usr/bin下做makemap的軟連接,以備將來使用: Ln -s /usr/bin/makemap makemap的實際位置
4. 下面,我們對access文件的格式加以說明: 左邊 右邊 解釋說明
|
左邊
|
右邊
|
解釋說明
|
|
159.226.8.5
|
RELAY
|
RELAY必須大寫,表示允許159.226.8.5主機通過此郵件服務器發送和接收郵件,其余IP格式相同。 |
|
159.226.8
|
RELAY
|
RELAY必須大寫,表示允許159.226.8這一個C通過此郵件服務器發送和接收郵件,其余網段格式相同。 |
|
*aaa@cstnet.net.cn
|
OK或RELAY
|
OK或RELAY必須大寫,表示允許aaa@cstnet.net.cn這個郵箱可通過此郵件服務器發送和接收郵件。 |
|
*@cstnet.net.cn
|
OK或RELAY
|
OK或RELAY必須大寫,表示允許域名 為cstnet.net.cn郵箱通過此郵件服務器發送和接收郵件。 |
|
注釋:帶*號的格式在實際升級過程中往往不成立,一般情況下請讀者不要使用。 |
TIPS:在m4編譯工程中,有可能出現:m4 not found的提示信息,此時之需要輸入m4的完整路徑(例如:/usr/bin/m4 ../m4/cf.m4 tcpproto.mc>sendmail.cf)即可。
如果還未找到m4,那就需要你重新安裝m4編譯器了。
這時,可將生成的sendmail.cf文件拷貝到/etc目錄下,以備日使用。
5. 接下來需要用makemap(上文中已提到)將文本文件/etc/mail/access生成庫文件:
makemap dbm /etc/mail/access
運行,將在/etc/mail/目錄下生成access.dir和access.pag兩個庫文件。
6. 最啟動Sendmail
執行:/usr/lib/sendmail -bd -q15m
如果sendmail在缺省目錄下,可直接執行:sendmail -bd -q15m
如果sendmail.cf不再缺省目錄下,則執行:/usr/lib/sendmail -bd -q15m -C"sendmail.cf的實際位置"。
五. 升級維護
當你需要添加/刪除某些用戶,允許/禁止他們通過本郵件服務器轉發郵件時,只需按照以上格式修改/etc/mail/access文本文件,並執行:
makemap -dbm /etc/mail/access
六. 結束語
這篇"sendmail升級速成"得到了我們網絡中心(NOC)同僚的鼎立支持,在此表示衷心的感謝,由時間倉促,加之水平有限,相信文章中難免有技術上的疏漏,望各位讀者不吝賜教,我將不勝感激。
電子郵件:zhaoyan@cstnet.net.cn
主頁網址:http://www.zhaoyan.bizland.com .cn
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |