当前位置: 首页 > news >正文

Linux下如何安装配置Fail2ban防护工具

Fail2ban是一款在Linux服务器上用于保护系统免受恶意攻击的防护工具。它通过监视系统日志,检测到多次失败的登录尝试或其他恶意行为后,会自动将攻击源的IP地址加入防火墙的黑名单,从而阻止攻击者进一步访问服务器。本文将介绍如何在Linux系统上安装和配置Fail2ban。

  1. 检查系统版本和安装必要软件 在开始安装之前,首先需要确认系统版本和安装必要软件。可以使用以下命令检查系统版本:

    lsb_release -a
    

    确定系统版本后,使用以下命令安装必要软件(如果尚未安装):

    sudo apt update
    sudo apt install -y python3-pip fail2ban
    
  2. 配置Fail2ban Fail2ban的配置文件位于/etc/fail2ban目录下,打开该目录并编辑jail.local文件:

    sudo nano /etc/fail2ban/jail.local
    

    在文件中可以找到以下几个常用的配置选项:

    • bantime:设置封禁时间,单位为秒,默认为600秒(10分钟)。
    • findtime:在该时间段内,如果发现多次失败的登录尝试,则触发封禁。
    • maxretry:最大的登录尝试次数,超过该次数会触发封禁。
    • backend:指定Fail2ban使用的后端,默认为auto
    • destemail:指定发送邮件通知的收件人地址。
    • action:指定触发封禁后的操作,可以选择iptablesiptables-multiportshorewall等。

    根据需求修改这些参数,并保存文件。

  1. 创建自定义过滤器 Fail2ban通过正则表达式匹配系统日志中的行,以判断是否有恶意行为发生。可以根据自己的需求创建自定义的过滤器。创建过滤器的步骤如下:

    • filter.d目录下创建新的过滤器文件,例如sshd.conf
      sudo nano /etc/fail2ban/filter.d/sshd.conf
      
    • 在文件中添加以下内容,用于匹配SSH登录的失败尝试:
      [Definition]
      failregex = ^%(__prefix_line)s(?:error: PAM: )?[aA]uthentication failure(?:; logname=\S+ uid=\S+ euid=\S+ tty=\S+ ruser=\S+ rhost=<HOST>)?\s*$
      ignoreregex =
      
  2. 启动和配置Fail2ban 完成上述配置后,可以使用以下命令启动Fail2ban服务:

    sudo systemctl start fail2ban
    

    为了在系统启动时自动启动Fail2ban,使用以下命令:

    sudo systemctl enable fail2ban
    
  3. 监视Fail2ban日志 在配置Fail2ban之后,可以使用以下命令查看Fail2ban的日志:

    sudo tail -f /var/log/fail2ban.log
    

    通过观察日志,可以了解到Fail2ban的工作情况,包括封禁的IP地址和封禁的原因。

  4. 高级配置选项 Fail2ban还提供了一些高级配置选项,可以根据需要进行配置。以下是一些常用的高级配置选项:

    • ignoreip:指定不被封禁的IP地址列表。
    • bantime.increment:封禁时间的增加步长,默认为1。
    • maxretry.increment:最大登录尝试次数的增加步长,默认为1。
    • action_mw:指定触发封禁后的操作,可以选择iptables-multiportiptables-allports等。
    • action_d:指定触发解封后的操作,可以选择iptables-multiportiptables-allports等。

    修改这些选项的方法与修改jail.local文件类似,只需将相应的选项添加到文件中即可。

    以上就是在Linux系统上安装和配置Fail2ban的步骤。使用Fail2ban可以有效地保护服务器免受恶意攻击,提高服务器的安全性。

相关文章:

Linux下如何安装配置Fail2ban防护工具

Fail2ban是一款在Linux服务器上用于保护系统免受恶意攻击的防护工具。它通过监视系统日志&#xff0c;检测到多次失败的登录尝试或其他恶意行为后&#xff0c;会自动将攻击源的IP地址加入防火墙的黑名单&#xff0c;从而阻止攻击者进一步访问服务器。本文将介绍如何在Linux系统…...

js的深浅拷贝

深浅拷贝是编程中对数据复制的两种不同方式&#xff0c;它们在处理对象和数组等复合数据结构时尤为重要。下面将详细解释这两种拷贝方式。 浅拷贝&#xff08;Shallow Copy&#xff09; 浅拷贝创建了原始对象的一个新实例&#xff0c;但这个新实例的属性只是原始对象属性的引…...

实验八: 彩色图像处理

