Asterisk 注册后才接受邀请

Asterisk 注册后才接受邀请,asterisk,Asterisk,我运行自己的sip服务器(星号)。显然,我的sip服务器允许在不进行任何注册的情况下执行INVITE。这会导致对我的服务器进行大量不成功的攻击。是否有任何方法只允许来自成功注册的客户端的INVITE请求?通过星号还是iptables 您需要在sip.conf中将allowguest参数更改为no 有关星号中安全性的更多提示,请查看下面的链接: Fail2Ban是一种阻止不必要流量的简单方法!FAIL2BAN检查系统失败的日志,如果在某个特定的时间从某个远程IP中有太多(超过定义的阈值)失败的尝试

我运行自己的sip服务器(星号)。显然,我的sip服务器允许在不进行任何注册的情况下执行INVITE。这会导致对我的服务器进行大量不成功的攻击。是否有任何方法只允许来自成功注册的客户端的INVITE请求?通过星号还是iptables

您需要在sip.conf中将allowguest参数更改为no

有关星号中安全性的更多提示,请查看下面的链接:


Fail2Ban是一种阻止不必要流量的简单方法!FAIL2BAN检查系统失败的日志,如果在某个特定的时间从某个远程IP中有太多(超过定义的阈值)失败的尝试,那么Fult2PAN将其视为攻击,然后在IPTABLE中添加该IP地址以阻止来自它的任何类型的流量。以下链接会有所帮助


到目前为止,我的研究告诉我,注册仅用于asterisk访问或转发邀请,而不用于验证邀请请求。当邀请到来时,asterisk会尝试检查给定的用户名,如果用户名有效,它会向客户端发送407(需要身份验证)。然后,客户端在响应中插入密码(加密),并将INVITE2发送到服务器。现在,服务器对用户进行身份验证,当凭据匹配时,继续建立呼叫

结论:邀请与注册无关,因此我不可能只限制注册客户发送邀请


作为一种变通方法,我编写了自己的脚本。源代码位于

考虑一个真正的会话边界控制器,当您被黑客攻击时,它会很快为自己付费。但是,如果您想要“足够好”选项,请继续阅读:

有一个名为“string”的iptables模块,它将在数据包中搜索给定的字符串。在SIP的情况下,我们希望在任何给定地址的第一个数据包中看到“REGISTER”,因此将其与
-m state--state NEW
或类似的内容结合起来。之后,我们希望保持活动状态,以确保连接跟踪保持打开状态(通常星号发送选项,但它可以发送空UDP)。无论如何,如果客户机支持NAT,您都需要这样做

这不是理想的解决方案,因为iptables无法判断注册是否成功,但至少我们可以坚持让其他人尝试注册。下面链接的一个答案显示了在iptables中使用字符串模块:


您还可以将AGI脚本放入拨号计划中,执行一些额外的检查,可能会查看IP地址以及扩展是否已注册。。。确保邀请来自同一来源IP。

不要认为IPtables是一个好地方,尽管您可能会通过
相关的
数据包过滤来欺骗某些事情,但让ipt记住以前注册的连接将是一件痛苦的事情。成功注册的邀请没有任何会话id,这可以帮助iptables知道它是一个相关的/已建立的连接请求吗?它已设置为否虽然失败了,但仍然处理来自未经授权用户的邀请。您有日志吗?allowguest=no实际上并不禁止攻击者执行邀请,但不允许来自未注册用户的邀请。此处粘贴日志可能相当长。您介意我将日志文件通过电子邮件发送给您吗?Fails2ban已经在运行,fail2ban的问题是它无法检测多行攻击。在这种特定情况下,如果攻击信息和攻击者的ip打印在单独的行中,fail2ban无法检测到。您知道fail2ban是否可用于配置多行正则表达式吗?如果是这样的话,那么一些关于这方面的指针会很有帮助。如果您提供示例,我可以帮忙吗这里的日志看起来像
[2012-09-07 03:58:37]注意[25439]:将CallerID更改为:101[2012-09-07 03:58:37]错误[25439]:Accountcode不能为0![2012-09-07 03:58:37]通知[25439]:呼叫方类型:本地[2012-09-07 03:58:37]通知[25439]:本地化信息:剪切:,添加:[2012-09-07 03:58:37]通知[25439]:本地化目的地:966554295259[2012-09-07 03:58:37]通知[25439]:=====================================[2012-09-07 03:58:37]通知[25439]:对等IP:188.249.43.9[2012-0907 03:58:37 ]通知〔25439〕:源IP:18824943.9请在每个日期之前考虑一个新的行。在行中。无法保留注释部分的格式。上述日志似乎不是标准/核心星号日志,可能是自定义拨号计划/应用程序的结果,因此在没有看到代码/应用程序的情况下,我无法帮助您。您必须搜索这些日志的责任代码,并将其修改为包含ip地址