3

我是freeswitch世界的新手,如果我向freeswitch发送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 是未注册用户,并且在数据包中没有 authintication 标头,即使 freeswitch 允许通过我的网关进行呼叫。

那么在通过网关发起呼叫之前,有什么方法可以验证呼叫者的用户名和密码?

4

4 回答 4

3

我的第一个猜测是检查 sofia.conf.xml 寻找

<param name="accept-blind-auth" value="true"/>

在这里,您可以了解有关 FS 中 sip 身份验证的更多详细信息: http ://wiki.freeswitch.org/wiki/Sofia_Configuration_Files#Auth

于 2013-06-03T08:43:07.393 回答
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

UA 不能用包含摘要、用户名、领域、随机数等的代理授权标头重建另一个 INVITE(使用 CSeq-2)以重新发送到 freeswitch 服务器以进行身份​​验证并继续调用

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 回答
2

在 vanilla(默认示例)配置中,freeswitch 有两个 SIP 配置文件。首先,命名为 internal,侦听端口 5060,并且需要对数据包进行身份验证。第二个 SIP 配置文件,名为 external,侦听端口 5060,并且不需要身份验证即可调用 throw 它。外部配置文件的安全性必须由您的拨号方案提供。如果不是,那么黑客可以通过 INVITE 与 freeswitch 交谈,该命令使 freeswitch 调用抛出你的网关并将其与初始调用桥接。

于 2016-05-07T16:23:11.693 回答
0

如果你使用 "param name="accept-blind-auth" value="true"" 会给你盲验证。

无需密码验证。

于 2014-12-12T04:48:39.957 回答