Linux:防火墙设置操作
创始人
2025-05-28 13:20:30
0

目录

  • 防火墙介绍
  • zones
  • 预定义服务
  • firewalld启动与停止
  • 查看firewalld当前状态和设置
  • 使⽤ CLI 查看 firewalld 设置
  • firewalld控制流量
    • 使⽤ CLI 禁⽤紧急事件的所有流量
    • 使⽤ CLI 控制预定义服务的流量
  • 使⽤ CLI 控制端⼝
    • 打开端口
    • 关闭端口
  • 使用 firewalld 区
    • 更改特定区的 firewalld 设置
    • 更改默认区
    • 将网络接口分配给区
    • 创建⼀个新区
    • 使⽤区⽬标设定传⼊流量的默认⾏为

防火墙介绍

防⽕墙是保护机器不受来⾃外部的、不需要的⽹络数据的⼀种⽅式。它允许⽤⼾通过定义⼀组防
⽕墙规则来控制主机上的⼊站⽹络流量。这些规则⽤于对进⼊的流量进⾏排序,并可以阻断或允
许流量。

firewalld 是⼀个防⽕墙服务守护进程

firewalld 使⽤区和服务的概念来简化流量管理。
----zones 是预定义的规则集。⽹络接⼝和源可以分配给区。允许的流量取决于您计算机连接到的⽹络,并分配了这个⽹络的安全级别。
----防⽕墙服务是预定义的规则,覆盖了允许特定服务进⼊流量的所有必要设置,并在区中应⽤。
服务使⽤⼀个或多个端⼝或地址进⾏⽹络通信。防⽕墙会根据端⼝过滤通讯。要允许服务的⽹络
流量,必须打开其端⼝。 firewalld 会阻⽌未明确设置为打开的端⼝的所有流量。⼀些区
(如可信区)默认允许所有流量。

在这里插入图片描述

zones

可以根据⽤⼾对该⽹络中的接⼝和流量设置的信任程度,使⽤ firewalld 来将⽹络划分为
不同的区。⼀个连接只能是⼀个区的⼀部分,但⼀个区可以被⽤来进⾏很多⽹络连接。

已经存在的预定义的区存储在 /usr/lib/firewalld/zones/ 文件中

[redhat@bogon ansible]$ ll /usr/lib/firewalld/zones/
total 44
-rw-r--r--. 1 root root 299 Jul 30  2021 block.xml
-rw-r--r--. 1 root root 293 Jul 30  2021 dmz.xml
-rw-r--r--. 1 root root 291 Jul 30  2021 drop.xml
-rw-r--r--. 1 root root 304 Jul 30  2021 external.xml
-rw-r--r--. 1 root root 397 Jul 30  2021 home.xml
-rw-r--r--. 1 root root 412 Jul 30  2021 internal.xml
-rw-r--r--. 1 root root 809 Nov 27  2019 libvirt.xml
-rw-r--r--. 1 root root 729 Aug 18  2021 nm-shared.xml
-rw-r--r--. 1 root root 343 Jul 30  2021 public.xml
-rw-r--r--. 1 root root 162 Jul 30  2021 trusted.xml
-rw-r--r--. 1 root root 339 Jul 30  2021 work.xml各个文件介绍
block.xml 任何传⼊的⽹络连接都会被拒绝 ,只有从系统启动的⽹络连接才能进⾏。
dmz.xml 对于您的⾮企业化区⾥的计算机来说,这些计算机可以被公开访问,且有限访问您的内部⽹络。只接受所选的⼊站连接。
drop.xml 所有传⼊的⽹络数据包都会丢失,没有任何通知。只有外发⽹络连接也是可⾏的。
external 适⽤于启⽤了伪装的外部⽹络,特别是路由器。您不信任⽹络中的其他计算机不会损害您的计算机。只接受所选的⼊站连接。
home.xml ⽤于家⽤,因为您可以信任其他计算机。只接受所选的⼊站连接。
internal.xml 当您主要信任⽹络中的其他计算机时,供内部⽹络使⽤。只接受所选的⼊站连接。
public.xml 可⽤于您不信任⽹络中其他计算机的公共区域。只接受所选的⼊站连接
trusted.xml 所有⽹络连接都被接受。
work.xml 可⽤于您主要信任⽹络中其他计算机的⼯作。只接受所选的⼊站连接。

安装防火墙时,默认在public区域

预定义服务

