2023年8月4日,周五上午
目录
- 打开端口
- 关闭端口
- 查看某个端口是否打开
- 查看当前防火墙设置
- firewall-cmd中的服务
- 在防火墙中什么是服务?
- 为什么会有服务?
- 打开或关闭服务
- 查看某个服务是否打开
- [firewall-cmd中的 zones](#firewall-cmd中的 zones)
- 查看所有可用的zones(区域):
- 查看某个zones(区域)下有什么端口、服务等
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