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

Linux 防火墙配置指南:firewalld 端口管理应用案例(二十个实列)

   

🏡作者主页:点击! 

🐧Linux基础知识(初学):点击!

🐧🐧Linux高级管理专栏:点击!

🔐Linux中firewalld防火墙点击!

⏰️创作时间:2024年7月5日9点11分

🀄️文章质量:95分

​​


目录

案例1: 开放单个端口

案例2: 开放端口范围

案例3: 开放UDP端口

案例4: 关闭特定端口

案例5: 查询特定端口是否开放

案例6: 列出所有开放的端口

案例7: 开放多个端口

案例8: 在特定区域开放端口

案例9: 临时开放端口(重启后失效)

案例10: 将端口转发到另一个IP

案例11: 在特定区域临时开放端口

案例12: 拒绝所有入站连接

案例13: 添加特定服务的规则

案例14: 移除特定服务的规则

案例15: 设置默认区域

案例16: 列出特定区域中的所有端口

案例17: 将网络接口分配到特定区域

案例18: 永久封禁某个IP地址

案例19: 允许特定IP地址的所有流量

案例20: 在特定区域启用端口转发

总结


前言

在本指南中,我们将通过十个实际案例,详细介绍如何使用 firewalld 管理和配置系统端口。无论您是刚开始学习 Linux 防火墙配置,还是希望深入了解 firewalld 的高级功能,这些案例都将为您提供实用的指导和参考。让我们一起探索如何确保系统安全并优化网络访问吧!

案例1: 开放单个端口

如果需要开放一个特定的端口,例如 8080 端口,可以使用以下命令:

firewall-cmd --permanent --add-port=8080/tcp
 

案例2: 开放端口范围

要开放一系列端口,例如从 5000 到 5500 端口,可以使用以下命令:

firewall-cmd --permanent --add-port=5000-5500/tcp
 

案例3: 开放UDP端口

如果需要开放一个 UDP 端口,例如 123 端口,可以使用以下命令:

firewall-cmd --permanent --add-port=123/udp
 

案例4: 关闭特定端口

如果需要关闭一个已经开放的端口,例如 8080 端口,可以使用以下命令:

firewall-cmd --permanent --remove-port=8080/tcp
 

案例5: 查询特定端口是否开放

要查询某个端口是否已经开放,例如 80 端口,可以使用以下命令:

firewall-cmd --query-port=80/tcp
 

案例6: 列出所有开放的端口

如果需要查看系统中所有已经开放的端口,可以使用以下命令:

firewall-cmd --list-ports
 

案例7: 开放多个端口

可以一次性开放多个端口,例如 3000、4000 和 5000 端口,可以使用以下命令:

firewall-cmd --permanent --add-port={3000/tcp,4000/tcp,5000/tcp}
 

案例8: 在特定区域开放端口

如果需要在特定区域(例如 public 区域)开放一个端口,例如 8888 端口,可以使用以下命令:

firewall-cmd --zone=public --permanent --add-port=8888/tcp
 

案例9: 临时开放端口(重启后失效)

如果只需要临时开放一个端口,例如 9999 端口,可以使用以下命令:

firewall-cmd --add-port=9999/tcp
 

案例10: 将端口转发到另一个IP

如果需要将一个端口的流量转发到另一个 IP 地址,例如将 80 端口的流量转发到 192.168.1.100 的 8080 端口,可以使用以下命令:

firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.100
 

案例11: 在特定区域临时开放端口

如果您希望在特定区域临时开放一个端口,可以使用以下命令。此更改将在系统重启后失效:

firewall-cmd --zone=public --add-port=7070/tcp
 

案例12: 拒绝所有入站连接

为了提高系统安全性,有时需要拒绝所有入站连接。可以使用以下命令来完成此操作:

firewall-cmd --panic-on

要取消此设置并恢复正常操作,请使用:

firewall-cmd --panic-off
 

案例13: 添加特定服务的规则

Firewalld 支持通过服务名来添加规则。例如,如果您希望开放 HTTP 服务,可以使用以下命令:

firewall-cmd --permanent --add-service=http
 

案例14: 移除特定服务的规则

如果您不再需要某个服务的规则,可以将其移除。例如,要移除 HTTP 服务的规则:

firewall-cmd --permanent --remove-service=http
 

案例15: 设置默认区域

默认区域是当接口未绑定到特定区域时所使用的区域。您可以通过以下命令设置默认区域为 public:

