文章目录
- 前言
- 联系我们
- 攻击实例
- 解决方案
- 安装 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