是否可以在中添加一条规则来拒绝整个主机(不是ip或ip范围)?
例如,我希望拒绝来自my133y.org的所有连接。
使用防火墙丰富的语言,我可以放弃ip,但主机拒绝不提供手册页。
拒绝ip的示例
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.100.4/24" drop'修改为:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="my133t.org" drop'我发现了一个错误:
Error: INVALID_ADDR: my133t.org发布于 2018-10-20 09:57:36
防火墙-cmd的手册页告诉了事实:
源地址或地址范围要么是IP地址,要么是具有IPv4或IPv6掩码的网络IP地址,或者是具有ipset:前缀的MAC地址或ipset。对于IPv4,掩码可以是网络掩码,也可以是普通数字。对于IPv6,掩码是一个普通数字。不支持使用主机名。
这有一个很好的理由。firewalld是一个包过滤器。它将数据包与它所拥有的规则进行比较。IP数据包具有源IP地址和目标IP地址,但没有主机名。因此,使用主机作为标准需要从其他来源(即域名系统DNS )收集更多信息。这种实现很容易受到拒绝服务攻击的攻击,因为这样很容易使服务器在过滤数据包时生成新的通信量。
此外,虽然通过查询DNS中的A记录很容易将主机名转换为IP地址,但检测IP地址的所有主机名并不那么简单。当然,IP可以有反向的PTR记录,但它既不是强制性的,也不是值得信赖的。
例如,一些具有内容过滤器的统一威胁管理(UTM)解决方案基于禁止的主机名阻止HTTPS通信,而不加密TLS通信量。这意味着它不能使用URL,因为HTTP请求及其Host:头是加密的:它只看到IP地址,就像防火墙一样。它没有过滤所有HTTPS流量到该IP地址的内容,而是使用该主机名的IP地址预取列表。这正是你必须做的。
如果您真的想使用主机名,那么首先需要查询IP地址。说你想阻止你的员工在他们宝贵的工作时间上浏览serverfault.com。
dig +short serverfault.comhttps://serverfault.com/questions/936415
复制相似问题