linux-Firewalld使用指南

news2024/11/14 14:04:05

本指南提供了 Firewalld 的核心功能和使用方法涵盖其核心概念、使用方法以及高级技巧。  更高级的功能和更复杂的配置需要参考官方文档和更深入的学习。

1. Firewalld 简介

Firewalld 不是一个独立的防火墙软件,而是 Linux 内核 Netfilter/iptables 系统的一个前端管理工具。它提供了一个更用户友好的界面来管理防火墙规则,简化了直接使用 iptables 的复杂性。Firewalld 支持动态更新,修改规则无需重启服务,并引入了“区域”和“服务”的概念,方便快速切换不同场景的策略和设置服务规则。

2. Firewalld 的安装与管理

Firewalld 通常预装在许多现代 Linux 发行版中(例如 CentOS 7+ 和 Fedora 18+)。可以使用以下命令进行安装和管理:

  • 安装:
sudo yum install firewalld firewall-config firewall-applet  # firewall-config 和 firewall-applet 提供图形界面

  • 启动和启用:
sudo systemctl start firewalld
sudo systemctl enable firewalld

  • 状态检查:
sudo systemctl status firewalld

3. Firewalld 区域 (Zones)

Firewalld 使用“区域”的概念来定义不同的安全策略。每个区域代表一个网络环境,并具有预定义的规则集,控制进出该区域的网络流量。默认区域为 public,其他常用区域包括:

区域名称描述默认策略
public公共区域,不信任外部网络,仅允许选定的入站连接。drop
drop最低信任级别,所有入站连接都被丢弃。drop
blockdrop 类似,但会返回 ICMP 错误消息。drop
external通常用于启用 NAT 伪装的外部网络,不信任外部网络,仅允许选定的入站连接。drop
internal内部网络,信任内部网络中的其他计算机,仅允许选定的入站连接。accept
home家庭网络,信任家庭网络中的其他计算机,仅允许选定的入站连接。accept
work工作网络,信任工作网络中的其他计算机,仅允许选定的入站连接。accept
dmz隔离区,允许有限的外部访问。drop
trusted最高信任级别,允许所有网络连接。accept

4.  查看区域信息:

可以使用 firewall-cmd 命令查看区域信息:

  • 查看默认区域:
firewall-cmd --get-default-zone

  • 查看所有区域:
firewall-cmd --get-zones

  • 查看特定区域的详细信息:
firewall-cmd --info-zone=public -v

  • 查看已允许的服务:
firewall-cmd --list-services

  • 查看已允许的端口:
firewall-cmd --list-ports

5.  添加和修改区域:

  • 创建新的区域:
sudo firewall-cmd --permanent --new-zone=myzone

  • 设置默认区域:
sudo firewall-cmd --permanent --set-default-zone=myzone
sudo firewall-cmd --reload  # 重新加载配置

  • 添加服务到区域:
sudo firewall-cmd --permanent --zone=myzone --add-service=http
sudo firewall-cmd --reload

  • 添加端口到区域:
sudo firewall-cmd --permanent --zone=myzone --add-port=8080/tcp
sudo firewall-cmd --reload

  • 移除服务或端口:  使用 --remove-service--remove-port 命令,语法与添加类似。

6.  服务 (Services)

Firewalld 使用“服务”的概念来表示特定的网络服务(例如 HTTP, SSH, DNS)。每个服务都有一个预定义的端口和协议。可以使用 firewall-cmd --get-services 命令查看所有可用的服务。

7.  添加自定义服务:

自定义服务需要创建 XML 文件,通常放在 /etc/firewalld/services 目录下。  一个简单的例子:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>myservice</short>
  <description>My custom service</description>
  <port protocol="tcp" port="1234"/>
</service>

创建文件后,需要重新加载 Firewalld 配置才能生效。

8.  临时规则:

可以使用 --timeout 选项设置临时规则,例如:

sudo firewall-cmd --add-port=22/tcp --timeout=300  # 临时开放端口 22,持续 5 分钟

9.  高级功能:

  • rich rules:  允许创建更复杂的规则,例如基于源 IP 地址、目标 IP 地址、端口、协议等条件进行过滤。

  • Masquerading:  用于实现 NAT 伪装,将内部网络的 IP 地址转换为外部网络的 IP 地址。

  • Forwarding:  允许转发数据包到其他网络。

10. 常用命令总结:

