freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Gatekeeper:首个开源的DDoS防护系统
Alpha_h4ck 2021-03-09 23:36:10 442738

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传送门

# ddos防御 # ddos防护 # DoS攻击
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1023 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录