VoIP安全的話題是非常重要的一個話題,對于FreeSWITCH系統來說相當重要。安全策略包括主動防御策略和被動防守策略。在FreeSWITCH中,主動防御策略包括對SIP和RTP實行多種類型的加密技術來防止篡改和竊聽通話。在FreeSWITCH中的被動防守策略通過結合其他開源的網絡工具來防止從未知道源地址過來的惡意的數據傳輸,防止網絡濫用和電話盜打。當用戶的系統是生成系統時,非常必要使用一些開源的VOIP工具配合FreeSWITCH工作。
我們分成四個部分來逐一介紹:
· 網絡的層次保護
· 撥號信令
· 保護語音
· 保護密碼
網絡的層次保護
大部分搞惡意攻擊的家伙使用開放的網絡端口侵入到內部的VOIP網絡。他們查找比較弱的秘密來獲得軟件的bug,利用內部的設置來控制電話系統的配置和通話路由。最終目的是獲得電話盜打,通話竊聽,或竊取系統信息(例如郵箱的語音留言)。
因為網絡是用戶系統的入口,對用戶網絡的設置要格外小心,用戶可以利用FreeSWITCH的功能來進一步保護系統。
分離接口和限制數據流量
在開放的網絡中,SIP是經常遭受惡意攻擊的一個技術。大部分情況下,那些攻擊者通過對5060端口發送UDP包來掃描IP地址段,然后查看服務器的響應。一旦他們發現了服務器端的響應,攻擊者將瘋狂測試通常使用的密碼然后呼出。在大部分環境中,攻擊者通過虛假注冊或其他數據包來攻擊服務器,導致服務器不能正常工作。
保護FreeSWITCH最簡單的辦法是通過分離SIP接口,強制防火墻或IPTables路由表來支持不同的接口。
就像用戶在上一個章節學習的,FreeSWITCH 支持用戶在同一個系統中設置不同的Sofia SIP接口,通過不同的地址和端口來接收和發送SIP數據流量。通過這樣的設置可以增加額外的一層對安全性和穩定性的保護。
從安全的角度來看,Sofia SIP profiles配置了默認的contexts支持呼入的呼叫。那些contexts 可以默認支持嚴格限定的撥號規則。如果用戶把限定的contexts和保護工作和相關的SIP profile,用戶將嚴格限制某些人發送SIP盜打信息進入到用戶系統,即使用戶偶然創建了錯誤的配置文件,也不會對系統安全造成很大影響。
另外,每個Sofia SIP profile 可以支持一個不同的ACL列表。通過這樣的方法,用戶可以配置更加嚴格的限制措施應對IP地址和一些控制不是非常嚴格的內網地址。
從穩定性和性能來說,已知的事實是,在FreeSWITCH設計中,每個Sofia SIP接口是一個分離的線程。這表示,每個線程可以有各自的端口和IP地址,如果有人用戶對系統干涉的話,獨立的線程可以幫助用戶把這個干擾降低到最少程度。但是,這不是一個萬無一失的方法來保護用戶系統,如果被攻擊時,可能這樣的方法對用戶有所幫助。
舉例設置-簡單方式
最簡單的設置中,系統有一個接口,運營商可以通過這個接口來連接到用戶端,對應另外一個接口,這個用戶電話可以輕松使用。大部分惡意的攻擊是通過端口掃描5060發現用戶正在這個端口接收和響應SIP數據流量。在這里,攻擊者會使用各種認證方式的組合來發現漏洞,直到發現一個生效的端口,或肆意不停測試那個端口。如果用戶使用ACL限定了這個IP地址,修改端口號碼為一個任意的端口,僅允許從運營商來到呼入,用戶可立馬防止攻擊者訪問系統,即使這個攻擊者獲得了正確的用戶名和密碼,也不會非常輕松地訪問系統。
另外一個辦法是,用戶使用特別的和非常不同的端口,這樣攻擊者可能非常困難對系統進行攻擊。另外,用戶可以使用防火墻來限定一個僅支持運營商的端口,開放其他的端口給終端電話。