Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
gatekeeper — Le premier système open-source de protection DDoS | Kitploit
Outils/GitHubGitHub/altramayor/gatekeeper
Outils DéfensifsScanners de VulnérabilitésSécurité RéseauDétection d'Intrusion
GitHubaltramayor/gatekeeper

gatekeeper

Le premier système open-source de protection DDoS

Voir le dépôt
1.6k251il y a 9 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Gatekeeper

Gatekeeper compilation status

Qu'est-ce que Gatekeeper ?

Gatekeeper est le premier système de protection DDoS open source. Il est conçu pour évoluer afin d'atteindre n'importe quelle bande passante de pointe, ce qui lui permet de résister aux attaques DDoS d'aujourd'hui et de demain. Malgré l'architecture géographiquement distribuée de Gatekeeper, la politique réseau qui décrit toutes les décisions à appliquer sur le trafic entrant est centralisée. Cette politique centralisée permet aux opérateurs de réseau d'exploiter des algorithmes distribués qui ne seraient pas viables sous une latence très élevée (par exemple les bases de données distribuées) et de combattre plusieurs attaques DDoS multi-vecteurs à la fois.

Les utilisateurs visés de Gatekeeper sont les opérateurs de réseau des institutions, des fournisseurs de services et de contenu, des réseaux d'entreprise, etc. Il n'est pas destiné à être utilisé par des utilisateurs individuels d'Internet.

Pour plus d'informations, consultez le wiki de Gatekeeper.

Comment configurer

Configurer les Hugepages

DPDK nécessite l'utilisation de hugepages ; les instructions pour monter les hugepages sont disponibles dans la documentation des prérequis. Sur de nombreux systèmes, la configuration suivante des hugepages est suffisante :

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

Activer le module noyau vfio-pci

Le module noyau Linux vfio-pci est nécessaire pour lier les NIC à DPDK/Gatekeeper. Pour que vfio-pci fonctionne, le BIOS et le noyau doivent tous deux le supporter. Les BIOS doivent avoir VT-d activé. Les BIOS peuvent identifier VT-d comme « Intel (R) VT for Directed I/O », « Intel (R) VT-d Feature », « Intel VT-d », « VT-d », ou des variations similaires ; pour plus d'exemples, recherchez « BIOS VT-d » sur Google Images. Certains BIOS peuvent exiger qu'une option appelée « Intel (R) Virtualization Technology » (ou des variantes de cette chaîne) soit activée avant que VT-d puisse être activé.

Pour vérifier que VT-d est activé dans le BIOS, exécutez la commande suivante après le démarrage de Linux :

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

Si la commande ci-dessus renvoie quelques lignes, VT-d devrait être activé. Sinon, il faut revenir au BIOS pour l'activer. Plus d'informations sur la façon de vérifier que VT-d est activé dans le BIOS sont disponibles sur cette page.

Une fois VT-d activé dans le BIOS, il faut s'assurer que le noyau prend en charge IOMMU. Notez qu'il faut une version du noyau supérieure à 3.6 pour prendre en charge IOMMU. On peut vérifier si le noyau en cours d'exécution a IOMMU activé par défaut avec la commande suivante :

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

Il est très probable que la commande ci-dessus affiche # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set, c'est-à-dire que le noyau en cours d'exécution n'a pas IOMMU activé par défaut. Des moyens alternatifs de vérifier les options de construction du noyau (c'est-à-dire CONFIG_INTEL_IOMMU_DEFAULT_ON) sont disponibles sur cette page.

Si le noyau n'a pas IOMMU activé par défaut, il faut passer le paramètre de démarrage du noyau intel_iommu=on via GRUB. Pour plus d'informations sur la raison pour laquelle le paramètre de démarrage intel_iommu=on est nécessaire, consultez cette page. On peut vérifier si le noyau en cours d'exécution a reçu ce paramètre avec la commande ci-dessous :

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

Si le noyau en cours d'exécution n'a pas reçu le paramètre intel_iommu=on, ajoutez-le à GRUB et redémarrez la machine. Des informations sur la façon d'ajouter un paramètre de démarrage à GRUB se trouvent ici.

Une fois que VT-d est activé dans le BIOS et que le noyau prend en charge IOMMU, on peut vérifier que tout est en ordre avec l'une des commandes suivantes :

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

OU

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

Tout est en ordre si les sorties des commandes ci-dessus ne sont pas vides.

Option 1 : Obtenir les paquets

Les paquets Debian de Gatekeeper sont disponibles pour Ubuntu 24.04 LTS sur la page des Releases du projet.

Installer

Une fois les paquets téléchargés, ils peuvent être installés avec les commandes ci-dessous :

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

Configurer Gatekeeper

Lorsqu'il est installé via des paquets Debian, les fichiers de configuration de Gatekeeper se trouvent dans /etc/gatekeeper. Vous devez éditer au moins le fichier net.lua, et définir les variables front_ports, front_ips, back_ports et back_ips en fonction de votre environnement.

Les autres fichiers Lua configurent différents blocs fonctionnels de Gatekeeper. Veuillez vous référer au wiki du projet pour plus d'informations sur la nécessité de modifier ces fichiers dans votre configuration.

