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

利用firewall-cmd实现SSH访问的精细化IP段管控

1. 为什么需要精细化SSH访问控制每次服务器被暴力破解攻击时看着日志里密密麻麻的失败登录尝试我都恨不得把SSH端口直接关掉。但现实是运维团队需要远程管理开发人员偶尔也要排查问题。这时候基于IP段的精细化访问控制就成了救命稻草。传统的做法是直接开放整个SSH端口或者简单限制几个固定IP。前者等于把大门敞开后者在人员流动或出差时就变得非常麻烦。去年我们公司就发生过因为某位运维同事居家办公临时添加了他的家庭IP结果忘记删除导致的安全隐患。firewall-cmd的rich-rule功能让我找到了平衡点。比如可以把北京办公室的IP段203.0.113.0/24、上海研发中心的IP段198.51.100.0/22分别加入白名单。这样既不用为每个员工单独配置又能避免开放整个SSH端口带来的风险。2. 基础环境准备与配置检查2.1 确认firewalld运行状态在开始之前先确保你的系统已经安装并运行着firewalld。我遇到过不少新手直接照着教程敲命令最后发现服务根本没启动的尴尬情况。用这个命令检查systemctl status firewalld如果看到active (running)就说明服务正常。如果没安装在CentOS/RHEL上可以这样安装yum install firewalld -y systemctl enable --now firewalld2.2 备份当前防火墙规则修改防火墙规则前一定要备份这是我用血泪教训换来的经验。有次误操作导致自己也被锁在服务器外面最后只能去机房接显示器操作。备份命令很简单firewall-cmd --list-all firewall_backup_$(date %Y%m%d).txt这个命令会把当前所有规则保存到带日期的文件里。建议同时备份默认区域配置文件cp /etc/firewalld/zones/public.xml /etc/firewalld/zones/public.xml.bak3. 三种IP限制模式实战3.1 单IP授权模式适合给特定管理员或固定设备使用。比如只允许运维主管的办公电脑IP192.168.1.100访问# 先移除默认开放的SSH服务 firewall-cmd --permanent --remove-servicessh # 添加精细规则 firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.1.100 port protocoltcp port22 accept # 重新加载配置 firewall-cmd --reload验证规则是否生效firewall-cmd --list-rich-rules这个模式最大的问题是容错性差。如果IP发生变化比如从WiFi切换到有线网络就会立即失去连接。我建议至少配置两个IP比如办公室固定IP笔记本电脑当前IP。3.2 连续IP范围授权当需要授权给一个小型团队且他们的IP地址连续时特别有用。比如允许测试团队IP从192.168.1.50到192.168.1.60访问firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.1.50-192.168.1.60 port protocoltcp port22 accept这种写法的好处是不需要计算子网掩码直接指定起止IP即可。但要注意范围不要太大否则就失去了精细化管理的意义。3.3 CIDR网段授权这是企业环境中最常用的方式。比如允许整个技术部子网192.168.2.0/24访问firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.2.0/24 port protocoltcp port22 acceptCIDR notation的妙处在于可以灵活控制范围大小。/24表示前24位固定即255.255.255.0/16表示前16位固定255.255.0.0。我们公司就是按部门划分网段的技术部用192.168.2.x市场部用192.168.3.x这样配置规则时特别清晰。4. 动态IP环境解决方案4.1 结合DDNS的动态规则更新对于在家办公的员工IP可能经常变化。这时候可以结合DDNS服务比如花生壳和脚本自动化更新。假设员工使用hostname: staff001.ddns.net#!/bin/bash NEW_IP$(dig short staff001.ddns.net) OLD_RULE$(firewall-cmd --list-rich-rules | grep staff001) # 删除旧规则 if [ -n $OLD_RULE ]; then firewall-cmd --permanent --remove-rich-rule$OLD_RULE fi # 添加新规则 firewall-cmd --permanent --add-rich-rulerule familyipv4 source address$NEW_IP port protocoltcp port22 accept firewall-cmd --reload把这个脚本加入cron每小时执行一次即可。我在团队内部推广这个方法后VPN使用量直接下降了70%因为大家发现SSH访问已经足够安全便捷。4.2 临时访问令牌机制对于第三方合作人员临时访问的情况可以设计一个临时令牌系统。基本思路是生成一个6小时有效期的规则到期自动删除通过邮件或IM发送给请求者实现脚本示例#!/bin/bash REQUESTER_IP203.0.113.45 EXPIRY$(date -d 6 hours %s) # 添加临时规则 firewall-cmd --permanent --add-rich-rulerule familyipv4 source address$REQUESTER_IP port protocoltcp port22 accept # 创建定时删除任务 echo firewall-cmd --permanent --remove-rich-rulerule family\ipv4\ source address\$REQUESTER_IP\ port protocol\tcp\ port\22\ accept | at $(date -d 6 hours %H:%M)5. 高级管理与故障排查5.1 规则优先级管理当规则越来越多时可能会出现冲突。比如既想屏蔽某个IP段又想允许其中的某个特定IP。这时候规则的顺序就很重要# 先拒绝整个网段 firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.4.0/24 reject # 再允许特定IP这条规则优先级更高 firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.4.100 accept可以通过--list-rich-rules查看当前规则顺序。如果发现规则顺序不对可以先全部删除再按正确顺序添加。5.2 常见问题排查问题1规则添加了但不生效检查是否加了--permanent参数但忘记--reload确认默认区域firewall-cmd --get-default-zone是否正确查看完整日志journalctl -u firewalld -f问题2把自己锁在外面提前配置好带外管理iDRAC/iLO保留一个备用管理端口比如2222给应急使用设置cronjob每5分钟检查一次主规则如果被删就自动恢复问题3规则太多导致性能下降尽量合并CIDR块把多个/24合并为/23考虑改用zone来管理不同来源定期清理过期规则6. 企业级最佳实践在管理超过200台服务器的金融行业客户项目中我们总结出这套流程分级管理将服务器分为核心、重要、普通三个级别核心级只允许跳板机IP访问时间维度办公时间9:00-18:00开放更大范围的IP非工作时间限制为运维办公室IP审批流程所有规则变更需要通过工单系统审批并自动同步到CMDB自动同步使用Ansible定期同步所有服务器的防火墙规则确保一致性审计日志所有firewall-cmd操作记录到SIEM系统与员工账号关联实现时间维度控制的示例# 工作日9:00-18:00允许大网段访问 firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.0.0/16 port protocoltcp port22 accept --time9:00-18:00 --weekdayMon,Tue,Wed,Thu,Fri # 其他时间只允许运维网段 firewall-cmd --permanent --add-rich-rulerule familyipv4 source address10.1.1.0/24 port protocoltcp port22 accept这套方案实施后客户服务器的SSH暴力破解尝试下降了98%同时运维效率提高了40%因为再也不用处理各种临时访问请求了。

