Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
gatekeeper — Das erste Open-Source-DDoS-Schutzsystem | Kitploit
Tools/GitHubGitHub/altramayor/gatekeeper
DefensivwerkzeugeSchwachstellenscannerNetzwerksicherheitEinbruchserkennung
GitHubaltramayor/gatekeeper

gatekeeper

Das erste Open-Source-DDoS-Schutzsystem

Repository anzeigen
1.6k251vor 9 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

Gatekeeper

Gatekeeper-Compilierungsstatus

Was ist Gatekeeper?

Gatekeeper ist das erste Open-Source-DDoS-Schutzsystem. Es ist darauf ausgelegt, auf jede Spitzenbandbreite zu skalieren, sodass es sowohl heutigen als auch zukünftigen DDoS-Angriffen standhalten kann. Trotz der geografisch verteilten Architektur von Gatekeeper ist die Netzwerkrichtlinie, die alle Entscheidungen beschreibt, die für den eingehenden Verkehr durchgesetzt werden müssen, zentralisiert. Diese zentralisierte Richtlinie ermöglicht es Netzwerkbetreibern, verteilte Algorithmen zu nutzen, die unter sehr hoher Latenz (z. B. verteilte Datenbanken) nicht praktikabel wären, und mehrere Multi-Vektor-DDoS-Angriffe gleichzeitig zu bekämpfen.

Die beabsichtigten Benutzer von Gatekeeper sind Netzwerkbetreiber von Institutionen, Dienste- und Inhaltsanbietern, Unternehmensnetzwerken usw. Es ist nicht für die Nutzung durch einzelne Internetnutzer gedacht.

Weitere Informationen finden Sie im Gatekeeper-Wiki.

Einrichtung

Hugepages konfigurieren

DPDK erfordert die Verwendung von Hugepages; Anweisungen zum Einbinden von Hugepages finden Sie in der Dokumentation zu den Systemanforderungen. Auf vielen Systemen ist die folgende Hugepages-Einrichtung ausreichend:

root@kitploit:~
$ echo 256 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

Kernelmodul vfio-pci aktivieren

Das Linux-Kernelmodul vfio-pci wird benötigt, um NICs an DPDK/Gatekeeper zu binden. Damit vfio-pci funktioniert, müssen sowohl das BIOS als auch der Kernel es unterstützen. BIOS müssen VT-d aktiviert haben. BIOS können VT-d als "Intel (R) VT for Directed I/O", "Intel (R) VT-d Feature", "Intel VT-d", "VT-d" oder ähnliche Varianten bezeichnen; weitere Beispiele finden Sie unter "BIOS VT-d" auf Google Images. Manche BIOS erfordern möglicherweise, dass eine Option namens "Intel (R) Virtualization Technology" (oder Varianten dieser Zeichenfolge) aktiviert wird, bevor VT-d aktiviert werden kann.

Um zu überprüfen, ob VT-d im BIOS aktiviert ist, führen Sie nach dem Booten von Linux den folgenden Befehl aus:

root@kitploit:~
$ dmesg | grep -e DMAR

Wenn der obige Befehl einige Zeilen ausgibt, sollte VT-d aktiviert sein. Andernfalls muss man zurück ins BIOS gehen, um es zu aktivieren. Weitere Informationen zur Überprüfung, ob VT-d im BIOS aktiviert ist, finden Sie auf dieser Seite.

Sobald VT-d im BIOS aktiviert ist, muss sichergestellt werden, dass der Kernel IOMMU unterstützt. Beachten Sie, dass eine Kernelversion größer als 3.6 erforderlich ist, um IOMMU zu unterstützen. Man kann überprüfen, ob der laufende Kernel IOMMU standardmäßig aktiviert hat, mit dem folgenden Befehl:

root@kitploit:~
$ grep CONFIG_INTEL_IOMMU_DEFAULT_ON /boot/config-`uname -r`

Höchstwahrscheinlich wird der obige Befehl # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set ausgeben, d.h. der laufende Kernel hat IOMMU nicht standardmäßig aktiviert. Alternative Möglichkeiten zur Überprüfung der Kernel-Build-Optionen (z. B. CONFIG_INTEL_IOMMU_DEFAULT_ON) finden Sie auf dieser Seite.

Wenn der Kernel IOMMU nicht standardmäßig aktiviert hat, muss der Kernel-Boot-Parameter intel_iommu=on über GRUB übergeben werden. Informationen dazu, warum der Boot-Parameter intel_iommu=on benötigt wird, finden Sie auf dieser Seite. Man kann überprüfen, ob der laufende Kernel diesen Parameter erhalten hat, mit dem folgenden Befehl:

