IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> FreeSWITCH mod_cti模块 结合 fail2ban 实现封堵恶意IP(SIP安全,防攻击) -> 正文阅读

[网络协议]FreeSWITCH mod_cti模块 结合 fail2ban 实现封堵恶意IP(SIP安全,防攻击)

原文链接 http://www.ddrj.com/callcenter/fail2ban.html

介绍

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

防盗打配置

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

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

限制呼入

建议external可以设置成只有指定的IP才可以呼入,设置方法如下

  1. sip设置external的apply-inbound-acl设置为inbound,auth-calls 不要勾选,注意internal的auth-calls 必须勾选。
  2. /fs/etc/freeswitch/autoload_configs/acl.conf.xml 加入
    <list name="inbound" default="deny"> <node type="allow" cidr="允许呼入的IP1/32"/> <node type="allow" cidr="允许呼入的IP2/32"/> </list>

封堵原理

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": []
	}
  • 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

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:42:59  更:2021-11-22 12:45:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:21:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码