Chinaunix

标题: 急求PF限连接数方法 [打印本页]

作者: sjfff99    时间: 2011-07-20 13:22
标题: 急求PF限连接数方法
第1步:设置一个暴力攻击嫌疑的列表,凡是连接总是超过设定值或者单位时间内连接突发速率超过设定值的都视为可疑对象
table <bad_ip> persist

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

第3步:设置相关连接限制
pass in on $int_if inet proto {tcp,udp} from any to any keep state (max-src-conn 100, max-src-conn-rate 15/5, overload <bad_ip> flush)

根本不起作用。
查看后。不是有大量的连接数
IP:192.168.0.250 Connections:123
IP:192.168.0.31 Connections:155
IP:192.168.0.38 Connections:134
IP:192.168.0.39 Connections:157
IP:192.168.0.48 Connections:112
IP:192.168.0.54 Connections:180
IP:192.168.0.55 Connections:150
IP:192.168.0.56 Connections:332
IP:192.168.0.60 Connections:201
IP:192.168.0.63 Connections:425
IP:192.168.0.65 Connections:343
IP:192.168.0.68 Connections:108
IP:192.168.0.82 Connections:325
IP:192.168.0.85 Connections:187
IP:192.168.0.89 Connections:216
IP:192.168.0.95 Connections:106
IP:192.168.0.97 Connections:272
IP:192.168.0.99 Connections:137
作者: sjfff99    时间: 2011-07-20 20:10
后修改
table <work_ip> {192.168.0.0/24,!192.168.0.1}

block in quick from <bad_ip>

pass in quick on $int_if inet proto tcp from <work_ip> to any keep state (max-src-conn 200, max-src-conn-rate 50/5, overload
<bad_ip> flush)

这样直接打不开网页了。有知道怎么解决吗?
作者: 剑心通明    时间: 2011-07-20 21:32
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)

这样的应该可以啊,看看这里http://www.bsdlover.cn/html/42/n-642.html,有详细的解释
作者: sjfff99    时间: 2011-07-20 23:21
本帖最后由 sjfff99 于 2011-07-20 23:39 编辑

table <work_ip> {192.168.0.0/24,!192.168.0.1}


block in quick from <bad_ip>



pass in quick on $ext_if1 inet proto {tcp,udp} from <work_ip> to any keep state
(max-src-conn 100, max-src-conn-rate 20/5, overload <bad_ip> flush)
pass in quick on $ext_if2 inet proto {tcp,udp} from <work_ip> to any keep state
(max-src-conn 100, max-src-conn-rate 20/5, overload <bad_ip> flush)

但是没效果呀

IP:192.168.0.11 Connections:480
IP:192.168.0.22 Connections:136
IP:192.168.0.47 Connections:110
IP:192.168.0.78 Connections:1153
IP:192.168.0.82 Connections:142
IP:192.168.0.87 Connections:271
IP:192.168.0.90 Connections:613
IP:192.168.0.96 Connections:297


在加了一条限内网的。
pass in quick on $int_if inet proto {tcp,udp} from <work_ip> to any keep state (max-src-conn 100, max-src-conn-rate 20/5, overload <bad_ip> flush)
立马网页打不开了。。。
作者: gihnius    时间: 2011-07-21 10:24
IP:192.168.0.250 Connections:123
IP:192.168.0.31 Connections:155
IP:192.168.0.38 Connections:134
IP:192.168.0.39 Connections:157
IP:192.168.0.48 Connections:112
IP:192.168.0.54 Connections:180
IP:192.168.0.55 Connections:150
IP:192.168.0.56 Connections:332
IP:192.168.0.60 Connections:201
IP:192.168.0.63 Connections:425
IP:192.168.0.65 Connections:343
IP:192.168.0.68 Connections:108
IP:192.168.0.82 Connections:325
IP:192.168.0.85 Connections:187


请问 你上面这些是统计活动连接吗?
作者: zeissoctopus    时间: 2011-07-21 10:59
凡路由不需要經過 pf 的路由器,那麼你一切所定的 pf 規則皆不會起作用
作者: sjfff99    时间: 2011-07-21 21:55
这话是什么意思,不经过PF的路由器?。。不太明白。。。
作者: zeissoctopus    时间: 2011-07-22 02:06
本帖最后由 zeissoctopus 于 2011-07-22 02:14 编辑

................
作者: zeissoctopus    时间: 2011-07-22 02:11
回复 7# sjfff99

这话是什么意思,不经过PF的路由器?。。不太明白。。。
sjfff99 发表于 2011-07-21 21:55


内网  与  Web Server 之间 如果有交换器,当内网任何一点,知道 Web Server 的位址后,你认为内网需不需要先路过  PF 才绕回去 Web Server ?

你問防火墙规则之前,宜先交待一下实际如果接线,防火墙规则,只会对出入防火墙封包起作用,如果封包有别的途径绕过防火墙,你的内网规则都是徒然。
作者: zeissoctopus    时间: 2011-07-22 08:43
table  {192.168.0.0/24,!192.168.0.1}

在加了一条限内网的。
pass in quick on $int_if inet proto {tcp,udp} from <work_ip> to any keep state (max-src-conn 100, max-src-conn-rate 20/5, overload <bad_ip> flush)
立马网页打不开了。。。


