几个简单的实例教你使用firewalld工具轻松管理iptables防火墙( 二 )

上面的例子中 , 我们分别允许192.168.30.88访问本机的21端口 , 以及拒绝192.168.30.8访问本机的80端口 。关于rich rule更多的参数信息请man firewalld.richlanguage 。
6、添加direct rule如果rich rule还不满足我们的需求 , 我们可以使用--direct参数直接添加原生iptables规则:
root@kali2020:~# firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 1 -m tcp -p tcp -s 192.168.30.0/24 --dport 10000 -j REJECTsuccessroot@kali2020:~# root@kali2020:~# firewall-cmd --reloadsuccessroot@kali2020:~# root@kali2020:~# firewall-cmd --direct --get-rules ipv4 filter INPUT1 -m tcp -p tcp -s 192.168.30.0/24 --dport 10000 -j REJECTroot@kali2020:~# root@kali2020:~# firewall-cmd --list-allpublic (active)  target: default  icmp-block-inversion: no  interfaces: eth0  sources:   services: http ssh  ports: 443/tcp  protocols:   masquerade: no  forward-ports:   source-ports:   icmp-blocks:   rich rules:         rule family="ipv4" source address="192.168.30.8/32" service name="http" reject        rule family="ipv4" source address="192.168.30.88/32" port port="21" protocol="tcp" acceptroot@kali2020:~# 在上面的例子中我们通过添加direct rule方式拒绝了192.168.30.0/24网段访问本机的10000端口 。查看当前direct rule配置需要使用firewall-cmd --direct --get-rules ipv4 filter INPUT命令 , 其中filter表示iptbles的表 , INPUT为指定的链(关于表链的知识这里暂时不做详细解释) , 通过--list-all参数是无法看到direct rule的 。更多关于direct rule的帮助信息请man firewalld.direct 。
7、其它需要注意的地方

  • --reload参数用于重新加载iptables , 不会导致当前已经建立的网络连接中断 , 而使用--complete-reload参数重新加载配置则会使当前已经建立的连接中断 , 因此不建议使用 。
  • firewall-cmd工具实际上是修改/etc/firewalld目录下的相应文件 , 因此除了使用命令行 , 还可以直接修改这些配置文件 , 再使用--reload参数重新加载 。
  • 可以使用iptables-save命令查看当前所有原生配置 。
好了 , 关于firewalld的基本使用就先介绍到这里 , 后续我会继续分享firewalld更高级的用法 , 敬请关注 , 谢谢 。




推荐阅读