RHEL 8系统中集成了多款防火墙管理工具,其中firewalld(Dynamic Firewall Manager of Linux systems)服务是默认的防火墙配置管理工具,也叫Linux系统的动态防火墙管理器。
双击tab会出现命令提示选项
配置防火墙之firewalld
一 查看当前默认的区域 firewall-cmd --get-defaul-zone
[root@linuxprobe ~]# firewall-cmd --get-default-zone public
二 查看网卡绑定的区域 firewall-cmd --get-zone-of-interface=ens160
[root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=ens160 public
三 修改默认区域 firewall-cmd --set-default-zone=dmz
[root@linuxprobe ~]# firewall-cmd --set-default-zone=dmz success oot@linuxprobe ~]# firewall-cmd --get-default-zone dmz [root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=ens160 dmz
四 修改网卡默认区域 firewall-cmd --zone=public --change-interface=ens160
[root@linuxprobe ~]# firewall-cmd --zone=public --change-interface=ens160 success [root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=ens160 public
五 启动和关闭紧急模式
紧急模式下,会切断一切网络连接
1 启动紧急模式 firewall-cmd --panic-on
[root@linuxprobe ~]# firewall-cmd --panic-on success
2 关闭紧急模式 firewall-cmd --panic-off
[root@linuxprobe ~]# firewall-cmd --panic-off success
六 查询指定服务的流量是否放行 firewall-cmd --zone=public --query-service=ssh
firewall-cmd --zone=public --query-service=https
[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=ssh yes [root@linuxprobe ~]# firewall-cmd --zone=public --query-service=https no
七 把指定服务的流量设置为永久放行并立即生效 firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-service=https success [root@linuxprobe ~]# firewall-cmd --reload success [root@linuxprobe ~]# firewall-cmd --zone=public --query-service=https yes
八 把指定服务的流量设置为永久拒绝并立即生效 firewall-cmd --permanent --zone=public --remove-service=https
firewall-cmd --reload
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --remove-service=https success [root@linuxprobe ~]# firewall-cmd --reload success [root@linuxprobe ~]# firewall-cmd --zone=public --query-service=https no
九 把指定端口的流量设置为允许 firewall-cmd --zone=public --add-port=8080-8081/tcp
firewall-cmd --zone=public --list-ports
[root@linuxprobe ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp success [root@linuxprobe ~]# firewall-cmd --zone=public --list-ports 8080-8081/tcp
十 把访问端口转发为另一个端口并长期有效 firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.20
firewall-cmd --reload
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.20 success [root@linuxprobe ~]# firewall-cmd --reload success
富规则,具有最高优先级。
十一 拒绝指定网段的用户访问指定服务 firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject" success [root@linuxprobe ~]# firewall-cmd --reload success
PS:对应iptables的设置方法是 iptables -I INPUT -s 192.168.10.1 -p tcp --dport 22 -j REJECT
[root@linuxprobe ~]# iptables -I INPUT -s 192.168.10.1 -p tcp --dport 22 -j REJECT [root@linuxprobe ~]# iptables -L INPUT Chain INPUT (policy ACCEPT) target prot opt source destination REJECT tcp -- 192.168.10.1 anywhere tcp dpt:ssh reject-with icmp-port-unreachable ACCEPT udp -- anywhere anywhere udp dpt:domain ACCEPT tcp -- anywhere anywhere tcp dpt:domain ACCEPT udp -- anywhere anywhere udp dpt:bootps ACCEPT tcp -- anywhere anywhere tcp dpt:bootps
PS 查看端口号-服务 cat /etc/services