服务可以是本地端⼝、协议、源端⼝和⽬的地列表,并在启⽤了服务时⾃动载⼊防⽕墙帮助程序
模块列表。使⽤服务可节省⽤⼾时间,因为它们可以完成⼀些任务,如打开端⼝、定义协议、启
⽤数据包转发等等,⽽不必在另外的步骤中设置所有任务。

服务配置选项和通⽤⽂件信息在 firewalld.service(5) ⼿册⻚中进⾏了描述。
可 使 ⽤ 图 形 化 的 firewall-config ⼯ 具 、 firewall-cmd 和 firewall-offline-cmd来添加和删除服务。

或者可以在 /etc/firewalld/services/ 目录中编辑xml 文件,如果⽤⼾没有添加或更改服务,则在 /etc/firewalld/services/ 中找不到相应的xml文件,如果要添加或更改服务,/usr/lib/firewalld/services/文件可以作为参考

firewalld启动与停止

请在root身份下进行启动停止操作

开启
systemctl unmask firewalld   
systemctl start firewalld关闭
systemctl stop firewalld
systemctl disable firewalldunmask: 将不标记 firewalld 服务  ,如果为 mask 无论怎么都不启动防火墙
stop: 停止防火墙,重新启动系统时还是会重新启动防护墙
disable: 在系统重新启动时也不启动防火墙

查看firewalld当前状态和设置

firewarll-cmd	--state      显示状态
systemctl status firewalld.service   更详细的

使⽤ CLI 查看 firewalld 设置

firewalld 使⽤区来管理流量。如果没有通过 --zone 指定区域,则 该命令会将其分配到默认的区域

列出默认区所以相关信息
firewall-cmd --list-all
列出指定区域的相关信息
firewall-cmd --list-all --zone=block
查看帮助信息
irewall-cmd --help

firewalld控制流量

firewalld 软件包安装⼤量预定义的服务⽂件,您可以添加更多或⾃定义它们。然后,您可以使⽤这些服务定义为服务打开或关闭端⼝,⽽⽆需了解这些服务使⽤的协议和端⼝号。

使⽤ CLI 禁⽤紧急事件的所有流量

1,要⽴即禁⽤⽹络流量,请切换 panic 模式:
启⽤ panic 模式可停⽌所有⽹络流量。因此,只有当您具有对机器的物理访问权限或使⽤串⾏控制台登录时,才应使⽤它。

firewall-cmd --panic-on

使⽤ CLI 控制预定义服务的流量

控制流量的最简单的⽅法是在 firewalld 中添加预定义的服务,这会打开所有必需的端⼝并根据 服务定义⽂件 修改其他设置。

列出被添加的服务
firewall-cmd --list-services 
列出所有的预定义服务
firewall-cmd --get-services
在允许的服务中添加服务
firewall-cmd --add-service=http   默认在默认区域添加,但是重载后该服务就会不见,需要重新添加
永久添加这个服务
firewall-cmd --add-service=http --permanent      重载后也不会不见

使⽤ CLI 控制端⼝

端⼝是可让操作系统接收和区分⽹络流量并将其转发到系统服务的逻辑设备。它们通常由侦听端⼝的守护进程来表⽰,它会等待到达这个端⼝的任何流量。

通常,系统服务侦听为它们保留的标准端⼝。例如, httpd 守护进程监听 80 端⼝。但默认情况下,系统管理员会将守护进程配置为在不同端⼝上侦听以便增强安全性或出于其他原因。

打开端口

通过打开端⼝,系统可从外部访问,这代表了安全⻛险。通常,让端⼝保持关闭,且只在某些服务需要时才打开。

列出所有允许的端口
firewall-cmd --list-ports
在允许的端⼝中添加⼀个端⼝,以便为⼊站流量打开这个端⼝
firewall-cmd --add-port=80/tcp 添加80端口,类型为tcp

端⼝类型为 tcp,udp ,sctp,dccp 这个类型必须与⽹络通信的类型匹配

关闭端口

当打开的端⼝不再需要时,在 firewalld 中关闭此端⼝。强烈建议您尽快关闭所有不必要的端⼝,因为端⼝处于打开状态会存在安全隐患。

从允许的端口中删除端口,以便对传⼊的流量关闭
firewall-cmd --remove-port=80/tcp

使用 firewalld 区

zones 代表⼀种更透明管理传⼊流量的概念。这些区域连接到联⽹接⼝或者分配⼀系列源地址。您可以独⽴为每个区管理防⽕墙规则,这样就可以定义复杂的防⽕墙设置并将其应⽤到流量。

列出系统中可用的区域
firewall-cmd --get-zones
查看所有系统中可用区的详细信息:
firewall-cmd --list-all-zones 