目录 一、实验目的 二、实验原理 1. 常见彩色图像格式 2. 伪彩色图像 3. 彩色图像滤波 三、实验内容 四、源程序和结果 (1) 主程序(matlab (2) 函数FalseRgbTransf (3) 函数hsi2rgb (4) 函数rgb2hsi (5) 函数GrayscaleFilter (6) 函数RgbFilter 五、结果分析 1. …...

Python酷库之旅-第三方库Pandas(048)

目录 一、用法精讲 171、pandas.Series.nlargest方法 171-1、语法 171-2、参数 171-3、功能 171-4、返回值 171-5、说明 171-6、用法 171-6-1、数据准备 171-6-2、代码示例 171-6-3、结果输出 172、pandas.Series.nsmallest方法 172-1、语法 172-2、参数 172-3、…...

springboot爱宠屋宠物商店管理系统-计算机毕业设计源码52726

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…...

自训练和增量训练word2vec模型

1、自己准备训练语料文件 根据自己的业务场景准备训练数据&#xff0c;比如用户在商城上的同购行为序列或同浏览行为序列。 我们希望通过自己训练业务相关的语料word2vec模型来获得词嵌入、词相关性查询等。 1.1 准备语料库文件 # 示例&#xff1a;准备自己的一个大规模的语…...

华三路由器开启web访问

配置路由器&#xff1a; # 配置Web用户名为admin&#xff0c;认证密码为admin&#xff0c;服务类型为http&#xff0c;用户角色为network-admin。 [Sysname] local-user admin [Sysname-luser-manage-admin] service-type http [Sysname-luser-manage-admin] authorization…...

C++软件开发值得推荐的十大高效软件分析工具

目录 1、概述 2、高效软件工具介绍 2.1、窗口查看工具SPY 2.2、Dependency Walker 2.3、剪切板查看工具Clipbrd 2.4、GDI对象查看工具GDIView 2.5、Process Explorer 2.6、Prcoess Monitor 2.7、API Monitor 2.8、调试器Windbg 2.9、反汇编工具IDA 2.10、抓包工具…...

vue2老项目中node-sass更换dart-sass

更换原因&#xff1a;node-sass经常会出现node版本问题&#xff0c;就很麻烦 卸载项目中的node-sass sass-loader npm uninstall sass-loader sass 安装dart-sas sass-loader 推荐安装sass1.26.2 sass-loader7.3.1 npm install sass-loader7.3.1 sass1.26.2 从新配置vue.…...

源/目的检查开启导致虚拟IP背后的LVS无法正常访问

情况描述 近期发现48网段主机无法访问8.83这个VIP&#xff08;虚拟IP&#xff09;&#xff0c;环境是 8.83 绑定了两个LVS实例&#xff0c;然后LVS实例转发到后端的nginx 静态资源&#xff1b;整个流程是&#xff0c;客户端发起对VIP的请求&#xff0c;LVS将请求转发到后端实例…...

类和对象(四)

构造函数中的初始化列表 之前在实现构造函数时&#xff0c;主要是在函数体内进行赋值&#xff0c;而构造函数还有另一种初始化方式&#xff0c;通过初始化列表进行初始化。 初始化列表的使⽤⽅式是以⼀个冒号开始&#xff0c;接着是⼀个以逗号分隔的数据成员列表&#xff0c;…...

<PLC><HMI><汇川>在汇川HMI画面中,如何为UI设置全局样式?

前言 汇川的HMI软件是使用了Qt来编写的,因此在汇川的HMI程序编写过程,是支持使用qt的样式来自定义部件样式的,即qss格式。 概述 汇川的软件本身提供三个系统的style样式,我们可以直接使用,但是,如果系统提供的样式不符合你的需求,那么你可以对其进行修改,或者自己新建…...

在Git项目中添加并应用“.gitignore”文件

在Git项目中添加并应用.gitignore文件 创建或修改.gitignore文件&#xff1a; 在项目的根目录下创建一个名为.gitignore的文件。如果已经有此文件&#xff0c;可以直接修改。 在文件中添加您希望Git忽略的文件和目录。例如&#xff1a; # 忽略所有的log文件 *.log# 忽略所有的…...

LeetCode Hot100 搜索二维矩阵

给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。…...

iOS中的KVO(Key-Value Observing)详解

iOS中的KVO&#xff08;Key-Value Observing&#xff09;详解 一、KVO概述 KVO&#xff08;Key-Value Observing&#xff09;&#xff0c;即键值观察/监听&#xff0c;是苹果提供的一套事件通知机制。它允许一个对象&#xff08;观察者&#xff09;观察/监听另一个对象&#…...

算法 —— 暴力枚举

目录 循环枚举 P2241 统计方形&#xff08;数据加强版&#xff09; P2089 烤鸡 P1618 三连击&#xff08;升级版&#xff09; 子集枚举 P1036 [NOIP2002 普及组] 选数 P1157 组合的输出 排列枚举 P1706 全排列问题 P1088 [NOIP2004 普及组] 火星人 循环枚举 顾名思…...

构造+有序集合,CF 1023D - Array Restoration

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1023D - Array Restoration 二、解题报告 1、思路分析 先考虑合法性检查&#xff1a; 对于数字x&#xff0c;其最左位置和最右位置 之间如果存在数字比x小&#xff0c;则非法 由于q次操作&#xff0c;第q…...

Scrapy 爬取旅游景点相关数据(四)

本节内容主要为&#xff1a; &#xff08;1&#xff09;创建数据库 &#xff08;2&#xff09;创建数据库表 &#xff08;3&#xff09;爬取数据进MYSQL库 1 新建数据库 使用MYSQL数据库存储数据&#xff0c;创建一个新的数据库 create database scrapy_demo;2 新建数据表 CR…...

Vue常用指令及其生命周期

作者&#xff1a;CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 目录 1.常用指令 1.1 v-bind 1.2 v-model 注意事项 1.3 v-on 注意事项 1.4 v-if / v-else-if / v-else 1.5 v-show 1.6 v-for 无索引 有索引 生命周期 定义 流程 1.常用指令 Vue当中的指令…...

简化数据流:Apache SeaTunnel实现多表同步的高效指南

Apache SeaTunnel除了单表之间的数据同步之外&#xff0c;也支持单表同步到多表&#xff0c;多表同步到单表&#xff0c;以及多表同步到多表&#xff0c;下面简单举例说明如何实现这些功能。 单表 to 单表 一个source&#xff0c;一个sink。 从mysql同步到mysql&#xff0c;…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...