OpenSIPS 防扫描处理

news2025/1/11 22:52:04

文章目录

  • 1. 问题背景
  • 2. 防范处理
      • 2.1 IP 封禁
      • 2.2 OpenSIPS 处理
        • 2.2.1 REGISTER 请求
        • 2.2.2 INVITE 请求

1. 问题背景

OpenSIPS 作为 SIP 注册服务器,通常需要放在公网供公司各地的员工使用,但是这样就会产生外部扫描问题。一般来说外部扫描量不会很大,但是一旦有恶意攻击,裸奔的 OpenSIPS 很容易被击溃,因此一定的防范是必要的。实际上放在公网的 OpenSIPS 网络拓扑一般如下图所示,扫描问题的处理主要有两个方面:

  1. 异常流量在防火墙的拦截
  2. 流量抵达时 OpenSIPS 的处理

在这里插入图片描述

2. 防范处理

2.1 IP 封禁

这种方式需要公司的运维或者安全相关部门配合,在 OpenSIPS 侧识别到特定的 IP 较长时间持续性发送请求,则可认为是在进行扫描行为,这种情况下联系网络安全部门在防火墙配置上拒绝该 IP 的网络请求即可

在这里插入图片描述

2.2 OpenSIPS 处理

2.2.1 REGISTER 请求

OpenSIPS 作为 SIP 注册网关,通常需要接受来自各地的注册请求,但是对于合法用户而言被告知的注册地址通常会是一个域名,而非法用户扫描得到的注册地址则是直接解析出来的 IP,可以依据这个差异进行相关处理

  1. 配置 OpenSIPS 监听域名
    这个可以在 OpenSIPS 的脚本里添加相关配置监听外网域名,如下所示
    socket=udp:172.10.18.17:5060 as opensips.com:5060
    
  2. 非域名注册请求的处理
    在 OpenSIPS 的脚本添加路由处理逻辑,如果收到 REGISTER 请求而 R-URI 里的 domain 不是外网域名,则直接将请求 drop 掉即可,如下所示
    if (is_method("REGISTER") && $od != "opensips.com") {
        drop();
      }
    

在这里插入图片描述

2.2.2 INVITE 请求

外呼系统中,OpenSIPS 作为 SIP 代理服务器正常来说只会收到来自内网 SIP 服务器(如 FreeSWITCH)的 INVITE 请求, 所以可据此进行限制处理

  1. 配置内网额外端口供 SIP 服务器呼叫使用
    可以在 OpenSIPS 的脚本里添加相关配置额外监听内网端口,如下所示
    socket=udp:172.10.18.17:5070
    
  2. 非内网端口呼叫请求的处理
    在 OpenSIPS 的脚本添加路由处理逻辑,如果收到 INVITE 请求而 R-URI 里的端口不是指定端口,则直接将请求 drop 掉即可,如下所
    if (is_method("INVITE") && $op != "5070") {
       drop();
       }
    

呼入场景中,外部用户通过公网呼叫到 OpenSIPS 通常要经过线路商对接步骤,也就是用户必须呼叫线路商提供的号码才能打进来,所以这个场景只要在防火墙上为相应线路商的服务器加白即可防范外部扫描

在这里插入图片描述

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

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

相关文章

ElasticSearch-数据查询

ElasticSearch-数据查询 目录概述需求: 设计思路实现思路分析1.查询某索引下的所有数据2.二、条件查询3.、条件查询方式二4.四、分页查询5.五、格式化数据 六、排序七 其他条件执行的成立的查询九、范围查询 参考资料和推荐阅读 Survive by day and develop by nigh…

13-k8s-ingress网络

文章目录 一、ingress介绍二、创建nginx和tomcat供测试三、创建ingress-http四、yaml方式安装ingress五、helm方式安装ingress(推荐)六、Ingress的HTTPS代理 一、ingress介绍 Service对集群之外暴露服务的主要方式有两种:NotePort和LoadBalan…

强化学习基础(2)—常用算法总结

目录 1.Value-Based 2. Policy-Based 参考文献 1.Value-Based Sarsa(State-action-reward-state’-action):是为了建立和优化状态-动作(state-action)的价值Q表格所建立的方法。首先初始化Q表格,根据当前的状态和动作与环境进行…

Mapping 设计指南

Mapping 设计指南 目录概述需求: 设计思路实现思路分析1、properties2.fields 3.search_analyzer4.2、format1、enabled2、doc_values 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0…

数据库、数据中台、数据仓库、数据湖区别

数据时代,各行业的企业都已经开始通过数据库来沉淀数据,但是真的论起数据库、数据仓库、数据中台,还是新出现的数据湖,它们的概念和区别,可能知道的人就比较少了,今天我们详细来比较了解一下。 一、数据仓…

FPGA通过读写突发对DS1302时钟的配置驱动

文章目录 前言一、pandas是什么?1、理论原理1、DS1302实时时钟芯片1、特性2、引脚定义3、有关读写操作的详细内容1、读写的几个端口信号2、命令字节3、突发读写时钟寄存器4、写保护位 4、数据读写时序&寄存器地址表1、数据单字节读写时序2、寄存器地址表 5、数据…