更改特定区的 firewalld 设置

例如,要允许在区public 中使⽤ SSH 服务
firewall-cmd --add-service=ssh --zone=public

更改默认区

系统管理员在其配置⽂件中为⽹络接⼝分配区域。如果接⼝没有被分配给指定区,它将被分配给默认区。每次重启 firewalld 服务后,firewalld 会加载默认区的设置,并使其处于活动状态。

当系统的前默认区
firewall-cmd --get-default-zone
设置默认区为home区
firewall-cmd --set-default-zone home

将网络接口分配给区

列出活跃区以及分配给它们的接⼝

[root@bogon ~]# firewall-cmd --get-active-zones
publicinterfaces: ens160

使用nmcli 命令为连接分配区域

nmcli connection modify ens160 connection.zone public     分配到public区

创建⼀个新区

要使⽤⾃定义区,创建⼀个新的区并使⽤它像预定义区⼀样。新区需要 --permanent 选项,否则命令⽆法正常⼯作。

例:创建⼀个新区testzone

 [root@bogon ~]# firewall-cmd --new-zone=testzone --permanent [root@bogon ~]# firewall-cmd --reload success [root@bogon ~]# firewall-cmd --get-zonesblock dmz drop external home internal libvirt nm-shared public testzone trusted work

可在文件 /etc/firewalld/zones/ 中看到新建的区

使⽤区⽬标设定传⼊流量的默认⾏为

对于每个区,您可以设置⼀种处理尚未进⼀步指定的传⼊流量的默认⾏为。此⾏为是通过设置区的⽬标来定义的。有四个选项:

ACCEPT :接受除特定规则不允许的所有传⼊的数据包。

REJECT :拒绝所有传⼊的数据包,但特定规则允许的数据包除外。当firewalld 拒绝数据包时,源 机器会发出有关拒绝的信息。

**DROP 😗*除⾮由特定规则允许,丢弃所有传⼊数据包。当firewalld 丢弃数据包时,源 机器不会发出有关丢弃的信息。

**default 😗*与 REJECT 的⾏为类似,但在某些情况下有特殊含义。详情请查看 firewalld-cmd(1)man page 中的 Options to Adapt and Query Zones and Policies 部分。

列出特定区的信息以查看默认⽬标:

[root@bogon ~]# firewall-cmd --zone=public --list-all 
public (active)target: defaulticmp-block-inversion: nointerfaces: ens160sources: services: cockpit dhcpv6-client http sshports: protocols: forward: nomasquerade: noforward-ports: source-ports: icmp-blocks: rich rules: 给区设定新的目标
firewall-cmd --permanent --zone=public --set-target=ACCEPT

相关内容

热门资讯

江苏国泰:终止使用部分闲置自有... 8月24日消息,江苏国泰公告称,公司于2025年8月24日召开董事会,审议通过终止使用部分闲置自有资...
浪浪山进入年度票房榜前四 8月24日消息,据猫眼专业版数据,电影《浪浪山小妖怪》累计票房(含预售)突破12.39亿,超《封神第...
茶颜悦色就联名手账本涉抄袭一事... 8月24日消息,近日,多位博主先后在社交平台发文称,茶颜悦色与彩虹合唱团联名的手账本涉嫌抄袭其作品。...
泰禾股份:上半年归母净利润1.... 8月24日消息,泰禾股份披露半年报,公司上半年实现营业收入24.13亿元,同比增长23.15%;归属...
延伸“黄金4.5小时”救治能力... 8月24日消息,作为国家卫生健康委“百万减残工程”的核心重点工作之一,基层脑卒中远程医疗救治项目今天...
从惊魂到TACO--特朗普震惊... 美东时间2026年4月7日,星期二,上午8时06分。 特朗普在社交媒体Truth Social发出一...
原创 特... 特朗普的言论让许多国家感到惊惧和不安,尤其是那些长期以来与美国保持稳固关系的北约盟友们。近日,特朗普...
美载人绕月飞船开始返回地球之旅 据美国航空航天局消息,执行美国“阿耳忒弥斯2号”载人绕月飞行任务的“猎户座”飞船4月7日开始返回地球...
宝兰德:再获天阳科技增持,金融... 4月7日,宝兰德(688058.SH)披露重要股东增持公告。天阳宏业于4月2日—3日以集中竞价增持8...
新乳业港股IPO:资本补血难掩... 文|恒心来源|博望财经近日,新乳业正式向港交所递交主板上市申请,摩根大通、中信证券担任联席保荐人。若...