Linux防火墙firewalld的rich规则配置-下一朵云

除了简单的端口、协议的开放、禁止等,在某些情况下,我们可能需要创建更复杂的规则,而不仅仅是允许区域中的某些端口或服务。例如,我们可能想要创建一条规则来阻止来自特定机器的某种类型的流量。这就是rich规则的意义所在。规则基本上由两部分组成:在第一部分中,我们指定要应用规则必须满足的条件,在第二部分中,指定要执行的操作:accept、drop或reject

实验示例:

目前一台内网服务器提供Web服务,通过端口映射的方式映射80端口到公网,22端口、3306端口等不映射仅内网维护使用。

仅ipv4的情况下,上述操作是安全的,当开启ipv6后,服务器就会暴露在公网中,所有端口都会暴露出去,所以我们要通过rich规则禁止外网访问重要端口如:22、3306等

1.禁止ipv6访问22端口

#firewall-cmd --zone=public --add-rich-rule=" rule family="ipv6" source address="::/0" port port="22" protocol="tcp" reject "

*上述命令重启firewall后会失效,永久生效如下

#firewall-cmd --zone=public --add-rich-rule=" rule family="ipv6" source address="::/0" port port="22" protocol="tcp" reject " --permanent
#firewalld-cmd --reload

2.开放内网ipv4访问3306端口

#firewall-cmd --zone=public --add-rich-rule="  rule family="ipv4" source address="192.168.0.0/24" port port="3306" protocol="tcp" accept "

*上述命令重启firewall后会失效,永久生效如下

#firewall-cmd --zone=public --add-rich-rule="  rule family="ipv4" source address="192.168.0.0/24" port port="3306" protocol="tcp" accept " --permanent
#firewalld-cmd --reload

rich规则详解

  • –add-rich-rule选项,将该规则描述为其参数。规则以rule关键字开头。
  • family:我们指定该规则仅应用于IPv4数据包:如果未提供此关键字,则该规则将同时应用于IPv4和IPv6。
  • source address:我们提供数据包必须具有的源地址,才能使用源地址触发规则。
  • service:我们指定了规则的服务类型
  • port:我们指定了端口
  • reject/drop/accept,我们提供了数据包与规则匹配时要执行的操作

rich规则的其他命令行参数

Linux防火墙firewalld的rich规则配置-下一朵云

删除rich规则

#firewall-cmd --zone=public --remove-rich-rule=" rule family="ipv6" source address="::/0" port port="22" protocol="tcp" reject "

同样永久生效添加–permanent

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。