freeswitch的ACL规则

概述
freeswitch是一款好用的VOIP开源软交换平台。
VOIP公共网络中的安全问题是最重要的问题,我们必须对网络端口的访问权限做出限制。
ACL全称Access Control List,意为访问控制列表,是一个权限(或规则)列表,列表定义了允许哪些网络实体访问目标对象。
环境
centos:CentOS release 7.0 (Final)或以上版本
freeswitch:v1.8.7
GCC:4.8.5
acl规则配置
acl规则的配置文件${conf_dir}/autoload_configs/acl.conf.xml,默认配置如下。
<configuration name="acl.conf" description="Network Lists">
<network-lists>
<!-- These ACLs are automatically created on startup.
rfc1918.auto - RFC1918 Space
nat.auto - RFC1918 Excluding your local lan.
localnet.auto - ACL for your local lan.
loopback.auto - ACL for your local lan. -->
<list name="lan" default="allow">
<node type="deny" cidr="192.168.42.0/24"/>
<node type="allow" cidr="192.168.42.42/32"/>
</list>
<!-- This will traverse the directory adding all users
with the cidr= tag to this ACL, when this ACL matches
the users variables and params apply as if they
digest authenticated. -->
<list name="domains" default="deny">
<!-- domain= is special it scans the domain from the directory to build the ACL -->
<node type="allow" domain="$${domain}"/>
<!-- use cidr= if you wish to allow ip ranges to this domains acl. -->
<!-- <node type="allow" cidr="192.168.0.0/24"/> -->
</list>
</network-lists>
</configuration>
allow表示允许,deny表示拒绝。
acl.conf.xml文件中配置的list名称,可以用于呼叫中的acl鉴权。
该文件有修改时,可以使用命令刷新内存中的acl规则。
reloadacl reloadxml
但是该命令不会刷新新增的acl列表,新增acl列表需要重启fs才能生效。
预设acl规则
fs内置的acl预设规则项(Pre-defined ACLs)。
预设的acl规则项包括如下,可以当作内置变量直接使用。
rfc1918.auto RFC 1918 Space
nat.auto RFC 1918, excluding your local LAN
localnet.auto ACL for your local LAN
loopback.auto ACL for your local LAN
wan.auto 公网地址
…
sip配置项
fs支持的sip配置项主要在sip_profile下的配置文件中使用,作用于该端口的所有呼叫控制acl。
apply-inbound-acl,呼入acl规则。
apply-register-acl,注册acl规则。
apply-proxy-acl,代理acl规则。
apply-candidate-acl,webrtc的ice框架下可选媒体地址acl规则。
auth-calls,账户鉴权acl规则,包括inbound和register。
示例如下。
配置conf/sip_profile/external.xml如下,则从5080端口呼入的呼叫来源IP都要符合“inbound-acl”规则。
<param name="apply-inbound-acl" value="inbound-acl"/>
配置conf/sip_profile/internal.xml如下,则从5060端口注册的消息来源IP都要符合“register-acl”规则。
<param name="apply-register-acl" value="register-acl"/>
配置conf/directory/default/10011.xml如下,则10011账户的注册/呼叫消息来源IP都要符合“auth-calls-acl”规则。
<param name="auth-acl" value="auth-calls-acl"/>
呼叫acl配置示例
如果我们希望对呼叫进行acl控制,有俩种常用方案。
方案一,配置conf/sip_profile/external.xml如下,则5080端口呼入的呼叫来源IP都要符合“inbound-acl-001”规则。
<param name="apply-inbound-acl" value="inbound-acl-001"/>
方案二,配置conf/dialplan/test001.xml如下,则所有进入拨号计划“foo-hosts-calls”的呼叫来源IP都要符合“list_foo”规则。
<extension name="foo-hosts-calls">
<condition field="${acl(${network_addr} list_foo)}" expression="true"/>
<condition field="destination_number" expression="(.*)">
<action application="bridge" data="sofia/switchbox/$1@myapp.signalwire.com:5060"/>
</condition>
</extension>
配置“${acl(${network_addr} list_foo)}”中的acl为fs的app接口,acl接口的作用是测试ip是否符合“list_foo”规则。
总结
对于公共网络中的VOIP服务,不管如何强调安全性都不为过,linux服务器本身的防护墙和fs服务的acl规则都要正确配置,尽可能的预防和减少sip扫描的威胁。
空空如常
求真得真
freeswitch的ACL规则的更多相关文章
- haproxy利用ACL规则封禁自定义IP地址拒绝访问
现在有一个需求就是在发版的时候希望除公司IP外的外网访问服务的时候都是拒绝访问的 现在利用haproxy 的acl规则作出限制 errorfile 403 /etc/haproxy/err ...
- HAProxy的日志配置以及ACL规则实现负载均衡
HAProxy配置日志策略 默认情况下,HAProxy是没有配置日志的在centos6.3下默认管理日志的是rsyslog,可以实现UDP日志的接收,将日志写入文件,写入数据库先检测rsyslog是否 ...
- haproxy 常用acl规则与会话保持
一.常用的acl规则 haproxy的ACL用于实现基于请求报文的首部.响应报文的内容或其它的环境状态信息来做出转发决策,这大大增强了其配置弹性.其配置法则通常分为两 步,首先去定义ACL,即定义一个 ...
- 如何探测网络设备ACL规则
探测网络设备ACL规则 背景:在互联网企业的生产网络中,往往在网络入口处的网络设备上会有成千上万条ACL策略,这么多的ACL导致了网络管理员很难彻底梳理清楚其中的逻辑关系,从而不知道到底对外开放了哪些 ...
- HAProxy(二):HAProxy的ACL规则实现智能负载均衡详解与示例
一.HAProxy的ACL的功能 ACL(Access Control List)访问控制列表,HAProxy中的ACL的匹配条件和控制条件有许多种,功能很强大,可以通过源地址.源端口.目标地址.目标 ...
- 003.HAProxy ACL规则的智能负载均衡
一 简介 HAProxy可以工作在第七层模型,可通过ACL规则实现基于HAProxy的智能负载均衡系统,HAProxy通过ACL规则完成以下两种主要功能: 通过ACL规则检查客户端请求是否合法,如果符 ...
- 常用的acl规则
一.常用的acl规则 haproxy的ACL用于实现基于请求报文的首部.响应报文的内容或其它的环境状态信息来做出转发决策,这大大增强了其配置弹性.其配置法则通常分为两步,首先去定义ACL ...
- acl规则问题
在acl规则中网络地址与广播地址包含在规则范围内
- freeswitch的拨号规则配置
当一个呼叫在ROUTING状态下达到命中拨号规则解析器时,相应的拨号规则就开始解析了.随着解析的进行,在xml文件中的符合条件的或标签中的指令形成一个指令表,安装到这个通道中. 你可以将拨号规则文件放 ...
- 关于haproxy的一些属性和acl 规则
首先是haproxy.cfg文件的基本标注 当然实际配件没有下面这个复杂,可以根据需要自行增减. global log 127.0.0.1 local1 maxconn 65000 #最大连接数 ch ...
随机推荐
- 数字孪生和GIS结合将会为智慧园区带来怎样的改变?
数字孪生和地理信息系统(GIS)是当今智慧园区发展中的两个重要技术,它们的结合将为智慧园区带来根本性的改变和巨大的发展机遇.这种结合将深刻影响园区的规划.建设.运营和管理,为人们创造更智能.高效.可持 ...
- 非工程师指南: 训练 LLaMA 2 聊天机器人
引言 本教程将向你展示在不编写一行代码的情况下,如何构建自己的开源 ChatGPT,这样人人都能构建自己的聊天模型.我们将以 LLaMA 2 基础模型为例,在开源指令数据集上针对聊天场景对其进行微调, ...
- quill富文本编辑器quill粘贴图片上传服务器
强大的富文本编辑器:quill github:32k start++,:https://github.com/quilljs/quill quill粘贴图片上传服务器 <link href=&q ...
- 在xml中比较运算符
SQL 中,可以使用比较运算符来比较两个值,如使用小于运算符 < 比较两个值大小.但是,在 SQL 查询中,有时候需要将小于运算符 < 用于 XML 或 HTML 语法中,这会导致语法冲突 ...
- 12、FlutterMediaQuery获取屏幕宽度和高度
final size =MediaQuery.of(context).size; class HomePage3 extends StatelessWidget { const HomePage3({ ...
- .Net 系列:Attribute特性的高级使用及自定义验证实现
一.特性是什么?特性有什么用? 特性(Attribute)是用于在运行时传递程序中各种元素(比如类.方法.结构.枚举.组件等)的行为信息的声明性标签. 您可以通过使用特性向程序添加声明性信息.一个声明 ...
- Langchain-Chatchat项目:3-Langchain计算器工具Agent思路和实现
本文主要讨论Langchain-Chatchat项目中自定义Agent问答的思路和实现.以"计算器工具"为例,简单理解就是通过LLM识别应该使用的工具类型,然后交给相应的工具( ...
- 微服务架构下,DLI的部署和运维有何奥秘?
摘要:探讨DLI两个问题:如何在生产环境中部署与运维实现快速迭代上线,如何实现监控告警来提升整体运维能力. 华为云数据湖探索DLI是支持多模引擎的Serverless大数据计算服务,其很好的实现了Se ...
- 视频编码耗时长、编码帧发送失败…DVPP视频编码问题典型案例分析
摘要:本期就分享几个关于DVPP视频编码问题的典型案例,并给出原因分析及解决方法 本文分享自华为云社区<DVPP媒体数据处理视频编码问题案例>,作者:昇腾CANN. DVPP(Digita ...
- 无惧百万级并发,GaussDB(for Cassandra)让华为推送服务更快触达
摘要:推送服务(Push Kit)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道.通过集成推送服务,您可以向客户端应用实时推送消息,让应用更精准触达用户,是开发者提升用户感知度和活跃度的一 ...