firewall-cmd --set-default-zone=public

案例16: 列出特定区域中的所有端口

要查看某个区域中所有开放的端口,可以使用以下命令。例如,列出 public 区域中的所有端口:

firewall-cmd --zone=public --list-ports
 

案例17: 将网络接口分配到特定区域

为了更好地管理网络流量,可以将特定的网络接口分配到指定区域。例如,将 eth0 接口分配到 public 区域:

firewall-cmd --zone=public --change-interface=eth0
 

案例18: 永久封禁某个IP地址

如果需要永久封禁来自某个 IP 地址的所有流量,可以使用以下命令:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
 

案例19: 允许特定IP地址的所有流量

相反,如果需要允许来自某个 IP 地址的所有流量,可以使用以下命令:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'
 

案例20: 在特定区域启用端口转发

在某些情况下,您可能需要在特定区域内启用端口转发。例如,在 public 区域启用端口 8080 到 80 的转发:

firewall-cmd --zone=public --permanent --add-forward-port=port=80:proto=tcp:toport=8080
 

请记住,每次修改防火墙规则后,都需要重新加载防火墙配置以使更改生效:

firewall-cmd --reload
通过以上这些实例,您可以更加灵活地使用 firewalld 管理和配置系统端口,确保系统的安全性和网络的高效访问。

总结

这些例子涵盖了常见的服务器角色和应用场景。在实际操作中,我们还需要根据具体的网络拓扑、安全策略和应用需求来精细调整防火墙规则。例如,可能需要限制特定IP地址或网段的访问,设置端口转发,或者配置更复杂的富规则等。

此外,作为一个经验丰富的Linux运维工程师,我还建议定期审核防火墙规则,移除不再需要的规则,并使用如firewall-cmd --list-all这样的命令来检查当前的防火墙配置,确保系统安全性和性能的平衡。

相关文章:

Linux 防火墙配置指南:firewalld 端口管理应用案例(二十个实列)

🏡作者主页:点击! 🐧Linux基础知识(初学):点击! 🐧🐧Linux高级管理专栏:点击! 🔐Linux中firewalld防火墙:点击! ⏰️…...

推荐Bulk Image Downloader插件下载网页中图片链接很好用

推荐:Bulk Image Downloader chome浏览器插件下载图片链接,很好用。 有个网页,上面放了数千的gif的电路图,手工下载会累瘫了不可。想找一个工具分析它的静态链接并下载,找了很多推荐的下载工具,都是不能分…...

详解前缀码与前缀编码

前缀编码是一种数据压缩技术,也被称为可变长度编码。它的基本原理是将频繁出现的字符或字符序列用较短的编码表示,而较少出现的字符或字符序列用较长的编码表示,从而达到压缩数据的目的。 概念定义 前缀码:给定一个编码序列的集合…...

数据库管理工具 -- Navicat Premium v17.0.8 特别版

软件简介 Navicat Premium 是一款功能强大的数据库管理工具,适用于Windows、Mac和Linux平台。它支持多种数据库,包括MySQL、MariaDB、SQL Server、PostgreSQL、Oracle、SQLite等。用户可以通过Navicat Premium轻松地连接到各种数据库服务器,…...

【Linux】进程创建和终止 | slab分配器

进程创建 fork 1.fork 之后发生了什么 将给子进程分配新的内存块和内核数据结构(形成了新的页表映射)将父进程部分数据结构内容拷贝至子进程添加子进程到系统进程列表当中fork 返回,开始调度器调度 这样就可以回答之前返回两个值&#xff1f…...

计算机网络--网络层

一、网络层的服务和功能 网络层主要为应用层提供端对端的数据传输服务 网络层接受运输层的报文段,添加自己的首部,形成网络层分组。分组是网络层的传输单元。网络层分组在各个站点的网络层之间传输,最终到达接收方的网络层。接收方网络层将运…...

【CSS】如何实现分栏布局

在CSS分栏布局中,设置宽度和样式是一个基本且重要的步骤。这可以通过直接应用样式到列元素(通常是div元素)上来实现。以下是一些常用的方法来设置分栏布局的宽度和样式: 1. 使用百分比宽度 使用百分比宽度可以使列的大小相对于其…...

2025湖北武汉智慧教育装备信息化展/智慧校园展/湖北高博会

