我在我的pf.conf中有以下设置来劝阻滥用的客户(我每天得到一些显然只是不加区别地拖动内容,拖慢所有内容):
pass in on $ext_if proto tcp to { $loadbalancer1_int } port $web_ports flags S/SA keep state (max-src-conn 80, max-src-conn-rate 200/5, overload <web_flood> flush) pass in on $ext_if proto tcp to { $loadbalancer2_int } port $web_ports flags S/SA keep state (max-src-conn 80, max-src-conn-rate 200/5, overload <web_flood> flush)
不幸的是,我的一些客户被阻止。 我不知道这些客户正在做什么来触发这样的networkingIO。 我不断提高价值观,并不断阻挠。 这些值(80秒内连接和200秒内连接在5秒内)是否在一般被认为是“滥用”?
“辱骂”是完全相对的,但是在networking访问方面,对连接数/秒的速率限制几乎可以肯定是为了吸引合法用户。
记住当你访问一个网页时会发生什么
index.html )。 index.html并找出它需要的其他资源:
HTTP keepalive在理论上保持连接()周期的数量,但一些浏览器可能不支持HTTP keepalive(或可能决定不使用它,在这种情况下,每个项目被下载意味着另一个连接打开到服务器。
因此,一个网页可能具有大量的连接 – 足以轻易地将您的防火墙绊倒,尤其是在IP上有多个用户或您的用户主动浏览的情况下。
而不是一蹴而就,你有几个select:
以pf和带宽标记匹配的数据包 – 限制他们与altq 。
这并不是很理想 – 你仍然要抓住合法用户 – 但至less他们被扼杀(缓慢),没有被封锁(破坏)。
使用mod_evasive , mod_security或类似的
这些模块对于Apache来说是更多的工作,但是更易于configuration,并且可以帮助您避免捕获合法的用户。