首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Centos Docker iptables阻塞除域外的所有流量

问Centos Docker iptables阻塞除域外的所有流量
EN

Server Fault用户
提问于 2021-06-18 04:23:03
回答 1查看 340关注 0票数 2

我试图阻止所有出站流量从iptables的接口docker0。但我想打开几个域的访问权限:

我怎么能这么做?

我试过了:

代码语言:javascript
复制
iptables -I OUTPUT -o docker0 -j DROP 
iptables -I DOCKER -i docker0 -p udp --dport 53 -j ACCEPT 
iptables -I DOCKER -i docker0 -p tcp -d mydomain.com --dport 80 -j ACCEPT 
iptables -I DOCKER -i docker0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
EN

回答 1

Server Fault用户

回答已采纳

发布于 2021-06-18 06:01:39

这是不可能的。iptables控制网络过滤器,它是一个IP包过滤器(防火墙),作用于OSI第3级和第4级。

您可以使用Netfilter控制对某些IP地址(L3)和TCP/UDP端口(L4)的访问。

如果您想控制对网站的访问,您有以下选项:

  • 预先解析DNS名称,获取IP地址并将其放入防火墙。当您给它一个域名时,AFAIK iptables本身就是这样做的;它在Netfilter中配置的东西是解析该名称的IP地址。当该域的所有者决定更改IP地址时,您的规则将不再适用。如果在该服务器上托管了多个具有此IP地址的网站(即,存在一个承载多个名称的虚拟主机),则可以完全允许它们,或者完全禁用它们。这就是你现在似乎在做的事情;
  • HTTP(s)代理,它检查请求的域名并禁止访问某些域名。像ECH (eSNI)这样的现代发明将把你的能量降低到只控制对IP范围的访问,就像普通的防火墙一样,因为它使得你不可能得到请求的主机名;
  • DNS过滤,它配置您的递归解析器将为客户端解析哪些域,哪些域不会解析。再一次,像DNS over(通过Cloudflare)这样的现代发明将推断您的能力,因为您的DNS服务器将不再负责解析名称,并且您不可能知道请求哪个主机名;
  • 深度分组检查(DPI)。而且,现代互联网显然正在逐步消除第三方检查流量的可能性。
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1067080

复制
相关文章

相似问题

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