Debian 12 安装配置 fail2ban 保护 SSH 访问

背景介绍

双十一的时候薅羊毛租了台腾讯云的虚机, 是真便宜, 只是没想到才跑了一个月, 系统里面就收集到了巨多的 SSH 恶意登录失败记录.
在这里插入图片描述
只能说, 互联网真的是太不安全了. 之前有用过 fail2ban 在 CentOS 7 上面做过防护, 不过那已经是好久好久之前的故事了, 好多方法已经不再适用. 下面记录一下在 Debian 12 上安装和配置 fail2ban 的过程.

配置过程

# 安装 ufw 和 fail2ban
sudo apt install -y ufw fail2ban# 配置 ufw 防火墙放行 SSH 端口
sudo ufw allow SSH# 开启 ufw
sudo ufw enable
sudo systemctl enable ufw --now

下面开始编辑 fail2ban 配置文件

sudo vim /etc/fail2ban/jail.d/defaults-debian.conf
[DEFAULT]
# 忽略的 IP 地址, 相当于白名单
ignoreip = 1.1.1.1
# [重点] 指定使用 ufw 作为防护的操作
banaction = ufw[sshd]
enabled = true
# [重点] Debian 12 中的 SSH 审计日志都在 systemd 里面, 所以一定要指定
backend = systemd
filter = sshd

保存配置后启动原神 服务

sudo systemctl enable fail2ban --now

测试验证

检查当前 fail2ban 的状态, 还没有 Banned IP

sudo fail2ban-client status sshdStatus for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions|- Currently banned: 0|- Total banned:     0`- Banned IP list:

再开个 SSH 链接, 故意输错密码5次, 再访问就直接 ssh: connect to host 172.17.65.147 port 22: Connection timed out

查看 fail2ban 的日志:

root@lpwm-virtualmachine:/var/log# cat fail2ban.log
2024-12-24 23:01:07,663 fail2ban.server         [1975]: INFO    --------------------------------------------------
2024-12-24 23:01:07,663 fail2ban.server         [1975]: INFO    Starting Fail2ban v1.0.2
2024-12-24 23:01:07,663 fail2ban.observer       [1975]: INFO    Observer start...
2024-12-24 23:01:07,668 fail2ban.database       [1975]: INFO    Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3'
2024-12-24 23:01:07,669 fail2ban.database       [1975]: WARNING New database created. Version '4'
2024-12-24 23:01:07,669 fail2ban.jail           [1975]: INFO    Creating new jail 'sshd'
2024-12-24 23:01:07,681 fail2ban.jail           [1975]: INFO    Jail 'sshd' uses systemd {}
2024-12-24 23:01:07,682 fail2ban.jail           [1975]: INFO    Initiated 'systemd' backend
2024-12-24 23:01:07,682 fail2ban.filter         [1975]: INFO      maxLines: 1
2024-12-24 23:01:07,689 fail2ban.filtersystemd  [1975]: INFO    [sshd] Added journal match for: '_SYSTEMD_UNIT=sshd.service + _COMM=sshd'
2024-12-24 23:01:07,689 fail2ban.filter         [1975]: INFO      maxRetry: 5
2024-12-24 23:01:07,689 fail2ban.filter         [1975]: INFO      findtime: 600
2024-12-24 23:01:07,689 fail2ban.actions        [1975]: INFO      banTime: 600
2024-12-24 23:01:07,689 fail2ban.filter         [1975]: INFO      encoding: UTF-8
2024-12-24 23:01:07,690 fail2ban.jail           [1975]: INFO    Jail 'sshd' started
2024-12-24 23:01:07,691 fail2ban.filtersystemd  [1975]: INFO    [sshd] Jail is in operation now (process new journal entries)
2024-12-24 23:02:50,864 fail2ban.filter         [1975]: INFO    [sshd] Found 172.17.64.1 - 2024-12-24 23:02:50
2024-12-24 23:02:51,404 fail2ban.filter         [1975]: INFO    [sshd] Found 172.17.64.1 - 2024-12-24 23:02:51
2024-12-24 23:02:54,154 fail2ban.filter         [1975]: INFO    [sshd] Found 172.17.64.1 - 2024-12-24 23:02:53
2024-12-24 23:03:21,154 fail2ban.filter         [1975]: INFO    [sshd] Found 172.17.64.1 - 2024-12-24 23:03:20
2024-12-24 23:03:23,904 fail2ban.filter         [1975]: INFO    [sshd] Found 172.17.64.1 - 2024-12-24 23:03:23
2024-12-24 23:03:23,920 fail2ban.actions        [1975]: NOTICE  [sshd] Ban 172.17.64.1
2024-12-24 23:03:26,654 fail2ban.filter         [1975]: INFO    [sshd] Found 172.17.64.1 - 2024-12-24 23:03:26

再次检查 fail2ban 状态, 可以看到 Banned IP 多了一个:

root@lpwm-virtualmachine:/var/log# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     6
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions|- Currently banned: 1|- Total banned:     1`- Banned IP list:   172.17.64.1

