首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用firewalld / firewalld.richlanguage拒绝主机(而不是ip)

使用firewalld / firewalld.richlanguage拒绝主机(而不是ip)
EN

Server Fault用户
提问于 2018-10-20 08:43:32
回答 1查看 6.4K关注 0票数 1

是否可以在中添加一条规则来拒绝整个主机(不是ip或ip范围)?

例如,我希望拒绝来自my133y.org的所有连接。

使用防火墙丰富的语言,我可以放弃ip,但主机拒绝不提供手册页。

拒绝ip的示例

代码语言:javascript
复制
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.100.4/24" drop'

修改为:

代码语言:javascript
复制
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="my133t.org" drop'

我发现了一个错误:

代码语言:javascript
复制
Error: INVALID_ADDR: my133t.org
EN

回答 1

Server Fault用户

发布于 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

  1. dig +short serverfault.com
  2. 阻止那些目标IP地址。
  3. 定期重复,从删除过时的规则开始。
票数 6
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/936415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档