讓你的郵件更安全 加密保護郵件服務器
SSL(Security Socket Layer)協議由Netscape公司設計開發,主要用來提供對用戶和服務器的認證;對傳送的數據進行加密和隱藏;確保數據在傳送中不被改變(即數據的完整性),現已成為該領域中全球化的標準。
Stunnel是一款可以加密網絡數據的TCP連接工具,可工作在Unix、Linux和Windows平臺上,采用Client/Server模式,將CIient端的網絡數據采用SSL加密,安全傳輸到指定的Server端再進行解密還原,然后發送到訪問的服務器。
StunneI很好地解決了SSL不能對現有舊的應用程序傳輸數據加密的問題。在Stunnel出現之前,要實現安全的數據傳輸,只能依靠在應用程序之中添加SSL代碼的方式來提高安全性。Stunnel基于OPenSSL,所以要求安裝OpenSSL,并進行正確的配置。Stunnel可以向不啟用SSL的服務器端軟件提供保護卻不需對守護進程的編碼做任何修改,Stunnel的工作原理如圖所示。例如,可以使用Stunnel保護POP3、SMTP和IMAP服務器。StunneI最新版本為stunel-4.33.tar.gz,其官網為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封裝一些流行的郵件服務器。
2.保障IMAP安全
IMAP(Internet MessageAccess Protocol)是用戶從不同的計算機訪問郵件的一種方式。其工作方式為在一臺中央計算機上存儲信息,并且允許用戶訪問信息的一個拷貝。用戶可以讓本地工作站和服務器同步, 此外也可以為郵件創建一個文件夾, 并且具有完全的訪問權限。通過Stunnel封裝IMAP有兩種方法。
1).通過stunnel直接運行IMAP服務
如果有使用SSL協議連接的IMAP客戶端,則推薦使用這種方法。首先關閉imapd守護進程,然后使用重啟腳本(/etc/rc.d/rc.1ocal)中的命令行代替imapd,使用如下命令:
/usr/sbin/stunel -p /usr/local/ssl/certs/stunel.pem -d 993 -r localhost:143 |
這個命令使用IMAPS端口(993)上指定的文件運行Stunnel,imapd端口監聽程序的代理,在143端口上運行。如果允許非SSL IMAP客戶端連接到標準的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運行安全的IMAP
從守護進程的概念可以看出,對于系統所要通過的每一種服務,都必須運行監聽某個端口連接所發生的守護進程,這通常意味著資源浪費。
為了解決這個問題,Linux引入了"網絡守護進程服務程序" 的概念。xinetd能夠同時監聽多個指定的端口,在接受用戶請求時,能夠根據用戶請求的端口不同,啟動不同的網絡服務進程處理這些用戶請求。可以把xinetd看做一個管理啟動服務的管理服務器,把一個客戶請求交給程序處理,然后啟動相應的守護進程。如果使用xinetd運行IMAP服務,修改配置文件(/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 } |
然后向超級服務程序傳遞SIGHUP信號,重新載人xinetd配置:
killall -USR1 xinetd |
3.保障POP3安全
為了使用SSL連接POP3郵件服務,要重新配置文件腳本如下:
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重新定向的方法。
4.保障sMTP安全
如果一個正在運行的SMTP服務器需要允許出差在外的員工向內部網絡發送多個郵件,則可以進行如下設定:
/usr/local/sbin/stunel -d 25 -p /var/lib/ssl/certs/server.pem -r localhost:smtp |
這樣就只能保障終端用戶和郵件服務器之間的安全SMTP傳輸。郵件發送到域之外的郵件服務器將不在安全范圍之內。
Stunnel安全工具可以為兩個網絡或多個網絡的郵件服務器提供安全保障。即使用戶是一個系統管理員,而不是開發者,Stunnel也是一個強大的工具,因為可以向不啟用SSL的服務器端軟件添加SSL。例如, 以上提到的使用Stunnel保護POP3、SMTP和IMAP服務器。惟一不盡人意的地方是,需要使用這些服務器的安全版本,客戶機必須是可識別SSL的。Stunnel也有些局限性, 比如在服務器端, 當前只能夠透明地代理Linux客戶機。在客戶機端,不容易執行充分的證書驗證。
【編輯推薦】