- 论坛徽章:
- 0
|
李忠宪的文章这里是不是有错?
大概我没说清楚,麻烦再看看:
李忠宪的文章:
参数 -m limit --limit
范例 iptables -A INPUT -m limit --limit 3/hour
说明 用来比对某段时间内封包的平均流量(单位时间为秒),上面的例子是用来比对:每小时平均流量是否超过一次 3 个封包。除了每小时平均一次外,也可以每秒钟、每分钟或每天平均一次,默认值为每小时平均一次,参数如后: /second、 /minute、/day。除了进行封包数量的比对外,设定这个参数也会在条件达成时,暂停封包的比对动作,以避免因骇客使用洪水攻击法,导致服务被阻断。
参数 --limit-burst
范例 iptables -A INPUT -m limit --limit-burst 5
说明 用来比对瞬间大量封包的数量,上面的例子是用来比对一次同时涌入的封包是否超过 5 个(这是默认值),超过此上限的封包将被直接丢弃,其余封包放入缓冲区等待处理。
举实例来说明:假设现在同时涌入10个封包,前5 个封包进入缓冲区(--limit-burst 5),其余封包丢弃,这5个封包由于iptables每秒只处理一个1个(--limit 1/s),所以共需要5秒钟,在这5秒内将不再接受任何封包。
看这段红字的意思是,大量超过limit限制的封包涌入时,只处理前5 个,其余丢弃。
可是台湾“天蓝工作室”的资料却是这样写的:iptables -A INPUT -p icmp -s 11.22.33.44 -m limit --limit 6/m -j ACCEPT
那 麼這道規則只會每分鐘核對六次,過了六次後,這個標頭不算符合。可是這個封包不符合該規則,便會往下層繼續與其他規則核對,到最後這個封包並不能與任何一道規則相符合,而這道 chain的預設處理為ACCEPT,那麼這個封包還是會進入您的網絡,即是說剛才這道過濾規則還不足以把這類濾掉。
於是,我們需要在這道過濾規則下面加上:
iptables -A INPUT -p icmp -s 11.22.33.44 -j DROP
那麼當上面的規則已因超越六次後,已經變成不符合時,該封包會立刻與下面這道規則核對,並且被消滅。
而且李忠宪的文章中有这样的例子:
$IPTABLES -t nat -N syn_flood
$IPTABLES -t nat -A syn_flood -m limit --limit 3/m --limit-burst 3 -j RETURN
$IPTABLES -t nat -A syn_flood -j \
LOG --log-level INFO --log-prefix "IPTABLES SYN-FLOOD:"
$IPTABLES -t nat -A syn_flood -j DROP
$IPTABLES -t nat -A PREROUTING -p TCP --syn -j syn_flood
按“天蓝工作室”的资料,从这个例子来理解,应该是流量在limit的数值之内时(流量小,安全)进行RETURN动作,如果流量超过limit的数值,就不符合该规则了,就不能再RETURN了,而是只抓出三个包用LOG记录下来,最后再把这三个包DROP掉。
可是这样的理解与上面的红字那一段相矛盾了,按红字的意思看刚才这个例子,似乎是即使超过limit的限制了,也只是把多余的包丢弃,而把那三个包继续可以RETURN动作。
我现在就是不明白,在坛子里经常有这样的句子:
-m limit --limit 100/s --limit-burst 100 -j ACCEPT
我觉得应该是流量小于等于limit限制时进行ACCEPT,问题是如果大于limit了,是仍然ACCEPT其中的100个,把其它丢弃呢,还是所有的都不能ACCEPT了,只能继续下面的后续规则呢? |
|