iptables和firewalld防⽕墙总结(史上最全)
防⽕墙管理⼯具
保证数据的安全性是继可⽤性之后最为重要的⼀项⼯作,防⽕墙技术作为公⽹与内⽹之间的保护屏障,起着⾄关重要的作⽤。⾯对同学们普遍不了解在RHEL7系统中新旧两款防⽕墙的差异,认识在RHEL7系统中firewalld防⽕墙服务与iptables防⽕墙服务之间的关系,从理论和事实层⾯剖析真相。
本章节内将会分别使⽤iptables、firewall-cmd、firewall-config和Tcp_wrappers等防⽕墙策略配置服务来完成数⼗个根据真实⼯作需求⽽设计的防⽕墙策略配置实验,让同学们不仅能够熟练的对请求数据包流量进⾏过滤,还能够基于服务程序进⾏允许和关闭操作,做到保证安全万⽆⼀失。
保证数据安全性是继可⽤性之后最为重要的⼀项⼯作,众所周知外部公⽹相⽐企业内⽹更加的“罪恶丛⽣”,因此防⽕墙技术作为公⽹与内⽹之间的保护屏障,虽然有软件或硬件之分,但主要功能都是依据策略对外部请求进⾏过滤。防⽕墙技术能够做到监控每⼀个数据包并判断是否有相应的匹配策略规则,直到匹配到其中⼀条策略规则或执⾏默认策略为⽌,防⽕墙策略可以基于来源地址、请求动作或协议等信息来定制,最终仅让合法的⽤户请求流⼊到内⽹中,其余的均被丢弃。
图8-1 防⽕墙作为公⽹与内⽹之间的保护屏障
在红帽RHEL7系统中Firewalld服务取代了Iptables服务,对于接触系统⽐较早或学习过红帽RHEL6系统的读者来讲,突然改⽤Firewalld服务后确实不免会有些抵触⼼理,或许会觉得Firewalld服务是⼀次不⼩的改变。但其实Iptables服务与Firewalld服务都不是真正的防⽕墙,它们都只是⽤来定义防⽕墙策略功能的“防⽕墙管理⼯具”⽽已,iptables服务会把配置好的防⽕墙策略交由内核层⾯的netfilter⽹络过滤器来处理,⽽firewalld服务则是把配置好的防⽕墙策略交由内核层⾯的nftables包过滤框架来处理。换句话说,当前在Linux系统中其实同时有多个防⽕墙管理⼯具共同存在,它们的作⽤都是为了⽅便运维⼈员管理Linux系统的防⽕墙策略,⽽咱们只要配置妥当其中⼀个就⾜够了。虽然各个⼯具之间各有优劣特⾊,但对于防⽕墙策略的配置思路上是保持⼀致的,同学们甚⾄可以不⽤完全掌握本章节内的知识,⽽是在这诸多个防⽕墙管理⼯具中任选⼀款来学透即可,完全能够满⾜⽇常的⼯作所需。
Iptables
在较早期的Linux系统中想配置防⽕墙默认使⽤的都是iptables防⽕墙管理命令,⽽新型Firewalld防⽕墙管理服务已经被投⼊使⽤多年,但还记得刘遄⽼师在第0章0.6⼩节⾥谈到过企业不愿意及时升级的原因吧,于是不论出于什么样的原因,⽬前市场上还有⼤量的⽣产环境中在使⽤着iptables命令来管理着防⽕墙的规则策略。虽然明知iptables可能有着即将被“淘汰”的命运,但为了让同学们不必在⾯试时尴尬以及看完⼿中这本《Linux就该这么学》书籍后能“通吃”各个版本的Linux系统,刘遄⽼师觉得还是有必要把这⼀项技术好好卖⼒⽓讲⼀下,更何况各个⼯具的配置防⽕墙策略思路上⼤体⼀致,具有很
⾼的相同性及借鉴意义。
策略与规则链
防⽕墙会从上⾄下来读取规则策略,⼀旦匹配到了合适的就会去执⾏并⽴即结束匹配⼯作,但也有转了⼀圈之后发现没有匹配到合适规则的时候,那么就会去执⾏默认的策略。因此对防⽕墙策略的设置⽆⾮有两种,⼀种是“通”,⼀种是“堵”——当防⽕墙的默认策略是拒绝的,就要设置允许规则,否则谁都进不来了,⽽如果防⽕墙的默认策略是允许的,就要设置拒绝规则,否则谁都能进来了,起不到防范的作⽤。
iptables命令把对数据进⾏过滤或处理数据包的策略叫做规则,把多条规则⼜存放到⼀个规则链中,规则链是依据处理数据包位置的不同⽽进⾏的分类,包括有:在进⾏路由选择前处理数据包(PREROUTING)、处理流⼊的数据包(INPUT)、处理流出的数据包(OUTPUT)、处理转发的数据包(FORWARD)、在进⾏路由选择后处理数据包(POSTROUTING)。从内⽹向外⽹发送的数据⼀般都是可控且良性的,因此显⽽易见咱们使⽤最多的就是INPUT数据链,这个链中定义的规则起到了保证私⽹设施不受外⽹骇客侵犯的作⽤。
⽐如您所居住的社区物业保安有两条规定——“禁⽌⼩商贩进⼊社区,各种车辆都需要登记”,这两条安保规定很明显应该是作⽤到了社区的正门(流量必须经过的地⽅),⽽不是每家每户的防盗门上。
根据前⾯提到的防⽕墙策略的匹配顺序规则,咱们可以猜想有多种情况——⽐如来访⼈员是⼩商贩,则会被物业保安直接拒绝在⼤门外,也⽆需再对车辆进⾏登记,⽽如果来访⼈员是⼀辆汽车,那么因为第⼀条禁⽌⼩商贩策略就没有被匹配到,因⽽按顺序匹配到第⼆条策略,需要对车辆进⾏登记,再有如果来访的是社区居民,则既不满⾜⼩商贩策略,也不满⾜车辆登记策略,因此会执⾏默认的放⾏策略。
不过只有规则策略还不能保证社区的安全,物业保安还应该知道该怎么样处理这些被匹配到的流量,⽐如包括有“允许”、“登记”、“拒绝”、“不理他”,这些动作对应到iptables命令术语中是ACCEPT(允许流量通过)、LOG(记录⽇志信息)、REJECT(拒绝流量通过)、
DROP(拒绝流量通过)。允许动作和记录⽇志⼯作都⽐较好理解,着重需要讲解的是这两条拒绝动作的不同点,其中REJECT和DROP的动作操作都是把数据包拒绝,DROP是直接把数据包抛弃不响应,⽽REJECT会拒绝后再回复⼀条“您的信息我已收到,但被扔掉了”,让对⽅清晰的看到数据被拒绝的响应。就好⽐说您有⼀天正在家⾥看电视,突然有⼈敲门,透过“猫眼”⼀看是推销商品的,咱们如果不需要的情况下就会直接拒绝他们(REJECT)。但如果透过“猫眼”看到的是债主带了⼏⼗个⼩弟来讨债,这种情况不光要拒绝开门,还要默不作声,伪装成⾃⼰不在家的样⼦(DROP),这就是两种拒绝动作的不同之处。
把Linux系统设置成REJECT拒绝动作策略后,对⽅会看到本机的端⼝不可达的响应:
[root@linuxprobe ~]# ping -c 4 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
From 192.168.10.10 icmp_seq=1 Destination Port Unreachable
From 192.168.10.10 icmp_seq=2 Destination Port Unreachable
From 192.168.10.10 icmp_seq=3 Destination Port Unreachable
From 192.168.10.10 icmp_seq=4 Destination Port Unreachable
--- 192.168.10.10 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3002ms
把Linux系统设置成DROP拒绝动作策略后,对⽅会看到本机响应超时的提醒,⽆法判断流量是被拒绝,还是对⽅主机当前不在线:
[root@linuxprobe ~]# ping -c 4 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
--- 192.168.10.10 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3000ms
基本的命令参数
iptables是⼀款基于命令⾏的防⽕墙策略管理⼯具,由于该命令是基于终端执⾏且存在有⼤量参数的,学习起来难度还是较⼤的,好在对于⽇常控制防⽕墙策略来讲,您⽆需深⼊的了解诸如“四表五链”的理论概念,只需要掌握常⽤的参数并做到灵活搭配即可,以便于能够更顺畅的胜任⼯作所需。iptables命令可以根据数据流量的源地址、⽬的地址、传输协议、服务类型等等信息项进⾏匹配,⼀旦数据包与策略匹配上后,iptables就会根据策略所预设的动作来处理这些数据包流量,另外再来提醒下同学们防⽕墙策略的匹配顺序规则是从上⾄下的,因此切记要把较为严格、优先级较⾼的策略放到靠前位置,否则有可能产⽣错误。下表中为读者们总结归纳了⼏乎所有常⽤的iptables命令参数,刘遄⽼师遵循《Linux就该这么学》书籍的编写初衷⽽设计了⼤量动⼿实验,让您⽆需⽣背硬记这些参数,可以结合下⾯的实例来逐个参阅即可。
参数作⽤
-P设置默认策略:iptables -P INPUT (DROP|ACCEPT)
-
F清空规则链
-L查看规则链
-A在规则链的末尾加⼊新规则
-I num在规则链的头部加⼊新规则
-D num删除某⼀条规则
-s匹配来源地址IP/MASK,加叹号"!"表⽰除这个IP外。
-d匹配⽬标地址
-i ⽹卡名称匹配从这块⽹卡流⼊的数据
-o ⽹卡名称匹配从这块⽹卡流出的数据
-p匹配协议,如tcp,udp,icmp
--dport num匹配⽬标端⼝号
-
-sport num匹配来源端⼝号
bluefoundation使⽤iptables命令-L参数查看已有的防⽕墙策略:
[root@linuxprobe ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
INPUT_direct all -- anywhere anywhere
INPUT_ZONES_SOURCE all -- anywhere anywhere
INPUT_ZONES all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
………………省略部分输出信息………………
使⽤iptables命令-F参数清空已有的防⽕墙策略:
[root@linuxprobe ~]# iptables -F
[root@linuxprobe ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
………………省略部分输出信息………………
把INPUT链的默认策略设置为拒绝:
如前⾯所提到的防⽕墙策略设置⽆⾮有两种⽅式,⼀种是“通”,⼀种是“堵”,当把INPUT链设置为默认拒绝后,就要往⾥⾯写⼊允许策略了,否则所有流⼊的数据包都会被默认拒绝掉,同学们需要留意规则链的默认策略拒绝动作只能是DROP,⽽不能是REJECT。
[root@linuxprobe ~]# iptables -P INPUT DROP
[root@linuxprobe ~]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
…………省略部分输出信息………………
向INPUT链中添加允许icmp数据包流⼊的允许策略:
在⽇常运维⼯作中经常会使⽤到ping命令来检查对⽅主机是否在线,⽽向防⽕墙INPUT链中添加⼀条允许icmp协议数据包流⼊的策略就是默认允许了这种ping命令检测⾏为。
[root@linuxprobe ~]# ping -c 4 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
--- 192.168.10.10 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3000ms
[root@linuxprobe ~]# iptables -I INPUT -p icmp -j ACCEPT
[root@linuxprobe ~]# ping -c 4 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.156 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.117 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.099 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.090 ms
--- 192.168.10.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.090/0.115/0.156/0.027 ms
删除INPUT链中的那条策略,并把默认策略还原为允许:
[root@linuxprobe ~]# iptables -D INPUT 1
[root@linuxprobe ~]# iptables -P INPUT ACCEPT
[root@linuxprobe ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
………………省略部分输出信息………………
设置INPUT链只允许指定⽹段访问本机的22端⼝,拒绝其他所有主机的数据请求流量:
防⽕墙策略是按照从上⾄下顺序匹配的,因此请⼀定要记得把允许动作放到拒绝动作上⾯,否则所有的流量就先被拒绝掉了,任何⼈都获取不到咱们的业务。⽂中提到的22端⼝是下⾯第9章节讲的ssh服务做占⽤的资源,刘遄⽼师在这⾥挖个⼩坑~等读者们稍后学完再回来验证这个实验效果吧~
[root@linuxprobe ~]# iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT
[root@linuxprobe ~]# iptables -A INPUT -p tcp --dport 22 -j REJECT
[root@linuxprobe ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 192.168.10.0/24 anywhere tcp dpt:ssh
翻唱歌曲网REJECT tcp -- anywhere anywhere tcp dpt:ssh reject-with icmp-port-unreachable
………………省略部分输出信息………………
使⽤IP地址在192.168.10.0/24⽹段内的主机访问服务器的22端⼝:
成龙电影列表
[root@Client A ~]# ssh 192.168.10.10
The authenticity of host '192.168.10.10 (192.168.10.10)' can't be established.
ECDSA key fingerprint is 70:3b:5d:37:96:7b:2e:a5:28:0d:7e:dc:47:6a:fe:5c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.10' (ECDSA) to the list of known hosts.赛尔号大电影主题曲
root@192.168.10.10's password:
Last login: Sun Feb 12 01:50:25 2017
[root@Client A ~]#
使⽤IP地址在192.168.20.0/24⽹段外的主机访问服务器的22端⼝:
[root@Client B ~]# ssh 192.168.10.10
Connecting to 192.168.10.
Could not connect to '192.168.10.10' (port 22): Connection failed.
向INPUT链中添加拒绝所有⼈访问本机12345端⼝的防⽕墙策略:
[root@linuxprobe ~]# iptables -I INPUT -p tcp --dport 12345 -j REJECT
[root@linuxprobe ~]# iptables -I INPUT -p udp --dport 12345 -j REJECT
[root@linuxprobe ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
REJECT udp -- anywhere anywhere udp dpt:italk reject-with icmp-port-unreachable
REJECT tcp -- anywhere anywhere tcp dpt:italk reject-with icmp-port-unreachable
ACCEPT tcp -- 192.168.10.0/24 anywhere tcp dpt:ssh
REJECT tcp -- anywhere anywhere tcp dpt:ssh reject-with icmp-port-unreachable
………………省略部分输出信息………………
向INPUT链中添加拒绝来⾃于指定192.168.10.5主机访问本机80端⼝(web服务)的防⽕墙策略:
[root@linuxprobe ~]# iptables -I INPUT -p tcp -s 192.168.10.5 --dport 80 -j REJECT
[root@linuxprobe ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
REJECT tcp -- 192.168.10.5 anywhere tcp dpt:http reject-with icmp-port-unreachable
REJECT udp -- anywhere anywhere udp dpt:italk reject-with icmp-port-unreachable
REJECT tcp -- anywhere anywhere tcp dpt:italk reject-with icmp-port-unreachable
ACCEPT tcp -- 192.168.10.0/24 anywhere tcp dpt:ssh
REJECT tcp -- anywhere anywhere tcp dpt:ssh reject-with icmp-port-unreachable
………………省略部分输出信息………………
向INPUT链中添加拒绝所有主机不能访问本机1000⾄1024端⼝的防⽕墙策略:
[root@linuxprobe ~]# iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT
[root@linuxprobe ~]# iptables -A INPUT -p udp --dport 1000:1024 -j REJECT
[root@linuxprobe ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
REJECT tcp -- 192.168.10.5 anywhere tcp dpt:http reject-with icmp-port-unreachable
REJECT udp -- anywhere anywhere udp dpt:italk reject-with icmp-port-unreachable
REJECT tcp -- anywhere anywhere tcp dpt:italk reject-with icmp-port-unreachable
ACCEPT tcp -- 192.168.10.0/24 anywhere tcp dpt:ssh
REJECT tcp -- anywhere anywhere tcp dpt:ssh reject-with icmp-port-unreachable
REJECT tcp -- anywhere anywhere tcp dpts:cadlock2:1024 reject-with icmp-port-unreachable
REJECT udp -- anywhere anywhere udp dpts:cadlock2:1024 reject-with icmp-port-unreachable
………………省略部分输出信息………………
是不是还意犹未尽?但对于iptables防⽕墙管理命令的学习到此就可以结束了,考虑到以后防⽕墙的发展趋势,同学们只要能把上⾯的实例看懂看熟就可以完全搞定⽇常的iptables防⽕墙配置⼯作了。但请特别留意下,iptables命令配置的防⽕墙规则默认会在下⼀次重启时失效,所以如果您想让配置的防⽕墙策略永久的⽣效下去,还要执⾏⼀下保存命令:
[root@linuxprobe ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables: [ OK ]
Firewalld
RHEL7是⼀个集合多款防⽕墙管理⼯具并存的系统,Firewalld动态防⽕墙管理器服务(Dynamic Firewall Manager of Linux systems)是⽬前默认的防⽕墙管理⼯具,同时拥有命令⾏终端和图形化界⾯的配置⼯具,即使是对并不熟悉的同学也能快速⼊门。相⽐于传统的防⽕墙管理⼯具还⽀持了动态更新技术并加⼊了“zone区域”的概念,简单来说就是为⽤户预先准备了⼏套防⽕墙策略集合(策略模板),然后可以根据⽣产场景的不同⽽选择合适的策略集合,实现了防⽕墙策略之间的快速切换。例如咱们有⼀台笔记本电脑每天都要在办公室、咖啡厅和家⾥使⽤,按常理推断最安全的应该是家⾥的内⽹,其次是公司办公室,最后是咖啡厅,如果需要在办公室内允许⽂件共享服务的请求流量、回到家中需要允许所有的服务,⽽在咖啡店则是除了上⽹外不允许任何其他请求,这样的需求应该是很常
见的,在以前只能频繁的进⾏⼿动设置,⽽现在只需要预设好zone区域集合,然后轻轻点击⼀下就可以切换过去了上百条策略了,极⼤的提⾼了防⽕墙策略的应⽤效率,常见的zone区域名称及应⽤可见下表(默认为public):
区域默认规则策略
trusted允许所有的数据包。
home拒绝流⼊的数据包,除⾮与输出流量数据包相关或是ssh,mdns,ipp-client,samba-client与dhcpv6-client服务则允许。
internal等同于home区域
work拒绝流⼊的数据包,除⾮与输出流量数据包相关或是ssh,ipp-client与dhcpv6-client服务则允许。
public拒绝流⼊的数据包,除⾮与输出流量数据包相关或是ssh,dhcpv6-client服务则允许。
external拒绝流⼊的数据包,除⾮与输出流量数据包相关或是ssh服务则允许。
dmz拒绝流⼊的数据包,除⾮与输出流量数据包相关或是ssh服务则允许。
block拒绝流⼊的数据包,除⾮与输出流量数据包相关。
drop拒绝流⼊的数据包,除⾮与输出流量数据包相关。
查看防⽕墙状态
firewall-cmd --state
停⽌firewall
systemctl stop firewalld.service
开启
systemctl start firewalld.service
禁⽌firewall开机启动
systemctl disable firewalld.service
终端管理⼯具
命令⾏终端是⼀种极富效率的⼯作⽅式,firewall-cmd命令是Firewalld动态防⽕墙管理器服务的命令⾏终端。它的参数⼀般都是以“长格式”来执⾏的,但同学们也不⽤太过于担⼼,因为红帽RHEL7系统⾮常酷的⽀持了部分命令的参数补齐,也正好包括了这条命令,也就是说现在除了能够⽤Tab键来补齐命令或⽂件名等等内容,还可以⽤Tab键来补齐下列长格式参数啦(这点特别的棒)。
参数作⽤
--get-default-zone查询默认的区域名称。
--set-default-zone=<;区域名称>设置默认的区域,永久⽣效。
--get-zones显⽰可⽤的区域。
--get-services显⽰预先定义的服务。
--get-active-zones显⽰当前正在使⽤的区域与⽹卡名称。
--add-source=将来源于此IP或⼦⽹的流量导向指定的区域。
--remove-source=不再将此IP或⼦⽹的流量导向某个指定区域。
-
-add-interface=<⽹卡名称>将来⾃于该⽹卡的所有流量都导向某个指定区域。
--change-interface=<⽹卡名称>将某个⽹卡与区域做关联。
--list-all显⽰当前区域的⽹卡配置参数,资源,端⼝以及服务等信息。
--list-all-zones显⽰所有区域的⽹卡配置参数,资源,端⼝以及服务等信息。
--add-service=<;服务名>设置默认区域允许该服务的流量。
--add-port=<;端⼝号/协议>允许默认区域允许该端⼝的流量。
--remove-service=<;服务名>设置默认区域不再允许该服务的流量。
--remove-port=<;端⼝号/协议>允许默认区域不再允许该端⼝的流量。
--reload让“永久⽣效”的配置规则⽴即⽣效,覆盖当前的。
如同其他的防⽕墙策略配置⼯具⼀样,Firewalld服务对防⽕墙策略的配置默认是当前⽣效模式(RunTime),配置信息会随着计算机重启⽽失效,如果想要让配置的策略⼀直存在,那就要使⽤永久⽣效模式(Permanent)了,⽅法就是在正常的命令中加⼊--permanent参数就可以代表针对于永久
⽣效模式的命令了。但这个永久⽣效模式也有⼀个“不近⼈情”的特点,就是对它设置的策略需要重启后才能⾃动⽣效,如果想让配置的策略⽴即⽣效的话需要⼿动执⾏⼀下--reload参数。接下来具体实验的操作步骤并不难,⼀定要细⼼看刘遄⽼师到底是对Runtime 还是Permanent模式的操作,否则就算是策略配置100%正确也不能达到预想的效果。
查看Firewalld服务当前所使⽤的zone区域:
[root@linuxprobe ~]# firewall-cmd --get-default-zone
public
婴幼儿歌曲查询eno16777728⽹卡在Firewalld服务中的zone区域:
[root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=eno16777728
public
把Firewalld防⽕墙服务中eno16777728⽹卡的默认区域修改为external,重启后再⽣效:
[root@linuxprobe ~]# firewall-cmd --permanent --zone=external --change-interface=eno16777728
郑允浩整容
success
[root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=eno16777728
public
[root@linuxprobe ~]# firewall-cmd --permanent --get-zone-of-interface=eno16777728
external
把Firewalld防⽕墙服务的当前默认zone区域设置为public:
[root@linuxprobe ~]# firewall-cmd --set-default-zone=public
success
[root@linuxprobe ~]# firewall-cmd --get-default-zone
public
启动/关闭Firewalld防⽕墙服务的应急状况模式,阻断⼀切⽹络连接(当远程控制服务器时请慎⽤。):
[root@linuxprobe ~]# firewall-cmd --panic-on
success
[root@linuxprobe ~]# firewall-cmd --panic-off
success
查询在public区域中的ssh与https服务请求流量是否被允许:
[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=ssh
yes
[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=https
no
把Firewalld防⽕墙服务中https服务的请求流量设置为永久允许,并当前⽴即⽣效:
[root@linuxprobe ~]# firewall-cmd --zone=public --add-service=https
success
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@linuxprobe ~]# firewall-cmd --reload
success
把Firewalld防⽕墙服务中http服务的请求流量设置为永久拒绝,并当前⽴即⽣效:
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --remove-service=http
success