查看 ufw 状态, 也多了一条 REJECT 的记录:

root@lpwm-virtualmachine:/var/log# ufw status
Status: activeTo                         Action      From
--                         ------      ----
Anywhere                   REJECT      172.17.64.1                # by Fail2Ban after 5 attempts against sshd
SSH                        ALLOW       Anywhere
WWW                        ALLOW       Anywhere
SSH (v6)                   ALLOW       Anywhere (v6)
WWW (v6)                   ALLOW       Anywhere (v6)

后话

以上均使用的是 fail2ban 的默认配置, 即最多连续 5 次错误登录就会自动加到 ufw 防火墙规则中给 Ban 掉, 如果需要调整具体的规则, 可以修改 /etc/fail2ban/jail.d/defaults-debian.conf, 完整配置说明请参考 https://github.com/fail2ban/fail2ban/blob/master/config/jail.conf

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

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

相关文章

ASP.NET Core Web API Hangfire

ASP.NET Core Web API Hangfire 前言一、安装二、相关代码1.代码片段2.代码片段3.运行效果 三、测试代码1.即发即弃作业2.延迟作业3.重复作业4.延续作业5.页面调度作业 前言 👨‍💻👨‍🌾📝记录学习成果,以…

实用技巧:关于 AD修改原理图库如何同步更新到有原理图 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/144738332 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

【Ubuntu 20.4安装截图软件 flameshot 】

步骤一: 安装命令: sudo apt-get install flameshot 步骤二: 设置快捷方式: Ubuntu20.4 设置菜单,点击 号 步骤三: 输入软件名称, 软件快捷命令(flameshot gui)&am…

ue5 pcg(程序内容生成)真的简单方便,就5个节点

总结: 前情提示 鼠标单击右键平移节点 1.编辑-》插件-》procedural->勾选两个插件 2.右键-》pcg图表-》拖拽进入场景 3.先看点point 右键-》调试(快捷键d)->右侧设置粒子数 3.1调整粒子数 可以在右侧输入框,使用加减乘除 4.1 表面采样器 …

JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介

1. 基本概念 1.1、前言 web开发: web,网页的意思,www.baidu.com静态 web html,css提供给所有人看的数据始终不会发生变化! 动态 web 淘宝,几乎是所有的网站;提供给所有人看的数据始终会发生变化&#xf…

CTFshow-SSRF文件上传

web351 <?php error_reporting(0); highlight_file(__FILE__); $url$_POST[url]; $chcurl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $resultcurl_exec($ch); curl_close($ch); echo ($result); ?> 构造POST …

Vue3项目的换肤思路

1. 整体架构 项目采用了 Vue3 Vuex 的技术栈来实现换肤功能&#xff0c;主要包含以下几个核心部分&#xff1a; 主题配置文件&#xff08;src/utils/theme.js&#xff09;主题切换组件&#xff08;src/components/ThemeSwitch.vue&#xff09;主题状态管理&#xff08;src/s…

信息安全管理:信息安全组织管理策略

信息安全组织管理目的是建立信息安全责任体系和定义组织内的信息安全责任&#xff0c;建立清晰的信息安全责任体系是实现信息安全目标的保证。 一、信息安全组织架构与职责定义 信息安全组织为跨部门协调组织&#xff0c;由信息安全领导组、信息安全管理组、信息安全执行组、…

线性代数行列式

目录 二阶与三阶行列式 二元线性方程组与二阶行列式 三阶行列式 全排列和对换 排列及其逆序数 对换 n阶行列式的定义 行列式的性质 二阶与三阶行列式 二元线性方程组与二阶行列式 若是采用消元法解x1、x2的话则得到以下式子 有二阶行列式的规律可得&#xff1a;分…

Gaea学习笔记总结

Gaea 是一款地形创建软件,它内置了丰富的地貌节点,能快速生成像山脉、荒原峡谷、河流、湖泊等地貌特征。 节点解释使用方法概述Primitives(基本体)Constant(常数)创建输出,一般用来输出Hight,Color,Noise,很少直接使用,而是用来连接上一个节点。一般用来输出Hight,…

OpenCV相机标定与3D重建(37)计算两幅图像之间单应性矩阵(Homography Matrix)的函数findHomography()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 找到两个平面之间的透视变换。 cv::findHomography 是 OpenCV 库中用于计算两幅图像之间单应性矩阵&#xff08;Homography Matrix&#xff09;的…

Pinpoint 是一个开源的分布式追踪系统

pinpointagent2.2.2.tar 是 Pinpoint 的一个版本&#xff0c;Pinpoint 是一个开源的分布式追踪系统&#xff0c;专门用于对 Java 应用程序进行性能监控、日志记录和故障诊断。它可以帮助开发人员和运维人员追踪和分析微服务架构中服务之间的调用链&#xff0c;并进行性能分析。…

工作编码案例--UDP多播 和 本地套接字bind

问题一&#xff1a;组播绑定失效导致无法接收组播报文 背景&#xff1a; 项目中一个封装的库负责UDP绑定&#xff0c;使用配置文件中指定的组播地址。设备为降低功耗会进入休眠状态&#xff0c;休眠时需要卸载网卡。唤醒后重新加载网卡&#xff0c;但发现程序无法接收到组播报…

初探C语言|C语言中有哪些操作符呢?

文章目录 前言算术操作符示例 移位操作符原码,反码 与补码正数负数计算 左移<<右移>> 位操作符例题 赋值操作符单目操作符sizeof 操作符 关系操作符逻辑操作符短路现象 条件操作符逗号表达式下标引用、函数调用和结构成员表达式求值算术转换操作符属性 欢迎讨论: 如…

【USACO题库】1.2.3 Name That Number命名那个数字

这不是水题! 主页:点这里 题目描述 在威斯康辛州牛大农场经营者之中&#xff0c;都习惯于请会计部门用连续数字给母牛打上烙印。 但是,母牛用手机时并没感到这个系统的便利,它们更喜欢用它们喜欢的名字来呼叫它们的同伴&#xff0c;而不是用像这个的语句"Cmon, #4734, …

如何设计 Vue 3 组件库:高效的组件化开发方法

如何设计 Vue 3 组件库&#xff1a;高效的组件化开发方法 &#x1f4d6; 前言 随着前端技术的不断发展&#xff0c;Vue.js 已成为现代化 Web 应用开发的主流框架之一。Vue 3 引入了诸多改进&#xff0c;尤其是组合式 API&#xff0c;使得 Vue 在开发大型项目时&#xff0c;能够…

GXUOJ-算法-第一次作业

1.整数划分 问题描述 GXUOJ | 整数划分 题解 #include<bits/stdc.h> using namespace std; const int N1010,mod1e97;int n; int f[N];int main(){cin>>n;f[0]1;for(int i1;i<n;i){for(int ji;j<n;j){f[j](f[j]f[j-i])%mod;}}cout<<f[n]; } 2.汉诺塔…

用c++或c 做一个深度遍历的 棋谱树,我用来 做围棋棋谱的教学,要求节省内存、效率高,便于保存(棋谱)和拷贝棋谱

为了实现一个高效且节省内存的围棋棋谱树&#xff0c;我们可以使用如下思路和方法&#xff1a; 1. 数据结构设计&#xff1a; • 使用一个树结构&#xff0c;每个节点表示棋局的一步&#xff08;包括坐标和落子的颜色&#xff09;。 • 每个节点存储子节点的指针&…

理想的以太网网络故障排查工具:LinkXpert M3

在排查铜缆、光纤和Wi-Fi以太网故障时&#xff0c;通常需要多种昂贵的工具&#xff0c;操作起来会很复杂。因此&#xff0c;我们推出了LinkXpert M3 —— 一个专为铜缆、光纤和Wi-Fi以太网网络故障排查而设计的工具。它功能强大、体积小巧、性价比高&#xff0c;无疑是您值得信…

【Rust自学】7.2. 路径(Path)Pt.1:相对路径、绝对路径与pub关键字

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 7.2.1. 路径的简介 在Rust里&#xff0c;如果想要找到模块里的某个东西&#xff0c;就必须知道并使用它的路径。Rust中的路径就跟文件系统…