2025武汉教育装备展,2025武汉智慧教育展,2025武汉智慧校园展,2025武汉教育信息化展,2025武汉智慧教室展,湖北智慧校园展,湖北智慧教室展,武汉教学设备展,湖北高教会,湖北高博会 2025湖北武汉智慧教育装备信息化展/智慧校园展/湖北高博会 2025第10届武汉国际教育装备及智慧校园…...

Android Studio Run窗口中文乱码解决办法

Android Studio Run窗口中文乱码解决办法 问题描述: AndroidStudio 编译项目时Run窗口中文乱码,如图: 解决方法: 依次打开菜单:Help--Edit Custom VM Options,打开studio64.exe.vmoptions编辑框&#xf…...

代码随想录——划分字母区间(Leetcode763)

题目链接 贪心 class Solution {public List<Integer> partitionLabels(String s) {int[] count new int[27];Arrays.fill(count,0);// 统计元素最后一次出现的位置for(int i 0; i < s.length(); i){count[s.charAt(i) - a] i;}List<Integer> res new Ar…...

SQL注入方法

文章目录 前言如何测试与利用注入点手工注入思路工具sqlmap-r-u-m--level--risk-v-p--threads-batch-smart--os-shell--mobiletamper插件获取数据的相关参数 前言 记录一些注入思路和经常使用的工具&#xff0c;后续有用到新的工具和总结新的方法再继续补充。 如何测试与利用注…...

Vue表单输入绑定v-model

表单输入绑定 在前端处理表单时&#xff0c;我们常常需要将表单输入框的内容同步给Javascript中相应的变量。手动连接绑定和更改事件监听器可能会很麻&#xff0c;v-model 指令帮我们简化了这一步骤。 <template><h3>表单输入绑定</h3><hr> <inpu…...

【分布式系统】ELK 企业级日志分析系统

目录 一.ELK概述 1.简介 1.1.可以添加的其他组件 1.2.filebeat 结合 logstash 带来好处 2.为什么使用ELK 3.完整日志系统基本特征 4.工作原理 二.部署ELK日志分析系统 1.初始化环境 2.完成JAVA部署 三. ELK Elasticsearch 集群部署 1.安装 2.修改配置文件 3.es 性…...

vs2019 无法打开项目文件

vs2019 无法打开项目文件&#xff0c;无法找到 .NET SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配 原因&#xff1a;缺少组件 解决方案&#xff1a;选择需要的组件进行安装完成...

Elasticsearch:Painless scripting 语言(一)

Painless 是一种高性能、安全的脚本语言&#xff0c;专为 Elasticsearch 设计。你可以使用 Painless 在 Elasticsearch 支持脚本的任何地方安全地编写内联和存储脚本。 Painless 提供众多功能&#xff0c;这些功能围绕以下核心原则&#xff1a; 安全性&#xff1a;确保集群的…...

SpringBoot项目练习

文章目录 SpringBootVue后台管理系统所需软件下载、安装、版本查询Vue搭建一个简单的Vue项目 Spring项目1项目架构 SpringBootVue后台管理系统 学习视频&#xff1a; https://www.bilibili.com/video/BV1U44y1W77D/?spm_id_from333.337.search-card.all.click&vd_sourcec…...

Android Gradle 开发与应用 (七): Gradle 插件开发与发布

目录 一、概述 二、Gradle插件的基础知识 2.1 Gradle插件的定义 2.2 Gradle插件的种类 2.3 Gradle插件的生命周期 三、开发一个Gradle插件 3.1 创建Gradle插件项目 3.2 编写插件实现 3.3 配置插件元数据 3.4 构建和测试插件 3.5 在项目中应用插件 四、发布Gradle插…...

方法引用详解

什么是方法引用&#xff1f;&#xff1a;针对于函数式接口中的抽象方法 为什么用方法引用&#xff1f;&#xff1a;避免代码的重复&#xff0c;简便书写&#xff0c;提高效率 在使用Lambda表达式的时候&#xff0c;我们实际上传递进去的代码就是一种解决方案&#xff1a;拿参数…...

Apache Seata 高可用部署实践

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 Apache Seata 高可用部署实践 Seata 高可用部署实践 使用配置中心和数据库来实现 Seata 的高…...

nginx配置尝试

from fastapi import FastAPI, File, UploadFile, HTTPException from fastapi.responses import JSONResponse, FileResponse, HTMLResponse import logging import os from datetime import datetime import uvicorn# 初始化日志 logging.basicConfig(filenamefile_server.lo…...

UE5 BaseEditorSettings.ini加载原理与配置生效机制

1. 为什么你改了BaseEditorSettings.ini却没生效&#xff1f;——从UE5编辑器启动流程讲起很多人在UE5项目里折腾半天&#xff0c;把BaseEditorSettings.ini文件翻来覆去改了十几遍&#xff0c;重启编辑器后发现&#xff1a;缩放比例还是不对、网格间距没变、甚至“启用实时预览…...

Claude本地化部署终极方案(企业级容器化全栈手册):支持Anthropic API兼容、流式响应、模型热切换与RBAC权限隔离

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Claude本地化部署的架构全景与企业级价值定位 Claude本地化部署并非简单地将模型权重下载后运行&#xff0c;而是一套融合推理引擎优化、安全沙箱隔离、API网关治理与可观测性集成的端到端架构体系。其核心目…...

3步解锁专业级MMD创作:Blender插件如何重塑二次元动画工作流

3步解锁专业级MMD创作&#xff1a;Blender插件如何重塑二次元动画工作流 【免费下载链接】blender_mmd_tools MMD Tools is a blender addon for importing/exporting Models and Motions of MikuMikuDance. 项目地址: https://gitcode.com/gh_mirrors/bl/blender_mmd_tools …...

千亿镁合金产业集群正在成形:成都、抚州、池州的新版图

一个新赛道的地理坐标 如果要在中国地图上标注一条正在成形的新兴产业集群走廊&#xff0c;高强镁合金这条线&#xff0c;值得被认真画出来。 成都龙泉驿——江西抚州临川——安徽池州高新区&#xff0c;三个坐标&#xff0c;三条生产线&#xff0c;一家公司&#xff0c;两年内…...

武汉国电华美16875kVA串联谐振试验装置,这手活儿细

在超高压变电站和长距离电缆的现场&#xff0c;交流耐压试验是检验设备绝缘的“最后一关”。这位老师傅经手过不少大工程&#xff0c;他说&#xff0c;面对GIS、大型变压器这些“大块头”电容性试品&#xff0c;能不能顺利“过关”&#xff0c;往往就看串联谐振装置顶不顶得住。…...

【数据结构与算法】数据结构基础——栈和队列

目录栈和队列1. 栈1.1 栈的概念1.2 栈的实现方式分析1.3 栈的实现1.3.1 栈的初始化与销毁1.3.2 入栈与出栈1.3.3 栈的判空与有效元素个数1.3.4 栈顶元素1.4 栈的扩展1.4.1 两栈共享空间2. 队列2.1 队列的概念2.2 队列的实现方式分析2.3 队列的实现2.3.1 队列的初始化与销毁2.3.…...

Cesium动态数据可视化实战:CallbackProperty结合setInterval打造实时运动轨迹

Cesium动态数据可视化实战&#xff1a;CallbackProperty结合setInterval打造实时运动轨迹 在三维地理信息系统中&#xff0c;实时数据可视化一直是开发者面临的挑战之一。想象一下&#xff0c;当我们需要在地球表面追踪一架正在飞行的无人机&#xff0c;或者监控城市中数百辆出…...

从无线破解到PDF解密:盘点那些容易被忽略的‘非主流’密码审计场景与工具

密码安全审计的隐秘战场&#xff1a;从无线网络到加密文档的实战指南 当大多数人谈论密码安全时&#xff0c;脑海中浮现的往往是服务器登录、数据库访问这些企业级场景。然而在数字生活的每个角落&#xff0c;从家庭Wi-Fi到工作文档&#xff0c;密码保护的脆弱性同样可能成为安…...

从配置到运行时:Forge Admin 的动态 API 配置管理是怎么做的

问题&#xff1a;同一个接口&#xff0c;今天要加认证、明天要加加密、后天要限流&#xff0c;这些行为散落在拦截器、过滤器、注解里&#xff0c;改一次牵一发动全身&#xff0c;怎么集中管理和动态刷新&#xff1f; 1. 这个问题在企业后台里为什么常见 在企业后台开发中&am…...

Charles弱网测试六维参数实战:从丢包率到DNS延迟的精准复现

1. 为什么弱网测试不能只靠“模拟3G”按钮点一下就完事做移动端或Web前端的同学&#xff0c;大概率都听过这句话&#xff1a;“上线前跑一遍Charles&#xff0c;切个2G网络测下加载。”——听起来很专业&#xff0c;实际一查日志&#xff0c;发现90%的团队连Charles的Throttlin…...