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