FreeSWITCH配置文件解析(10) 配置IP封禁(防暴力破解)

以下是针对FreeSWITCH配置IP封禁(防暴力破解)的完整方案,结合Fail2Ban与系统级防护策略:

一、Fail2Ban核心配置(推荐方案)

  1. ​启用FreeSWITCH鉴权日志​

    • 修改SIP Profile(conf/sip_profiles/internal.xml),添加参数:

      <param name="log-auth-failures" value="true"/>
    • 或在XSwitch网页端:高级→ SIP→ 添加log-auth-failures=true

    • 重启服务:fs_cli -x "reloadxml"

     

  • 安装Fail2Ban​

    # Ubuntu/Debian sudo apt install fail2ban 
    # CentOS sudo yum install epel-release 
    # CentOS sudo yum install fail2ban
  • ​配置Jail规则​

    创建 /etc/fail2ban/jail.d/freeswitch.conf

    [freeswitch] 
    enabled = true port = 5060,5061,5080 # SIP端口(按需修改) 
    filter = freeswitch logpath = /usr/local/freeswitch/log/freeswitch.log # 日志路径校对 
    maxretry = 5 # 5次失败触发封禁 
    bantime = 1d # 封禁1天 
    findtime = 10m # 10分钟内统计 
    action = %(banaction)s[name=%(__name__)s-tcp, protocol="tcp"] %(banaction)s[name=%(__name__)s-udp, protocol="udp"]

    ​关键​​:端口需对齐FreeSWITCH的internal_sip_port/external_sip_portvars.xml中定义)

  • ​调整日志过滤规则​

    修改 /etc/fail2ban/filter.d/freeswitch.conf,适配FreeSWITCH ≥1.10的日志格式(含CPU占用率字段):

    failregex = ^%(_pref_line)s \d+\.?\d+%% \[WARNING\] sofia_reg\.c:\d+ SIP auth (failure|challenge) .* from ip <HOST>$ ^%(_pref_line)s \d+\.?\d+%% \[WARNING\] sofia_reg\.c:\d+ Can't find user .* from <HOST>$

    ​验证正则有效性​​:

    fail2ban-regex /path/to/freeswitch.log /etc/fail2ban/filter.d/freeswitch.conf --print-all-matched

    需输出匹配的IP日志行

  • ​重启Fail2Ban生效​

    sudo systemctl restart fail2ban 
    sudo fail2ban-client status freeswitch # 查看封禁状态

二、网络层加固(Fail2Ban补充)

  1. 防火墙端口最小化开放​

    # 仅开放必要端口(如SIP/TLS/RTP) 
    sudo ufw allow proto tcp from <信任IP> to any port 5060,5061,5080 
    sudo ufw allow proto udp from <信任IP> to any port 10000:20000 # RTP端口范围 sudo ufw enable
  2. ​分离内外网SIP Profile​

    vars.xml中显式声明IP,避免auto绑定导致公网暴露:

    <!-- 内网Profile --> 
    <X-PRE-PROCESS cmd="set" data="internal_sip_ip=192.168.1.100"/><!-- 公网Profile --> 
    <X-PRE-PROCESS cmd="set" data="external_sip_ip=203.0.113.10"/>

    并在sip_profiles/中分拆配置


三、Fail2Ban高级管理命令

​命令​

​作用​

fail2ban-client unbanip <IP>

手动解封IP

fail2ban-client set freeswitch banip <IP>

手动封禁IP

tail -f /var/log/fail2ban.log

实时监控封禁记录


