如何防止代码发起出站 http 连接?

如何防止代码发起出站 http 连接?

我想阻止代码与其他特定主机建立 http 连接。我的理解是,这可以在 /etc/hosts.deny 中完成。它会是什么样子?

答案1

您可以在 /etc/hosts 中将主机名映射到本地主机(比 hosts.deny 更容易设置,但缺乏精细的控制)。

hosts 文件中的示例条目:

google.com    127.0.0.1
someotherdomain.com    127.0.0.1

哦,顺便说一句,这个问题更适合serverfault.com。

答案2

这种/etc/hosts/方法很糟糕,因为无论您将“禁止主机”重定向到哪个地址,另一个 Web 服务器都可能会监听。

如果你有写权限/etc/hosts,你通常并负责设置防火墙。您应该在此处设置有关传出流量的规则。

答案3

Linux 内核具有防火墙功能。这些功能可能会给您带来最佳效果。从您的问题中不清楚您是否要阻止从您的机器到特定主机的所有 http 连接,还是仅阻止特定程序 - 但如果需要,您还可以按来源应用程序或用户过滤流量。

我通常使用火力全开它是基本防火墙配置命令的便捷包装器。

答案4

不,hosts.deny 不会这样做。对 /etc/hosts 进行黑客攻击也没有任何作用(它可能会破坏解析器库,但如果应用程序不使用标准解析器或以其他方式查找地址,则不会阻止应用程序进行出站连接)。

使用防火墙确实是最明显的方法。对于本地生成的流量,iptables 能够通过用户 ID、组 ID 或进程 ID 阻止出站数据包,这意味着您可以将其限制到特定进程。可能最简单的方法是通过用户 ID 执行此操作,并在某个受限制的用户下运行它。

相关内容