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

news/2024/12/23 7:21:22/

文章目录

  • 前言
  • 联系我们
  • 攻击实例
  • 解决方案
    • 安装 fail2ban
    • 编辑jail.conf
    • 设置日志文件权限
    • 设置filter
    • fail2ban 操作


前言

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

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


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

联系我们

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


攻击实例

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

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 中:
[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
  • 把以下内容写入进去:
[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


http://www.ppmy.cn/news/1424058.html

相关文章

OpenHarmony多媒体-mp4parser

简介 一个读取、写入操作音视频文件编辑的工具。 编译运行 1、通过IDE工具下载依赖SDK&#xff0c;Tools->SDK Manager->Openharmony SDK 把native选项勾上下载&#xff0c;API版本>10 2、开发板选择RK3568&#xff0c;ROM下载地址. 选择开发板类型是rk3568&#xf…

数字乡村创新实践探索农业现代化与乡村振兴新路径:科技赋能农村全面振兴与农民福祉新纪元

目录 引言 一、数字乡村与农业现代化新路径 1、智慧农业引领农业现代化 2、农业产业链的数字化转型 二、数字乡村与乡村振兴新路径 1、农村信息化水平的提升 2、农村治理模式的创新 三、科技赋能农村全面振兴与农民福祉新纪元 1、提升农业生产效益与农民收入 2、促进…

docker 容器中安装cron,却无法启动定时任务

问题描述&#xff1a; 当我是在Dockerfile配置安装cron RUN apt-get update && apt-get install -y cron 或者进入容器中安装cron apt-get install -y cron 都会有个问题就是cron服务正常启动&#xff0c;但是加入到/etc/con.d下的任务&#xff0c;或者crontab -…

对比实验系列:Efficientdet环境配置及训练个人数据集

一、源码下载 可以通过下方链接下载Efficientdet源码 GitHub - zylo117/Yet-Another-EfficientDet-Pytorch: The pytorch re-implement of the official efficientdet with SOTA performance in real time and pretrained weights.The pytorch re-implement of the official …

thinkphp 框架封装curl请求

tp6 或者 tp8框架 在框架的app/common.php 文件里加一些方法就可以 app\common.php 在这个文件里加 以下代码 就可以实现基于 curl的请求方法 (记得要开启 php的curl扩展) 查看方法 cmd里输入 php -m if (!function_exists(get)) {/*** 发送get请求* param string $url 请求…

开发语言漫谈-kotlin

程序的运行环境包括移动设备、服务端、浏览器&#xff0c;服务器又分为window、linux等&#xff0c;不同的环境使用不同的开发语言。为了解决这个问题&#xff0c;开发IDE大拿JetBrains开发了kotlin。 Kotlin是一个岛屿的名字&#xff0c;全称是Kotlin Island。这个小岛位于俄罗…

人工智能与IP代理池:解析网络数据采集的未来

前言 随着互联网的快速发展&#xff0c;数据成为了当今社会最宝贵的资源之一。然而&#xff0c;要获取大量的网络数据并进行有效的分析&#xff0c;往往需要面对诸多挑战&#xff0c;其中之一就是网络封锁与反爬虫机制。在这个背景下&#xff0c;人工智能&#xff08;AI&#x…

vue源码解析patch.js

前言&#xff1a;在vue2.0 中&#xff0c;VNode转换成真正的DOM是通过patch(oldVNode,VNode,hydrating)方法实现的。 源码目录&#xff1a;/vue/src/core/vdom/patch.ts // oldVnode 一个真实的DOM或者一个Vnode对象// vnode 一个待替换的Vnode对象// hydrating 是否支持服务端…