顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-解决方案:运行了 Freeswitch 的服务器攻击问题

文章目录


前言

运行在公网的 Freeswitch 服务器,每天都会接收到很多恶意的呼叫请求和注册请求,从而尝试盗打电话。每天大量的攻击,会导致 Freeswitch 产生很多日志,进而降低 Freeswitch 的处理能力。

解决方案:通过 cti 模块与 fail2ban 结合,可以把恶意IP封堵掉。


提示:以下是本篇文章正文内容,下面案例可供参考

联系我们

有意向了解呼叫中心中间件的用户,可以点击该链接添加工作人员的微信:顶顶通小何


攻击实例

在 Freeswitch 控制台中,有时会接收到这样的日志:

bash 复制代码
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!

该日志中的IP:124.32.10.1如果是不认识的IP,和账号:1177不是用户自己创建的账号。这就是被攻击了。

解决方案

安装并配置 fail2ban,把非法的IP加入防火墙黑名单,这样就可以有效的杜绝攻击了。另外,为了防止开发测试过程误触发屏蔽规则,导致开发机器连接不上服务器,建议把开发电脑的外网IP加入白名单。

安装 fail2ban

yum安装:yum install fail2ban -y

编辑jail.conf

  • 以此执行以下命令:
    cd /etc/fail2ban
    mv jail.conf jail.conf.local
    vi jail.conf
  • 将以下的内容写入到文件:vi jail.conf 中:
bash 复制代码
[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

内容配置说明:
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

也可以直接关闭sulinux,如果不修改安全上下文,会导致fail2ban启动失败。

设置filter

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

fail2ban 操作

  • 设置开机启动命令:
    systemctl enable fail2ban

  • 启动命令:
    systemctl enable fail2ban

  • 查看启动状态命令:
    systemctl status 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

相关推荐
fantasy5_54 天前
从零手写线程池:把多线程、锁、同步、日志讲透
开发语言·c++·中间件
heimeiyingwang4 天前
【架构实战】海量数据存储:分库分表中间件实战
中间件·架构
别抢我的锅包肉4 天前
【FastAPI】 依赖注入 + 中间件详解
中间件·fastapi
敢敢のwings4 天前
ROS2通信中间件深度解析:从DDS到下一代传输架构整理
中间件·架构
理人综艺好会4 天前
路由中间件快速了解(Gin版)
中间件·gin
lifewange5 天前
MQ中间件是什么
中间件
小邓的技术笔记5 天前
聊聊 ASP.NET Core 中间件和过滤器的区别
后端·中间件·asp.net
8Qi86 天前
微服务通信:同步 vs 异步与MQ选型指南
java·分布式·微服务·云原生·中间件·架构·rabbitmq
初中就开始混世的大魔王7 天前
3.2 DDS 层-Domain
开发语言·c++·中间件
2601_949814177 天前
docker离线安装及部署各类中间件(x86系统架构)
docker·中间件·系统架构