我试图阻止一个ip(networkingstresser工具 – ddos网站销售ddos机器人在线)第一个我试图阻止与iptables:
iptables -A INPUT -d 173.193.26.73 -j DROP iptables -A INPUT -s 173.193.26.73 -j DROP
但是我仍然看到ip和带宽依然在iftop上。 还看到tcpdump上的ip。
这是正常的吗? 这里有什么问题?
是的,这很正常。 iptables不会阻止你的物理接口上的入站stream量,从而提高你的iftop计数,并且不会阻止内核看到它在那里,因此tcpdump输出。 但是,它确实阻止内核将stream量传递给任何可能正在监听的stream量。
如果您看到任何输出stream量来响应这些input数据包,则会出现问题。 但是,否则,这是正常的。
数据包仍然在物理上传输到您的系统,iptables只是在他们到达发件人想要的地方之前将其过滤掉。
您可以采取以下几项措施来纠正潜在的问题:
在您的机器和外部世界之间放置一台路由器,为您进行过滤,并透明地转发所有其他数据包。
路由器为这种操作进行了优化,所以作为第一道防线,它当然不是一个坏主意。 虽然你会想要保持固件更新,如果它不自己做。
当然,你也想把DNSlogging改成一个故障转移服务器(如果你担心停机时间,你很可能是这样),同时你要连接路由器并确保它正在做你想做的事情。
使用-I而不是-A ; 这样,阻塞规则首先得到处理,并且你的CPU不会烧尽可能多的周期检查你立即知道对所有其他规则可怕的数据包。
如果网站试图阻止你,我猜测它们构成了一个重要的stream量来源,如果是的话,适用于它们的规则应该早一点处理。 一个好的经验法则是根据事件发生的可能性来排列规则。 networking事件的可能性越大,应该处理的越早。
当然,这也必须权衡处理networking事件的复杂性(例如,如果事件A的可能性是事件B的两倍,但需要处理300次,事件B的规则应该先行),但是在这种情况下对于一个试图进行拒绝服务攻击的网站来说,这是一个安全的赌注。
防止iptables规则集过于繁琐的一种方法是创build新的链来处理每种types的stream量(例如,一个链处理专用网连接尝试,一个处理ssh节stream的链等),这样INPUT链可以被认为是一种main方法,如果你有一个编程背景)只是调用其他链来处理肉。 所以如果你想试验新的规则集,或者改变不同事件的处理顺序,你只需要改变INPUT中无条件跳转的顺序。
检查他们的互联网服务提供商的服务条款 ,如果他们违反了,通知他们的互联网服务提供商(尽可能详细地说明他们的违规行为;你会想提供参考,你会想接受礼貌和专业人士,如果收到你的电子邮件的人喜欢你,而你让他们的工作更容易做,你更有可能得到一个结果)。