Was this page helpful?

Asterisk/FreePBX 專有名詞解析

    insecure=port,invite

    • port:Asterisk 忽略對方的 port,只根據對方的 address 來驗證某個 peer,Asterisk 收到對方的 Invite 後,會發送SIP/2.0 401 Unauthorized 到對方,要求對方發送認證信息,但事實上對方返回回來的認證信息不會被真正使用。
    • invite:Asterisk 對初始 Invite 不進行驗證。這意味著 Asterisk 直接使用客戶端傳入的 Invite 封包中的訊息嘗試進行驗證而不會發送 SIP/2.0 401 Unauthorized 封包到對方。

    type=peer

    type 有三種,只能設定其中一項

    • peer:定義對方是一個服務提供者, 它允許你的 Asterisk 透過這裡定義的服務商打電話。
    • user:定義對方是你的一個客戶端, 允許對方透過你的 Asterisk 打電話。
    • friend:兩者兼有。
       

    如果 type 是 peer,有兩層含義:

    • 可以將對方作為一個SIP Service Provider,允許你的Asterisk通過對方進行撥出。
    • 如果對方在邏輯上是一個客戶端,asterisk 將根據傳入的 Invite 請求來對對方進行身份驗證, 但需要注意的是這裡的驗證不是通過 username 和 secret, 而是通過對方的 address 和 port。這裡分兩種情況:
      1. 對方的 address 和 port 沒有匹配到你在sip.conf中對任何一個 peer 的設置,如果你的 Asterisk 允許匿名撥入(allowguest=yes),那麼, 該呼入將被傳到在 sip.conf 的 general 配置中的 context上。如果不允許匿名撥入, 直接拒絕該撥入。
      2. 對方的 address 和 port 匹配到了任何一個 sip.conf 的peer 設置,那麼改撥入將被傳到該 peer 指定的 context上。
         

    如果 type 是 user:

    根據來源 Invite 包中的用戶和密碼訊息來認證,所以對方不能也不需要 Register 到你的 Asterisk 似服器上。

    需要額外說明一點的是 Register,如果某個 peer 的 host 設置為 dynamic,那麼 Asterisk 允許客戶端通過 Register 的方式來告訴 Asterisk 對方的 IP 與 Port。

    特別注意:經網友證實,以上細節僅限於SIP協議,對於IAX協議,在 IAX 裡那個 from 驗證 IP 是沒有用的,形同虛設,必需使用上面的兩行參數驗證對方的 IP 才行,要沒有這兩行,任何的 asterisk 只要知道你的伺服器的 IP 都可以通過你的asterisk 進行撥出,如果需要杜絕這個隱患,需 要修改/etc/asterisk/manager.conf文件,增加類似下面的例句:

    deny=0.0.0.0/0.0.0.0
    permit=122.227.22.22/255.255.255.0

    Was this page helpful?
    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core