相关文章:

利用firewall-cmd实现SSH访问的精细化IP段管控

1. 为什么需要精细化SSH访问控制 每次服务器被暴力破解攻击时,看着日志里密密麻麻的失败登录尝试,我都恨不得把SSH端口直接关掉。但现实是运维团队需要远程管理,开发人员偶尔也要排查问题。这时候基于IP段的精细化访问控制就成了救命稻草。 传…...

告别Excel下拉限制:基于SXSSFWorkbook的动态数据验证实战

1. 为什么需要动态数据验证? 做数据导入模板时,下拉列表是个很常见的需求。比如员工信息导入,部门字段需要做成下拉选择;商品信息导入,分类字段需要做成下拉选择。传统做法是把选项硬编码在代码里,或者写在…...

LVS 基线检查与安全加固指南(附案例)

一、LVS 安全基线检查表类别检查项安全要求检查方法主机安全操作系统补丁最新安全补丁yum check-update \| grep kernelSSH 安全加固密钥认证非标准端口netstat -tuln \| grep ssh网络配置VIP 绑定限制绑定特定内网接口ip addr showARP 抑制启用禁用 arp_announce/arp_ignoresy…...

别再手动改参数了!用Zemax ZPL宏批量处理镜头数据,效率提升10倍

别再手动改参数了!用Zemax ZPL宏批量处理镜头数据,效率提升10倍 光学设计师的日常工作中,最令人头疼的莫过于面对数百个镜头参数需要逐个检查修改。记得去年参与某VR镜头项目时,客户临时要求调整所有非球面系数,团队花…...

Horizon虚拟桌面安全加固实战:从禁用U盘到配置水印的域控组策略全解析

Horizon虚拟桌面安全加固实战:从禁用U盘到配置水印的域控组策略全解析 在数字化转型浪潮中,虚拟桌面基础设施(VDI)已成为企业IT架构的核心组件。作为行业领先的解决方案,VMware Horizon凭借其卓越的性能和灵活性&#…...

Unity射线检测RayCast:从基础API到实战交互设计

