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

Linux - firewall

使用 firewall-cmd 管理 Linux 防火墙的实用指南

在 Linux 系统中,尤其是基于 Red Hat 的发行版(如 CentOS、Fedora、RHEL),firewalld 是默认的动态防火墙管理工具。它通过 firewall-cmd 命令提供了一个灵活的方式来管理网络规则和端口访问控制。

本文将介绍如何使用 firewall-cmd 来查看和配置防火墙规则,并结合 MongoDB 和 SSH 服务进行示例说明。


🧾 一、查询当前 SSH 的端口

SSH 服务通常监听 TCP 22 端口,但为了安全考虑,有时我们会修改其默认端口。以下是查询当前 SSH 端口的方法:

# 查看 SSH 配置文件中的 Port 设置
grep ^Port /etc/ssh/sshd_config# 查看实际监听的 SSH 端口
ss -tlnp | grep ssh

🔐 二、放行 SSH 端口(所有 IP 可访问)

如果你希望所有 IP 地址都能通过 SSH 访问服务器,可以添加如下规则:

sudo firewall-cmd --permanent --add-port=22/tcp

✅ 注意:请确保你已确认新的 SSH 端口并测试连接成功后再关闭默认 22 端口。


🎯 三、允许某个 IP 访问特定端口(如 MongoDB 的 27017)

若你想只允许某个特定 IP(例如 10.3.69.6)访问 MongoDB 的 27017 端口,可以使用 rich rule:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.3.69.6" port protocol="tcp" port="27017" accept'

🌐 四、允许某个网段访问特定端口

如果你想让整个子网(如 10.3.69.0/24)都能访问 27017 端口,只需修改源地址为 CIDR 格式:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.3.69.0/24" port protocol="tcp" port="27017" accept'

📦 五、允许某个 IP 访问一段端口范围

如果 MongoDB 实例使用了多个端口(比如 27000-27017),你可以这样设置:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.3.69.6" port protocol="tcp" port="27000-27017" accept'

🗑️ 六、删除某条防火墙规则

当你需要移除某条规则时,可以使用以下命令:

sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="10.3.69.6" port protocol="tcp" port="27017" accept'

⚠️ 注意:必须精确匹配原始规则字符串才能正确删除。


💡 七、重新加载防火墙规则

每次对规则进行修改后,都需要重载防火墙以使更改生效:

sudo firewall-cmd --reload

📋 八、查看当前防火墙规则

要查看当前生效的所有规则,可以使用:

sudo firewall-cmd --list-all

或者只查看 rich rules:

sudo firewall-cmd --list-rich-rules

📝 总结

操作命令
查询 SSH 端口grep ^Port /etc/ssh/sshd_configss -tlnp | grep ssh
放行所有 IP 访问某端口--add-port=<port>/<proto>
放行指定 IP 访问某端口--add-rich-rule='rule ...'
放行指定 IP 访问端口范围port="start-end"
删除规则--remove-rich-rule='...'
重载规则--reload
查看规则--list-all--list-rich-rules

http://www.lqws.cn/news/515899.html

相关文章:

  • 二叉树理论基础
  • python的kivy框架界面布局方法详解
  • 智能手机是人类的寄生物
  • 高通手机跑AI系列之——人脸变化算法
  • 机器学习复习
  • 《MySQL 技术内幕(第5版)》逐章精华笔记第七章
  • 【学习笔记】3.3 Decoder-Only PLM
  • 芯片战争升级:进口马维尔VS自研中兴微,解码格行随身WiFi性能密码,格行随身WIFI到底行不行
  • 《从0到1:C/C++音视频开发自学指南》
  • 大语言模型的通用局限性与全球技术演进
  • 【智能协同云图库】智能协同云图库第二弹:用户管理系统后端设计与接口开发
  • CSS基础3
  • 将Python Tkinter程序转换为手机可运行的Web应用 - 详细教程
  • Nginx + Tomcat 负载均衡搭建
  • 数字孪生技术引领UI前端设计潮流:沉浸式体验的新篇章
  • CVPR-2025 | 上交拥挤无序环境下的具身导航最新基准!RoboSense:以机器人为中心的具身感知与导航大规模数据集
  • POJ3050-Hopscotch(穷竭搜索:DFS)
  • 构造函数和析构函数
  • 基于SSM框架+mysql实现的监考安排管理系统[含源码+数据库+项目开发技术手册]
  • 【iSAQB软件架构】架构模式
  • 微分转动与角速度:三维空间中的矩阵向量形式及其Python实现
  • Fiddler抓包工具与性能调优:如何结合Charles与Wireshark优化网络调试
  • 【机器学习深度学习】常见激活函数
  • AudioTrack使用
  • 网络安全就业方向与现实发展分析:机遇、挑战与未来趋势
  • Three.js项目实战:从零搭建小米SU7三维汽车
  • 《内心强大不怯场》读书笔记5
  • 南宫NG·28(中国)相信品牌力量/Vue 3 中的状态管理 —— 从 Vuex 到 Pinia 的全面过渡
  • NCCN Guidelines Navigator:数智化工具引领肿瘤精准治疗新纪元
  • 运维打铁: 系统内核参数调优实战