freeswitch借助fail2ban屏蔽骚扰注册

2024-09-02 18:08

本文主要是介绍freeswitch借助fail2ban屏蔽骚扰注册,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

fail2ban屏蔽fs中的骚扰注册

        • 背景
        • Fail2Ban
          • 安装
          • 配置

背景

在阿里云上部了一套fs满足公网业务需要。布置好后打开fs_cli看了一眼,全是来自公网的骚扰注册,足见公网环境的风险(不过aws似乎情况稍好)。
在这里插入图片描述

Fail2Ban

使用Fail2Ban来防御注册骚扰的主要原因是,Fail2Ban已经和freeswitch有了很好的集成。Fail2Ban的工作原理简单来说,就是扫描fs的日志,从中发现疑似骚扰的ip,然后直接ban掉。

安装

centOS下安装很简单:yum install fail2ban

配置
  • 修改扫描日志路径
    /etc/fail2ban/jail.conf中,[freeswitch]标签下的logpath,修改为fs日志的路径:
    在这里插入图片描述
  • 自定义封禁逻辑
    /etc/fail2ban/jail.d/路径下新增配置文件touch freeswitch.local。新增[freeswitch]标签,并新增如下配置(如果60s内检查到某个ip注册失败5次,则将这个ip封禁86400s)。如果要加白名单也是在这里加。
    在这里插入图片描述
  • 设置日志捕获和匹配逻辑
    /etc/fail2ban/filter.d/freeswitch.conf中:
    在这里插入图片描述
  • 设置自启并重启
    设置自启:systemctl enable fail2ban.service
    重启:systemctl restart fail2ban
  • 开启防火墙
    fail2ban需要和防火墙一起工作。
  • 查看firewalld状态:systemctl status firewalld
  • 开启防火墙:systemctl start firewalld
  • 设置自启:systemctl enable firewalld

注意!!!firewalld默认是所有端口全ban的,所以要先开放我们需要的端口,例如业务需要8082的tcp端口,和16384-32768的udp端口

  • 查看8082端口是否开放:firewall-cmd --query-port=8082/tcp
  • 开启8082端口: firewall-cmd --zone=public --add-port=8082/tcp --permanent
  • 批量开启16384-32768端口:firewall-cmd --zone=public --add-port=16384-32768/udp--permanent
  • 查看所有已开放端口:firewall-cmd --zone=public --list-ports
  • 重启防火墙:firewall-cmd --reload
  1. fail2ban基本命令
  • 查看fail2ban客户端状态:fail2ban-client status
  • 查看fs的fail2ban状态:fail2ban-client status freeswitch
  • ban掉一个ip:fail2ban-client set freeswitch banip 113.113.113.113
  • 解禁一个ip:fail2ban-client set freeswitch unbanip 113.113.113.113
  1. 查看fail2ban日志
    fail2ban日志位于/var/log/fail2ban.log,可以看到fail2ban运行详情:
    在这里插入图片描述
    重启后从日志中可以看到,连ban了多个ip。再到fs_cli中看一眼,全世界都清净了。
  2. fail2ban不仅可以屏蔽骚扰注册,同时也可以屏蔽骚扰呼叫,我这里fs对ip做了acl控制,所以暂时用不到,之后如果用到再更新。
  3. 这篇博文写的更详细。

这篇关于freeswitch借助fail2ban屏蔽骚扰注册的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130680

相关文章

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

Chapter 13 普通组件的注册使用

欢迎大家订阅【Vue2+Vue3】入门到实践 专栏,开启你的 Vue 学习之旅! 文章目录 前言一、组件创建二、局部注册三、全局注册 前言 在 Vue.js 中,组件是构建应用程序的基本单元。本章详细讲解了注册和使用 Vue 的普通组件的两种方式:局部注册和全局注册。 本篇文章参考黑马程序员 一、组件创建 ①定义 Vue 组件是一种具有特定功能的 Vue 实

c++11工厂子类实现自注册的两种方法

文章目录 一、产品类构建1. 猫基类与各品种猫子类2.狗基类与各品种狗子类 二、工厂类构建三、客户端使用switch-case实现调用不同工厂子类四、自注册方法一:公开注册函数显式注册五、自注册方法二:构造函数隐形注册总结 一、产品类构建 1. 猫基类与各品种猫子类 class Cat {public:virtual void Printer() = 0;};class

Linux中如何屏蔽信号

本篇文章主要学习Linux的信号处理机制,着重学习屏蔽信号部分。屏蔽信号处理的两种方式类似于信号的捕获,一种方式是直接对其设置,另一种方式是先获得描述符的掩码,然后对其设置操作。 本文主要参考自《嵌入式linux系统使用开发》,作者何永琪,Thanks. 在linux系统中,如何处理某个进程发送的一个特定信号呢?一般来说有三种方式: 1) 忽略信号 2) 屏蔽信号 3) 为该信号添

SAP学习笔记 - 开发02 - BTP实操流程(账号注册,BTP控制台,BTP集成开发环境搭建)

上一章讲了 BAPI的概念,以及如何调用SAP里面的既存BAPI。 SAP学习笔记 - 开发01 - BAPI是什么?通过界面和ABAP代码来调用BAPI-CSDN博客 本章继续讲开发相关的内容,主要就是BTP的实际操作流程,比如账号注册,登录,BTP集成开发环境的搭建这方面。 目录 1,账号注册 2,BTP登录URL 3,如何在BTP上进行开发? 以下是详细内容。 1,账

吐血整理nacos 作为springcloud的配置中心和注册中心

吐血整理nacos 作为配置中心和注册中心 环境版本nacos 版本 nacos启动单机模式启动配置数据库 Spring cloud 连接注册Nacos配置中心导入依赖 注册中心 环境版本 SpringBoot版本SpringCloud版本cloud Alibaba版本2.6.132021.0.52021.0.5.0 参照依据 spring-cloud-alibab 对应

【中国国际航空-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 所以大部分网站及App 都采取图形验证码或滑动验证码等交互解决方案, 但在机器学习能力提高的当下,连百度这样的大厂都遭受攻击导致点名批评, 图形验证及交互验证方式的安全性到底如

CF #283 (Div. 2) A.(屏蔽数组元素)

题目链接:http://codeforces.com/contest/496/problem/A 解题思路: n不是很大,所以暴力。每次屏蔽掉a[ i ]中的一个元素,注意头和尾不能屏蔽。屏蔽后当i == j 时做特殊处理,即cnt = a[ i+ 1 ] - a[ i - 1 ]。最后更新最小值即可。 完整代码: #include <functional>#includ

如何借助AI快速筛选和整理文献?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 在撰写毕业论文时,文献综述是必不可少的部分。它不仅为你的研究提供理论背景,还展示了你对研究领域的深入理解。然而,文献综述的撰写过程常常让学生感到头疼,尤其是面对海量文献时,如何有效筛选、整理和撰写是一大难题。 本文将为大家介绍如何利用AI工具帮助你轻松高效地完成文献综述的写作。我们将详细讲解如何快速

spring cloud eureka注册中心搭建

1、创建maven项目,在pom.xml 中加入相应jar包 2、在src/main/resources中创建application.properties文件,内容为 spring.application.name=eureka-server   // 注册中心服务名称 server.port=8761 // 注册中心服务端口 # 本身注册中心是一个服务但是不需要注册自己 eureka.c