在我的 Ubuntu 服务器上,我运行了一些自定义软件,这些软件连接到其供应商服务器以搜索更新。虽然这通常很有用,但出于安全原因,软件不应该自行更新。我发现,如果没有互联网连接,软件将无法更新,但仍会启动。但我显然无法关闭连接。该hosts
文件也不是一个替代方案,因为软件需要连接到供应商进行许可证检查。
所以我的问题是:如何重定向或阻止特定 URL 的传出 HTTP 流量。
总结: http://www.vendor.com/license
应该被允许,但http://www.vendor.com/update
应该阻止传出流量。
答案1
幸好,HTTP 及其标头都是以明文形式发送的!我们可以使用-m string
过滤器在 HTTP 标头中搜索 URL。
例子
我们要阻止:http://www.example.com/I/am/some/distinguishable/URL
iptables -A OUTPUT -p tcp -m string --string "/I/am/some/distinguishable/URL" --algo kmp -j REJECT --reject-with tcp-reset
谢谢丹尼斯感谢他的建议--reject-with tcp-reset
。