我是
Linux新手并使用iptables.这是我想要完成的事情:
>我有一个ASP.net客户端,与通过Linux上的Web逻辑托管的Web服务进行通信.通信是通过SSL进行的.
>我正在尝试使用iptables完成的任务只是阻止响应回客户端.
>因此,客户端进行Web服务调用,Web服务处理请求并回复客户端.
>我希望Web服务接收请求但阻止其响应回客户端.
我为测试目的所做的是从iptables中清除所有规则.我在INPUT,OUTPUT和FORWARD链上为ACCEPT创建了默认策略.接下来,我向OUTPUT链添加了一条规则,以DROP任何具有客户端源IP的东西.
iptables -A OUTPUT -s client_ip_address -j DROP
显然,这没有任何区别.我可以从客户端调用Web服务并仍然收到响应.
任何帮助表示赞赏?
解决方法
这取决于你想要完成什么.如果要模拟网络超时,请使用以下命令:
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 Destination unreachable消息发送回客户端.
希望能帮助到你.