root@kitploit:~
$ cat /proc/cmdline | grep intel_iommu=on

Wenn der laufende Kernel den Parameter intel_iommu=on nicht erhalten hat, fügen Sie ihn zu GRUB hinzu und starten Sie die Maschine neu. Informationen zum Hinzufügen eines Boot-Parameters zu GRUB finden Sie hier.

Sobald VT-d im BIOS aktiviert ist und der Kernel IOMMU unterstützt, kann man mit einem der folgenden Befehle überprüfen, ob alles bereit ist:

root@kitploit:~
$ ls /sys/kernel/iommu_groups

ODER

root@kitploit:~
$ dmesg | grep -ie 'IOMMU\s\+enabled'

Alles ist bereit, wenn die Ausgaben der obigen Befehle nicht leer sind.

Option 1: Pakete beziehen

Gatekeeper-Debian-Pakete sind für Ubuntu 24.04 LTS auf der Seite Releases des Projekts verfügbar.

Installation

Sobald die Pakete heruntergeladen sind, können sie mit den folgenden Befehlen installiert werden:

root@kitploit:~
$ tar -zxvf gatekeeper-ubuntu-24.04-packages.tar.gz
$ cd gatekeeper-ubuntu-24.04-packages
$ sudo dpkg -i gatekeeper-bird_*_amd64.deb gatekeeper_*_amd64.deb

Gatekeeper konfigurieren

Bei Installation über Debian-Pakete befinden sich die Gatekeeper-Konfigurationsdateien in /etc/gatekeeper. Sie sollten mindestens die Datei net.lua bearbeiten und die Variablen front_ports, front_ips, back_ports und back_ips entsprechend Ihrer Umgebung setzen.

Die anderen Lua-Dateien konfigurieren verschiedene funktionale Blöcke von Gatekeeper. Bitte lesen Sie das Wiki des Projekts für weitere Informationen darüber, ob diese in Ihrer Einrichtung geändert werden müssen.

Sie müssen auch die Datei /etc/gatekeeper/envvars bearbeiten und die Variable GATEKEEPER_INTERFACES auf die PCI-Adressen der Netzwerkadapter setzen, die an DPDK gebunden werden sollen. Diese können mit dem Befehl lshw ermittelt werden. Beispiel:

root@kitploit:~
# lshw -c network -businfo
Bus info          Device     Class          Description
=======================================================
pci@0000:08:00.0  eth0       network        I350 Gigabit Network Connection
pci@0000:08:00.1  eth1       network        I350 Gigabit Network Connection
...

Bei dieser Ausgabe setzen Sie GATEKEEPER_INTERFACES wie folgt:

root@kitploit:~
GATEKEEPER_INTERFACES="08:00.0 08:00.1"

In derselben Datei können Sie optional Environmental Abstraction Layer-Optionen in der Variable DPDK_ARGS und Gatekeeper-spezifische Optionen in GATEKEEPER_ARGS angeben.

Ausführen

Führen Sie die folgenden Befehle aus, um Gatekeeper zu starten und sicherzustellen, dass es automatisch bei Neustarts gestartet wird.

root@kitploit:~
$ sudo systemctl start gatekeeper
$ sudo systemctl enable gatekeeper

Option 2: Aus dem Quellcode erstellen

Abhängigkeiten installieren

Installieren Sie die folgenden Softwareabhängigkeiten:

root@kitploit:~
$ sudo apt-get update
$ sudo apt-get -y -q install git clang devscripts doxygen libhugetlbfs-bin \
    build-essential gcc-multilib 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 python3 \
    python3-pyelftools libcap-dev libcap2 meson ninja-build pkg-config

Hinweis: libmnl0 und libmnl-dev werden benötigt, um gatekeeper zu kompilieren und auszuführen, aber nur libmnl0 wird zum einfachen Ausführen von gatekeeper benötigt. libkmod2 und libkmod-dev werden benötigt, um gatekeeper zu kompilieren und auszuführen, aber nur libkmod2 wird zum einfachen Ausführen von gatekeeper benötigt. libnuma-dev wird benötigt, um das neueste DPDK zu kompilieren und NUMA-Systeme zu unterstützen. Das Paket libelf-dev wird benötigt, um DPDK mit Unterstützung zum Lesen von BPF-Programmen aus ELF-Dateien zu kompilieren, aber nur libelf1 wird zum Ausführen benötigt. Das Paket libc6-dev-i386 wird benötigt, um die BPF-Programme im Ordner zu kompilieren. Die Pakete , , , und sind für BIRD. Das Paket wird verwendet, um Gatekeeper-Debian-Pakete zu erstellen. Die Pakete und werden benötigt, um DPDK zu erstellen und Python-Skripte wie auszuführen. wird benötigt, um Gatekeeper zu kompilieren, aber nur wird zum Ausführen von Gatekeeper benötigt. und werden zum Erstellen von DPDK benötigt. wird zum Kompilieren von Gatekeeper benötigt.