✔ ★【备战实习(面经+项目+算法)】 10.16学习时间表(总计学习时间:5h)

✔ ★【备战实习(面经项目算法)】 坚持完成每天必做如何找到好工作1. 科学的学习方法(专注!效率!记忆!心流!)2. 每天认真完成必做项,踏实学习技术 认真完成每天必做&…

C++指针解读(10)-- 动态内存分配

栈和堆是进程内存空间中非常重要的2块区域。栈用于存放程序临时创建的局部变量;堆用于存放进程运行中被动态分配的内存段。当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上;当利用free等函数释放内存时,被释放的…

虚拟机和Windows共享文件的几种方式(共享文件夹、网络映射、Winscp)

1、共享文件夹 在虚拟机的“/mnt/hgfs/”目录下能看到和Windows共享的文件; 2、网络映射 2.1、安装samba服务器 #安装samba服务器 apt-get install samba samba-common#添加samba账户 smbpasswd -a ckl passwd:1232.2、设置网络映射 3、Winscp共享文件 3.1、Wins…

snk-给github界面加一个有趣的动画

How to enable GitHub Actions on your Profile README for a snake-eating contribution graph 🐍 - DEV Community Platane/Platane (github.com) ① 创建New repository 名字和你自己的Github 用户名一样。 ② 创建之后,再这个Zero-coder仓库下创建…

[C国演义] 第十五章

第十五章 最长湍流子数组环绕字符串中唯⼀的⼦字符串 最长湍流子数组 力扣链接 子数组 ⇒ dp[i]的含义: 以arr[i] 结尾的所有子数组中的最长湍流子数组的长度 子数组 ⇒ 状态转移方程根据 最后一个位置来划分👇👇👇 初始化: 都初始化为…

任务调度框架-如何实现定时任务+RabbitMQ事务+手动ACK

任务调度框架 Java中如何实现定时任务? 比如: 1.每天早上6点定时执行 2.每月最后一个工作日,考勤统计 3.每个月25号信用卡还款 4.会员生日祝福 5.每隔3秒,自动提醒 10分钟的超时订单的自动取消,每隔30秒或1分钟查询…

Gson反序列化原理

前言 序列化和反序列化是日常工作中经常使用的工具,一般用于对象的持久化保存或者对象的网络传输,一般有两种情况,一种是对象本身实现了Serializable接口,这种情况下可以利用jdk自带的功能或者Kryo等这种封装好的序列化反序列化工…

10.Linear Map transformation rules

线性映射 从一个基底到另一个基底 所遵循的转换规则。 假设: 由一个矩阵给出的线性映射在这,并且是在基底e上表示, 该线性映射将e1变成0.5个e1,将e2变成2个e2; 假设有个向量V,其分量是【1,1…

福昕阅读器打开pdf文档时显示的标题不是文件名

0 Preface/Foreword 1 现象 文件名为:Demo-20231017 打开效果:显示名字为 word template 2 解决方法 2.1 利用打印方式将word生产pdf 在word生产pdf文件时,使用打印方式生成pdf文档。 2.2 删除word文档设置的标题 文件---》信息---》标…

“赔率”和“概率”

赔率与概率不同 Odds ! Probability 许多人将“赔率”和“概率”这两个词混为一谈。它们都表示对可能性或机会的估计。我可以理解普通人这样做,但我经常看到数据科学家和统计学家也混淆了这些概念,这是一种遗憾,因为在数学上它们有不同的含…

LVGL_基础控件btnmatrix

LVGL_基础控件btnmatrix 1、创建按钮矩阵 /* 分配按钮以及按钮上的文字 */ // 这里注意不要使用在函数退出时会被销毁的局部变量 // 可以用 "\n" 进行换行,最后一个按钮之后的元素必须是 NULL 或 "" // 换行 "\n" 和 "NULL&quo…

Z-Fighting问题解决(二) - Reverse-z

Z值相关技术概论理清 开始之前先简单理清科普一下涉及的跟三维图形学相关的深度Z相关的概念: Z-Buffer:上个世纪八十年代的图形学飞跃节点算法之一; Z缓冲是一种解决深度排序问题的方法,主要用于确定哪些物体在其他物体的前面。…

【Oracle】分析函数partition by,解决了使用group by后select语句中只能是分组的字段或者是一个聚合函数的问题

首先我们看一下group by的用法,比如根据省份分组。 select province, sum(persons) from t_person group by province;使用了group by后,select语句中只能是分组的字段(比如上面的province)或者是一个聚合函数(比如co…

【特纳斯电子】基于单片机的火灾监测报警系统-仿真设计

视频及资料链接:基于单片机的火灾监测报警系统-仿真设计 - 电子校园网 (mcude.com) 编号: T0152203M-FZ 设计简介: 本设计是基于单片机的火灾监测报警系统,主要实现以下功能: 1.通过OLED显示温度、烟雾、是否有火…