Sendmail作為免費(fèi)的郵件服務(wù)器軟件,已被廣泛應(yīng)用于Internet各種操作系統(tǒng)的服務(wù)器中。如:Solaris,HPUX,AIX,IRIX,Linux等等。隨著互連網(wǎng)的普及,郵件服務(wù)器受攻擊的機(jī)會(huì)也大大增加。目前互連網(wǎng)上的郵件服務(wù)器所受攻擊有兩類(lèi):一類(lèi)就是中繼利用(Relay),即遠(yuǎn)程機(jī)器通過(guò)你的服務(wù)器來(lái)發(fā)信,這樣任何人都可以利用你的服務(wù)器向任何地址發(fā)郵件,久而久之,你的機(jī)器不僅成為發(fā)送垃圾郵件的幫兇,也會(huì)使你的網(wǎng)絡(luò)國(guó)際流量激增,同時(shí)將可能被網(wǎng)上的很多郵件服務(wù)器所拒絕。另一類(lèi)攻擊稱(chēng)為垃圾郵件(Spam),即人們常說(shuō)的郵件炸彈,是指在很短時(shí)間內(nèi)服務(wù)器可能接收大量無(wú)用的郵件,從而使郵件服務(wù)器不堪負(fù)載而出現(xiàn)癱瘓。這兩種攻擊都可能使郵件服務(wù)器無(wú)法正常工作。因此作為一個(gè)校園網(wǎng)郵件服務(wù)器防止郵件攻擊將不可缺少。
目前對(duì)于sendmail郵件服務(wù)器,阻止郵件攻擊的方法有兩種。一種是升級(jí)高版本的服務(wù)器軟件,利用軟件自身的安全功能。第二種就是采用第三方軟件利用其諸如動(dòng)態(tài)中繼驗(yàn)證控制功能來(lái)實(shí)現(xiàn)。下面就以sendmail V8.9.3為例,介紹這些方法。
1.服務(wù)器自身安全功能
(1)編譯sendmail時(shí)的安全考慮
要利用sendmail 8.9.3的阻止郵件攻擊功能,就必須在系統(tǒng)編譯時(shí)對(duì)相關(guān)參數(shù)進(jìn)行設(shè)置,并借助相關(guān)的軟件包。目前主要就是利用Berkeley DB數(shù)據(jù)庫(kù)的功能,Berkeley DB包可以從相關(guān)站點(diǎn)上下載,并需要預(yù)先編譯好。然后將Berkeley DB的相關(guān)參數(shù)寫(xiě)進(jìn)sendmail的有關(guān)文件中。
a.修改site.config.m4文件
將編譯好的Berkeley DB有關(guān)庫(kù)文件路徑加入到site.config.m4文件中,使sendmail編譯后能夠使用Berkeley DB數(shù)據(jù)庫(kù)。例如:
#cd $/sendmail-8.9.3/BuidTools/Site
修改site.config.m4文件
define (confINCDIRS, -I/usr/local/BerkeleyDB/include)
define (confLIBDIRS, L/usr/local/BerkeleyDB/lib)
b.修改sendmail.mc文件
sendmail.mc是生成sendmail.cf的模板文件之一,要使sendmail具有抗郵件攻擊功能還需在該文件中進(jìn)行相關(guān)定義。主要包括以下幾項(xiàng):
......
EATURE(relay_entire_domain)
FEATURE(ACCESS_DB)dn1
FEATURE(blacklist_recipients)
......
(2)相關(guān)文件的配置
正確編譯好sendmail是郵件服務(wù)器安全控制的基礎(chǔ),而真正的安全設(shè)置主要還是利用相關(guān)文件進(jìn)行的。這種包含控制語(yǔ)句的文件主要是access和relay-domains。
access是郵件安全控制的主要數(shù)據(jù)庫(kù)文件,在該文件中可以按照特定的格式將需控制的域名、IP地址或目標(biāo)郵件地址,以及相應(yīng)的動(dòng)作值寫(xiě)入,然后使用makmap命令生成access.db文件(#makemap hash access.db < access),從而使服務(wù)器允許或屏蔽郵件中繼和郵件轟炸。access的格式如下:
spam.com REJECT
edu.cn OK
hotmail.com DISCARD
其中reject動(dòng)作是拒絕接受從指定地址發(fā)來(lái)的郵件;ok是允許特定地址用戶(hù)任意訪問(wèn);relay允許通過(guò)本郵件服務(wù)器進(jìn)行中轉(zhuǎn)郵件;discard是將收到的郵件交給特定命令進(jìn)行處理,例如:可以設(shè)定將收到的郵件丟棄,或者設(shè)定收到郵件后返回給使用者一條出錯(cuò)信息等等。
Relay-domains文件是設(shè)定哪些域是該服務(wù)器可以中繼的域,其格式為每個(gè)域占一行。如:
......
CN
EDU
JP
......
在服務(wù)器開(kāi)始使用時(shí)建議將所有頂級(jí)域名加入其中,以后再根據(jù)安全需要對(duì)其進(jìn)行修改,否則將會(huì)使pop3用戶(hù)發(fā)送郵件時(shí)出現(xiàn)relay reject錯(cuò)誤,而無(wú)法向沒(méi)有加入的域名目標(biāo)郵件地址發(fā)送郵件。
3)版本號(hào)的修改
對(duì)于一臺(tái)郵件服務(wù)器,可以通過(guò)遠(yuǎn)程的25端口telnet命令來(lái)獲取服務(wù)器的版本信息。如:“telnet sendmail服務(wù)器主機(jī)25”就可以查看sendmail的當(dāng)前版本。為了防止一些惡意的查看版本信息操作,sendmail提供了可以對(duì)顯示的版本進(jìn)行修改的操作。
在sendmail.cf文件中有一句“SmtpGreetingMessage=$j sendmail $V/$Z; $b”的語(yǔ)句,其中$V/$Z就是版本信息,正常情況下由該參數(shù)顯示的版本信息為sendmail本身的版本。如果要設(shè)定成管理員給定的版本信息,只需將該參數(shù)改掉,然后加入你所希望的信息即可。例如:當(dāng)把這句改成“SmtpGreeting Message=$j sendmail 0.0/0.0; $b”,重啟sendmail服務(wù),則sendmail的版本就會(huì)變成“sendmail 0.0”。從而達(dá)到隱蔽版本信息的目的。
以上是sendmail 8.9.3本身帶有的安全功能設(shè)置,通過(guò)這些安全設(shè)置可以大大加強(qiáng)服務(wù)器安全性能。但是在防止郵件中繼和郵件炸彈的設(shè)置時(shí),如何確定哪些目標(biāo)地址是需阻止中繼的,哪些又是允許中轉(zhuǎn)的,似乎只能通過(guò)管理員對(duì)日志文件的分析和觀測(cè),或者待發(fā)現(xiàn)了安全問(wèn)題后才能確定。因此這種安全控制還僅是事后控制,并且對(duì)相關(guān)文件修改后還必須重新啟動(dòng)服務(wù)器。如要實(shí)現(xiàn)事先動(dòng)態(tài)安全控制還需要采用其他方法。
2.動(dòng)態(tài)中繼驗(yàn)證控制
DRAC(Dynamic Relay Authorization Control)動(dòng)態(tài)中繼驗(yàn)證控制是專(zhuān)門(mén)為郵件服務(wù)器設(shè)計(jì)的一個(gè)服務(wù)器端軟件,它可以安裝在一臺(tái)SMTP服務(wù)器上,并同時(shí)為多個(gè)郵件服務(wù)器提供動(dòng)態(tài)中繼驗(yàn)證服務(wù)。DRAC主要通過(guò)自動(dòng)獲取和動(dòng)態(tài)更新中繼驗(yàn)證數(shù)據(jù)庫(kù)中的信息來(lái)允許合法pop3或IMAP用戶(hù)使用郵件服務(wù)器,從而有效地控制郵件炸彈和非法的郵件中繼。DRAC的原理就是利用pop3或imap服務(wù)器固有的功能來(lái)獲取用戶(hù)名、密碼和客戶(hù)機(jī)IP地址等信息,并將這些信息及時(shí)映象到驗(yàn)證數(shù)據(jù)庫(kù)中,供smtp服務(wù)器調(diào)用,同時(shí)在經(jīng)過(guò)一段時(shí)間以后(缺省為30分種),其驗(yàn)證信息將自動(dòng)失效,需要用戶(hù)重新輸入驗(yàn)證信息。這樣不僅可以保證合法的pop3或imap用戶(hù)能夠正常使用郵件服務(wù)器,也可以阻止任何非注冊(cè)用戶(hù)(包括本地)利用郵件服務(wù)器來(lái)發(fā)送郵件。這種郵件安全控制常常被稱(chēng)為:“郵件服務(wù)之前的pop驗(yàn)證”(POP-before-SMTP)。
(1)DRAC的編譯
在編譯DRAC之前,系統(tǒng)的sendmail服務(wù)器應(yīng)該已經(jīng)正確編譯安裝了。首先在DRAC源程序目錄中編輯Makefile文件,在Solaris 2.x操作系統(tǒng)中其Makefile改成:
INSTALL=/usr/ucb/install
EBIN=/usr/local/sbin
MAN=/usr/local/man/man
DEFS=-DTI_RPC -DFCNTL_LOCK -DSYSINFO
CC= (編譯器)
RANLIB= :
CFLAGS=$(DFES) -g -I/path/to/db/include
LDLIBS=-L/path/to/db/library -lns1 -1db
TSTLIBS=-L. -ldrac -lns1
MANLIB=3
MANADM=1m
然后編譯并安裝即可。
如果存在多個(gè)pop/IMAP服務(wù)器,則還需要將這些服務(wù)器的IP地址加到文件/etc/mail/dracd.allow中,其文件書(shū)寫(xiě)格式與/var/yp/securenets文件格式一樣。如:
255.255.255.255 202.139.244.23
255.255.255.255 127.0.0.1
(2)修改sendmail.mc文件重新生成sendmail.cf
在使用DRAC驗(yàn)證功能之前,還需要將DRAC的驗(yàn)證信息加到sendmail.cf文件中。首先要修改sendmail.mc文件,然后重新生成sendmail.cf。sendmail.mc文件中相關(guān)語(yǔ)句修改如下:
在LOCAL_CONFIG行下增加
kdrac btree /etc/mail/dracd
在LOCAL_RULESETS下增加
Slocal_check_rcpt
R$* $: $&{client_addr}
R$+ $: $(drac $1 $: ? $)
R? $@ ?
R$+ $@ $#OK
重新生成sendmail.cf文件后,再重啟sendmail進(jìn)程

當(dāng)前文章:郵件服務(wù)器的安全解決方案
轉(zhuǎn)載源于:http://chinadenli.net/article28/ccpcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、App開(kāi)發(fā)、建站公司、標(biāo)簽優(yōu)化、關(guān)鍵詞優(yōu)化、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)