ML-*_*L-- 8 networking linux firewall iptables rate-limiting
我在 Ubuntu 服务器上使用 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
Run Code Online (Sandbox Code Playgroud)
以上,全局速率限制似乎不是很有用,至少对于我可以想象的情况。有没有我应该在全球范围内限制速率的情况?
我相信每个 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
Run Code Online (Sandbox Code Playgroud)
附加问题:远程 IP 可能被欺骗。如何正确限制它们?
为此添加了另一个问题:https :
//serverfault.com/questions/340258/how-to-rate-limit-spoofed-ips-with-iptables
我试图降低某些 D/DoS 攻击和普遍滥用的风险的目标。
相关
如何使用 iptables 限制 SSH 连接的速率?
PS:我刚刚为 ICMP 打开了一个相关问题,它包括此协议的速率限制:iptables | ICMP 的类型:哪些(可能)有害?
速率限制不是预防,而是对 DoS 的邀请——尤其是在上面介绍的风格中,如果没有状态信息的未经身份验证的数据包超过一定速率,数据包将被丢弃。由于每个人都可以在此连接状态下轻松伪造数据包(包括源 IP 地址),因此将出现利用您的速率限制设施的新 DoS 攻击向量。
速率限制通常只有在您有
虽然 1. 通常很难确定甚至打扰,但 2. 显然只有在您能够在连接设置时可靠地将“优先级或管理”流量与其他流量区分开来时才有效 - 例如,如果它来自不同的网络接口。
在其他情况下,它宁愿降低系统的弹性而不是增加它。
归档时间: |
|
查看次数: |
25272 次 |
最近记录: |