iptables 最多能阻挡多少个 ip? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
unboy
V2EX    Linux

iptables 最多能阻挡多少个 ip?

  • &nsp;
  •   unboy 2017-05-16 09:21:12 +08:00 6318 次点击
    这是一个创建于 3078 天前的主题,其中的信息可能已经有所发展或是发生改变。
    centos6.5 x64 系统
    近期服务器受到大量 ip 攻击,抓包筛选出大约 10 万个 ip,拟导入 iptables 拦截,请问 iptables 是否支持这么多的 ip,负载和性能上会有多大影响?此前有无相关数据测试?
    21 条回复    2017-05-18 00:42:32 +08:00
    tony1016
        1
    tony1016  
       2017-05-16 09:24:00 +08:00   5
    科学上网经验告诉我们,这么大的列表还是配合 ipset 用最快
    aksoft
        2
    aksoft  
       2017-05-16 09:30:06 +08:00
    @tony1016 +1 学习了
    qianguozheng
        3
    qianguozheng  
       2017-05-16 09:34:18 +08:00   6
    ipset 正解,首先你要了解的 netfilter 的原理,说白了整体逻辑就是遍历每一个 HOOK 上注册的表,表上建立的链, 如果觉得复杂,就理解为链表,每一个都遍历,数量越多,一个数据包走过的路程就越多,相对来说就越慢。

    如果你的规则有共通性,当然可以通过 ipset 的 hash 方式来处理,哈希表查找起来肯定比链表快。
    unboy
        4
    unboy  
    OP
       2017-05-16 09:37:10 +08:00
    @tony1016
    @qianguozheng 原来如此,学习了。感谢。
    psfang
        5
    psfang  
       2017-05-16 09:38:07 +08:00
    之前遇到过,加的 IP 太多,性能消耗太大,跪了。。
    QQ2171775959
        6
    QQ2171775959  
       2017-05-16 10:13:08 +08:00   1
    这个只能做 IP 流量屏蔽了,不过这个只能简单的处理,如果别继续用新的 IP 来攻击,还是会有一样的问题出现,最好是做个 IP 防御策略,对不正当的流量进行 CDN 清洗。
    Jodal
        7
    Jodal  
       2017-05-16 11:04:59 +08:00   1
    ipset 加进 hash,iptables drop 掉,复杂度是 O(1)。
    Showfom
        8
    Showfom  
    PRO
       2017-05-16 12:48:47 +08:00 via iPhone
    这么多 ip 不适合在服务器端弄了 买硬件防火墙吧
    rrfeng
        9
    rrfeng  
       2017-05-16 12:56:00 +08:00
    只有我觉得 100000 IP 不太可能吗?这么大规模的攻击你确定有待遇享受?

    还是再分析一下来源好
    zhs227
        10
    zhs227  
       2017-05-16 12:56:48 +08:00
    用 ipset。但是 100,000 有点多了,感觉不是真实来源 IP。
    gdtv
        11
    gdtv  
       2017-05-16 13:25:22 +08:00 via Android
    楼上说 10 万 ip 不可能,我前不久就遇到了类似的情况,有几万个 ip,,后来用 ipset 阻挡了
    unboy
        12
    unboy  
    OP
       2017-05-16 13:25:31 +08:00
    @rrfeng
    @zhs227 差不多是这么多,这些 ip 都是慢速攻击,过好几秒才发送一次请求,每次请求的字节也很小,但是海量 ip 过来把带宽堵满了。
    rrfeng
        13
    rrfeng  
       2017-05-16 14:11:41 +08:00
    什么服务?请求是什么样的?反射攻击吗?还是网页挂马之类的?
    10 万即使封了,不会影响正常用户吗?
    0ZXYDDu796nVCFxq
        14
    0ZXYDDu796nVCFxq  
       2017-05-16 14:17:19 +08:00   1
    1. 抓包的不一定准确,因为数据包可能是伪造来源 IP。最好确定是否是真实 IP
    2. 10 万 IP 很正常,我的 IP 信誉库里有百万以上的黑名单。可以用工具将 IP 进行合并,很可能有些是整个 C 段都是攻击来源,合并后方便管理。
    unboy
        15
    unboy  
    OP
       2017-05-16 14:23:27 +08:00
    @rrfeng 还没封,这不才在探讨这个问题。

    @gstqc 请推荐个好用的 ip 自动合并工具。
    0ZXYDDu796nVCFxq
        16
    0ZXYDDu796nVCFxq  
       2017-05-16 14:33:17 +08:00
    @unboy 可以写程序来处理,没有现成的工具。
    我们一般是查 IP 来源,结合多个 IP 数据库来识别。
    Python 推荐 ipaddress 这个库,能想到的计算方式都支持。

    初期可以简单的用 IP 列表,数量不会影响到多少效率。
    合并只是方便后续维护和更新。
    Jodal
        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/
    ericFork
        18
    ericFork  
       2017-05-16 18:48:07 +08:00
    看到这里突发奇想,有人知道 Windows Server 高级防火墙的按 IP 阻挡的实现是链表还是哈希么?
    xierch
        19
    xierch  
       2017-05-16 23:23:17 +08:00
    顺带一提,除了用 iptables + ipset,还能用 nftables
    https://wiki.nftables.org/wiki-nftables/index.php/Sets
    kiss2013star
        20
    kiss2013star  
       2017-05-17 10:18:37 +08:00 via Android
    okudayukiko0
        21
    okudayukiko0  
       2017-05-18 00:42:32 +08:00 via iPhone
    硬件防火墙,其实对于某些大型 DDoS 就不是一个硬件防火墙能搞定的,IP 或可以伪造
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2320 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:47 PVG 23:47 LAX 08:47 JFK 11:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86