Um DPDK zu verwenden, stellen Sie sicher, dass Sie alle Umgebungsanforderungen erfüllen.

Repository klonen

Klonen Sie das Gatekeeper-Repository, einschließlich der Submodule, die die Gatekeeper-Abhängigkeiten enthalten:

root@kitploit:~
$ git clone --recursive http://github.com/AltraMayor/gatekeeper.git

Wenn Sie die --recursive-Clone-Option nicht verwenden, müssen Sie die Submodule, die die Abhängigkeiten enthalten, aus dem gatekeeper-Verzeichnis beziehen:

root@kitploit:~
$ git submodule init
$ git submodule update

Kompilieren

Dieser Abschnitt erklärt, wie man Gatekeeper manuell erstellt. Wenn Sie Debian-Pakete erstellen möchten, lesen Sie den Abschnitt Pakete erstellen.

Führen Sie im gatekeeper-Verzeichnis das Setup-Skript aus:

root@kitploit:~
$ . setup.sh

Dieses Skript kompiliert DPDK, LuaJIT und BIRD und lädt die benötigten Kernelmodule. Darüber hinaus speichert es die Schnittstellennamen und ihre jeweiligen PCI-Adressen in der Datei lua/if_map.lua, sodass Schnittstellennamen in den Gatekeeper-Konfigurationsdateien verwendet werden können.

Sobald DPDK und LuaJIT kompiliert sind, kann gatekeeper kompiliert werden:

root@kitploit:~
$ make

Netzwerkadapter konfigurieren

Bevor gatekeeper verwendet werden kann, müssen die Netzwerkadapter an DPDK gebunden werden. Hierfür können Sie das Skript dependencies/dpdk/usertools/dpdk-devbind.py verwenden. Beispiel:

root@kitploit:~
$ sudo dependencies/dpdk/usertools/dpdk-devbind.py --bind=vfio-pci enp131s0f0

Dieser Befehl bindet die Schnittstelle enp131s0f0 an den vfio-pci-Treiber, sodass Frames direkt an DPDK und nicht an den Kernel übergeben werden können. Beachten Sie, dass diese Bindung nach der Einrichtung von Gatekeeper in den obigen Schritten erfolgen muss, damit die gebundene Schnittstelle in der Liste der Schnittstellen in lua/if_map.lua erscheint.

Ausführen

Sobald gatekeeper kompiliert und die Umgebung korrekt konfiguriert ist, führen Sie aus:

root@kitploit:~
$ sudo build/gatekeeper [EAL OPTIONS] -- [GATEKEEPER OPTIONS]

Wobei [EAL OPTIONS] vor einem doppelten Bindestrich angegeben werden und die Parameter für die Environmental Abstraction Layer von DPDK darstellen, und [GATEKEEPER OPTIONS] nach dem doppelten Bindestrich angegeben werden und Gatekeeper-spezifische Optionen darstellen.

Die frühe Konfiguration des Systems, einschließlich der Geräte- und Speicherkonfiguration in DPDK, wird auf stdout protokolliert. Sobald Gatekeeper gestartet ist, werden alle Informationen im Gatekeeper-Protokoll ausgegeben.

Pakete erstellen

Gatekeeper-Debian-Pakete können mit den folgenden Befehlen erstellt werden. Sie sind dazu gedacht, aus dem Repository-Stammverzeichnis ausgeführt zu werden, und setzen voraus, dass die Git-Submodule abgerufen und die Build-Abhängigkeiten wie oben beschrieben installiert wurden. Gatekeeper und die Submodule werden während des Paketerstellungsprozesses automatisch kompiliert.

root@kitploit:~
$ tar --exclude-vcs -Jcvf ../gatekeeper_1.2.0.orig.tar.xz -C .. gatekeeper
$ debuild -uc -us

Das Gatekeeper-Paket wird im übergeordneten Verzeichnis verfügbar sein.

Tool herunterladen
bpf/
autoconf
flex
bison
libncurses5-dev
libreadline-dev
devscripts
python3
python3-pyelftools
dpdk-devbind.py
libcap-dev
libcap2
meson
ninja-build
pkg-config