如何保護我的 Asterisk 伺服器?
我們的星號伺服器遭到入侵。上週末向亞洲國家打了一些電話。
認為我們已經改進了我們的網路配置,我們仍然想確定入侵是如何進行的,我們認為在我們的星號日誌文件中有線索。
但我們不知道要查找什麼,基於預設星號:
在安裝星號伺服器時,您需要考慮哪些安全問題?
這就是我保護我的 Asterisk 伺服器的方法,該伺服器自 2006 年以來一直在生產中。
防火牆
僅為必要的服務打開入站埠。(您確實必須為 RTP 流打開一個廣泛的範圍,但這通常不是問題,因為在該埠範圍內通常沒有任何東西可以監聽。)
22/tcp
ssh(當然是為了管理)4520/udp
DUNDi(如果您使用的是 DUNDi)4569/tcp
IAX2(如果您使用的是 IAX)5060/udp
SIP註冊10000-20000/udp
RTP - 媒體傳輸一些設備用於 RTP 流的埠範圍要窄得多。例如,某些 Cisco(以前的 Linksys/Sipura;元件號以 PAP、SPA 或 WRP 開頭)設備僅使用
16384-16482
.擴展
如果可能,請限制允許 SIP 客戶端連接的 IP 地址範圍。如果將其部署在辦公室中,請將埠 5060 的連接限制為電話所在位置內的 IP 地址。如果您必須接受來自您無法控制的 Internet 地址的連接,請考慮阻止特定國家/地區的 IP 地址範圍。
不要使用 SIP 分機號碼作為使用者名。如果您的 SIP 客戶端支持它,請改為提供所有名稱。
為所有 SIP 分機設置強密碼。這應該是顯而易見的,但並非總是如此。
通過閱讀您上一個問題所附的日誌,我能夠確定您有一個使用 username 定義的 SIP 擴展
1
,其秘密很容易猜到,攻擊者在第一次嘗試時就猜對了。擴展可能根本沒有定義任何秘密。
alwaysauthreject=yes
中使用sip.conf
。這可以防止攻擊者通過蠻力確定是否存在 SIP 擴展。
allowguest=no
中使用sip.conf
。這可以防止未經身份驗證的客戶端撥打電話。行政
更改UNIX 使用者、數據庫和管理前端(如 FreePBX)的所有預設密碼。
設置
bindaddr = 127.0.0.1
以manager.conf
確保 Asterisk 管理界面不對外開放。其他
安裝fail2ban。我已將其配置為在兩次嘗試失敗後阻止,但如果您可以完全控制所有設備以使它們永遠不會無法正確登錄,您可以將其設置為在一次失敗嘗試後阻止。
如果您不需要撥打國際電話,請讓您的 SIP 中繼提供商在其終端禁用該功能。您還可以配置您的星號伺服器不路由此類呼叫。
這應該涵蓋基礎知識,並且可以讓您在大多數情況下避免麻煩。如果您部署任何不尋常的服務或編寫自己的自定義配置,您可能需要做一些額外的工作來保護它們。