Vous devez également éditer le fichier /etc/gatekeeper/envvars et définir la variable GATEKEEPER_INTERFACES sur les adresses PCI des adaptateurs réseau à lier à DPDK. Celles-ci peuvent être trouvées en utilisant la commande lshw. Par exemple :

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
...

Compte tenu de cette sortie, définissez GATEKEEPER_INTERFACES comme ci-dessous :

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

Dans le même fichier, vous pouvez éventuellement spécifier les options de la couche d'abstraction environnementale dans la variable DPDK_ARGS et les options spécifiques à Gatekeeper dans GATEKEEPER_ARGS.

Comment exécuter

Exécutez les commandes ci-dessous pour démarrer Gatekeeper et garantir qu'il démarre automatiquement lors des redémarrages.

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

Option 2 : Construire à partir des sources

Installer les dépendances

Installez les dépendances logicielles suivantes :

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

Remarque : Les paquets libmnl0 et libmnl-dev sont nécessaires pour compiler et exécuter gatekeeper, mais seul libmnl0 est nécessaire pour simplement exécuter gatekeeper. Les paquets libkmod2 et libkmod-dev sont nécessaires pour compiler et exécuter gatekeeper, mais seul libkmod2 est nécessaire pour simplement exécuter gatekeeper. libnuma-dev est nécessaire pour compiler le dernier DPDK et pour prendre en charge les systèmes NUMA. Le paquet libelf-dev est nécessaire pour compiler DPDK avec la prise en charge de la lecture des programmes BPF à partir de fichiers ELF, mais seul libelf1 est nécessaire pour l'exécuter. Le paquet est nécessaire pour compiler les programmes BPF dans le dossier . Les paquets , , , , et sont pour BIRD. Le paquet est utilisé pour construire les paquets Debian de Gatekeeper. Les paquets et sont nécessaires pour construire DPDK et pour exécuter des scripts Python tels que . est nécessaire pour compiler Gatekeeper, mais seul est nécessaire pour exécuter Gatekeeper. et sont nécessaires pour construire DPDK. est nécessaire pour compiler Gatekeeper.

Pour utiliser DPDK, assurez-vous de remplir toutes les exigences environnementales.

Cloner le dépôt

Clonez le dépôt Gatekeeper, y compris les sous-modules qui contiennent les dépendances de Gatekeeper :

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

Si vous n'utilisez pas l'option de clonage --recursive, vous devez obtenir les sous-modules qui contiennent les dépendances depuis le répertoire gatekeeper :

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

Compiler

Cette section explique comment construire Gatekeeper manuellement. Si vous souhaitez construire des paquets Debian, reportez-vous à la section Comment construire des paquets.

Depuis le répertoire gatekeeper, exécutez le script de configuration :

root@kitploit:~
$ . setup.sh

Ce script compile DPDK, LuaJIT et BIRD, et charge les modules noyau nécessaires. De plus, il enregistre les noms d'interface et leurs adresses PCI respectives dans le fichier lua/if_map.lua afin que les noms d'interface puissent être utilisés dans les fichiers de configuration de Gatekeeper.

Une fois DPDK et LuaJIT compilés, gatekeeper peut être compilé :

root@kitploit:~
$ make

Configurer les adaptateurs réseau

Avant que gatekeeper puisse être utilisé, les adaptateurs réseau doivent être liés à DPDK. Pour cela, vous pouvez utiliser le script dependencies/dpdk/usertools/dpdk-devbind.py. Par exemple :

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

Cette commande lie l'interface enp131s0f0 au pilote vfio-pci afin que les trames puissent être passées directement à DPDK plutôt qu'au noyau. Notez que cette liaison doit avoir lieu après la configuration de Gatekeeper dans les étapes ci-dessus afin que l'interface liée apparaisse dans la liste des interfaces dans lua/if_map.lua.

Comment exécuter

Une fois gatekeeper compilé et l'environnement correctement configuré, exécutez :

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

Où [EAL OPTIONS] sont spécifiés avant un double tiret et représentent les paramètres de la couche d'abstraction environnementale de DPDK, et [GATEKEEPER OPTIONS] sont spécifiés après le double tiret et représentent les options spécifiques à Gatekeeper.

La configuration précoce du système, y compris la configuration des périphériques et de la mémoire dans DPDK, sera enregistrée sur stdout. Une fois Gatekeeper démarré, toutes les informations sont émises dans le journal de Gatekeeper.

Comment construire les paquets

Les paquets Debian de Gatekeeper peuvent être construits avec les commandes ci-dessous. Elles sont destinées à être exécutées depuis la racine du dépôt et supposent que les sous-modules git ont été récupérés et que les dépendances de construction ont été installées, comme indiqué ci-dessus. Gatekeeper et les sous-modules seront automatiquement compilés pendant le processus de construction des paquets.

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

Le paquet Gatekeeper sera disponible dans le répertoire parent.

Télécharger l’outil
libc6-dev-i386
bpf/
autoconf
flex
bison
libncurses5-dev
libreadline-dev
devscripts
python3
python3-pyelftools
dpdk-devbind.py
libcap-dev
libcap2
meson
ninja-build
pkg-config