Security

如何保護我的 Asterisk 伺服器?

  • April 13, 2019

我們的星號伺服器遭到入侵。上週末向亞洲國家打了一些電話。

認為我們已經改進了我們的網路配置,我們仍然想確定入侵是如何進行的,我們認為在我們的星號日誌文件中有線索。

但我們不知道要查找什麼,基於預設星號:

在安裝星號伺服器時,您需要考慮哪些安全問題?

這就是我保護我的 Asterisk 伺服器的方法,該伺服器自 2006 年以來一直在生產中。

防火牆

僅為必要的服務打開入站埠。(您確實必須為 RTP 流打開一個廣泛的範圍,但這通常不是問題,因為在該埠範圍內通常沒有任何東西可以監聽。)

  • 22/tcpssh(當然是為了管理)
  • 4520/udpDUNDi(如果您使用的是 DUNDi)
  • 4569/tcpIAX2(如果您使用的是 IAX)
  • 5060/udpSIP註冊
  • 10000-20000/udpRTP - 媒體傳輸

一些設備用於 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.1manager.conf確保 Asterisk 管理界面不對外開放。

其他

安裝fail2ban。我已將其配置為在兩次嘗試失敗後阻止,但如果您可以完全控制所有設備以使它們永遠不會無法正確登錄,您可以將其設置為在一次失敗嘗試後阻止。

如果您不需要撥打國際電話,請讓您的 SIP 中繼提供商在其終端禁用該功能。您還可以配置您的星號伺服器不路由此類呼叫。


這應該涵蓋基礎知識,並且可以讓您在大多數情況下避免麻煩。如果您部署任何不尋常的服務或編寫自己的自定義配置,您可能需要做一些額外的工作來保護它們。

引用自:https://serverfault.com/questions/436563