Linux中的firewall-cmd

2023年8月4日,周五上午


目录


firewall-cmd是Linux中管理防火墙规则的命令行工具。

firewall-cmd可以方便地管理Linux防火墙,打开或关闭指定端口和服务,设置网卡和规则等,与传统的iptables命令相比,firewall-cmd使用起来更为简单易用。

详细文档可看:Documentation - Manual Pages - firewall-cmd | firewalld

打开端口

bash 复制代码
firewall-cmd --add-port=80/tcp --permanent   # 永久打开80端口
firewall-cmd --reload  # 重新加载防火墙规则

如果你想让互联网能访问到这个端口的话最好再加上--zone=public

cpp 复制代码
firewall-cmd --zone=public --add-port=80/tcp --permanent   # 永久打开80端口
firewall-cmd --reload  # 重新加载防火墙规则

关闭端口

bash 复制代码
firewall-cmd --remove-port=80/tcp --permanent  # 永久关闭80端口 
firewall-cmd --reload  # 重新加载防火墙规则

查看某个端口是否打开

bash 复制代码
firewall-cmd --query-port=80/tcp

查看当前防火墙设置

bash 复制代码
firewall-cmd --list-all

如果没有任何一个端口是对外打开的,那么ports那行为空

当我对外打开一个9990端口,那么此时ports那行会显示

firewall-cmd中的服务

在firewall-cmd中,可以使用以下命令来查看可用的服务:

bash 复制代码
firewall-cmd --get-services

以下是一些常见的服务:

  • dhcpv6-client: DHCPv6客户端
  • dns: DNS服务
  • ftp: FTP服务
  • http: HTTP服务
  • https: HTTPS服务
  • imap: IMAP服务
  • pop3: POP3服务
  • smtp: SMTP服务
  • ssh: SSH服务
  • telnet: Telnet服务
  • ntp: NTP服务
  • snmp: SNMP服务
  • samba: Samba文件共享服务
  • dhcp: DHCP服务
  • tftp: TFTP服务

在防火墙中什么是服务?

在防火墙中,服务是指一组规则或配置,用于定义允许或限制特定类型的网络通信流量通过防火墙。服务规则基于特定的协议、端口号和其他属性,用于控制不同类型的网络服务和应用程序的访问。

服务规则定义了允许通过防火墙的特定服务的属性。这些属性通常包括协议(如TCP、UDP)、端口号(如80、443)和其他相关信息,用于标识和识别特定的网络服务。通过配置服务规则,你可以控制允许或禁止通过防火墙的服务类型和网络流量。

防火墙中的服务允许管理员根据系统需求和安全策略来配置网络访问控制。通过定义服务,管理员可以细粒度地控制不同类型的网络通信,限制或允许特定的服务或应用程序进行网络连接。例如,HTTP服务通常使用TCP协议和端口号80,管理员可以配置防火墙服务规则,允许通过防火墙的HTTP流量,以便外部计算机可以访问Web服务器。类似地,SMTP服务使用TCP协议和端口号25,管理员可以配置服务规则允许通过防火墙的SMTP流量,以便电子邮件服务器可以与外部服务器进行电子邮件交换。

总而言之,防火墙中的服务是一组规则或配置,用于定义和控制允许通过防火墙的特定类型的网络服务和通信流量。

为什么会有服务?

因为服务允许计算机提供特定的功能和服务,例如Web服务、邮件服务、数据库服务等。通过将功能模块化为服务,可以提高系统的灵活性和可扩展性,并使不同的计算机和设备可以通过网络进行通信和交互。

打开或关闭服务

bash 复制代码
firewall-cmd --add-service=http --permanent   # 永久打开http服务
firewall-cmd --remove-service=http --permanent  # 永久关闭http服务

查看某个服务是否打开

bash 复制代码
firewall-cmd --query-service=http

firewall-cmd中的 zones

在firewall-cmd中,zones(区域)是用于定义网络防火墙策略的一种机制。区域是一组预定义的规则集合,用于指定特定网络接口的安全级别和访问限制。

每个区域定义了一组规则,这些规则决定了哪些网络流量被允许通过防火墙。不同的区域可以应用于不同的网络接口,以根据需要对每个接口的流量进行不同的处理。

以下是一些常见的区域及其含义:

  • public(公共):适用于公共网络,如互联网连接。该区域提供了较高的防护级别,限制了传入连接,但允许某些出站连接。
  • internal(内部):适用于内部网络,如局域网。该区域较为信任内部网络,并允许双向通信。
  • dmz(隔离区):适用于服务器放置的隔离区。该区域允许受限的传入连接,但限制了对内部网络的访问。
  • block(封锁):适用于阻止所有网络流量的区域。该区域会阻止所有传入和传出的网络连接。

除了这些预定义的区域外,还可以自定义自己的区域,并根据需要配置相应的规则。

通过使用firewall-cmd命令,可以将不同的区域分配给不同的网络接口,并根据需要调整各个区域的规则。

查看所有可用的zones(区域):

bash 复制代码
firewall-cmd --get-zones

查看某个zones(区域)下有什么端口、服务等

bash 复制代码
firewall-cmd --info-zone=public
相关推荐
geek_Chen012 分钟前
虚拟机共享文件夹开启后mnt/hgfs/下无sharefiles? --已解决
linux·运维·服务器
(⊙o⊙)~哦33 分钟前
linux 解压缩
linux·运维·服务器
牧小七2 小时前
Linux命令---查看端口是否被占用
linux
鸡鸭扣3 小时前
虚拟机:3、(待更)WSL2安装Ubuntu系统+实现GPU直通
linux·运维·ubuntu
友友马3 小时前
『 Linux 』HTTP(一)
linux·运维·服务器·网络·c++·tcp/ip·http
重生之我在20年代敲代码3 小时前
HTML讲解(一)body部分
服务器·前端·html
清水白石0084 小时前
C++使用Socket编程实现一个简单的HTTP服务器
服务器·c++·http
记得开心一点嘛4 小时前
在Linux系统上使用Docker部署javaweb项目
linux·运维·docker
GG_Bond194 小时前
【项目设计】Facial-Hunter
服务器·人工智能
Tak1Na4 小时前
2024.9.18
linux·运维·服务器