最近,分布式拒绝服务攻击已经成为互联网上的一个主要麻烦。通过正确地过滤和限制您的网络,您可以防止自己成为这些攻击的受害者或肇事者。
您应该过滤您的网络,以防止非本地 IP 源地址的数据包离开您的网络。这可以阻止人们匿名地向互联网发送垃圾信息。
速率限制与之前展示的非常相似。为了唤起您的记忆,我们再次展示 ASCII 图
[The Internet] ---<E3, T3, whatever>--- [Linux router] --- [Office+ISP] eth1 eth0 |
我们首先设置先决条件部分
# tc qdisc add dev eth0 root handle 10: cbq bandwidth 10Mbit avpkt 1000 # tc class add dev eth0 parent 10:0 classid 10:1 cbq bandwidth 10Mbit rate \ 10Mbit allot 1514 prio 5 maxburst 20 avpkt 1000 |
如果您有 100Mbit 或更高的接口,请调整这些数字。现在您需要确定您想允许多少 ICMP 流量。您可以使用 tcpdump 进行测量,让它写入文件一段时间,并查看有多少 ICMP 通过您的网络。不要忘记提高快照长度!
如果测量不切实际,您可能希望选择可用带宽的 5%。让我们设置我们的类别
# tc class add dev eth0 parent 10:1 classid 10:100 cbq bandwidth 10Mbit rate \ 100Kbit allot 1514 weight 800Kbit prio 5 maxburst 20 avpkt 250 \ bounded |
这限制在 100Kbit。现在我们需要一个过滤器将 ICMP 流量分配给这个类别
# tc filter add dev eth0 parent 10:0 protocol ip prio 100 u32 match ip protocol 1 0xFF flowid 10:100 |