一.Direct Rules概述
通过firewall-cmd工具,可以使用 --direct选项在运行时间里增加和删除链。如果不熟悉iptables,使用直接接口非常危险,因为可能无意间导致防火墙被入侵。直接端口模式适用于服务或者程序,以便于在运行时间内增加特定的防火墙规则。直接端口模式添加的规则优先应用
二.高级防火墙Direct规则的使用
1.查看防火墙上设置的规则
firewall-cmd --direct --get-all-rules ##查看设置的规则
2.添加高级规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 80 -s 172.25.254.77 -j ACCEPT
##只允许172.25.254.77通过80端口访问主机位为110的http服务。因为访问的是主机位为110的http服务,需要主机位为110的内核同意开启http服务,需要在表filter中设置INPUT。
##-p 数据包类型;--dport 服务端口;
通过如下测试来理解高级规则:
1)开启httpd服务并且httpd服务不添加进火墙策略
2)添加规则:允许172.25.254.77通过80端口访问172.25.254.110的httpd服务
拒绝本机访问对端11.0.1.111的2202端口,在本机上做设置。
firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -p tcp --dport 2202 -d 11.0.1.111/32 -j REJECT
3) 添加这条规则之后,172.25.254.10可以访问110的http服务
而其他主机不可以访问110的http服务
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.77 -j ACCEPT
##只允许172.25.254.77通过22端口访问主机位为110的ssh服务。因为访问的是主机位为110的ssh服务,需要主机位为110的内核同意开启ssh服务,需要在表filter中设置INPUT。
1)添加规则:只允许172.25.254.77通过22端口访问主机位为110的ssh服务
2)添加上述规则之后, 只有172.25.254.77通过22端口访问主机位为110的ssh服务
而其他主机不可以访问主机位为110的ssh服务
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.210 -j REJECT
1)火墙策略中添加ssh服务,所以人都可以用ssh登陆172.25.254.110
2)添加规则:不允许172.25.254.217通过22端口的访问ssh,连接172.25.254.110
3)添加规则之后,只有172.25.254.217不可以通过ssh连接172.25.254.110
3.删除防火墙上的规则
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.217 -j REJECT
##移除:不允许172.25.254.217通过22端口的访问ssh,连接172.25.254.110这条规则
删除这条规则之后,172.25.254.217可以通过ssh连接上172.25.254.110