PF最牛的两本书和限制连接数和新连接的速率的方法

很多使用PF的朋友经常会有一个需求,就是针对源地址作一些连接 限制,如单个源地址可连接总数,单个源地址的连接突发速率等等。在学习了《The book of PF-- A No-Nonsense Guide to the OpenBSD firewall》后,发现其实实现起来还是很容易的。而且这个解决办法从OpenBSD 3.7(或者FreeBSD 6.0)中就已经开始提供了。

第1步:设置一个暴力***嫌疑的列表,凡是连接总是超过设定值或者单位时间内连接突发速率超过设定值的都视为可疑对象
table <bruteforce> persist

第2步:针对暴力***嫌疑对象设置相应的处理规则
block quick from <bruteforce>

第3步:设置相关连接限制
pass inet proto tcp from any to $my_network port $my_service_ports keep state \
(max-src-conn 100, max-src-conn-rate 100/5, overload<bruteforce> flush global)

其中:
max-src-conn        :容许一台远程主机同时连接服务器的连接数
max-src-conn-rate :容许一台远程主机发起新连接的速率
overload<bruteforce>:超过设定的网络连接参数的客户机将放置到bruteforce表中
flush global        :当某台远程主机的连接达到限制峰值后,该主机的连接将被中断

对于动态IP地址,永久地将超过限制峰值的IP放置在嫌疑列表中很显然不合理,可以通过设定超时值使IP在一段时间后过期。如:
#ptctl -t bruteforce -T expire 86400

PF---The_Book_of_PF-A_No-Nonsense_Guide_to_the_OpenBSD_Firewall.pdf
PF---Building_Firewall_with_OpenBSD_and_PF_2nd_Edition.pdf

出处 http://www.unix-center.net/bbs/viewthread.php?tid=14454