命令功能
firewall-cmd --help显示帮助信息
firewall-cmd --version显示版本信息
firewall-cmd --reload重新加载配置
firewall-cmd --list-all列出所有区域的详细信息
firewall-cmd --get-zones列出所有区域
firewall-cmd --get-services列出所有已注册的服务

11.  安全注意事项:

  • 谨慎修改防火墙规则,错误的配置可能导致网络中断。

  • 在生产环境中测试规则,避免意外情况。

  • 定期备份配置。

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

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

相关文章

在IntelliJ IDEA中创建带子模块的SpringBoot工程

前言 在项目开发中&#xff0c;一个工程往往有若干子工程或模块&#xff0c;所以主工程一般是一个容器&#xff0c;本文介绍在IntelliJ IDEA中创建带多模块的SpringBoot工程的详细步骤。 1、首先打开IntellJ IDEA&#xff08;以下简称IDEA&#xff09;,创建一个新项目。假定新…

深入剖析输入URL按下回车,浏览器做了什么

DNS 查询 首先,是去寻找页面资源的位置。如果导航到https://example.com, 假设HTML页面被定位到IP地址为93.184.216.34 的服务器。如果以前没有访问过这个网站&#xff0c;就需要进行DNS查询。 浏览器向域名服务器发起DNS查询请求&#xff0c;最终得到一个IP地址。第一次请求…

提升百度排名的有效策略与技巧解析

内容概要 提升百度排名对于网站的成功至关重要。首先&#xff0c;了解百度排名的基本原则&#xff0c;掌握搜索引擎是如何评估网页质量的&#xff0c;是优化过程中不可或缺的一部分。搜索引擎越来越倾向于将用户需求放在首位&#xff0c;因此提供高质量的内容和良好的用户体验…

【GPTs】MJ Prompt Creator:轻松生成创意Midjourney提示词

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 &#x1f4af;GPTs指令&#x1f4af;前言&#x1f4af;MJ Prompt Creator主要功能适用场景优点缺点 &#x1f4af; 小结 &#x1f4af;GPTs指令 中文翻译&#xff1a; 任务说明 您是一款为幻灯片工…

机器人领域顶刊TRO十月最新论文一览,覆盖状态估计、任务分配、人机协作等多个领域

No.1 基于可见性的近似追逃方法 论文标题&#xff1a;Approximate Methods for Visibility-Based Pursuit–Evasion 中文标题&#xff1a;基于可见性的近似追逃方法 作者&#xff1a;Emmanuel Antonio; Israel Becerra; Rafael Murrieta-Cid 本文提出了一种基于采样的动态规…

解决编译 fast-lio-lc 算法时遇到的error方法

1.创建工作空间和下载 fast-lio-lc功能包 mkdir -p fast_lio_lc_ws/src cd fast_lio_lc_ws/src/ catkin_init_workspace git clone https://github.com/yanliang-wang/FAST_LIO_LC.git2.进入工作空间,编译 编译 fast-lio-lc遇到的error: 🕐error: fatal error: opencv/cv…

【Qt】Macbook M1下载安装

文章目录 一、下载Xcode命令行工具二、在Cion中配置编译器三、安装Qt四、配置qmake环境五、创建Qt项目 博主已经下载了Clion&#xff0c;所以本文是将qt配置到Clion上 本博客所写的教程有一定的问题&#xff0c;因为我在官网下载后发现有一些所需的包是没有的&#xff0c;不知道…

Python+Pytest+Allure+Git+Jenkins接口自动化框架

一、接口基础 接口测试是对系统和组件之间的接口进行测试&#xff0c;主要是效验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及相互逻辑依赖关系。其中接口协议分为HTTP&#xff0c;RPC&#xff0c;Webservice&#xff0c;Dubbo&#xff0c;RESTful等类型。 接口…

Docker:镜像构建 DockerFile

Docker&#xff1a;镜像构建 DockerFile 镜像构建docker build DockerfileFROMCOPYENVWORKDIRADDRUNCMDENTRYPOINTUSERARGVOLUME 镜像构建 在Docker官方提供的镜像中&#xff0c;大部分都是基础镜像&#xff0c;他们只提供某个简单的功能&#xff0c;如果想要一个功能更加丰富…

《JavaEE进阶》----20.<基于Spring图书管理系统①(登录+添加图书)>

