简介
firewalld提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口
firewall daemon可实现动态管理防火墙,不需要重启整个防火墙便可应用更改,但要求防火墙的所有变更都要通过该守护进程来实现,以确保守护进程中的状态和内核里的防火墙是一致的
另外,firewall daemon 无法解析由 iptables 和 ebtables 命令行工具添加的防火墙规则。
firewall-cmd语法
--permanent:配置写入到配置文件,否则规则仅临时生效重启就没了
--reload:重载配置文件
--zone=:指定区域
--get-default-zones:获取默认区域
--set-default-zone=:设置默认区域
--get-zones:获取所有可用的区域
--get-active-zones:获取当前激活(活跃)的区域
--list-all:列出激活使用的区域的配置
--list-all-zones:列出所有区域的配置
--get-target:获取区域中的默认target
--set-target=:设置区域的target
--add-rich-rule=<rule>:添加规则族
rule family:指定ipv4/6
source address:指定IP地址或网段
protocol=:指定协议类型
port port=:指定端口号
service name=:指定服务
--remove-rich-rule=<rule>:删除规则族
--add-forward-port=:端口转发
port=指定需转发端口
proto=:指定协议类型
toport=:指定目的端口
toaddr=:指定转发目的主机
--remove-forward-port=:删除端口转发
--query-masquerade:查询是否伪装IP
--add-masquerade:允许伪装IP
--remove-masquerade:禁止伪装IP
案例
设置某个ip访问某个服务
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept'
删除配置
[root@localhost ~]# firewall-cmd --permanent --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept'
设置某个IP访问某个端口
[root@localhost ~]# firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.0.1/24 port port=80 protocol=tcp accept'
删除配置
[root@localhost ~]# firewall-cmd --permanent --remove-rich-rule 'rule family=ipv4 source address=192.168.0.1/24 port port=80 protocol=tcp accept'
检查是否允许伪装IP
[root@localhost ~]# firewall-cmd --query-masquerade
允许防火墙伪装IP
[root@localhost ~]# firewall-cmd --permanent --add-masquerade
禁止防火墙伪装IP
[root@localhost ~]# firewall-cmd --permanent --remove-masquerade
将80端口的流量转发到8080
[root@localhost ~]# firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080
将80端口的流量转发到192.168.1.100
#开启IP伪装
[root@localhost ~]# firewall-cmd --permanent --add-masquerade
[root@localhost ~]# firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.100
添加vrrp防火墙规则
[root@localhost ~]# firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens33 --destination 224.0.0.18 --protocol vrrp -j ACCEPT