1. 射线检测的基础概念与应用场景 想象一下你手里拿着一支激光笔,对着房间的墙壁照射时,墙上会出现一个光点。这个简单的物理现象,就是Unity中射线检测(RayCast)最直观的类比。在游戏开发中,射线检测是从一…...

从凸包到Alpha Shape:深入浅出聊聊点云边界提取中那个神秘的α参数该怎么选

从凸包到Alpha Shape:深入浅出聊聊点云边界提取中那个神秘的α参数该怎么选 想象一下,你站在一片考古遗址前,手中握着一堆散落的陶器碎片点云数据。传统的凸包算法给你的结果像是一个把所有碎片硬塞进去的塑料袋——边缘僵硬,完全…...

周红伟:国家电网2025年预计收入4.1万亿,牛不牛?世界上最牛的公司

2021年,国家电网收入2.95万亿,净利润503亿。2022年,国家电网收入3.57万亿,净利润590亿。2023年,国家电网收入3.86万亿,净利润697亿。2024年,国家电网收入3.94万亿,净利润773亿。2025…...

Unity新手避坑指南:用C#脚本搞定游戏UI的开关、切换与状态管理

Unity游戏UI状态管理实战:从基础到优雅设计 第一次在Unity中构建游戏菜单时,我盯着满屏的if-else语句陷入了沉思——为什么简单的按钮切换会让代码变得如此混乱?当"关于"面板打开时,"开始游戏"按钮需要变成&q…...

深圳优峰技术LWDM滤光片测试系统:破解“窄带、多通道”量产难题的终极方案

在光通信器件的精密制造领域,LWDM(局域网波分复用)滤光片因其极窄的通道间隔(通常为100GHz或200GHz)和陡峭的边缘特性,被誉为薄膜滤波器(TFF)工艺皇冠上的明珠。然而,对于…...

微信小程序蓝牙开发实战:从“连接失败”到稳定通信的避坑指南

1. 微信小程序蓝牙开发入门必知 第一次接触微信小程序的蓝牙开发时,我完全低估了它的复杂性。本以为和网页开发一样简单,结果在实际项目中踩了不少坑。微信小程序的蓝牙API虽然封装得不错,但不同手机厂商、不同系统版本的表现差异巨大&#x…...

别再傻傻分不清了!一文看懂CPCI和VPX总线:从工业电脑到军用加固,选型避坑指南

CPCI与VPX总线深度解析:工业与军用场景下的选型策略 在工业自动化和国防科技领域,背板总线技术如同计算机系统的"神经系统",决定了数据流通的效率和可靠性。CPCI与VPX作为两大主流标准,常让工程师陷入选择困境——去年某…...

影刀流程复用避坑指南:搞懂topicUuid和package.json,告别流程冲突

影刀流程复用深度解析:从冲突根源到高效实践 影刀自动化工具在企业级RPA场景中的应用越来越广泛,而流程复用作为提升开发效率的核心手段,却常常因为对底层机制理解不足而导致各种"诡异"问题。本文将从工程实践角度,彻底…...

KUKA KRC4柜子‘扩容’指南:从WorkVisual配置看如何为机器人增加第9个轴

KUKA KRC4控制柜轴扩展实战:突破8轴限制的硬件配置与WorkVisual优化策略 在工业机器人系统集成领域,KUKA KRC4控制柜作为主流控制器,其标准配置通常支持最多8个轴的驱动。然而,随着产线复杂度提升和工艺需求多样化,9轴…...

UE5 Lyra UI框架解析:从策略到容器的动态资产管理

1. Lyra UI框架的核心设计哲学 第一次打开Lyra示例项目时,最让我惊讶的是它的UI系统竟然能优雅处理这么多复杂场景:玩家突然加入时的HUD加载、菜单界面的无缝切换、甚至不同游戏模式下的动态布局变化。这背后其实是Epic精心设计的策略-容器-资产三层架构…...

Go语言的syscall包与操作系统原生API在系统编程中的直接调用

Go语言作为一门现代编程语言,凭借其简洁的语法和高效的并发模型广受开发者喜爱。在系统编程领域,有时需要绕过标准库,直接调用操作系统原生API以实现更底层的控制。Go语言的syscall包正是为此而生,它提供了与操作系统交互的底层接…...

从零复现GitHub热门项目Deformable-DETR:一份面向科研新手的避坑指南

1. 环境准备:从零搭建深度学习工作站 第一次接触Deformable-DETR这类前沿目标检测项目时,最让人头疼的就是环境配置。我去年帮实验室三位本科生配置环境时,发现90%的报错都源于基础环境没搭好。先说硬件,虽然官方说GPU显存6GB就能…...

Rust的async函数优化策略

Rust的async函数优化策略 Rust的异步编程模型凭借其高效性和安全性,已成为现代系统开发的重要工具。async函数的性能优化仍是一个复杂而关键的话题。本文将深入探讨Rust中async函数的优化策略,帮助开发者充分利用其潜力,提升程序执行效率。 …...

别再为视频格式发愁了!Python OpenCV cv2.VideoWriter() 保姆级教程,从摄像头录制到文件保存一次搞定

Python OpenCV视频保存终极指南:从摄像头录制到文件输出的完整解决方案 每次用OpenCV保存视频时,是不是总遇到各种莫名其妙的错误?视频打不开、编码器不支持、分辨率对不上...这些问题困扰过几乎所有刚开始接触计算机视觉的开发者。今天我们就…...

ROS Kinetic/Melodic用户看过来:用Conda虚拟环境完美兼容Python2.7的ROS包和Python3的AI工具

ROS与Python3协同开发:用Conda虚拟环境构建高效混合工作流 当机器人操作系统(ROS)遇上现代AI工具链,版本冲突就成了开发者最头疼的问题。上周我调试一个需要同时调用ROS导航包和PyTorch模型的机器人项目时,系统崩溃了三次——直到在Conda中构…...

FreeRTOS二值信号量实战:如何用STM32串口中断实现任务同步(附完整代码)

FreeRTOS二值信号量在STM32串口通信中的实战应用 1. 嵌入式系统中的任务同步挑战 在嵌入式实时操作系统中,任务间的有效通信和同步是系统设计的关键。想象一个典型的工业控制场景:传感器数据通过串口源源不断地传入,主控芯片需要实时处理这些…...

深入探索AMD Ryzen处理器:SMUDebugTool架构解析与实战应用

深入探索AMD Ryzen处理器:SMUDebugTool架构解析与实战应用 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…...

避坑指南:华为设备GRE over IPSec配置中,ACL规则写错导致隧道不通的排查全过程

华为设备GRE over IPSec配置实战:ACL规则配置错误导致隧道不通的深度排查指南 当你第一次配置GRE over IPSec隧道时,最令人沮丧的莫过于所有配置看起来都正确,但隧道就是无法建立。上周我就遇到了这样一个案例——一位工程师在配置华为AR2220…...

LayerDivider:3分钟将单张插画转换为分层PSD的智能解决方案

LayerDivider:3分钟将单张插画转换为分层PSD的智能解决方案 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 你是否曾花费数小时手动分离插画图…...

猫抓插件终极指南:三步轻松下载网页所有视频音频资源

猫抓插件终极指南:三步轻松下载网页所有视频音频资源 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓插件是一款功能强大的浏览器资…...

如何构建终极家庭游戏串流服务器:Sunshine完整指南

如何构建终极家庭游戏串流服务器:Sunshine完整指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine是一款强大的自托管游戏串流服务器,专为Moonlig…...

STM32F407与K210(K230)串口通信实战:如何设计一个可靠的命令-响应协议?

STM32F407与K210(K230)串口通信实战:工业级命令-响应协议设计指南 在智能硬件开发中,串口通信就像设备间的"普通话"——简单直接,但要让两个不同架构的芯片(如STM32F407和K210)实现可…...

Balena Etcher:革命性镜像烧录工具的一站式解决方案

Balena Etcher:革命性镜像烧录工具的一站式解决方案 【免费下载链接】etcher Flash OS images to SD cards & USB drives, safely and easily. 项目地址: https://gitcode.com/GitHub_Trending/et/etcher 你是否曾经因为一个简单的系统镜像烧录任务而陷入…...

从零构建中文NL2SQL数据集:基于GRPO强化学习微调Qwen3-8B,解锁300行复杂SQL生成

1. 中文NL2SQL数据集构建方法论 要让AI模型真正理解中文自然语言并生成准确的SQL查询,数据集的构建是基础中的基础。我花了三个月时间专门研究如何构建高质量的中文NL2SQL数据集,最终总结出一套可复用的方法论。 数据来源的选择直接影响数据集质量。我建…...

保姆级教程:手把手教你为小智AI Pro更换专属唤醒词和背景图(ESP32-S3实战)

保姆级教程:手把手教你为小智AI Pro更换专属唤醒词和背景图(ESP32-S3实战) 刚拿到小智AI Pro开发板时,最让人兴奋的莫过于能打造属于自己的智能语音助手。想象一下,当你说出"嘿,贾维斯"就能唤醒…...