当前位置: 首页 > 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可以有效地保护服务器免受恶意攻击,提高服务器的安全性。

http://www.lryc.cn/news/407701.html

相关文章:

  • js的深浅拷贝
  • 实验八: 彩色图像处理
  • Python酷库之旅-第三方库Pandas(048)
  • springboot爱宠屋宠物商店管理系统-计算机毕业设计源码52726
  • 自训练和增量训练word2vec模型
  • 华三路由器开启web访问
  • C++软件开发值得推荐的十大高效软件分析工具
  • vue2老项目中node-sass更换dart-sass
  • 源/目的检查开启导致虚拟IP背后的LVS无法正常访问
  • 类和对象(四)
  • <PLC><HMI><汇川>在汇川HMI画面中,如何为UI设置全局样式?
  • 在Git项目中添加并应用“.gitignore”文件
  • LeetCode Hot100 搜索二维矩阵
  • iOS中的KVO(Key-Value Observing)详解
  • 算法 —— 暴力枚举
  • 构造+有序集合,CF 1023D - Array Restoration
  • Scrapy 爬取旅游景点相关数据(四)
  • Vue常用指令及其生命周期
  • 简化数据流:Apache SeaTunnel实现多表同步的高效指南
  • 均匀圆形阵列原理及MATLAB仿真
  • vue2使用univerjs
  • VUE3 el-table-column header新增必填*
  • 条件概率和贝叶斯公式
  • Kali中docker与docker-compose的配置
  • C++ | Leetcode C++题解之第283题移动零
  • Exponential Moving Average (EMA) in Stable Diffusion
  • 017、Vue动态tag标签
  • RocketMQ 架构概览
  • 优化医疗数据管理:Kettle ETL 数据采集方案详解
  • spring-from表单