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

在 Ubuntu 24.04 或 22.04 LTS 服务器上安装、配置和使用 Fail2ban

关于在 Ubuntu 24.04、22.04 或 20.04 LTS Linux 服务器上安装和配置 Fail2ban 服务器、客户端和服务的教程。

博主和开发人员如果自行运行和管理服务器,也需要负责其安全性。在当今世界,如果不重视安全性,我们的服务器可能会成为攻击者的攻击目标并造成损害。尽管有许多在线 WAF(Web 应用防火墙),但为了加固服务器,有一个名为 Fail2ban 的开源程序。它可以确保在多次尝试失败后,攻击者的 IP 地址会被暂时阻止,从而防止无限次的尝试,这些尝试最终可能会导致密码被破解。

Fail2ban 可以监控各种服务,当然包括 SSH 访问、FTP、邮件等。在这里,我们学习如何在 Ubuntu 24.04 或 22.04 LTS 上安装 Fail2ban 及其配置过程。

在 Ubuntu 24.04 或 22.04 LTS 上安装 Fail2ban

安装和配置 Fail2ban 的软件包可在 Ubuntu 24.04/22.04 的官方仓库中找到。因此,我们需要使用 apt 命令进行安装。

首先,运行更新命令以重建仓库缓存:

sudo apt update

然后,使用以下命令安装这个安全工具:

sudo apt install fail2ban

运行上述命令后,安装完成后将提供以下程序:

  • fail2ban-server – 服务器
  • fail2ban-client – 用于配置和评估服务器的客户端程序
  • fail2ban-regex – 用于测试正则表达式的程序

启用并检查服务状态:

sudo systemctl enable fail2ban
sudo systemctl status fail2ban

在 Ubuntu 上配置 Fail2ban

Fail2ban 读取扩展名为 .conf.local 的配置文件类型。扩展名为 .conf 的文件在安装过程中创建,并且会在软件包升级时被 覆盖,因此所有更改都必须在对应的 .local 文件中进行。因此,只应在该文件中添加或更改与默认或全局设置不同的值。

Fail2ban 有三种配置文件类型:

/etc/fail2ban/action.d/*.conf/*
/etc/fail2ban/filter.d/*.conf/*
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf

action.d

目录 /etc/fail2ban/action.d/ 中的文件包含用于(解除)阻止 IP 地址的命令。操作文件包含两个部分:[Definition][Init][Init] 部分中的条目用于覆盖在监狱中定义的规则。以下表中的示例取自 iptables-multiport-conf 操作。所有命令都以 fail2ban 用户权限执行。

选项概览 描述 示例
[Definition]
actionstart 在启动 fail2ban 时执行的命令 actionstart = iptables -N fail2ban-<name>
iptables -A fail2ban-<name> -j RETURN
iptables -I <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
actionstop 在退出 fail2ban 时执行的命令 actionstop = iptables -D <chain> -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
iptables -F fail2ban-<name>
iptables -X fail2ban-<name>
actioncheck 在每次执行 actionban 之前执行的命令。这些命令用于检查当前环境的功能性。 `actioncheck = iptables -n -L
actionban 当 IP 被阻止时执行的命令。条件是 <
http://www.xdnf.cn/news/18593.html

相关文章:

  • 【LLM】DeepSeek-V3.1-Think模型相关细节
  • Android - 用Scrcpy 将手机投屏到Windows电脑上
  • MySQL学习记录-基础知识及SQL语句
  • SSRF的学习笔记
  • React useState 全面深入解析
  • 6.2 el-menu
  • Axure RP 9的安装
  • 如何让FastAPI在百万级任务处理中依然游刃有余?
  • Postman参数类型、功能、用途及 后端接口接收详解【接口调试工具】
  • 【C++】函数返回方式详解:传值、传引用与传地址
  • Linux 824 shell:expect
  • 今日科技热点 | AI加速创新,5G与量子计算引领未来
  • PHP - 实例属性访问与静态方法调用的性能差异解析
  • B站视频字幕提取工具
  • mysql 5.7 查询运行时间较长的sql
  • 【计算机408数据结构】第三章:基本数据结构之栈
  • 苍穹外卖项目实战(日记十)-记录实战教程及问题的解决方法-(day3-2)新增菜品功能完整版
  • 启动Flink SQL Client并连接到YARN集群会话
  • 拓展:simulink中将仿真环境离散化
  • K8S的部署与常用管理
  • VS2022的MFC中关联使用控制台并用printf输出调试信息
  • Redis 高可用篇
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十四)垂直滚动条
  • HarmonyOS实战(DevEco AI篇)—深度体验DevEco CodeGenie智能编程助手
  • 算法训练营day60 图论⑩ Bellman_ford 队列优化算法、判断负权回路、单源有限最短路(修改后版本)
  • `strcat` 字符串连接函数
  • 蔬菜溯源系统的开发与设计小程序
  • 新疆地州市1米分辨率土地覆盖图
  • Placement new是什么
  • 这也许就是DeepSeek V3.1性能提升的关键:UE8M0与INT8量化技术对比与优势分析