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
相关推荐
长弓聊编程12 分钟前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
cherub.19 分钟前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++
梅见十柒42 分钟前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
Koi慢热1 小时前
路由基础(全)
linux·网络·网络协议·安全
传而习乎1 小时前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
soulteary1 小时前
突破内存限制:Mac Mini M2 服务器化实践指南
运维·服务器·redis·macos·arm·pika
我们的五年1 小时前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
爱吃青椒不爱吃西红柿‍️1 小时前
华为ASP与CSP是什么?
服务器·前端·数据库
IT果果日记1 小时前
ubuntu 安装 conda
linux·ubuntu·conda
Python私教1 小时前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes