Gatekeeper:首个开源的DDoS防护系统

枫少@KillBoy
枫少@KillBoy
管理员
219
文章
0
粉丝
资源分享805,987字数 883阅读2分56秒阅读模式
AI智能摘要
你是否正苦于应对日益猖獗的DDoS攻击,却找不到高效又可控的防护方案?Gatekeeper来了——首个开源的分布式DDoS防护系统,专为机构级网络运营商打造。它支持超大规模带宽扩展,通过集中式策略管理实现跨地域精准流量控制,结合DPDK实现高性能数据包处理。无论是企业网络、内容分发还是大型服务提供商,都能借助其灵活部署与强大防御能力,构筑自主可控的安全屏障。本文详解其安装、配置到源码编译的完整流程,手把手带你从零跑通Gatekeeper。
— AI 生成的文章内容摘要

Gatekeeper:首个开源的DDoS防护系统

Gatekeeper是什么?

Gatekeeper是目前第一个开源的DoS拒绝服务攻击防护系统。该系统被设计成可以扩展到任何峰值的带宽,因此它可以抵御目前的DoS拒绝服务攻击攻击。尽管Gatekeeper的体系结构在地理上是分布式的,但描述所有传入流量的网络策略必须是集中式的。这种集中化策略使网络运营商能够利用在很高延迟下不可行的分布式算法(例如分布式数据库),并同时抵御DoS拒绝服务攻击。

Gatekeeper是预期用户是机构、服务和内容提供商、企业网络等的网络运营商,因此暂不打算由个人互联网用户使用。

工具安装与配置

配置Hugepages

DPDK需要使用到Hugepages,关于如何挂载Hugepages,可以参考这篇【文档】。在很多系统上,我们可以按照下列方式快速有效地配置Hugepages:

$ echo 256 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

选项1:获取工具包

Gatekeeper的Debian包可以点击该项目的【Releases】页面获取。

安装

下载好安装包之后,我们可以通过下列命令来完成工具的安装:

$ tar -zxvf gatekeeper-ubuntu-18.04-packages.tar.gz  $ cd gatekeeper-ubuntu-18.04-packages  $ sudo dpkg -i libgkrte-*.deb /      libgkdpdk-dev_*_amd64.deb /      gatekeeper-dpdk_*_amd64.deb /      gatekeeper-dpdk-dev_*_amd64.deb /      gatekeeper-dpdk-igb-uio-dkms_*_amd64.deb /      gatekeeper-dpdk-rte-kni-dkms_*_amd64.deb /      gatekeeper-bird_*_amd64.deb /  gatekeeper_*_amd64.deb

gatekeeper-dpdk-dev包是DKMS包所需的依赖包,它负责在包安装和内核更新的过程中构建对应的内核模块。

配置网络适配器

编辑/etc/gatekeeper/envvars文件,然后输入需要跟DPDK绑定的网络适配器名称。比如说:

GATEKEEPER_INTERFACES="eth0 eth1"

或者,我们还可以指定接口的PCI地址:

GATEKEEPER_INTERFACES="0000:00:07.0 0000:00:08.0"

在相同文件中,我们可以在DPDK_ARGS变量中指定“环境抽象层选项”,或在GATEKEEPER_ARGS中指定关于Gatekeeper的特定选项

如何运行

直接执行下列命令即可运行Gatekeeper,并且确保设备重启之后将会自动运行:

$ sudo systemctl start gatekeeper  $ sudo systemctl enable gatekeeper

选项2:源码构建

安装依赖

首先,我们需要安装下列软件依赖:

$ sudo apt-get update  $ sudo apt-get -y -q install git clang devscripts doxygen hugepages /  build-essential linux-headers-`uname -r` libmnl0 libmnl-dev /  libkmod2 libkmod-dev libnuma-dev libelf1 libelf-dev libc6-dev-i386 /  autoconf flex bison libncurses5-dev libreadline-dev

如需使用DPDK,确保已经安装好了所有的环境依赖

克隆代码库

克隆Gatekeeper代码库,其中包括涵盖了Gatekeeper依赖的子模块:

$ git clone --recursive http://github.com/AltraMayor/gatekeeper.git

如果没有使用--recursive克隆选项,你则需要在gatekeeper目录下获取包含了依赖的子模块:

$ git submodule init  $ git submodule update

编译

切换到gatekeeper目录下,然后运行安装脚本:

$ . setup.sh

运行好安装脚本之后,你还需要在你的shell配置文件中存储环境变量。比如说,在Bash中,你需要:

$ echo "export RTE_SDK=${RTE_SDK}" >> ${HOME}/.profile  $ echo "export RTE_TARGET=${RTE_TARGET}" >> ${HOME}/.profile

当DPDK编译完成并且配置好环境变量后,就可以对gatekeeper进行编译了:

$ make

配置网络适配器

在使用Gatekeeper之前,需要给DPDK绑定网络适配器。这里,我们可以使用dependencies/dpdk/usertools/dpdk-devbind.py脚本:

$ sudo dependencies/dpdk/usertools/dpdk-devbind.py --bind=uio_pci_generic enp131s0f0

如何运行

正确配置好环境变量并等待Gatekeeper编译完成之后,我们就可以通过下列命令运行该工具了:

$ sudo build/gatekeeper [EAL OPTIONS] -- [GATEKEEPER OPTIONS]

项目地址

Gatekeeper:【GitHub传送门

https://www.freebuf.com/sectool/265642.html

 
枫少@KillBoy
评论  80  访客  80
    • 电母闪华
      电母闪华 0

      这玩意真能扛住大流量攻击?🤔

      • 月影游侠
        月影游侠 0

        前几天我们公司试了类似方案,结果自己先崩了,心疼运维

          • 虎啸林
            虎啸林 1

            @ 月影游侠 运维压力大是常态,建议先做灰度上线,监控指标再逐步放量。

          • 云霓裳
            云霓裳 1

            配置看着挺麻烦,新手上手估计得折腾好几天

            • 破晓骑士
              破晓骑士 0

              hugepages设置这块能不能再讲细点,老是卡在这步

              • BubbleGiggle
                BubbleGiggle 0

                分布式架构+集中策略,思路清奇但延迟咋解决?

                  • 霓虹记忆
                    霓虹记忆 1

                    @ BubbleGiggle 延迟主要在策略同步上,实际部署时可以把策略缓存到本地,减小往返。

                    • Sing歌神
                      Sing歌神 0

                      @ BubbleGiggle 这玩意真能抗住T级流量?有点怀疑🤔

                    • 破碎的彩虹
                      破碎的彩虹 0

                      我们小厂用不起这配置啊,成本太高了

                        • 白袍医师
                          白袍医师 0

                          @ 破碎的彩虹 成本确实是阻碍,或许可以先在测试环境用小规模的流量做验证。

                        • 端午龙舟
                          端午龙舟 0

                          gatekeeper-bird是干啥的,文档里都没提清楚

                          • 夸父
                            夸父 0

                            说实在的,现在DDoS防护哪家强?求个对比

                            • 小溪流
                              小溪流 0

                              要是能出个一键部署脚本就舒服了

                              • 书卷客
                                书卷客 1

                                这个编译过程太吃环境了,换了三台机器才搞定

                                • 桀骜的独行者
                                  桀骜的独行者 0

                                  配置挺麻烦,但能抵御大流量。

                                  • 凉风有信
                                    凉风有信 0

                                    真是没想到开源也能做DDoS。👍

                                      • 怕说话的云
                                        怕说话的云 0

                                        @ 凉风有信 开源做DDoS防护挺牛的,关键是要有人维护

                                      • 量子面包师
                                        量子面包师 0

                                        hugepages那步卡住,我改了下脚本。

                                        • 翡翠之心
                                          翡翠之心 1

                                          这个项目挺有意思,期待社区贡献。

                                          • 茉莉清茶
                                            茉莉清茶 0

                                            一键部署真的太需要了。

                                              • 旧皮鞋
                                                旧皮鞋 1

                                                @ 茉莉清茶 一键脚本+容器化,求安排!不然真没人敢上手。

                                                • 牡丹
                                                  牡丹 1

                                                  @ 茉莉清茶 同感,这种复杂工具一键部署能省不少事,希望官方后续能考虑下。

                                                • Quirk
                                                  Quirk 0

                                                  分布式和集中策略的组合听起来不错,不过实际延迟会不会成为瓶颈?

                                                    • 林间雾
                                                      林间雾 0

                                                      @ Quirk 这延迟问题确实得实测,理论再好也得看跑起来咋样

                                                    • 烛影红
                                                      烛影红 1

                                                      我之前在公司用了类似方案,调Hugepages后性能提升不少,建议文档里多点案例。

                                                      • 憨包
                                                        憨包 1

                                                        gatekeeper-bird到底是干啥的?文档里只提了一句,我也想弄清楚。

                                                        • 红豆生
                                                          红豆生 0

                                                          如果想在老机器上跑,DPDK的依赖有点多,能否提供轻量化的安装脚本?

                                                            • 会说话的石头
                                                              会说话的石头 1

                                                              @ 红豆生 老机器跑DPDK确实吃力,轻量脚本目前社区好像还没人做,可以试试自己写个简化版的。

                                                            • 影刃狂客
                                                              影刃狂客 1

                                                              整体来看,Gatekeeper的架构设计挺前卫的,尤其是把策略集中管理的思路解决了分布式算法在高延迟环境下的难题,不过部署时对环境要求高,建议新手先在测试环境跑通再上生产。

                                                              • 带刺的棉花糖
                                                                带刺的棉花糖 1

                                                                这个Hugepages配置在CentOS上能用吗?

                                                                • 夜狩
                                                                  夜狩 0

                                                                  感觉文档写得挺详细的,照着做应该没问题

                                                                  • 黑曜心
                                                                    黑曜心 0

                                                                    之前装DPDK也卡在Hugepages,后来发现是内核版本问题

                                                                    • 糯糯球
                                                                      糯糯球 1

                                                                      这配置步骤看着就头大,得找专门时间搞

                                                                      • Ollie
                                                                        Ollie 0

                                                                        开源DDoS防护挺难得的,希望后续能持续更新

                                                                        • 深褐旅人
                                                                          深褐旅人 0

                                                                          为啥必须用DPDK?普通网卡驱动不行吗?

                                                                          • 小栗千夏
                                                                            小栗千夏 0

                                                                            我们公司刚被DDoS过,这工具来得正是时候

                                                                            • 冲出牢笼的鹰
                                                                              冲出牢笼的鹰 0

                                                                              编译过程有点长,建议加个进度提示

                                                                              • RocketRaccoon
                                                                                RocketRaccoon 1

                                                                                eth0和eth1都要绑吗?单网卡行不行?

                                                                                • 蓬蓬
                                                                                  蓬蓬 0

                                                                                  git clone的时候网不好断了两次,建议加个镜像源

                                                                                    • 落笔
                                                                                      落笔 0

                                                                                      @ 蓬蓬 镜像源建议加个清华或者阿里云的,国外源是真的慢

                                                                                    • 遥不可及的光
                                                                                      遥不可及的光 1

                                                                                      hugepages设置能不能给个自动检测脚本啊,老是配错

                                                                                      • 幻夜游侠
                                                                                        幻夜游侠 1

                                                                                        编译失败十几次了,依赖能不能打包成个容器镜像?

                                                                                        • 忧郁的鱼
                                                                                          忧郁的鱼 1

                                                                                          gatekeeper-bird是不是用来做BGP路由的,感觉像

                                                                                            • 软萌丸子
                                                                                              软萌丸子 0

                                                                                              @ 忧郁的鱼 是的,gatekeeper-bird就是用来处理BGP路由通告和策略分发的,是Gatekeeper和外部网络通信的关键组件。

                                                                                            • 永恒编织者
                                                                                              永恒编织者 0

                                                                                              单网卡绑一个接口能跑吗,测试环境没那么多设备

                                                                                              • 虚无坐标
                                                                                                虚无坐标 1

                                                                                                说真的,这文档对新手有点不友好,步骤太碎了

                                                                                                • 菱洲渔隐
                                                                                                  菱洲渔隐 1

                                                                                                  之前搞过类似系统,Hugepages调好了吞吐直接翻倍

                                                                                                  • 皮匠谢
                                                                                                    皮匠谢 0

                                                                                                    DPDK必须得用,普通驱动处理不了这么大流量

                                                                                                    • 混沌学者
                                                                                                      混沌学者 1

                                                                                                      这配置对个人用户确实不太友好,不过企业用应该还行。

                                                                                                      • 糖霜兔兔
                                                                                                        糖霜兔兔 0

                                                                                                        开源DDoS防护确实少见,就是部署起来门槛有点高。

                                                                                                          • 飞鹰数据
                                                                                                            飞鹰数据 0

                                                                                                            @ 糖霜兔兔 部署确实麻烦,但开源能自定义规则挺香。

                                                                                                          • 思维迷宫的导航员
                                                                                                            思维迷宫的导航员 0

                                                                                                            Hugepages那块配置起来真费劲,有没有更简单的教程啊?

                                                                                                            • 萌萌小云朵
                                                                                                              萌萌小云朵 0

                                                                                                              我们公司最近也在看类似方案,这个看起来架构挺有意思的。

                                                                                                              • QuirkyQueen
                                                                                                                QuirkyQueen 0

                                                                                                                之前没听说过gatekeeper-bird,有懂的大佬解释下具体作用吗?

                                                                                                                • 梦魇之瞳
                                                                                                                  梦魇之瞳 0

                                                                                                                  感觉步骤有点多,要是能出个Docker镜像就好了。

                                                                                                                  • 幻雾琉璃
                                                                                                                    幻雾琉璃 0

                                                                                                                    集中式策略管理延迟,实际效果真有那么好吗?有点怀疑。

                                                                                                                    • 逐梦 wanderer
                                                                                                                      逐梦 wanderer 0

                                                                                                                      看了半天,还是没太搞懂和商业防护方案比优势在哪。

                                                                                                                      • TacoTuesday
                                                                                                                        TacoTuesday 0

                                                                                                                        编译过程太长了,中间出错都不知道是哪一步的问题。

                                                                                                                        • 星落尘埃
                                                                                                                          星落尘埃 1

                                                                                                                          这个工具对运维人员的要求不低,小团队可能玩不转。

                                                                                                                          • 虚拟教育导师
                                                                                                                            虚拟教育导师 0

                                                                                                                            这配置对小公司太不友好了,光Hugepages就劝退一半人。

                                                                                                                            • 夜梦浮生
                                                                                                                              夜梦浮生 0

                                                                                                                              单网卡能跑吗?测试环境真没那么多设备可用。

                                                                                                                              • 灵异访客
                                                                                                                                灵异访客 1

                                                                                                                                集中策略听着牛,但跨机房延迟高了咋办?

                                                                                                                                • 数字守望
                                                                                                                                  数字守望 1

                                                                                                                                  hugepages老是配不对,有没有人分享个成功配置的脚本?

                                                                                                                                  • 裁缝杨八
                                                                                                                                    裁缝杨八 0

                                                                                                                                    DPDK非得用吗?普通驱动真扛不住?

                                                                                                                                    • 青灯旧舍
                                                                                                                                      青灯旧舍 0

                                                                                                                                      编译到一半断了,重来又得半小时,心累。

                                                                                                                                      • 风起时
                                                                                                                                        风起时 0

                                                                                                                                        gatekeeper-bird是不是处理BGP路由通告的?求确认。

                                                                                                                                        • 银钩客
                                                                                                                                          银钩客 0

                                                                                                                                          文档步骤太碎了,新手照着做容易漏。

                                                                                                                                          • 霜刃无双
                                                                                                                                            霜刃无双 1

                                                                                                                                            之前试过类似架构,策略集中后管理方便但同步慢。

                                                                                                                                            • 光影之河的摆渡人
                                                                                                                                              光影之河的摆渡人 0

                                                                                                                                              能不能出个Docker镜像啊,省得折腾环境。

                                                                                                                                              • 隐梦者
                                                                                                                                                隐梦者 0

                                                                                                                                                我们刚被DDoS打崩,正愁没方案,这个来得及时。

                                                                                                                                                • 啦啦队队长
                                                                                                                                                  啦啦队队长 0

                                                                                                                                                  感觉部署门槛比商业方案还高,开源优势在哪?

                                                                                                                                                  • 何芳
                                                                                                                                                    何芳 0

                                                                                                                                                    eth0绑一个口行不行?不想动生产网卡。

                                                                                                                                                    • 雪径
                                                                                                                                                      雪径 0

                                                                                                                                                      CentOS上hugepages路径不一样,得自己改,坑。

                                                                                                                                                      • 社牛の雷电
                                                                                                                                                        社牛の雷电 1

                                                                                                                                                        集中式策略会不会成为单点故障?

                                                                                                                                                        • 雾海拾梦人
                                                                                                                                                          雾海拾梦人 1

                                                                                                                                                          配置步骤写得挺细的,适合动手试试。

                                                                                                                                                          • 疾驰的猎豹
                                                                                                                                                            疾驰的猎豹 1

                                                                                                                                                            这玩意儿个人用户用不了,有点可惜。

                                                                                                                                                            • 贝壳糖粒
                                                                                                                                                              贝壳糖粒 1

                                                                                                                                                              开源DDoS防护,这个方向挺好。

                                                                                                                                                                • 奶泡熊
                                                                                                                                                                  奶泡熊 1

                                                                                                                                                                  @ 贝壳糖粒 确实挺有潜力的

                                                                                                                                                                • 厄洛斯
                                                                                                                                                                  厄洛斯 1

                                                                                                                                                                  @元宝 这配置也太硬核了吧

                                                                                                                                                                    • yuanbao
                                                                                                                                                                      yuanbao 3

                                                                                                                                                                      @ 厄洛斯 毕竟是专业级防护系统嘛,配置是有点门槛。

                                                                                                                                                                  匿名

                                                                                                                                                                  发表评论

                                                                                                                                                                  匿名网友

                                                                                                                                                                  拖动滑块以完成验证