pf 资料

frags - 在内存池中进行数据包重组的最大数目。默认是5000。
src-nodes - 在内存池中用于追踪源地址(由stick-address 和 source-track选项产生)的最大数目,默认是10000。
states - 在内存池中用于状态表(过滤规则中的keep state)的最大数目,默认是10000。

max number
服务器最大可以建立的连接数(状态数量),如果已经建立的连接数达到了这个数那么多处的连接将被丢弃。

source-track
跟踪每个IP的连接状态数它有中使用格式:source-track rule 和 source-track global

max-src-nodes number
最多允许连接的IP数量,它必须和“source-track rule”一块使用。

max-src-states number
单个IP的最大连接数。

例子:
pass in on $ext_if proto tcp to $web_server port www flags S/SA keep state \
(max 200, source-track rule, max-src-nodes 100, max-src-states 3)

这个例子达到了这样的效果:

| 绝对限制了最大连接状态数为200个。
| 所有连接状态数据依据source-track规则提供。
| 最大允许100个节点(IP地址)并发连接。
| 每个IP地址最大3个连接状态。


max-src-conn number
单个IP的最大连接数,注意这里是指完成了三次握手的并发连接数

max-src-conn-rate number/interval
但IP的连接建立的速率(个/秒)


例子:
table <abusive_hosts> persist
block in quick from <abusive_hosts>
pass in on $ext_if proto tcp to $web_server port www flags S/SA keep state \
(max-src-conn 100, max-src-conn-rate 15/5, overload <abusive_hosts> flush)


overload <table>
在这里放置符合条件的IP

flush [global]
清除原来的IP状态

这个例子达到这样的效果:

| 允许每个IP最大可以有100个非并发的连接
| 允许每个IP最大连接建立的速率小于每秒15个
| 把连接建立过快的IP放到abusive_hosts表中
| 一旦一个IP被放到了abusive_hosts表中后,立即应用block规测
原文地址:https://www.cnblogs.com/studio313/p/1005396.html