iptables – 只阻止https响应

我对Linux很陌生,使用iptables 。 这是我想要完成的:

  1. 我有一个ASP.net客户端与Linux上的Web逻辑托pipe的Web服务交谈。 通信是通过SSL。

  2. 我正在尝试使用iptables完成只是阻止回应客户端。

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

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

我所做的testing目的是刷新iptables所有规则。 我在INPUTOUTPUTFORWARD链上为ACCEPT创build了默认策略。 接下来,我在OUTPUT链中添加了一条规则来DROP具有客户端源IP的任何东西。

 iptables -A OUTPUT -s client_ip_address -j DROP 

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

任何帮助表示赞赏?

这取决于你想要完成什么。 如果你想模拟networking超时使用这个:

 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 

如果你想模拟closures的端口(服务没有运行)使用:

 iptables -A INPUT -s clientip -j REJECT 

它会发送ICMP目的地不可达消息给客户端。

希望能帮助到你。

在OUTPUT链中可能有一个规则允许所有ESTABLISHED和RELATED连接 – 这是很常见的。 如果有这样一条规则,那么在你放入-A的DROP规则之前,它将被匹配。 尽量把你的DROP规则放在OUTPUT链中:

 iptables -I OUTPUT -d clientip -j DROP 

将把这条规则放在链条的最顶端。