3

私はフリースイッチの世界に不慣れです、誰かが私のゲートウェイを使用してハッキングされ、認証なしで未登録のユーザーからの呼び出しを初期化しました(私が自分でテストした後)、UDP招待パケットをフリースイッチに送信した場合次のようにLinuxでncコマンドを使用するサーバー:

$ nc -u x.x.x.x 5060 < invite

invite file contain the following : 
INVITE sip:+99xxxxxxx@x.x.x.x SIP/2.0
Via: SIP/2.0/UDP x.x.x.x:5060
Max-Forwards: 70
To: Bob <sip:+99xxxxxx@xxx.xxx.xxx.xxx>
From: Alice <sip:101@x.x.x.x>;tag=1928301774
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact: <sip:101@192.168.15.50>
Content-Type: application/sdp
Content-Length: 142

v=0
o=ibc 1090098764 894503441 IN IP4 192.168.1.33
s=-
c=IN IP4 192.0.2.200
t=0 0
m=audio 33445 RTP/AVP 98 97 8 0 3 101
a=rtpmap:98 speex/16000
a=rtpmap:97 speex/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=zrtp

私は次のことを発見しました:
ユーザー101は未登録のユーザーであり、パケットに認証ヘッダーがありません。フリースイッチがゲートウェイを介した呼び出しを許可している場合でも同様です。

では、ゲートウェイを介して発信する前に、発信者のユーザー名とパスワードを認証する方法はありますか?

4

4 に答える 4

2

通常の (デフォルトの例) 構成では、freeswitch に 2 つの SIP プロファイルがあります。まず、internal という名前でポート 5060 をリッスンし、そこでパケットの認証が必要です。2 番目の SIP プロファイルは、external という名前で、ポート 5060 でリッスンしており、コール スローを実行するために認証は必要ありません。外部プロファイルのセキュリティは、ダイヤルプランによって提供される必要があります。そうでない場合、ハッカーは INVITE を使用して freeswitch と通信できます。このコマンドは、freeswitch 呼び出しをゲートウェイにスローさせ、最初の呼び出しでブリッジします。

于 2016-05-07T16:23:11.693 に答える
2

@borik-bobrujskov に同意します。同じ回答を拡張するだけです。

sip_profiles/external.xml で、次のオプションを追加します

<param name="auth-calls" value="true"/>
<param name="accept-blind-auth" value="false"/>
<param name="log-auth-failures" value="true"/>
<param name="auth-all-packets" value="true"/>

これにより、以下のようなプロキシ認証チャレンジがすべての着信 sip リクエストに対して送り返されます。

SIP/2.0 407 Proxy Authentication Required
Via: SIP/2.0/UDP x.x.x.x:5060;branch=z9hG4bK4d5f.11c7cfacce4d26c8fd1b01339c08b1dc.0
From: "1001"<sip:100@x.x.x.x;transport=TCP>;tag=18aa565e
To: <sip:200@y.y.y.y:5080;pstn_inbound=;ignore_userinfo=>;tag=eX6m9Ktp48aaF
Call-ID: ZwRgsMB3luEHyKaM2vL9eQ..
CSeq: 1 INVITE
User-Agent: FreeSWITCH-mod_sofia/1.9.0-742-8f1b7e0~64bit
Accept: application/sdp
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, refer
Proxy-Authenticate: Digest realm="x.x.x.x", nonce="e797bde2-c7b5-47a7-ae95-931af57c9774", algorithm=MD5, qop="auth"
Content-Length: 0

ダイジェスト、ユーザー名、レルム、ノンスなどを含むプロキシ認証ヘッダーを使用して別の INVITE (CSeq-2 を使用) を再構築し、freeswitch サーバーに再送信して認証し、呼び出しを続行することは、UA 次第ではありません。

Proxy-Authorization: Digest username="aaa", realm="x.x.x.x", nonce="e797bde2-c7b5-47a7-ae95-931af57c9774", uri="sip:200@x.x.x.x5:5080;pstn_inbound=;ignore_userinfo=", qop=auth, nc=00000001, cnonce="4060286812", response="cae451f24bbbcefeb7d01c13b070026a", algorithm=MD5
于 2019-09-04T07:00:58.030 に答える
0

"param name="accept-blind-auth" value="true"" を使用すると、ブラインド認証が得られます。

パスワード認証なし。

于 2014-12-12T04:48:39.957 に答える