1
tony1016 2017-05-16 09:24:00 +08:00 5
科学上网经验告诉我们,这么大的列表还是配合 ipset 用最快
|
3
qianguozheng 2017-05-16 09:34:18 +08:00 6
ipset 正解,首先你要了解的 netfilter 的原理,说白了整体逻辑就是遍历每一个 HOOK 上注册的表,表上建立的链, 如果觉得复杂,就理解为链表,每一个都遍历,数量越多,一个数据包走过的路程就越多,相对来说就越慢。
如果你的规则有共通性,当然可以通过 ipset 的 hash 方式来处理,哈希表查找起来肯定比链表快。 |
4
unboy OP |
5
psfang 2017-05-16 09:38:07 +08:00
之前遇到过,加的 IP 太多,性能消耗太大,跪了。。
|
6
QQ2171775959 2017-05-16 10:13:08 +08:00 1
这个只能做 IP 流量屏蔽了,不过这个只能简单的处理,如果别继续用新的 IP 来攻击,还是会有一样的问题出现,最好是做个 IP 防御策略,对不正当的流量进行 CDN 清洗。
|
7
Jodal 2017-05-16 11:04:59 +08:00 1
ipset 加进 hash,iptables drop 掉,复杂度是 O(1)。
|
8
Showfom 2017-05-16 12:48:47 +08:00 via iPhone
这么多 ip 不适合在服务器端弄了 买硬件防火墙吧
|
9
rrfeng 2017-05-16 12:56:00 +08:00
只有我觉得 100000 IP 不太可能吗?这么大规模的攻击你确定有待遇享受?
还是再分析一下来源好 |
10
zhs227 2017-05-16 12:56:48 +08:00
用 ipset。但是 100,000 有点多了,感觉不是真实来源 IP。
|
11
gdtv 2017-05-16 13:25:22 +08:00 via Android
楼上说 10 万 ip 不可能,我前不久就遇到了类似的情况,有几万个 ip,,后来用 ipset 阻挡了
|
12
unboy OP |
13
rrfeng 2017-05-16 14:11:41 +08:00
什么服务?请求是什么样的?反射攻击吗?还是网页挂马之类的?
10 万即使封了,不会影响正常用户吗? |
14
0ZXYDDu796nVCFxq 2017-05-16 14:17:19 +08:00 1
1. 抓包的不一定准确,因为数据包可能是伪造来源 IP。最好确定是否是真实 IP
2. 10 万 IP 很正常,我的 IP 信誉库里有百万以上的黑名单。可以用工具将 IP 进行合并,很可能有些是整个 C 段都是攻击来源,合并后方便管理。 |
16
0ZXYDDu796nVCFxq 2017-05-16 14:33:17 +08:00
@unboy 可以写程序来处理,没有现成的工具。
我们一般是查 IP 来源,结合多个 IP 数据库来识别。 Python 推荐 ipaddress 这个库,能想到的计算方式都支持。 初期可以简单的用 IP 列表,数量不会影响到多少效率。 合并只是方便后续维护和更新。 |
17
Jodal 2017-05-16 17:27:20 +08:00 1
1. 抓包确实不太准确,数据包是可以伪造,也可能是肉鸡。如果大量 block 的话,会影响相应的服务,并且现在客户端都是 Nat,block 掉之后,有可能是一大批用户没法使用。PS: netstat 可以输出这些 IP
2. 尽量要隐藏服务端的源 IP,比如 cloudflare 服务,但是国内好像做的都不是很好。 3. 买 DDos 防火墙,但是源 IP 暴露的话,也很难办。 4. ipset 性能其实很好,10w IP 的话,机器应该很容易扛过去。 5. 需要查看 ipset 的话,直接 man ipset 6. 以下是相关的测评 https://workshop.netfilter.org/2013/wiki/images/a/ab/Jozsef_Kadlecsik_ipset-osd-public.pdf https://strongarm.io/blog/linux-firewall-performance-testing/ |
18
ericFork 2017-05-16 18:48:07 +08:00
看到这里突发奇想,有人知道 Windows Server 高级防火墙的按 IP 阻挡的实现是链表还是哈希么?
|
19
xierch 2017-05-16 23:23:17 +08:00
顺带一提,除了用 iptables + ipset,还能用 nftables
https://wiki.nftables.org/wiki-nftables/index.php/Sets |
20
kiss2013star 2017-05-17 10:18:37 +08:00 via Android
|
21
okudayukiko0 2017-05-18 00:42:32 +08:00 via iPhone
硬件防火墙,其实对于某些大型 DDoS 就不是一个硬件防火墙能搞定的,IP 或可以伪造
|