我的假设:如果你的 PF 正是 192.168.0.1,并把 192.168.0.0/24 的 DNS 指向 192.168.0.1 的话

现在你把 192.168.0.1 排除出 work_ip 之外,并把 192.168.0.1 栏截去任何地方,包括 192.168.0.0/24。结果好清楚了,你把 DNS 都一并栏截,什么地方都去不到
作者: zhuchangyu    时间: 2011-07-22 17:38
本帖最后由 zhuchangyu 于 2011-07-22 17:43 编辑

我也遇到同样的问题。
FreeBSD 8.2-RELEASE

#Block IP Connection > 200
table <blockbrute> persist
block in quick from <blockbrute>
pass in on fxp1 from any to any flags S/SA keep state (max-src-conn 200,overload <blockbrute> flush global)

我这开着迅雷下了4G多的电影,连接数超过1000个。根本不理。。。
另外一个只有10几个连接的ip直接被扔进了blockbrute。
这条语句我在FB7.3上用过。一点问题没有。不知道是我哪里配错了。还是bug了
作者: sjfff99    时间: 2011-07-22 19:59
可能是我没有说清楚。
192.168.0.1 是OB+PF路由器。(电信 网通 双线)
$ext_if1 = 电信IP
$ext_if2 = 网通IP

$int_if = 192.168.0.1

192.168.0.1/24
现在是想限制所有内网的IP地址为每台机子最大300连接数(TCP UDP)

是限哪个网卡?要怎么限才管用?
一直限的不管用。。只要有人跑讯雷或PPS。QQLIVE类的。立马上500连接数以上了。
作者: lsstarboy    时间: 2011-07-22 20:51
限制在内网网卡呗,如果能指定方向,就是内网网卡的in,不会pf,用ipfw倒简单:

ipfw add skipto divert_rule ip from 192.168.0.1/24 to any in limit  src-addr 100

divert_rule就是做nat的那一条。
作者: sjfff99    时间: 2011-07-22 23:24
我想也是内网的应好些。但是PF的例子全是外网的。限了下内网。以上。打不开网页了。

不管你做什么用。单机最大连接数200

求下规则要怎么写。。
作者: lsstarboy    时间: 2011-07-23 10:20
限制内网的时候,要先做个简单的QoS,事先放行DNS,否则如果迅雷之类的东西把连接数占满了,dns出不去,就解析不到域名了。
作者: sjfff99    时间: 2011-07-23 19:16
问下。PF的限制连接数。只能限单IP的吧。只以是一条规则限制一台机了的连接数吧。不能一条规则限制多台机子吧?

限后,基本上跑在250以下。没有超出的。  还在测试中。。。
  (max 200,source-track rule, max-src-nodes 150,max-src-states 100)

  IP:192.168.0.100 Connections:207
IP:192.168.0.104 Connections:68
IP:192.168.0.111 Connections:13
IP:192.168.0.113 Connections:19
IP:192.168.0.114 Connections:57
IP:192.168.0.115 Connections:165
IP:192.168.0.12 Connections:11
IP:192.168.0.120 Connections:123
IP:192.168.0.121 Connections:42
IP:192.168.0.123 Connections:43
IP:192.168.0.13 Connections:16
IP:192.168.0.14 Connections:108
IP:192.168.0.18 Connections:11
IP:192.168.0.19 Connections:118
IP:192.168.0.190 Connections:26
IP:192.168.0.22 Connections:80
IP:192.168.0.25 Connections:230
IP:192.168.0.250 Connections:27
IP:192.168.0.27 Connections:20
IP:192.168.0.30 Connections:180
IP:192.168.0.31 Connections:170
IP:192.168.0.32 Connections:23
IP:192.168.0.34 Connections:22
IP:192.168.0.37 Connections:14
IP:192.168.0.39 Connections:38
IP:192.168.0.47 Connections:12
IP:192.168.0.55 Connections:45
IP:192.168.0.56 Connections:38
IP:192.168.0.64 Connections:104
IP:192.168.0.68 Connections:147
IP:192.168.0.73 Connections:14
IP:192.168.0.75 Connections:16
IP:192.168.0.76 Connections:13
IP:192.168.0.79 Connections:130
IP:192.168.0.81 Connections:57
IP:192.168.0.83 Connections:18
IP:192.168.0.84 Connections:71
IP:192.168.0.91 Connections:10
IP:192.168.0.93 Connections:14
IP:192.168.0.95 Connections:96
作者: zhuchangyu    时间: 2011-07-25 10:15
问下。PF的限制连接数。只能限单IP的吧。只以是一条规则限制一台机了的连接数吧。不能一条规则限制多台机子 ...
sjfff99 发表于 2011-07-23 19:16


你这个是做global limit吧?要从内网限制一个用户(ip),还是要从max-src-conn,max-src-conn-rate这些参数上控制吧?
作者: sjfff99    时间: 2011-07-26 09:51
只想限制P2P和讯雷的一些占用太多的连接。。其它的人玩卡机。但又不相断网。只能限最大连接数,和并发数。

限期后,是有效是的。但是MAX 200 好像不太管用。。有时候能超过这个数。最大不直过400,2分钟后,就自动降下来了。
作者: xjw8025    时间: 2011-07-27 20:05
回复 1# sjfff99


   可以参考comixwall里面脚本研究一下
作者: sjfff99    时间: 2011-07-28 10:11
好。谢谢了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2