远程事件套接字的Freeswitch ACL配置

Ste*_*uet 5 acl virtualbox virtual-machine freeswitch node.js

我有一台运行在一台服务器上的FS服务器,在一台远程服务器上,我有一个Node JS实例,它使用node_esl(用于FS的Node JS事件套接字库)控制它。

每次向服务器发送请求时,都会出现以下错误:

[WARNING] mod_event_socket.c:2603 IP ::ffff:192.168.59.3 Rejected by acl "loopback.auto"
Run Code Online (Sandbox Code Playgroud)

FS服务器具有2个接口:一个使用公共IP,第二个在专用网络(192.168.59.0/24)上。

我检查了acl.conf.xml文件和event_socket.con.xml,到目前为止,我看不到任何特别之处。

最后一件事:这是一个开发环境,FS正在VM(VirtualBox)中运行。用于VM的接口是192.168.59.103,而GW是192.168.59.3,因此,如果不是ACL问题(或两者都不是),则可能是NAT问题。

您对ACL配置应该有什么想法?

Bor*_*kov 7

您必须转到FreeSWITCH / conf / autoload_configs / event_socket.conf.xml,然后进入并编辑acl行: <param name="apply-inbound-acl" value="loopback.auto"/> 您必须编写类似于my_acl的内容,而不是loopback.auto

之后,您必须转到FreeSWITCH / conf / autoload_configs / acl.conf.xml,然后在其中编写如下内容:

<list name="my_acl" default="deny">
 <node type="allow" cidr="xxx.xxx.xxx.xxx/32"/>
 <node type="allow" cidr="xxx.xxx.xxx.0/24"/>
</list>
Run Code Online (Sandbox Code Playgroud)

之后,转到fs_cli和tape命令:

reloadacl

请享用!

编辑:

确保以下内容:

<list name="my_acl" default="deny">
 <node type="allow" cidr="xxx.xxx.xxx.xxx/32"/>
 <node type="allow" cidr="xxx.xxx.xxx.0/24"/>
</list>
Run Code Online (Sandbox Code Playgroud)

变成:

<list name="my_acl" default="deny">
 <node type="allow" cidr="xxx.xxx.xxx.xxx/32"/>
 <node type="allow" cidr="xxx.xxx.xxx.0/24"/>


  <node type="allow" cidr="192.168.42.42/32"/>
  <node type="allow" domain="$${domain}"/>
  <!-- this allow fs_cli to connect else fs_cli wont work --!>
  <node type="allow" cidr="127.0.0.1/32" />
</list>
Run Code Online (Sandbox Code Playgroud)


Ste*_*uet 3

我找到了原因:ACL 的配置并不是很好。使用的方法没有为 event_socket 打开正确的连接。因此,Event_Socket 要么打开仅供本地使用,要么仅供外部使用。必须重新创建一个新的 ACL,并打开本地访问(如果您想使用 fs_cli,这是必需的)并添加控制服务器的 IP。

感谢您关于 IPv6 的建议,我之前测试过它,发现它对我的“问题”没有影响