劉曉鳴 王玉玲
[摘要]本文介紹72消息中心系統的安全防護經驗,通過在主機系統開啟SSH的白名單、限制防問ORACLE主機的IP地址、啟用主機防火墻iptables進行端口防問控制方式增加短消息中心系統的安全性。
[關鍵詞]短消息中心 安全 防護
一、背景
隨著信息安全工作的重視,某通信運營商的短消息中心系統是上級公司和工信部信息安全檢查的重點系統,其網絡結構如圖1所示。
在公司組織的安全自查中,共發現系統安全漏洞544個,經過升級操作系統,打軟件補丁等方式解決512個,但有32個漏洞由于系統沖突,操作系統廠商停止服務和業務限制等原因無法進行根本性修復,給系統運行帶來一定的安全風險。對于此類安全問題,可采取的其它方式進行規避。
通常的規避方法為采用防火墻的方式在邊界進行控制,即EDM300防火墻上做防問策略,只允許其它網段特定的主機防問短消息中心特定的服務器。通過防火墻的限制,可以消除絕大部分的安全威脅,但當安全威脅來自短消息中心系統內部時,防火墻就無能為力,特別上級部門檢查,要求避開防火墻接入內網進行漏洞掃描,因此,防火墻對系統的保護對于安全檢查時無法發揮作用。因此需要從其它的途徑尋找方法,消除漏洞給信息安全帶來的風險。
經過對殘存的系統漏洞進行統計,可以歸納為三類:
1.SSH遠程登錄
2.ORACLE數據庫系統方面
3.Apache Tomcat JSP應用服務器程序
二、解決方案
2.1SSH遠程登錄方面解決方案
SSH是目前較可靠,專為遠程登錄會話的協議工具,以加密方式傳送數據,在短消息中心系統中,用于遠程登錄維護服務器使用,短消息的業務實現本身不使用SSH協議。因此,短消息中心的SSH服務使用者僅限于系統維護人員。因為SSH為本身的服務,可以通過系統服務白名單的方式將允許登錄的主機限定于系統維護人員的主機,拒絕其它主機的連接請求。
具體做法如下:
1、修改/etc/hosts.allow文件,添加如下內容:
sshd:192.168.1.2:allow
表示允許192.168.1.2地址連接系統的SSH服務。
2、修改/etc/hosts.deny文件,添加如下內容:
sshd:all:deny
此文件是拒絕服務列表,修改后文件內容表示拒絕了所有sshd遠程連接。當hosts.allow和host.deny相沖突時,以hosts.allow設置為準,這樣就通過IP地址精確的指定了可以防問短消息系統的主機。
3、重啟系統的SSH服務
/etc/init.d/sshd restart
以此步驟,將系統維護人員機器的IP加入到短消息系統的各個主機,使之只允許維護人員遠程登錄,拒絕其它任何主機的SSH連接。
2.2ORACLE數據庫系統方面漏洞的解決方案
經過向短消息中心廠商了解,短消息中心的Oracle數據主要在業務實現時各個服務器之間的相互調用,并不需要對其它外界的主機提供的服務。因此對Oracle的連接僅限于短消息中心各個服務器之間,對于其它的IP址,完全可以禁止連接。
由于Oracle數據庫系統服務并非linux系統本身自帶服務,因此不能通過操作系統黑白名單方式進行解決。Oracle提供限制與允許特定的IP或主機名通過Oracle Net來訪問數據庫。這個功能由sqlnet.ora配置文件來實現。該文件通常$ORACLE_HOME/network/admin/目錄下,與tnsnames.ora以及listener.ora位于同一路徑。通過監聽器的限制,實現輕量級訪問限制,比在數據庫內部通過觸發器進行限制效率要高。
根據安全服務廠商綠盟的提供的其它運營商的經驗,并經過短消息中心廠商研發確認,決定采用配置sqlnet.ora的方法限制IP訪問數據庫。具體做法如下:
1、統計短消息中心服務的所有地址,包括服務地址、私網地址及雙機浮動地址,并制成列表,避免遺漏以免造成系統之間的數據庫訪問失敗從而影響短消息業務。
2、在數據庫的主機上修改tnsnames.ora文件,將統計到地址全部加入到tnsnames.ora文件:
tcp.validnode_cheching=yes
tcp.invited_nodes=(172.50.XXX.1,172.50.XXX.2,172.50.XXX.3,ip4,ip5)
通過設置tnsnames.ora文件invited_nodes值,所有沒有包含在invited_nodes值中的IP或主機將無法通過Oracel Net連接到數據庫,不能使用數據庫的服務。
3、重啟監聽器使之生效。
Isnrctl reload listener SMC11
2.3 Apache Tomcat應用服務器程序程序漏洞的解方案
Apache Tomcat提供一個動態網頁服務和程序,在短消息中心中主要提供報表服務器的查詢與瀏覽,給維護人員提供一個簡單、友好的使用界面。此類程序因不是服務器系統的自身服務,無法通過系統黑名單進行訪問控制。一般采用在邊界防火墻進行限制,但如此不能解決在內網掃描出現漏洞的問題。經過查詢資料,與安全廠商與短消息中心廠商溝通,通過啟用主機防火墻iptables進行端口防問限制的方式進行解決。
iptables是與最新的3.5版本Linux內核集成的IP信息包過濾系統。netfiher/iptables IP信息包過濾系統是一種功能強大的工具,可用于添加、編輯和除去規則,這些規則是在做信息包過濾決定時,防火墻所遵循和組成的規則。這些規則存儲在專用的信息包過濾表中,而這些表集成在Linux內核中。在信息包過濾表中,規則被分組放在我們所謂的鏈(chain)中。根據主機在網絡所起的作用不同,有三種包過濾包方式分別是INPUT,OUTPUT及FORWARD,對應下圖A,C,B三個路徑。
具體到我們的要求,需要的INPUT路徑的過濾器添加規則,限制訪問HTYP服務的地址。具體操作步驟如下:
1.清除原有規則.
#iptables-F
#iptables-X
2.在INPUT鏈中添加規則
iptables-A INPUT-s 1 92.168.1.2-p tcp-dport 8080-jACCEPT
iptables-A INPUT-s 192.168.1.3-p tcp-dport 8080-jACCEPT
iptables-A INPUT-P tcp-dport 8080-j DROP
通過設置規則,允許特定的IP地址的主機訪問短消息中心8080端口,未設置的IP則不能訪問。
3.保存規則
/etc/rc.d/init.d/iptables save
三、實施效果
方案實施后,再用綠盟掃描工具對短消息中心的主機進行漏洞掃描,原來的漏洞已經不再顯示。經過對SSH、ORACLE、Apache進行了白名黑控制后,杜絕了非相關人員登錄系統,連接數據庫,提高了系統的安全性。在工信部組織的信息安全檢查中,短消息中心也沒有被檢測出有信息安全問題。