Was this page helpful?

設置 Asterisk 的安全性 (security)

    文章閱讀

    fraud_pbx_secure_phone.jpg

    Asterisk 安全設定

    以下是在設置 Asterisk 時,對於系統安全性強化的建議作法:

    1. 不要允許任何 IP 位址來源的 SIP 認證要求
      在 sip.conf 的 "permit=" 不要設為 0.0.0.0。
       
    2. 在 sip.conf 設定 "alwaysauthreject=yes", "allowguest=no"
      這些參數可以拒絕未認證的通話要求。
      # asterisk -rx "sip show settings" | grep -i "always auth rejects"
      # asterisk -rx "sip show settings" | grep -i "allow unknown access"
       
    3. 加強 SIP 密碼的強度
      不要使用那些懶人密碼,比如 1234、abcd、與分機號碼相同等等。建議規則至少八碼,並且夾雜英文字及數字。
       
    4. 封鎖系統 AMI manager port
      在 manager.conf 使用 "permit=" 及 "deny=" 限制不必要的連線,及增加密碼強度,至少要有 12 碼,並夾雜英文及數字。強烈建議不要允許外部網路連接
       
    5. 允許一個 SIP 分機在同一時間只能有一個或兩個通話
      這樣設置可降低有人利用分機作暴力,在 sip.conf 加上 call-limit=1 參數。
       
    6. 不要使分機名稱與分機號碼相同
      分機號碼是註冊用的 ID,而分機的名稱較容易曝露在網路上,當兩者設定相同時,註冊 ID 就很容易被猜出來。
      也可以使用 MD5 密碼。
       
    7. 確保預設 context 是安全的
      仔細檢查 /etc/asterisk/extensions.conf,如果系統有收到未經允許的來電時,會執行 [default] 的 dialplan。
      在 FreePBX 請改成 [from-sip-external],內容參考如下:
      exten => _.,1,NoOp(Received incoming SIP connection from unknown peer to ${EXTEN})
      exten => _.,n,Set(DID=${IF($["${EXTEN:1:2}"=""]?s:${EXTEN})})
      exten => _.,n,Hangup
      exten => h,1,Hangup
      exten => i,1,Hangup
      exten => t,1,Hangup

      這個指令可以查出預設 context
      #asterisk -rx "sip show settings" | grep -i context
       
    8. 連線使用 type=peer 認證方式
      不管是分機或與 provider 的連線,若環境條件予許下(所有連線都必須是固定IP),盡可能的全部都使用 peer 方式連線,對於 Asterisk 就可以有更安全的保護。
      FreePBX 的設定方式:
      - 不管是在 Extension 或 Trunk,必須使用 type=peer 及 host=對方 IP;切勿使用 host=dynamic。
      - 新增參數 allowguest=no 在 sip_general_custom.conf,檢查系統狀態:
      #asterisk -rx "sip show settings" | grep -i "Allow unknown access"
      -> 結果必須是 No  
       
    9. 變更所有的預設密碼
      這項主要是針對有裝 freePBX 或其他 UI 的版本,包含有 Trixbox/PIAF/Elastix/AsteriskNow。
       
    10. 關閉 FOP 服務
      這個服務會使內部的分機號輕易的暴露在公用網路上,並且若遭遇密碼暴力攻擊時,會造成系統超過負載。
      編輯 /etc/amportal.conf,修改 FOPRUN=false
       
    11. 關閉 FreePBX 的 Allow Anonymous Inbound SIP Calls
      開啟 FreePBX > Global Settings > Allow Anonymous Inbound SIP Calls,務必將此項設為 no。
       
    12. 修改 Asterisk 預設的識別 - useragent
      安裝後的 Asterisk 都會有一個識別名稱為 Asterisk +版本號,其他發行套件 Trixbox/PIAF/Elastix 也都會有固定的識別名稱,這個名稱很容易就可以透過遠端網路來取得,建議修改成與軟體無任何關係的名稱。
      編輯 /etc/asterisk/sip_general_custom.conf
      useragent=MyPBX
       
    13. 關閉 SIP 以外沒用到的模組
      編輯 /etc/asterisk/modules.conf,加上以下的內容。(除了 SIP 服務,其餘全部關閉)
      ; Don't load skinny (tcp port 2000)
      noload => chan_skinny.so
      ; Don't load MGCP (udp port 2727)
      noload => chan_mgcp.so
      ; Don't load dundi (udp port 4520)
      noload => pbx_dundi.so
      ; Don't load unistim (udp port 5000)
      noload => chan_unistim.so
      ; Don't load ooh323 (tcp port 1720)
      noload => chan_ooh323.so
      ; Don't load IAX2 (udp port 4569)
      noload => chan_iax2.so
      ; Don't load LDAP
      noload => res_config_ldap.so
       

    FreePBX 網站安全

    重大安全威脅事件

    • [2011-6-3] 連 Fail2Ban 都無法阻擋的攻擊方式,當攻擊者在未註冊狀態下直接撥 Asterisk 的分機時,不管分機存在與否,Asterisk 都不會紀錄來源 IP,以致於無法使用 fail2ban 進行阻擋,攻擊者可藉此做出類似 DDos 攻擊以癱瘓 Asterisk 主機。(目前尚未有合適的解決方案 可修改dialplan 來改善)

    建議方案

    Was this page helpful?
    標籤 (Edit tags)
    • No tags
    查看第1個(總1個)評論: 查看所有
    請教 elastix 2.3 設定問題

    剛剛安裝好 elastix 2.3 版 , 要開始設定分機時 , 系統要求密碼要英文加數字 , 但是我的 voip gateway 設備不支援密碼中有要英文 , 請問要如何修改 elastix 2.3 只使用數字密碼 .
    發佈時間 08:46, 24 Jun 2012 ()
    查看第1個(總1個)評論: 查看所有
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core