🔧 四、常见问题排查

  • ​Fail2Ban未生效​​ → 检查:

    1. FreeSWITCH日志是否输出SIP auth failure(无记录则检查log-auth-failures

    2. Fail2Ban正则是否匹配日志格式(用fail2ban-regex调试)

    3. 防火墙是否被Fail2Ban调用(如UFW/iptables需允许Fail2Ban操作)

  • ​内网设备误封​​ → 在jail.d/freeswitch.conf添加:

    ignoreip = 192.168.0.0/16 10.0.0.0/8


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/916418.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/916418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【React 入门系列】React 组件通讯与生命周期详解

&#x1f9e9; 第一章&#xff1a;组件通讯概述在 React 开发中&#xff0c;组件是封装的、独立的功能单元。为了实现组件间的数据共享与协作&#xff0c;需要通过组件通讯机制。组件通讯的意义&#xff1a; 让多个封闭的组件能够共享数据&#xff0c;实现协作功能。&#x1f4…

前端开发 Vue 状态优化

Vue 项目中的状态优化一般都会用Pinia替代Vuex&#xff0c;Pinia 是 Vue 生态系统中的一个轻量级状态管理库&#xff0c;作为 Vuex 的替代品&#xff0c;它提供了更简洁的 API 和更好的性能。模块化管理&#xff1a;使用 Pinia 时&#xff0c;建议将状态拆分为多个 store 模块&…

虚幻基础:创建角色——FPS

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录创建角色设置模型添加摄像机添加位置&#xff1a;插槽弹簧臂&#xff1a;伸缩防止由碰撞导致摄像机穿模摄像机添加武器添加位置&#xff1a;插槽创建动画蓝图&#xff1a;主动获取角色数据并播放相应动画设置角色控制…

2025年入局苹果Vision Pro开发:从零到发布的完整路线图

苹果Vision Pro的发布标志着空间计算(Spatial Computing)进入主流市场。作为开发者,如何快速掌握visionOS开发?本文将为你提供详细的路线图、实践建议与资源指南,涵盖从窗口式应用到沉浸式3D应用的完整开发路径。 一、visionOS开发的核心目标与阶段划分 visionOS的开发可…

百度文心大模型ERNIE全面解析

百度文心大模型ERNIE概述 百度推出的文心大模型(ERNIE,Enhanced Representation through kNowledge IntEgration)系列是结合知识增强技术的预训练大模型,涵盖自然语言处理(NLP)、跨模态、行业应用等多个方向。其开源版本为开发者提供了可商用的大模型能力支持。 ERNIE的…

【SpringAI实战】提示词工程实现哄哄模拟器

一、前言 二、实现效果 三、代码实现 3.1 后端实现 3.2 前端实现 一、前言 Spring AI详解&#xff1a;【Spring AI详解】开启Java生态的智能应用开发新时代(附不同功能的Spring AI实战项目)-CSDN博客 二、实现效果 游戏规则很简单&#xff0c;就是说你的女友生气了&#x…

速通python加密之AES加密

AES加密 AES加密&#xff08;Advanced Encryption Standard&#xff0c;高级加密标准&#xff09;是目前全球公认的最安全、应用最广泛的对称加密算法之一&#xff0c;于2001年被美国国家标准与技术研究院&#xff08;NIST&#xff09;确定为替代DES的标准加密算法&#xff0c;…

Java 对象秒变 Map:字段自由伸缩的优雅实现

前言 在开发中,我们常常需要把对象转成 Map 格式,用于序列化、传输、展示,甚至硬塞给某些第三方框架吃进去再吐出来。乍一看很简单,字段多起来后就像打翻调色盘,维护起来一不小心就翻车。想优雅地搞定这事,必须有一套稳妥、可扩展的方案,才能写出让同事膜拜、领导点赞、…

激光雷达-相机标定工具:支持普通相机和鱼眼相机的交互式标定

激光雷达-相机标定工具&#xff1a;支持普通相机和鱼眼相机的交互式标定 前言 在自动驾驶、机器人导航等领域&#xff0c;激光雷达和相机的标定是一个基础而重要的问题。准确的标定结果直接影响后续的感知算法性能。本文将介绍一个开源的激光雷达-相机标定工具&#xff0c;支持…

linux shell从入门到精通(二)——变量操作

1.什么是变量变量在许多程序设计语言中都有定义&#xff0c;与变量相伴地有使用范围地定义。Linux Shell也不例外。变量&#xff0c;本质上就是一个键值对。例如&#xff1a;str“hello”就是将字符串值“hello”赋予键str。在str地使用范围内&#xff0c;我们都可以用str来引用…

[Linux入门] 初学者入门:Linux DNS 域名解析服务详解

目录 一、域名服务基础&#xff1a;从 “名字” 到 “地址” 的转换 1️⃣什么是域名&#xff1f; 2️⃣什么是 DNS&#xff1f; 3️⃣DNS 用 TCP 还是 UDP&#xff1f; 二、DNS 服务器&#xff1a;各司其职的 “导航站” 1️⃣根域名服务器 2️⃣顶级域名服务器 3️⃣权…

iview表单验证一直提示为空的几个原因?

1.Form上的rules是否配置正确&#xff1b; 2.Form-item的prop是否配置正确&#xff1b; 3.规则的名称和input的v-model是否对应&#xff1b; 4.验证的字段是否响应&#xff0c;新增字段使用this. $set. © 著作权归作者所有,转载或内容合作请联系作者 平台声明&#xff1…

SpringBoot3(若依框架)集成Mybatis-Plus和单元测试功能,以及问题解决

一、Mybatis-Plus集成 新增依赖到父级pom.xml&#xff0c;原先的mybatis依赖可以不动需要注意 mybatis-plus与mybatis版本之间的冲突&#xff0c;不要轻易改动依赖&#xff0c;不然分页也容易出现问题分类顶级pom.xml下面&#xff0c;如果没有引入还是出现报错&#xff0c;在co…

删除远程分支上非本分支的提交记录

要删除远程分支上非本分支的提交记录&#xff08;即主分支的提交历史&#xff09;&#xff0c;需要使用 Git 的重写历史功能。以下是完整解决方案&#xff1a; 解决方案步骤&#xff1a; 创建干净的新分支&#xff08;基于主分支最新提交&#xff09; # 切换到主分支并更新 git…

Flask input 和datalist结合

<input list"categories" name"category" id"category" class"form-control" placeholder"任务分类" required> 这段代码是一个 HTML 输入控件&#xff0c;结合了 <input> 和 <datalist>&#xff0c;用来…

嵌入式分享#27:原来GT911有两个I2C地址(全志T527)

最近在调试全志T527的触摸功能时&#xff0c;发现GT911触摸芯片的I2C地址有时是0x5d&#xff0c;有时又识别成0x14&#xff0c;不知道大家有没有遇到过类似这个情况。虽然最后使用0x5d地址调通了触摸功能&#xff0c;但是一直还是很困惑&#xff0c;为什么会出现0x14和0x5d两个…

Linux运维新人自用笔记(Rsync远程传输备份,服务端、邮箱和客户端配置、脚本)

内容全为个人理解和自查资料梳理&#xff0c;欢迎各位大神指点&#xff01;每天学习较为零散。day24一、Rsync传输文件#安装rsync#-a递归同步&#xff08;包含子目录&#xff09;保留文件权限、所有者、组、时间戳等元数据 #​​-z传输时压缩数据 #​​-v显示详细同步过程 #​​…

以 “有机” 重构增长:云集从电商平台到健康生活社区的跃迁

当电商行业陷入流量争夺的红海&#xff0c;同质化运营模式难以突破增长瓶颈时&#xff0c;云集以从精选电商到有机生活平台的战略转型&#xff0c;开辟出差异化发展路径。其转型并非凭经验决断的孤例&#xff0c;而是建立在对市场趋势的精准研判、用户需求的深度解码&#xff0…

【2025最新版】midjourney小白零基础入门到精通教程!人工智能绘图+AI绘图+AI画图,一键出图教程 (持续更新)

前言 现在市面上相关的AI绘画工具非常多&#xff0c;有6pen.art、Stable Diffusion、DALL.E、Midjourney等。 而MJ就目前而言&#xff0c;它是一款强大的人工智能工具&#xff0c;旨在帮助设计师和创意人员完成各种设计任务。 非常适合我们图像工作者&#xff0c;从 UI 设计到…

2025年渗透测试面试题总结-2025年HW(护网面试) 70(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 2025年HW(护网面试) 70 一、自我介绍 二、同源策略 & 三大漏洞对比解析 1. 同源策略&#xff08;SOP&…