mod_cti安全加强
# 功能介绍
FreeSWITCH暴露在公网最大的风险就是被盗打,所以我们这次针对sofia配置和分机配置的安全性,做个一次升级:
- sofia安全性:
internal强制要求勾选auth-calls。external的apply-inbound-acl参数不允许为空。external的呼叫路由参数不允许选择internal或者default。
- 分机安全性:
- 分机密码需要足够复杂。
# 升级Freeswitch版本
Freeswitch需要升级到最新版本,请根据该文档进行升级:Freeswitch升级文档 (opens new window)
升级完成后,执行命令查看版本:fs_cli -x "status"

# 升级mod_cti版本
mod_cti新增防盗打功能,只有将mod_cti升级到最新的版本,才支持该功能:
执行 mod_cti 升级命令:
sudo curl -s http://down.ddrj.com/upgrade.sh | sudo bash -s mod_cti升级完成后,重启freeswitch程序。
查看版本命令:
fs_cli -x "cti status"
执行命令:
fs_cli -x "sofia status",查看sofia_profile加载情况。如果有部分sofia_profile没有加载出来,跳转到sofia安全性加强,找出解决方法;如果全部的sofia_profile加载出来了,可以跳过sofia安全性加强。
# 导入cti配置
- 下载初始化配置 http://down.ddrj.com/cti_config.zip (opens new window) (opens new window)并解压。
- CCAdmin-Web -> 运维调试 -> 导入导出 -> 只勾选
模版文件和先清除配置| 导入 | 选择初始化配置文件,具体操作步骤如图所示:
- CCAdmin-Web -> 运维调试 -> 导入导出 -> 只勾选
# 修改呼叫路由
CCAdmin-Web -> 呼叫中心 -> 呼叫路由设置 -> 找到external呼叫路由 -> 取消勾选封杀IP拨号方案。具体操作如图所示:
# 封堵配置解析
- whitelist:IP白名单,在白名单里的IP不会遭到封堵;IP的填写支持掩码的方式。
- register_failure:分机注册失败封堵配置。
findtime查找时间(秒):分析最近多少秒的失败记录。maxretry失败次数:鉴权最大失败次数,超过就封堵这个IP或者账户。banmode封堵方式:0: 根据IP封堵,1:分机和IP都一样才封堵,可以避免只要一个分机错了密码,就直接把这个IP封堵了。bantime封堵时间(秒):在封堵的过程中,无法注册分机。
- forbidden_call:电话呼入失败(ACL拒绝)封堵配置。
- 查找时间(秒):分析最近多少秒的失败记录。
- 失败次数:鉴权最大失败次数,超过就封堵这个IP。
- 封堵时间(秒):在封堵的期间,该IP的电话将无法呼入。
- wrong_call_state:状态错误(比如呼入要求认证但是没收到认证请求)的封堵配置。
- 查找时间(秒):分析最近多少秒的失败记录。
- 失败次数:鉴权最大失败次数,超过就封堵这个IP。
- 封堵时间(秒):在封堵的期间,该IP的电话将无法呼入。
- invalid_incoming:无效呼入(拨号方案1秒内执行完成未接通也没挂机)的封堵策略。
- 查找时间(秒):分析最近多少秒的失败记录。
- 失败次数:鉴权最大失败次数,超过就封堵这个IP。
- 封堵时间(秒):在封堵的期间,该IP的电话将无法呼入。

# 相关命令
# 查看账号封杀记录
SSH控制台执行命令:fs_cli -x "cti show ban",输出内容展示和说明:
*_config:封阻配置信息。*_bandata:已经封阻的IP或者账户信息。*_history:注册或者呼叫失败的历史记录。

# IP解封命令
如果以上内容的*_bandata信息中有被封堵的IP数据,想要解封该IP的话,可在SSH控制台执行命令:fs_cli -x "cti unban 需要解封的IP",完成IP的解封。
上次更新: 2026/04/10, 15:14:36
