FreeSWITCH mod_cti模块 结合 fail2ban 实现封堵恶意IP(SIP安全,防攻击)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 介绍运行在公网的FreeSWITCH服务器,每天都会接收到很多恶意的呼叫请求和注册请求,尝试盗打电话。合理的配置可以防止电话给倒打,但是每天大量的攻击,会让FS产生很多日志,降低FreeSWITCH的处理能力,cti模块结合fail2ban可以把恶意IP,使用防火墙封堵掉。

介绍 运行在公网的FreeSWITCH服务器,每天都会接收到很多恶意的呼叫请求和注册请求,尝试盗打电话。合理的配置可以防止电话给倒打,但是每天大量的攻击,会让FS产生很多日志,降低FreeSWITCH的处理能力,cti模块结合fail2ban可以把恶意IP,使用防火墙封堵掉。

防盗打配置 非常重要的,不要开通国际长途。其次对于呼出拨号方案和呼入路由要小心配置。


sip配置里面的external默认是可以任意呼入,默认的呼叫路由是public,public这个路由绝对不要启用呼叫外线功能。 sip配置里面如果新加了sip项目也同第一点。 internal这个是用来分机注册的,auth-calls 必须是勾选,千万不能吧这个勾选去除。 分机配置里分机密码设置复杂些。不要勾选allow-empty-apssword。 对于提供给网关注册的分机呼叫路由改成pulibc,默认是使用default这个呼叫路由。 限制呼入 建议external可以设置成只有指定的IP才可以呼入,设置方法如下


sip设置external的apply-inbound-acl设置为inbound,auth-calls 不要勾选,注意internal的auth-calls 必须勾选。 /fs/etc/freeswitch/autoload_configs/acl.conf.xml 加入     封堵原理 cti 模块发现注册失败或者 不规范的SIP报文,或者被叫号码不符合cti.json配置的规范,就写入日志到cti_fail2ban.log,fail2ban通过监视日志把恶意IP加入防火墙,封堵恶意IP。

CTI配置 cti.json 配置被叫号码规范

"fail2ban": {
  "filename": "cti_fail2ban.log",
  "destination_number_max_len": 12,
  "deny_prefix": ["00", "+"],
  "allow_prefix": []
}
复制代码

1 2 3 4 5 6 filename 恶意访问记录文件名,如果不用绝对路径,默认路径是fs的日志目录。 stination_number_max_len 被叫号码的最大长度 denny_prefix 拒绝的被叫号码前缀 allow_prefix 允许的被叫号码前缀,如果一个前缀都不配置,就是允许任意号码。如果配置了,只允许配置的前缀,非允许的号码就会自动拒绝。 fail2ban配置 以下是安装和配置fail2ban的过程。如果不安装fail2ban,只配置cti.json的规则,只能挂断不符合规范的呼叫,不能杜绝攻击,需要安装配置好fail2ban,把非法Ip加入防火墙黑名单。 为了防止开发测试过程误触发屏蔽规则,导致开发机器连接不上服务器,建议把开发电脑的外网IP加入白名单。

安装fail2ban yum install fail2ban -y

编辑jail.conf cd /etc/fail2ban mv jail.conf jail.conf.local vi jail.conf 把以下内容写如 jail.conf [cti] enabled = true filter = cti action = iptables-allports[name=cti, protocol=all] logpath = /fs/var/log/freeswitch/cti_fail2ban.log bantime = 86400 maxretry = 5 findtime = 180 ignoreip = 127.0.0.1/8 192.168.0.0/16 10.0.0.0/8 172.16.0.0/16 backend = auto

配置说明:

logpath 监视cti记录的异常IP日志。 bantime 封堵时间,单位秒,86400秒就是24小时。 maxretry findtime(180秒)时间内日志文件出现的IP超过maxretry(5)次就封堵。 ignoreip ip白名单 设置日志文件权限 给/fs/var/log/freeswitch/目录修改安全上下文 chcon -R -t var_log_t /fs/var/log/freeswitch 也可以直接关闭sulinux,如果不修改安全上下文,会导致fail2ban启动失败

设置filter vi /etc/fail2ban/filter.d/cti.conf 把以下内容写入 /etc/fail2ban/filter.d/cti.conf [Definition] failregex = ^ip[].* ignoreregex =

设置开机启动fail2ban systemctl enable fail2ban

启动fail2ban systemctl start fail2ban

查看fail2ban启动状态 systemctl status fail2ban

查看被ban IP,其中cti为名称 fail2ban-client status cti

手动封堵一个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

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
弹性计算 安全 Linux
Linux服务器总是被暴力破解,用fail2ban来加强防护(用法详解)
Linux服务器总是被暴力破解,用fail2ban来加强防护(用法详解)
Linux服务器总是被暴力破解,用fail2ban来加强防护(用法详解)
|
26天前
|
监控 安全 Ubuntu
挡不住的入侵者?试试Fail2ban,拦截黑客攻击
挡不住的入侵者?试试Fail2ban,拦截黑客攻击
15 0
|
2月前
|
供应链 安全 开发者
供应链投毒预警:恶意Py包伪装HTTP组件开展CStealer窃密后门攻击
近日(2024年4月25号),悬镜供应链安全情报中心在Pypi官方仓库(https://pypi.org/)中捕获1起CStealer窃密后门投毒事件,投毒者连续发布6个不同版本的恶意Py包multiplerequests,目标针对windows平台python开发者,该恶意包在安装时会远程加载CStealer后门到受害者系统上执行,该后门会窃取受害者系统敏感信息、主流浏览器隐私数据、数字货币钱包应用数据以及系统屏幕截屏等。此外,后门还会尝试驻留Windows系统启动目录实现开机自启动。
32 0
供应链投毒预警:恶意Py包伪装HTTP组件开展CStealer窃密后门攻击
|
2月前
|
安全 网络安全
允许Traceroute探测漏洞和ICMP timestamp请求响应漏洞解决方法(三)
允许Traceroute探测漏洞和ICMP timestamp请求响应漏洞解决方法(三)
200 0
|
2月前
|
Python
Burpsuite插件 -- 伪造IP
Burpsuite插件 -- 伪造IP
204 1
|
10月前
|
安全 网络安全 PHP
TP-RCE绕过阿里云防护Getshell
TP-RCE绕过阿里云防护Getshell
192 1
|
安全 Shell Windows
Metasploit -- 后渗透模块(POST)
Metasploit -- 后渗透模块(POST)
143 0
Metasploit -- 后渗透模块(POST)
|
网络协议
Metasploit -- 主机探测模块
Metasploit -- 主机探测模块
80 0
Metasploit -- 主机探测模块
|
存储 Shell
DLL劫持转发重定向后门的分析
DLL劫持转发重定向后门的分析
212 0
DLL劫持转发重定向后门的分析