Iptables - 仅阻止 https 响应

Iptables - 仅阻止 https 响应

我对 Linux 还很陌生,并且正在使用iptables。以下是我想要实现的目标:

  1. 我有一个 ASP.net 客户端,它与通过 Linux 上的 web-logic 托管的 Web 服务进行通信。通信通过 SSL 进行。

  2. 我尝试完成的操作iptables仅是阻止将响应返回给客户端。

  3. 因此客户端发出 Web 服务调用,Web 服务处理请求并回复客户端。

  4. 我希望 Web 服务接收请求但阻止其向客户端返回响应。

为了测试目的,我清除了 中的所有规则。我在、和链上iptables创建了默认策略。接下来,我向链中添加了一条规则,该规则适用于具有客户端源 IP 的任何内容。ACCEPTINPUTOUTPUTFORWARDOUTPUTDROP

iptables -A OUTPUT -s client_ip_address -j DROP

显然,这没什么区别。我可以从客户端调用 Web 服务并仍能收到响应。

任何帮助表示感谢?

答案1

这取决于你到底想做什么。如果你想模拟网络超时,请使用以下命令:

iptables -A OUTPUT -d clientip  -j DROP

它将悄悄地丢弃从服务器到客户端的所有数据包。

如果您想让 TCP 握手发生然后终止连接(可能有用或者您可以稍后激活上述规则)使用以下命令:

iptables -A OUTPUT -d clientip -p tcp --tcp-flags SYN,ACK SYN,ACK -j ACCEPT
iptables -A OUTPUT -d clientip  -j DROP

如果您想模拟关闭的端口(服务未运行)使用:

iptables -A INPUT -s clientip  -j REJECT

它将向客户端发送回“ICMP 目标不可达”消息。

希望能帮助到你。

答案2

可能在 OUTPUT 链中较早的位置有一条规则允许所有 ESTABLISHED 和 RELATED 连接 - 这很常见。如果存在这样的规则,它将在您使用 -A 放入的 DROP 规则之前进行匹配。尝试在 OUTPUT 链中尽早放入 DROP 规则:

iptables -I OUTPUT -d clientip  -j DROP

将把规则置于链条的最顶端。

相关内容