加密工具:四步搞定郵件服務(wù)器
SSL (Secu rity Socket Layer)協(xié)議由Netscape公司設(shè)計(jì)開發(fā),主要用來提供對用戶和服務(wù)器的認(rèn)證;對傳送的數(shù)據(jù)進(jìn)行加密和隱藏;確保數(shù)據(jù)在傳送中不被改變(即數(shù)據(jù)的完整性),現(xiàn)已成為該領(lǐng)域中全球化的標(biāo)準(zhǔn)。
Stunnel是一款可以加密網(wǎng)絡(luò)數(shù)據(jù)的TCP連接工具,可工作在Unix、Linux和Windows平臺上,采用Client/Server模式,將CIient端的網(wǎng)絡(luò)數(shù)據(jù)采用SSL加密,安全傳輸?shù)街付ǖ腟erver端再進(jìn)行解密還原,然后發(fā)送到訪問的服務(wù)器。
StunneI很好地解決了SSL不能對現(xiàn)有舊的應(yīng)用程序傳輸數(shù)據(jù)加密的問題。在Stunnel出現(xiàn)之前,要實(shí)現(xiàn)安全的數(shù)據(jù)傳輸,只能依靠在應(yīng)用程序之中添加SSL代碼的方式來提高安全性。Stunnel基于OPenSSL, 所以要求安裝OpenSSL,并進(jìn)行正確的配置。Stunnel可以向不啟用SSL的服務(wù)器端軟件提供保護(hù)卻不需對守護(hù)進(jìn)程的編碼做任何修改,Stunnel的工作原理如圖所示。例如,可以使用Stunnel保護(hù)POP3、SMTP和IMAP服務(wù)器。StunneI***版本為stunel-4.33.tar.gz,其官網(wǎng)為www.stunnel.org。
1.安裝編譯Stunnel
StunneI安裝非常簡單,筆者在此就不在累贅, 使用下面的命令完成對StunneI的安裝:
#wget http://www.stunnel.org/download/stunnel/src/stunnel-4.33.tar.gz
#tar zxvf stunel-4.33.tar.gz
#./configure;make;make install
圖Stunnel工作原理
下面使用Stunnel封裝一些流行的郵件服務(wù)器。
#p#
2.保障IMAP安全
IMAP(Internet MessageAccess Protocol)是用戶從不同的計(jì)算機(jī)訪問郵件的一種方式。其工作方式為在一臺中央計(jì)算機(jī)上存儲信息,并且允許用戶訪問信息的一個(gè)拷貝。用戶可以讓本地工作站和服務(wù)器同步, 此外也可以為郵件創(chuàng)建一個(gè)文件夾, 并且具有完全的訪問權(quán)限。通過Stunnel封裝IMAP有兩種方法。
1).通過stunnel直接運(yùn)行IMAP服務(wù)
如果有使用SSL協(xié)議連接的IMAP客戶端,則推薦使用這種方法。首先關(guān)閉imapd守護(hù)進(jìn)程,然后使用重啟腳本(/etc/rc.d/rc.1ocal)中的命令行代替imapd,使用如下命令:
/usr/sbin/stunel -p /usr/local/ssl/certs/stunel.pem -d 993 -r localhost:143
這個(gè)命令使用IMAPS端口(993)上指定的文件運(yùn)行Stunnel,imapd端口監(jiān)聽程序的代理,在143端口上運(yùn)行。如果允許非SSL IMAP客戶端連接到標(biāo)準(zhǔn)的IMAP端口(143),可以配置SSL IMAP客戶端連接到端口I MAPS(993)代替:
/usr/sbin/stunel -p /usr/local/ssl/certs/stunel.pem -d 993 -l /usr/sbin/imapd
2).使用xinetd運(yùn)行安全的IMAP
從守護(hù)進(jìn)程的概念可以看出,對于系統(tǒng)所要通過的每一種服務(wù),都必須運(yùn)行監(jiān)聽某個(gè)端口連接所發(fā)生的守護(hù)進(jìn)程,這通常意味著資源浪費(fèi)。
為了解決這個(gè)問題,Linux引入了"網(wǎng)絡(luò)守護(hù)進(jìn)程服務(wù)程序" 的概念。xinetd能夠同時(shí)監(jiān)聽多個(gè)指定的端口,在接受用戶請求時(shí),能夠根據(jù)用戶請求的端口不同,啟動(dòng)不同的網(wǎng)絡(luò)服務(wù)進(jìn)程處理這些用戶請求。可以把xinetd看做一個(gè)管理啟動(dòng)服務(wù)的管理服務(wù)器,把一個(gè)客戶請求交給程序處理,然后啟動(dòng)相應(yīng)的守護(hù)進(jìn)程。如果使用xinetd運(yùn)行IMAP服務(wù),修改配置文件(/etc/xinetd.d/imapd)如下:
service imap
{
disable=no
socket_type=stream
wait=no
user=root
port=143
server=/usr/sbin/stunel
server_args=stunel imapd -l /usr/sbin/imapd -imapd
log_on_succes+=USERID
log_on_failure+=USERID
#env=VIRTDOMAIN=virtual.hostname
}
然后向超級服務(wù)程序傳遞SIGHUP信號,重新載人xinetd配置:
killall -USR1 xinetd
#p#
3.保障POP3安全
為了使用SSL連接POP3郵件服務(wù),要重新配置文件腳本如下:
service pop3s
{
disable=no
socket_type=stream
wait=no
user=root
server=/usr/sbin/stunel
server_args=stunel pop3s -l /usr/sbin/ipop3d -ipop3d
log_on_success+=USERID
log_on_failure+=USERID
}
如果客戶端軟件不能使用基于SSL的POP3郵件用戶代理MUA,則可以使用POP3重新定向的方法。
#p#
4.保障sMTP安全
如果一個(gè)正在運(yùn)行的SMTP服務(wù)器需要允許出差在外的員工向內(nèi)部網(wǎng)絡(luò)發(fā)送多個(gè)郵件,則可以進(jìn)行如下設(shè)定:
/usr/local/sbin/stunel -d 25 -p /var/lib/ssl/certs/server.pem -r localhost:smtp
這樣就只能保障終端用戶和郵件服務(wù)器之間的安全SMTP傳輸。郵件發(fā)送到域之外的郵件服務(wù)器將不在安全范圍之內(nèi)。
Stunnel安全工具可以為兩個(gè)網(wǎng)絡(luò)或多個(gè)網(wǎng)絡(luò)的郵件服務(wù)器提供安全保障。即使用戶是一個(gè)系統(tǒng)管理員,而不是開發(fā)者,Stunnel也是一個(gè)強(qiáng)大的工具,因?yàn)榭梢韵虿粏⒂肧SL的服務(wù)器端軟件添加SSL。例如, 以上提到的使用Stunnel保護(hù)POP3、SMTP和IMAP服務(wù)器。惟一不盡人意的地方是,需要使用這些服務(wù)器的安全版本,客戶機(jī)必須是可識別SSL的。Stunnel也有些局限性, 比如在服務(wù)器端, 當(dāng)前只能夠透明地代理Linux客戶機(jī)。在客戶機(jī)端,不容易執(zhí)行充分的證書驗(yàn)證。
【編輯推薦】