CCAdmin - 顶顶通呼叫中心中间件Web管理系统 CCAdmin - 顶顶通呼叫中心中间件Web管理系统
空号识别
  • 介绍
  • 基本功能(ippbx)
  • 电话机器人(AI)
  • 语音识别
  • 空号识别
  • 在线预览 (opens new window)
  • 顶顶通官网 (opens new window)
  • 顶顶通博客 (opens new window)
日志 (opens new window)
空号识别
  • 介绍
  • 基本功能(ippbx)
  • 电话机器人(AI)
  • 语音识别
  • 空号识别
  • 在线预览 (opens new window)
  • 顶顶通官网 (opens new window)
  • 顶顶通博客 (opens new window)
日志 (opens new window)
  • 介绍
  • 功能介绍
  • 快速开始
  • 基本电话功能

    • 分机配置

      • 分机互打
      • 手机注册分机
      • 浏览器SIP电话
    • 线路配置

      • 网关对接
      • ims对接
      • IP对接
      • 反向注册对接
      • 发起外呼
    • 点击拨号

      • 添加自定义变量
      • 进入机器人话术
    • FAQ

      • 呼入配置
      • 回铃音补偿
      • 长签功能
      • 限制通话时长
      • 通话录音相关问题
      • CDR分析挂断情况
      • 呼入实现同振与顺振
      • 记忆呼叫与回拨分机的运用
      • 自定义变量添加到CDR
      • 自定义变量添加到分机呼叫信息
      • http接口返回线路组名称
      • 讯时语音网关按线路对接
      • freeswitch无法启动处理流程
      • CCAdmin-web访问失败
      • 关键词过滤freeswitch日志
  • 语音识别

    • asrproxy安装
    • 模型对接

      • 对接第三方ASR
      • 对接第三方TTS
      • 对接不同语种的ASR
      • ASR组的配置与使用
      • 私有化部署ASR
      • 私有化部署TTS
      • 阿里云国际站对接例子
      • asrproxy对接自定义ASR
      • mod_cti对接自定义TTS
      • 测试
    • FAQ

      • 修改VAD模型参数
      • 一句话模型对接方式
  • 自动外呼场景

    • 进入排队转坐席
    • 进入json话术
    • 进入http话术
  • 机器人话术

    • 话术测试流程

      • json话术测试流程
      • http话术测试流程
    • FAQ

      • 机器人话术转坐席人工
      • 机器人通话手动转接给坐席
      • 话术挂断之后是否处理事件
  • SIP安全

    • mod_cti安全加强
    • fail2ban程序安装
    • 替换授权与程序升级

      • 升级Freeswitch
      • 授权替换
      • 更换Redis连接
    • 指南
    • SIP安全
    顶顶通
    2024-04-22
    目录

    fail2ban程序安装

    # 介绍

    运行在公网的 Freeswitch 服务器 (opens new window),每天都会接收到很多恶意的呼叫请求和注册请求,从而尝试盗打电话。但是每天大量的攻击,会导致 Freeswitch 产生很多日志,进而降低 Freeswitch 的处理能力。所以需要合理的配置,来防止电话被盗打。

    解决方案:利用 cti 模块与 fail2ban 配置结合,可以把恶意IP封堵掉。进而解决服务器被攻击问题。

    # 攻击案例

    在 Freeswitch 控制台中,如果频繁输出这样的日志,而且日志中的IP:124.32.10.1 和账户:1177,用户都不认识,就可以认定该服务器被攻击了。

    2024-04-13 17:21:01.959347 98.47% [NOTICE] cti_fail2ban.c:35 write to fail2ban:ip[124.32.10.1] user[1177] at[2024-04-13T17:21:01.959347+0800] Registration failed succeed!
    
    1

    # 防盗打配置

    重中之重:不要开通国际长途。其次对于呼出拨号方案和呼入路由要小心配置。

    • sip配置里面的external默认是可以任意呼入,默认的呼叫路由是public,public这个路由绝对不要启用呼叫外线功能。
    • sip配置里面如果新加了sip项目也同第一点。
    • sip配置里面的internal这个是用来分机注册的,auth-calls 必须是勾选,千万不能吧这个勾选去除。
    • 分机配置里分机密码设置复杂些。不要勾选allow-empty-apssword。
    • 对于提供给网关注册的分机的呼叫路由改成pulibc。
    • 呼叫外线的拨号方案要谨慎启用。如果不需要分机拨打外线,千万不要启用呼叫外线的拨号方案,有分机拨打外线的需求是只能在internal路由可以启用呼叫外线的拨号方案。启用了呼叫外线,要确定sip->internal->auth-calls 是勾选的,所有分机密码也要改成足够复杂的,并且要测试一下注册错误的情况下,直接拨号是否可以拨打出去,来验证配置准确无误。
    • 如果只有浏览器(wss)可以拨打外线,可以把sip->internal->sip-port 配置的 udp的sip端口防火墙封了去,只放开wss端口。

    # 允许呼入配置

    在 CCAdmin-Web 中,可以配置指定IP允许呼入,这样的配置同样可以提高中间件的安全性。具体配置方法如下:

    • CCAdmin-Web -> 呼叫中心 -> SIP设置 -> external -> 变量 :apply-inbound-acl设置为inbound -> 点击“确定”按钮。

    • CCAdmin-Web -> 呼叫中心 -> 配置文件设置 -> 配置文件:acl.conf 中的 inbound 添加允许呼入的IP -> 点击“保存”按钮。对应格式如下:

      <list name="inbound" default="deny">
           <node type="allow" cidr="127.0.0.1/32"/>
      </list>
      
      1
      2
      3
    • 重启 Freeswitch,使配置生效。

    # 的安装与配置

    # 安装 fail2ban

    • yum安装:yum install fail2ban -y

    • 源代码安装:git clone https://github.com/fail2ban/fail2ban.git或者wget https://github.com/fail2ban/fail2ban/archive/refs/tags/1.0.2.tar.gz

      tar xzvf 1.0.2.tar.gz

      cd fail2ban-1.0.2

      python setup.py install

      cp build/fail2ban.service /usr/lib/systemd/system

    # 编辑jail.conf

    • 以此执行以下命令:

      cd /etc/fail2ban

      mv jail.conf jail.conf.local

      vi jail.conf

    • 将以下的内容写入到文件:vi jail.conf 中:

      [cti]
      enabled = true
      filter = cti
      action = iptables-allports[name=cti, protocol=all]
      logpath = /ddt/fs/log/cti_fail2ban.log
      bantime = 86400
      maxretry = 5
      findtime  = 300
      ignoreip = 127.0.0.1/8
      backend = auto
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

      内容配置说明:

      • logpath: 监视cti记录的异常IP日志。
      • bantime :封堵时间,单位秒,86400秒就是24小时。
      • maxretry findtime:(300秒)时间内日志文件出现的IP超过maxretry(5)次就封堵。
      • ignoreip :ip白名单。

    # 设置日志文件权限

    给/ddt/fs/log/目录修改安全上下文,可执行命令:chcon -R -t var_log_t /ddt/fs/log 如果不修改安全上下文,会导致fail2ban启动失败。

    # 关闭SELinux

    1. SSH控制台执行命令:/usr/sbin/sestatus -v,查看输出结果:

      [root@hcss-ecs-bb0c ~]# /usr/sbin/sestatus -v
      SELinux status:                 disabled              //说明SELinux是关闭的,可跳过步骤二。
      
      [root@hcss-ecs-bb0c ~]# /usr/sbin/sestatus -v
      SELinux status:                 enabled               //说明SELinux是开启的,执行步骤二将其关闭。
      
      1
      2
      3
      4
      5
    2. 永久关闭方法:

      • 执行命令:vi /etc/selinux/config
      • 将SELINUX=enforcing修改为SELINUX=disabled
      • 重启服务器是配置生效,重启后,可再次执行步骤一的命令验证SELinux是否已经关闭。

    # 设置filter

    • 执行命令:vi /etc/fail2ban/filter.d/cti.conf
    • 把以下内容写入进去:
    [Definition]
    failregex = ^ip\[<HOST>\].*
    ignoreregex =
    
    1
    2
    3

    # fail2ban启动关闭相关命令

    • 设置开机启动fail2ban命令:systemctl enable fail2ban
    • 启动fail2ban命令:systemctl start fail2ban
    • 关闭fail2ban命令:systemctl stop fail2ban
    • 重启fail2ban命令:systemctl restart fail2ban
    • 查看fail2ban状态命令:systemctl status fail2ban

    # 查看被ban IP命令

    fail2ban-client status cti

    在输出结果中, File list 要看到了日志文件名才可以。如果 File list 看不到文件名,说明fs还没启动,需要先启动freeswitch,然后再执行命令:systemctl restart fail2ban重启fail2ban程序。

    被Ban的IP

    # fail2ban 操作

    手动封堵一个IP: fail2ban-client set cti banip IP地址

    手动解封一个IP: fail2ban-client set cti unbanip IP地址

    添加白名单: fail2ban-client set cti addignoreip IP地址

    删除白名单: fail2ban-client set cti delignoreip IP地址

    查看被禁止的IP地址: iptables -L -n

    上次更新: 2025/02/14, 11:03:11
    mod_cti安全加强
    升级Freeswitch

    ← mod_cti安全加强 升级Freeswitch→

    微信:cdevelop
    Copyright © 2024-2025 福州晋安区顶顶通软件有限公司  |  闽ICP备17029631号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式