PS&#xff1a;关于接口定义 接口定义&#xff0c;通常由服务器提供方来定义。 1.路径&#xff1a;自己定义 2.参数&#xff1a;根据需求考虑&#xff0c;我们这个接口功能完成需要哪些信息。 3.返回结果&#xff1a;考虑我们能为对方提供什么。站在对方角度考虑。 我们使用到的…

【JavaEE】文件io

目录 文件类型 File概述 属性 构造方法 常用方法 Reader Writer InputStream OutputStream 字节流转字符流 通过Scanner读取InputStream 通过PrintWriter转换outputstream 示例 文件类型 从编程的角度看&#xff0c;文件类型主要就是两大类 文本&#xff08;文…

D3入门:概念、主要特点、基本功能、常见应用场景

D3.js&#xff08;Data-Driven Documents&#xff09;是一个JavaScript库&#xff0c;用于基于数据操作文档。它利用了HTML、SVG和CSS等Web标准技术&#xff0c;使得开发者可以创建丰富的交互式图表和数据可视化。D3.js的强大之处在于其灵活的数据绑定机制和对DOM元素的高效操作…

go函数传值是值传递?还是引用传递?slice案例加图解

先说下结论 Go语言中所有的传参都是值传递&#xff08;传值&#xff09;&#xff0c;都是一个副本&#xff0c;一个拷贝。 值语义类型&#xff1a;参数传递的时候&#xff0c;就是值拷贝&#xff0c;这样就在函数中就无法修改原内容数据。 基本类型&#xff1a;byte、int、bool…

tensorflow案例5--基于改进VGG16模型的马铃薯识别,准确率提升0.6%,计算量降低78.07%

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 本次采用VGG16模型进行预测&#xff0c;准确率达到了98.875&#xff0c;但是修改VGG16网络结构&#xff0c; 准确率达到了0.9969&#xff0c;并且计算量…

攻防世界38-FlatScience-CTFWeb

攻防世界38-FlatScience-Web 点开这个here看到一堆pdf,感觉没用&#xff0c;扫描一下 试试弱口令先 源码里有&#xff1a; 好吧0.0 试试存不存在sql注入 根本没回显&#xff0c;转战login.php先 输入1’,发现sql注入 看到提示 访问后得源码 <?php ob_start(); ?>…

数据分析-44-时间序列预测之深度学习方法TCN

文章目录 1 TCN简介1.1 网络示意图1.2 TCN优点2 模拟应用2.1 模拟数据2.2 预处理创建滞后特征2.3 划分训练集和测试集2.4 创建TCN模型2.5 模型训练2.6 模型预测3 自定义my_TCN模型3.1 my_TCN()函数3.2 训练模型3.3 模型预测3.4 改进4 参考附录1 TCN简介 时间卷积网络(TCN)是…

C++【STL容器系列(二)】vector的模拟实现

文章目录 1. vector的结构2. vector的默认成员函数2.1构造函数2.1.1 默认构造2.1.2 迭代器构造2.1.3 用n个val初始化构造 2.2 拷贝构造2.3 析构函数2.4 operator 3. vector iterator函数3.1 begin 和 cbegin函数3.2 end() 和 cend()函数 4. vector的小函数4.1 size函数4.2 capa…

【linux】网络基础 ---- 应用层

1. 再谈 "协议" 协议是一种 "约定"&#xff0c;在读写数据时, 都是按 "字符串" 的方式来发送接收的. 但是这里我们会遇到一些问题&#xff1a; 如何确保从网上读取的数据是否是完整的&#xff0c;区分缓冲区中的由不同客户端发来的数据 2. 网…

C语言PythonBash:空白(空格、水平制表符、换行符)与转义字符

C语言 空白 C语言中的空白&#xff08;空格、水平制表符、换行符&#xff09;被用于分隔Token&#xff0c;因此Token间可以有任意多个空白。 // 例1 printf("Hello, World!"); 例1中存在5个Token&#xff0c;分别是&#xff1a; printf("Hello, World! \n&qu…

Linux基础(十四)——BASH

BASH 1.BASH定义2.shell的种类3.bash的功能3.1 命令记录功能3.2 命令补全功能3.3 命令别名设置3.4 工作控制、 前景背景控制3.5 程序化脚本&#xff1a; &#xff08; shell scripts&#xff09;3.6 万用字符 4.bash的内置命令5.shell的变量功能5.1 变量的取用5.2 新建变量5.3 …