流量檢查可實現(xiàn)讓VoIP數(shù)據(jù)高枕無憂
2010/03/16
多媒體應(yīng)用與企業(yè)傳統(tǒng)網(wǎng)絡(luò)結(jié)合在企業(yè)中已經(jīng)是司空見慣的事情。特別是隨著VoIP技術(shù)的穩(wěn)步發(fā)展,IP語音逐漸成為企業(yè)網(wǎng)絡(luò)中的一個不可或缺的新成員。但是這也對企業(yè)網(wǎng)絡(luò)的安全提出了新的挑戰(zhàn)。最近針對企業(yè)VoIP應(yīng)用的攻擊也逐漸多了提來。筆者也跟攻擊者打過幾回交道。在這里筆者就跟大家分享一下這方面防護的經(jīng)驗,主要就是如何通過流量檢查讓VoIP數(shù)據(jù)高枕無憂。
一、保障H.323協(xié)議的安全
H.323協(xié)議是VoIP技術(shù)中一個比較關(guān)鍵的協(xié)議。由于這個協(xié)議族是基于TCP連接的,所以也比較容易受到攻擊。H.323協(xié)議族使用2個TCP連接以及4到6個UDP連接。他們基本上都是為了一個特定的會話而協(xié)同工作。這個協(xié)議可以完成多項關(guān)鍵性的工作。如其管理安全與認(rèn)證相關(guān)的內(nèi)容、協(xié)商信道的使用等等。故保證這個協(xié)議的安全性,是VoIP安全體系中一個非常重要的內(nèi)容。
在實際工作中,由于這個協(xié)議其采用的事抽象語法符號對分組進行編碼。為此要對其采取一些安全措施有一定的難度;蛘哒f,市面針對這種抽象語法符號的安全解決方案比較少。這主要是因為要理解H.323流的內(nèi)容比起理解其他現(xiàn)存的協(xié)議的流要相對簡單許多。正是由于這一點,很多攻擊者就喜歡拿這個協(xié)議開刀,作為攻擊的跳板。
那么安全管理人員是否就對此束手無策了呢?那也不是。在思科的防火墻中,就提供了一個現(xiàn)成的防護機制。H.323通常情況下是使用1720做為TCP控制端口的。而這個端口也是攻擊者喜歡使用的端口。在現(xiàn)實工作中,如果能夠加強對這個端口的流量進行檢查,那么久可以保證VoIP應(yīng)用的安全。通過命令fixup protocol h323命令就可以啟用對這個端口流量的檢查。由于在PIX防火墻中默認(rèn)是通過端口1720連接來檢查h.323流量,故在命令中不需要帶上端口參數(shù)。
不過有時候為了進一步提套其安全性,會改變這個默認(rèn)端口。改變之后,攻擊者就不能夠通過端口掃描等方法來判斷企業(yè)是否采用了VoIP應(yīng)用。改變了端口之后,安全設(shè)置人員仍然需要在改變端口后的新端口中啟用H.323流量檢查。此時需要在命令fixup protocol h323后面帶上端口參數(shù)。
二、啟用MGCP流量檢查
MGCP是一個語音協(xié)議,它的地位與H.323協(xié)議類似。語音協(xié)議與7號信令系統(tǒng)一起運行。這個協(xié)議的主要功能就是用來橋接交換電路網(wǎng)絡(luò)以及分組網(wǎng)絡(luò)。MGCP語音協(xié)議可以將信令與呼叫控制同媒體網(wǎng)關(guān)分離。當(dāng)MGCP語音協(xié)議受到攻擊的話,就有可能出現(xiàn)語音通信故障,甚至被竊聽的情況。所以啟用MGCP流量檢查,保障這個MGCP流量的安全,也是非常重要的一項安全措施。
默認(rèn)情況下,這個流量檢查是被禁用的。這主要是出于性能的考慮。因為對流量進行檢查,勢必會對數(shù)據(jù)流的傳輸造成負(fù)面的影響。故在啟用這個檢查之前,網(wǎng)絡(luò)安全人員還需要評估,在安全與性能之間取得均衡。通常情況下,要使用MGCP語音協(xié)議至少需要用到兩個端口,一個用于網(wǎng)關(guān)接受命令(默認(rèn)采用的端口是2427),另外一個用于呼叫代理接收命令(默認(rèn)使用的端口號是2727)。如果要啟用MGCP流量檢查的話,則需要同時在這兩個端口上進行配置。其配置也很簡單,只需要使用命令fixup protocol mgcp,后面加上具體的端口號即可。
筆者再次強調(diào)一下,當(dāng)啟用了MGCP流量檢查之后,一定要對其性能進行評估。如果網(wǎng)絡(luò)部署不合理,則啟用這個功能后,IP語音電話的性能會有直線的下降,甚至出現(xiàn)語音電話比較長時間的延遲。所以啟用后進行性能的評估,是非常有必要的。不要等到用戶投訴后再去處理。
三、啟用SCCP客戶控制協(xié)議
SCCP,又叫做瘦客戶端協(xié)議。顧名思義,它是普通客戶端協(xié)議的簡化版。這個協(xié)議主要用于思科呼叫管理器以及VoIP電話之間的通信。雖然這最早是思科開發(fā)設(shè)計的,不過現(xiàn)在其他公司的產(chǎn)品也有支持這個協(xié)議的。在VoIP解決方案中,這個可以簡化終端機的操作,易于用戶上手。
在需要啟用對這個協(xié)議的應(yīng)用檢查之前,企業(yè)管理人員比需要了解一些前提條件。即如果將SCCP協(xié)議與NAT等技術(shù)一起使用的話,需要遵守一些限制條件。一是這個檢查不支持分段的SCCP消息;二是不支持外部的NAT技術(shù);三是要慎用命令debug skinny,其可能會導(dǎo)致信息延遲發(fā)送,在實時環(huán)境中對性能會產(chǎn)生一定的負(fù)面影響;四是不支持SCCP呼叫狀態(tài)失效功能等等。注意只有對SCCP協(xié)議啟用應(yīng)用檢查的時候,會有這么多的限制。而且只有將SCCP協(xié)議與NAT技術(shù)組合使用時才會有。而對于上面提到的其他協(xié)議,則沒有這方面的規(guī)定。所以在實際工作中容易被技術(shù)人員所忽視。
默認(rèn)情況下,這個應(yīng)用檢查是被啟用的。用戶可以使用命令fixup protocol skinny命令來更改分配給SCCP的缺省端口(缺省端口默認(rèn)為2000)。在實際應(yīng)用環(huán)境中,通過更改缺省端口也是一種提高其安全性的措施。在這個命令后面加上port選項就可以更改其默認(rèn)的端口,使用-port選項則可以在一定的端口范圍內(nèi)來啟用SCCP應(yīng)用檢查。
這個協(xié)議與上面談到的幾個協(xié)議有所區(qū)別。如在這個協(xié)議與NAT技術(shù)組合使用的情況下,啟用SCCP應(yīng)用檢查的話,需要遵循一些限制條件。再如在配置命令的時候,其采用的關(guān)鍵字是skinny,而不是SCCP。像其他協(xié)議使用的關(guān)鍵字都是協(xié)議本身。這一點對于初學(xué)的人來說需要特別的強調(diào)一下。
另外當(dāng)SCCP與NAT組合使用時,筆者順便提一個跟安全無關(guān)的問題,但是其影響到VoIP的正常使用。當(dāng)呼叫服務(wù)器的地址經(jīng)過NAT服務(wù)器重定向到另外一個地址或者端口的時候,并且外部電話使用TFTP向其進行注冊,則防火墻一般不支持使用TFTP簡易文件傳輸協(xié)議來傳輸文件。也就是說,即使防火墻支持TFTP消息的NAT地址轉(zhuǎn)換技術(shù),并且TFTP協(xié)議數(shù)據(jù)流也可以通過防火墻,但是在電話注冊時IP電話的配置文件不能夠使用TFTP協(xié)議傳輸。因為防火墻通常情況下不能夠解析IP電話的配置文件中嵌入的呼叫服務(wù)器的IP地址與端口。故筆者建議,在實際工作中如果沒有充分必要的話,不要將SCCP瘦客戶端協(xié)議與NAT網(wǎng)絡(luò)技術(shù)轉(zhuǎn)換技術(shù)同時使用。如果確實要使用的話,則這些安全與部屬上的限制條件要牢記在心。在部屬于設(shè)置完成之后,需要進行比較嚴(yán)格的測試,特別是要針對這些限制條件進行測試。
除了以上三個協(xié)議之外,VoIP應(yīng)用中還涉及到SIP會話初始化協(xié)議等等。其原理跟這三個協(xié)議類似。出于安全的考慮,也需要啟用應(yīng)用檢查。無論是什么協(xié)議,只要對其啟用了流量檢查,都需要評估啟用了之后是否會對性能產(chǎn)生不利的影響。通常情況下,啟用了之后肯定會造成性能的下降。不過企業(yè)網(wǎng)絡(luò)部屬方案與環(huán)境不同,其造成的影響也是不同的。所以管理員需要測試與評估,看其是否在用戶能夠忍受的范圍之內(nèi)。魚與熊掌不能夠兼得,用戶還是需要在這兩者當(dāng)中進行選擇。一般情況下,只要不影響到IP電話的通話效果,還是要啟用為好。畢竟除了這個應(yīng)用檢查之外,現(xiàn)在還沒有其他比較好的安全措施。
ZDNET
相關(guān)閱讀: