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

CentOS 7下Fail2Ban与Firewalld联动防御SSH暴力破解实战

1. 为什么需要Fail2Ban与Firewalld联动防御SSH暴力破解最近几年服务器安全问题越来越受到重视尤其是SSH暴力破解攻击已经成为最常见的服务器入侵手段之一。我管理的几台云服务器就经常在/var/log/secure日志里看到大量来自不同IP的登录尝试有些攻击者甚至会持续尝试数周之久。传统的防火墙规则虽然能起到一定防护作用但面对这种自动化、分布式的暴力破解就显得力不从心了。Fail2Ban正好能解决这个问题。它会实时监控系统日志当检测到多次失败的登录尝试时自动将攻击者的IP加入防火墙黑名单。而Firewalld作为CentOS 7默认的防火墙管理工具与Fail2Ban配合使用可以形成更强大的防御体系。这种组合最大的优势在于动态防御传统防火墙只能静态封禁IP而Fail2Ban能根据日志分析动态调整规则资源节省相比iptables直接封禁使用ipset能大幅降低防火墙规则数量灵活配置可以根据不同服务SSH、Web等设置独立的防护策略2. 环境准备与基础配置2.1 确保Firewalld正常运行在开始之前我们需要确认Firewalld已经正确安装并运行。执行以下命令检查状态systemctl status firewalld如果显示未运行可以通过以下命令启动并设置开机自启systemctl start firewalld systemctl enable firewalld2.2 开放SSH端口如果你的SSH服务使用的是默认22端口需要确保Firewalld已经放行firewall-cmd --permanent --add-servicessh firewall-cmd --reload如果修改过SSH端口强烈建议这样做比如改为2222则需要单独放行firewall-cmd --permanent --add-port2222/tcp firewall-cmd --reload3. 安装与配置Fail2Ban3.1 安装EPEL源和Fail2BanCentOS 7默认仓库中没有Fail2Ban需要先安装EPEL源yum install -y epel-release yum install -y fail2ban fail2ban-systemd这里我特意加上了fail2ban-systemd包它能提供更好的systemd集成支持。3.2 基础配置文件设置Fail2Ban的主配置文件是/etc/fail2ban/jail.conf但我们不应该直接修改它而是创建jail.local来覆盖默认设置cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local vim /etc/fail2ban/jail.local在[DEFAULT]部分我建议设置以下参数[DEFAULT] ignoreip 127.0.0.1/8 192.168.1.0/24 bantime 1d findtime 1h maxretry 5 banaction firewallcmd-ipset这些参数的意思是ignoreip白名单IP不会被封禁bantime封禁时长1d表示1天findtime检测时间窗口1小时内maxretry最大尝试次数banaction使用firewalld的ipset功能封禁3.3 配置SSH防护规则在jail.local文件中找到[sshd]部分修改为[sshd] enabled true port 2222 filter sshd logpath /var/log/secure maxretry 3注意port要与你实际的SSH端口一致。maxretry设置为3表示同一IP在1小时内findtime有3次失败登录就会被封禁1天bantime。4. 高级防护策略配置4.1 邮件通知功能当有IP被封禁时让系统自动发送邮件通知非常实用。首先安装mailxyum install -y mailx然后配置/etc/mail.rc文件添加SMTP信息以QQ邮箱为例set fromyour_emailqq.com set smtpsmtps://smtp.qq.com:465 set smtp-auth-useryour_emailqq.com set smtp-auth-passwordyour_auth_code set smtp-authlogin set ssl-verifyignore接着修改jail.local的[DEFAULT]部分action %(action_mw)s mta mail sender your_emailqq.com destemail admin_emailexample.com4.2 自定义封禁动作Fail2Ban默认的邮件通知内容比较简略我们可以自定义更详细的通知模板。创建/etc/fail2ban/action.d/mail-enhanced.conf[Definition] actionban printf 安全警报\n服务器: host\n服务: name\n攻击IP: ip\n封禁时间: bantime\n\n详细日志:\ngrep ip logpath | mail -s [Fail2Ban] name: 封禁 ip dest然后在jail.local中引用这个动作action %(action_mw)s5. 实战测试与效果验证5.1 模拟攻击测试为了验证配置是否生效可以从另一台服务器尝试故意输错SSH密码ssh rootyour_server -p 2222连续输错3次密码后检查封禁状态fail2ban-client status sshd应该能看到攻击者的IP出现在封禁列表中。同时检查/var/log/maillog应该能看到通知邮件已发送。5.2 查看Firewalld封禁规则Fail2Ban通过ipset管理封禁列表查看当前封禁的IPfirewall-cmd --direct --get-all-rules这会显示类似以下的输出ipv4 filter INPUT 0 -m set --match-set f2b-sshd src -j REJECT5.3 日志分析与监控Fail2Ban的详细日志位于/var/log/fail2ban.log可以使用以下命令实时监控tail -f /var/log/fail2ban.log同时建议定期检查/var/log/secure了解攻击模式和趋势。6. 性能优化与注意事项6.1 调整封禁策略根据服务器实际负载情况可能需要调整封禁参数对于高流量服务器可以适当提高maxretry对于特别敏感的服务可以缩短findtime长期攻击的IP可以设置更长的bantime6.2 多维度防护建议除了Fail2Ban外还应该考虑修改SSH默认端口禁用root直接登录使用密钥认证替代密码定期更新系统和软件包6.3 常见问题排查如果发现Fail2Ban没有正常工作可以检查日志路径是否正确Fail2Ban服务是否正常运行Firewalld是否允许Fail2Ban修改规则时间设置是否合理findtime bantime我在实际部署中发现合理配置的Fail2Ban可以拦截90%以上的自动化攻击大大减轻服务器安全压力。但也要注意不要设置过于严格的规则避免误封正常用户。建议初期设置较短的封禁时间观察效果后再逐步调整。

相关文章:

CentOS 7下Fail2Ban与Firewalld联动防御SSH暴力破解实战

1. 为什么需要Fail2Ban与Firewalld联动防御SSH暴力破解 最近几年服务器安全问题越来越受到重视,尤其是SSH暴力破解攻击已经成为最常见的服务器入侵手段之一。我管理的几台云服务器就经常在/var/log/secure日志里看到大量来自不同IP的登录尝试,有些攻击者…...

Qwen3.5-9B开发者必看:Gradio API接口文档与curl/python调用示例

Qwen3.5-9B开发者必看:Gradio API接口文档与curl/python调用示例 1. 模型概述与核心特性 Qwen3.5-9B是阿里云推出的新一代多模态大语言模型,基于创新的混合架构设计,为开发者提供了强大的视觉-语言理解与生成能力。该模型在unslooth平台上以…...

Windows 10下Oracle 12c安装报错INS-30131?三步搞定临时位置权限问题

Windows 10下Oracle 12c安装报错INS-30131的深度解决方案 1. 问题背景与核心原因 当你满怀期待地在Windows 10上安装Oracle 12c数据库时,突然遭遇INS-30131错误,这感觉就像在马拉松终点线前被绊倒。这个看似简单的权限问题背后,实际上是Windo…...

mPLUG VQA本地部署教程:root/.cache自定义缓存路径详解

mPLUG VQA本地部署教程:root/.cache自定义缓存路径详解 1. 引言:让图片“开口说话”的本地神器 你有没有遇到过这种情况?看到一张复杂的图表、一张产品细节图,或者一张充满信息的风景照,你特别想知道里面具体有什么、…...

皇冠CAD(CrownCAD2026R2);投影曲线(组合曲线)

