如何使用 firewall-cmd 管理网络服务
创始人
2024-03-02 05:01:00
0

在上一篇文章中,我们探讨了如何在 Fedora 中用命令行控制防火墙

现在你将看到如何“添加”、“删除”和“列出”服务、协议和端口,以便“阻止”或“允许”它们。

简短回顾

首先,最好检查一下防火墙的状态,看它是否正在运行。如我们先前所学,你可以使用状态选项(firewall-cmd ‐‐state)来得到。

下一步是获取网络接口适用的 域 zone 。例如,我使用的桌面有两个网络接口:一个物理接口(enp0s3),代表我实际的网卡,和虚拟接口(virbr0),它由 KVM 等虚拟化软件使用。要查看哪些域处于活动状态,请运行 firewall-cmd ‐‐get-active-zones

现在,你知道了你感兴趣的域,可以使用 firewall-cmd ‐‐info-zone=FedoraWorkstation 这样的命令列出该域的规则。

读取区域信息

要显示特定域的信息,请运行 firewall-cmd ‐‐zone=ZoneName ‐‐list-all,或使用以下命令显示默认域的信息:

[dan@localhost ~]$ firewall-cmd --list-all
FedoraWorkstation (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client mdns samba-client ssh
ports: 1025-65535/udp 1025-65535/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

现在,让我们查看输出。第一行表明以下信息关联的域以及该域当前是否在使用中。

target: default:告诉我们这是默认域。可以通过 ‐‐set-default-zone=ZoneName‐‐get-default-zone 设置或获取。

icmp-block-inversion 表明是否阻止 ICMP 请求。例如,如果机器响应来自网络上其他机器的 ping 请求。

interfaces 字段显示接受此域的所有接口。

处理服务、端口和协议

现在,重点关注 servicesportsprotocols 所在行。默认情况下,防火墙将阻止所有端口、服务和协议,而只允许列出的。

在这里,你可以看到允许的服务是非常基本的客户端服务。例如,访问网络上的共享文件夹(samba-client)、与 DNS 服务器通信或通过 SSH(ssh 服务)连接到计算机。你可以将 service 视为与端口组合的协议,例如 ssh 服务使用 SSH 协议,并且按照惯例使用 22 端口。通过允许 ssh 服务,你实际上所做的就是允许传入的连接在默认 22 端口上使用 SSH 协议。

请注意,根据经验,名称中带有 client 字样的服务是指传出连接,也就是你使用你的 IP 作为源对外部的连接,与之相反的是 ssh 服务,比如,它将接受传入连接(监听来自外部的连接)。

你可以在文件 /etc/services 中查找服务。例如,如果你想知道这些服务使用什么端口和协议:

[dan@localhost ~]$ cat /etc/services | grep ssh
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol

你可以看到 SSH 同时使用 TCP 和 UDP 的 22 端口。此外,如果你希望查看所有可用的服务,只需使用 firewall-cmd --get-services

打开端口

如果要阻止端口、服务或协议,请确保在此处未列出它们。展开来说,如果要允许服务,那么需要将它添加到列表中。

假设你要打开 5000 端口用于 TCP 连接。为此,请运行:

sudo firewall-cmd --zone=FedorwaWorkstation --permanent --add-port=5000/tcp

请注意,你需要指定规则适用的域。添加规则时,还需要如上指定它是 tcp 还是 udp 端口。--permanent 参数将规则设置为即使系统重启后也可以保留。

再次查看你所在区域的信息:

[dan@localhost ~]$ firewall-cmd --list-all
FedoraWorkstation (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client mdns samba-client ssh
ports: 1025-65535/udp 1025-65535/tcp 5000/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

类似地,如果你想从列表删除该端口,请运行:

sudo firewall-cmd --zone=FedorwaWorkstation --permanent --remove-port=5000/tcp

相同的 remove‐‐remove-protocol‐‐remove-service) 和 add‐‐add-protocol‐‐add-service)选项同样适用于服务协议


via: https://fedoramagazine.org/how-to-manage-network-services-with-firewall-cmd/

作者:dan01 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

给AI玩具设一道隐私“防火...
江德斌 据6月9日央视网报道,从能讲故事的智能玩偶,到可情感交互的...
2025-06-13 07:14:10
安全防御之防火墙篇(一)
目录 一.什么是防火墙? 二.状态防火墙的工作原理&...
2025-05-28 12:30:14
在CentOS系统上部署F...
CentOS FTP服务安装与配置指南 在CentOS系统中搭建F...
2025-05-04 07:17:18
如何在CentOS系统上配...
CentOS系统中Telnet命令的使用与安全策略详解 在Linu...
2025-05-03 10:46:15
在CentOS 6.5上通...
在CentOS 6.5系统中,通过Yum包管理器安装MySQL是运...
2025-04-27 06:17:02
CentOS系统安装Had...
Hadoop在CentOS系统上的安装与配置流程 对于需要处理海量...
2025-04-23 19:47:33

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...