linux – 我应该使用iptables对数据包进行速率限制吗?

前端之家收集整理的这篇文章主要介绍了linux – 我应该使用iptables对数据包进行速率限制吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Ubuntu Server上使用iptables.它是VPS上的Web服务器.
我想知道我是否应该对数据包进行速率限制.如果是这样,我应该限速?我应该全球或按IP地址这样做吗?

参考
我看到人们暗示:

# Limit packet traffic on a TCP or UDP port:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -m limit --limit $lim/s --limit-burst $lb -j ACCEPT

# Limit established/related packet traffic:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit $lim/s --limit-burst $lb -j ACCEPT

以上,全球限速似乎并不是非常有用,至少在我能想象的情况下.有没有我应该在全球范围内限价的情况?
我相信每个IP的速率限制通常更好:

# Add the IP to the list:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -m recent --set --name RATELIMITED
# Drop if exceeded limit:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -m recent --update --seconds $sec --hitcount $hc --rttl --name RATELIMITED -j DROP
# Accept if inside limit:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -j ACCEPT

其他问题:远程IP可能是欺骗性的.如何正确限制它们?
为此添加了另一个问题:
https://serverfault.com/questions/340258/how-to-rate-limit-spoofed-ips-with-iptables

目标
我正在努力降低一些D / DoS攻击和一般滥用的风险.

有关
How can I rate limit SSH connections with iptables?

PS:我刚刚为ICMP打开了一个相关问题,它包含了该协议的速率限制:iptables | Types of ICMP: which ones are (potentially) harmful?

解决方法

速率限制不是预防,而是对DoS的邀请 – 特别是在上面介绍的风格中,如果超过了没有状态信息的特定速率的未经身份验证的数据包,将丢弃数据包.由于每个人都可以在此连接状态下伪造数据包(包括源IP地址)而不需要更多努力,因此将出现利用您的速率限制工具的新DoS攻击向量.

速率限制通常只有你有意义才有意义

>您的配置中可预测的硬连接或软连接限制
>将一般流量的速率限制设置为低于此限制,以便能够设置优先级或管理流量的连接,而不管负载如何

虽然1.通常很难确定甚至打扰,但2.显然只有在能够在连接设置时可靠地区分“优先级或管理”流量时才会起作用 – 例如如果它来自不同的网络接口.

在其他情况下,它宁愿降低系统的弹性而不是添加它.

猜你在找的Linux相关文章