背景
通常使用firewalld时候多为限制入方向访问,本次因有系统需要在生产环境部署测试环境,需求人希望在该测试环境中限制访问的对象,避免对生产造成影响
基础团队小伙伴参照rich-files,通过CLI,GUI反复进行进行配置验证,实际并不会生效
排查思路
通过firewalld配置文件发现,firewalld实际调用的是nftables实现,实际查看nftables策略,并没有发现关联的出方向配置nft list ruleset
,手工在nftables配置后,结果能生效。
结合iptables的方式,实际可以直接配置出方向策略,经过搜索发现firewalld 有–direct参数,实际配置方式和iptables雷同
经过验证如下即可实现需求:
sudo firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 -p tcp -d 1.1.1.1 -o eth0 -j DROP
其中-o参数可以根据需要参加,也可以增加对应目标端口