将绘制的曲线投影到模型面上生成一条空间曲线;或者两个相交基准面上的草图,分别在各自垂直方向投影曲面相交生成一条空间曲线。 投影到模型面 :将一个平面上绘制的曲线(如草图)沿着特定方向(通常是草图平面…...

【环境搭建实战】Windows + PyCharm + venv:一站式配置Python与PyTorch GPU开发环境

1. 为什么需要完整的GPU开发环境 刚接触深度学习的同学经常会遇到一个尴尬场景:跟着教程安装PyTorch后,发现代码运行速度奇慢无比,后来才发现默认安装的是CPU版本。我当年第一次跑MNIST分类时,一个epoch要等20分钟,而同…...

Llama-3.2V-11B-cot开源大模型价值:支持私有化+审计日志+敏感内容过滤

Llama-3.2V-11B-cot开源大模型价值:支持私有化审计日志敏感内容过滤 1. 项目概述 Llama-3.2V-11B-cot是一个基于LLaVA-CoT论文实现的开源视觉语言模型,专为系统性推理任务设计。这个11B参数规模的模型融合了图像理解和逻辑推理能力,采用独特…...

企业级双出口网络架构实战:VRRP+MSTP主备防火墙与NAT Server的高可用设计

1. 企业双出口网络架构设计背景 现代企业网络对稳定性的要求越来越高,单点故障可能导致整个业务系统瘫痪。我在实际项目中发现,金融、医疗等行业对网络可用性的要求尤为苛刻,通常需要达到99.99%以上的可用性标准。传统单出口网络架构存在两个…...

2026年春招黑马!考研党搞定简历,AI简历工具助你直通面试

2026年的春招大幕已然拉开,对于数百万考研党而言,这无疑是时间与效率的双重考验。刚刚从高压的考研战场走下,面对瞬息万变的求职市场,如何在极短的时间内,制作出一份份专业且具有竞争力的简历,成为了他们能…...

PasteMD保姆级部署教程:5分钟用Ollama跑通Llama3:8b Markdown格式化

PasteMD保姆级部署教程:5分钟用Ollama跑通Llama3:8b Markdown格式化 1. 项目简介:剪贴板智能美化神器 PasteMD是一个完全私有化的AI文本格式化工具,它基于Ollama本地大模型运行框架,搭载了强大的llama3:8b模型。这个工具的核心价…...

IMX6ULL PWM驱动开发全攻略,【2025最新】ArcGIS for JS 实现地图卷帘效果,动态修改参数(进阶版)。

IMX6ULL PWM驱动开发指南 PWM驱动基础概念 PWM(脉冲宽度调制)是一种通过调节脉冲宽度来控制模拟信号的技术。在IMX6ULL处理器中,PWM模块通常集成在芯片内部,可用于控制电机速度、LED亮度调节等场景。 IMX6ULL的PWM控制器支持以下特…...

云容笔谈高性能批处理:Python脚本实现百张东方人像自动化生成与筛选

云容笔谈高性能批处理:Python脚本实现百张东方人像自动化生成与筛选 1. 引言:当古典美学遇上现代自动化 想象一下,你是一位数字艺术家或品牌设计师,需要为一场国风主题的营销活动准备大量东方韵味的人像素材。手动一张张生成、调…...

Git误操作急救指南:从新手避坑到高级救场,一文守住代码生命线

在现代软件工程开发体系中,Git作为分布式版本控制系统的标杆,已成为全球开发者及研发团队的标配工具。它不仅承担着代码迭代轨迹的记录功能,更构建了团队协作的核心流转机制——从单人开发的版本回溯,到多人协作的代码合并、分支管…...

EPLAN P8电气设计10个高频问题解决指南(附详细操作截图)

EPLAN P8电气设计高频问题实战解决方案 1. 中断点关联修改的精准控制 中断点关联问题堪称EPLAN P8用户最常见的痛点之一。许多工程师在修改中断点关联时,常常陷入"改了A处B处又出错"的循环。实际上,EPLAN的中断点管理有一套完整的逻辑体系。…...

银河麒麟ky10 server sp3镜像下载与验证指南:确保文件完整性与安全性

银河麒麟KY10 Server SP3镜像安全获取与完整性验证全流程指南 在企业级服务器操作系统部署过程中,确保系统镜像的完整性和安全性是至关重要的第一步。银河麒麟KY10 Server SP3作为国产操作系统的代表,其安装前的文件验证环节往往被许多技术人员忽视&…...

计算机毕业设计springboot休闲农场管理系统 基于SpringBoot的智慧农庄运营平台 基于SpringBoot的田园综合信息服务平台

计算机毕业设计springboot休闲农场管理系统3ftib9 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着城市化进程加快和人们对田园生活的向往,传统休闲农场的手工记录…...

ED2K(edonkey)传输:从原理到实践的全方位解析

1. ED2K传输的基本原理 ED2K(eDonkey2000)是一种经典的P2P文件共享协议,诞生于2000年左右。它采用分布式架构,不依赖单一服务器存储文件,而是将文件分散存储在参与网络的各个节点上。这种设计让它具有极强的抗干扰能力…...

OpenBMC中D-Bus文件描述符传递的底层机制详解(附systemd实战分析)

OpenBMC中D-Bus文件描述符传递的底层机制详解(附systemd实战分析) 在嵌入式系统开发领域,进程间通信(IPC)的效率直接决定了系统整体性能表现。OpenBMC作为现代服务器管理控制器的开源实现,其内部进程间通信…...

AEUX:破解设计动效转换难题的全流程方案

AEUX:破解设计动效转换难题的全流程方案 【免费下载链接】AEUX Editable After Effects layers from Sketch artboards 项目地址: https://gitcode.com/gh_mirrors/ae/AEUX 在数字设计领域,将Figma设计稿转化为After Effects(简称AE&a…...

StructBERT-中文-large保姆级教程:Docker镜像体积优化技巧

StructBERT-中文-large保姆级教程:Docker镜像体积优化技巧 1. 学习目标与环境准备 StructBERT中文文本相似度模型是一个强大的语义匹配工具,能够准确判断两段中文文本的相似程度。这个模型基于structbert-large-chinese预训练模型,使用了多…...

旧安卓手机变身 Wi-Fi 扩展器:零成本解决覆盖难题

【导语:家中 Wi-Fi 信号存在死角是常见问题,多数人会购买扩展器或升级网络系统。而闲置的旧安卓手机也能摇身一变成为 Wi-Fi 扩展器,零成本解决信号覆盖问题,不过也存在一定局限。】旧机利用:零成本扩展 Wi-Fi 覆盖家里…...

XCP协议学习笔记

XCP是什么?XCP表示“通用测量和校准协议”。“X”代表任意的传输层(如CAN、CANFD、FlexRay、Ethernet…)。由ASAM工作委员会(自动化和测量系统标准化协会)标准化。ASAM是汽车OEM,供应商和工具生产商的组织。…...

李慕婉-仙逆-造相Z-Turbo目标检测集成:YOLOv11辅助生成图像的精细化编辑

李慕婉-仙逆-造相Z-Turbo目标检测集成:YOLOv11辅助生成图像的精细化编辑 你有没有遇到过这种情况?用AI生成了一张图,整体感觉不错,但总有些小细节不尽如人意——比如背景里多了个不该出现的瓶子,或者主角手里的道具位…...

Qwen2.5-VL视觉定位Chord实战:supervisorctl命令速查与服务管理

Qwen2.5-VL视觉定位Chord实战:supervisorctl命令速查与服务管理 1. 项目简介 1.1 什么是Chord视觉定位服务? Chord是一个基于Qwen2.5-VL多模态大模型的智能视觉定位服务。它能理解你的自然语言描述,在图片中精准找到目标对象,并…...

Wan2.1-UMT5模型解析:计算机组成原理视角下的推理过程与算力消耗

Wan2.1-UMT5模型解析:计算机组成原理视角下的推理过程与算力消耗 最近在星图GPU平台上部署和测试Wan2.1-UMT5模型时,我产生了一个很深的感触:很多朋友在尝试生成视频时,常常会困惑于“为什么我的视频生成这么慢?”或者…...

Origin计算XRD半峰宽(FWHM)

在材料表征中,XRD衍射峰的半峰宽(FWHM)是一个非常关键的参数,常用于晶粒尺寸计算(如Scherrer公式)、结晶度分析等。半峰宽,顾名思义,就是峰高一半位置的宽度。峰越宽表明该材料晶粒越…...

基于共焦漫射层析成像的散射介质三维成像技术研究

▒▒本文目录▒▒摘要一、研究背景1.1 散射成像的挑战1.2 现有方法的局限1.3 共焦漫射层析成像的原理二、研究方法2.1 系统架构2.1.1 数据采集模块2.1.2 扩散模型2.1.3 重建算法2.2 物理参数标定三、具体实现细节3.1 数据加载与预处理3.2 扩散点扩散函数计算3.3 维纳反卷积3.4 …...

非均匀热载荷难处理?一文搞懂应用场景与散热仿真设置

🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 💌公众号:莱歌数字(B站同名) 📱个人微信:yanshanYH 211、985硕士,从业16年 从…...

鸿蒙架构师修炼之道 - 关键要素

架构师的设计思维涵盖多个关键要素,这些要素相互关联、相互影响,共同构成了架构师进行有效设计的基础,以下从抽象与建模、整体与局部、技术与业务等维度加以阐述。 抽象与建模 抽象与建模能力将现实问题转化为抽象问题。 抽象能力&#xf…...

高通410随身WiFi救砖实战手记 | QPST工具链与MSM8916日志解析

1. 高通410随身WiFi救砖前的准备工作 遇到一台变砖的高通410(MSM8916)随身WiFi设备时,先别急着动手。我经历过多次救砖失败后发现,准备工作不到位是导致后续操作翻车的主要原因。首先要确认设备确实进入了"砖机"状态——…...