Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
gatekeeper — El primer sistema de protección DDoS de código abierto | Kitploit
Herramientas/GitHubGitHub/altramayor/gatekeeper
Herramientas DefensivasEscáneres de VulnerabilidadesSeguridad de RedesDetección de Intrusiones
GitHubaltramayor/gatekeeper

gatekeeper

El primer sistema de protección DDoS de código abierto

Ver Repositorio
1.6k251hace 9 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

Gatekeeper

Estado de compilación de Gatekeeper

¿Qué es Gatekeeper?

Gatekeeper es el primer sistema de protección DDoS de código abierto. Está diseñado para escalar a cualquier ancho de banda pico, por lo que puede soportar ataques DDoS tanto de hoy como del futuro. A pesar de la arquitectura geográficamente distribuida de Gatekeeper, la política de red que describe todas las decisiones que deben aplicarse sobre el tráfico entrante está centralizada. Esta política centralizada permite a los operadores de red aprovechar algoritmos distribuidos que no serían viables bajo una latencia muy alta (por ejemplo, bases de datos distribuidas) y combatir múltiples ataques DDoS multi-vector simultáneamente.

Los usuarios previstos de Gatekeeper son los operadores de red de instituciones, proveedores de servicios y contenido, redes empresariales, etc. No está destinado a ser utilizado por usuarios individuales de Internet.

Para más información, consulte la wiki de Gatekeeper.

Cómo configurar

Configurar Hugepages

DPDK requiere el uso de hugepages; las instrucciones para montar hugepages están disponibles en la documentación de requisitos. En muchos sistemas, la siguiente configuración de hugepages es suficiente:

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

Habilitar el módulo del kernel vfio-pci

El módulo del kernel de Linux vfio-pci es necesario para enlazar NICs a DPDK/Gatekeeper. Para que vfio-pci funcione, tanto la BIOS como el kernel deben ser compatibles. Las BIOS deben tener VT-d habilitado. Las BIOS pueden identificar VT-d como "Intel (R) VT for Directed I/O", "Intel (R) VT-d Feature", "Intel VT-d", "VT-d" o variaciones similares; para más ejemplos, busque "BIOS VT-d" en Google Images. Algunas BIOS pueden requerir que una opción llamada "Intel (R) Virtualization Technology" (o variaciones de esta cadena) esté habilitada antes de que se pueda habilitar VT-d.

Para verificar que VT-d está habilitado en la BIOS, ejecute el siguiente comando después de que Linux arranque:

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

Si el comando anterior devuelve algunas líneas, VT-d debería estar habilitado. De lo contrario, hay que volver a la BIOS para habilitarlo. Hay más información sobre cómo verificar que VT-d está habilitado en la BIOS disponible en esta página.

Una vez que VT-d esté habilitado en la BIOS, se debe asegurar que el kernel soporte IOMMU. Tenga en cuenta que se necesita una versión del kernel superior a la 3.6 para soportar IOMMU. Se puede verificar si el kernel en ejecución tiene IOMMU habilitado por defecto con el siguiente comando:

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

Lo más probable es que el comando anterior muestre # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set, es decir, el kernel en ejecución no tiene IOMMU habilitado por defecto. Otras formas de verificar las opciones de compilación del kernel (es decir, CONFIG_INTEL_IOMMU_DEFAULT_ON) están disponibles en esta página.

Si el kernel no tiene IOMMU habilitado por defecto, se debe pasar el parámetro de arranque del kernel intel_iommu=on a través de GRUB. Para obtener información sobre por qué se necesita el parámetro de arranque intel_iommu=on, consulte esta página. Se puede verificar si el kernel en ejecución recibió este parámetro con el siguiente comando:

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

Si el kernel en ejecución no ha recibido el parámetro intel_iommu=on, agréguelo a GRUB y reinicie la máquina. La información sobre cómo agregar un parámetro de arranque a GRUB se encuentra aquí.

Una vez que VT-d esté habilitado en la BIOS y el kernel soporte IOMMU, se puede verificar que todo está configurado con uno de los siguientes comandos:

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

O

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

Todo está configurado si las salidas de los comandos anteriores no están vacías.

Opción 1: Obtener Paquetes

Los paquetes Debian de Gatekeeper están disponibles para Ubuntu 24.04 LTS en la página de Lanzamientos del proyecto.

Instalación

Una vez descargados los paquetes, se pueden instalar con los comandos a continuación:

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

Configurar Gatekeeper

Cuando se instala a través de paquetes Debian, los archivos de configuración de Gatekeeper se encuentran en /etc/gatekeeper. Debe editar al menos el archivo net.lua y establecer las variables front_ports, front_ips, back_ports y back_ips según su entorno.

Los otros archivos Lua configuran diferentes bloques funcionales de Gatekeeper. Consulte la wiki del proyecto para obtener más información sobre si estos deben cambiarse en su configuración.

También necesita editar el archivo /etc/gatekeeper/envvars y establecer la variable GATEKEEPER_INTERFACES con las direcciones PCI de los adaptadores de red que se enlazarán a DPDK. Estas se pueden encontrar usando el comando lshw. Por ejemplo:

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

Dada esta salida, establezca GATEKEEPER_INTERFACES como se muestra a continuación:

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

En el mismo archivo, puede especificar opcionalmente opciones de la Capa de Abstracción Ambiental en la variable DPDK_ARGS y opciones específicas de Gatekeeper en GATEKEEPER_ARGS.

Cómo ejecutar

Ejecute los comandos a continuación para iniciar Gatekeeper y asegurarse de que se inicie automáticamente al reiniciar.

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

Opción 2: Compilar desde el Código Fuente

Instalar Dependencias

Instale las siguientes dependencias de software:

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

Nota: Tanto libmnl0 como libmnl-dev son necesarios para compilar y ejecutar gatekeeper, pero solo libmnl0 es necesario para simplemente ejecutar gatekeeper. Tanto libkmod2 como libkmod-dev son necesarios para compilar y ejecutar gatekeeper, pero solo libkmod2 es necesario para simplemente ejecutar gatekeeper. libnuma-dev es necesario para compilar el último DPDK y para soportar sistemas NUMA. El paquete libelf-dev es necesario para compilar DPDK con soporte para leer programas BPF desde archivos ELF, pero solo libelf1 es necesario para ejecutarlo. El paquete libc6-dev-i386 es necesario para compilar los programas BPF en la carpeta . Los paquetes , , , y son para BIRD. El paquete se usa para compilar paquetes Debian de Gatekeeper. Los paquetes y son necesarios para compilar DPDK y para ejecutar scripts de Python como . es necesario para compilar Gatekeeper, pero solo es necesario para ejecutar Gatekeeper. y son necesarios para compilar DPDK. es necesario para compilar Gatekeeper.

Para usar DPDK, asegúrese de tener todos los requisitos ambientales.

Clonar el Repositorio

Clone el repositorio de Gatekeeper, incluyendo los submódulos que contienen las dependencias de Gatekeeper:

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

Si no usa la opción de clonación --recursive, debe obtener los submódulos que contienen las dependencias desde el directorio gatekeeper:

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

Compilar

Esta sección explica cómo compilar Gatekeeper manualmente. Si desea compilar paquetes Debian, consulte la sección Cómo compilar paquetes.

Mientras esté en el directorio gatekeeper, ejecute el script de configuración:

root@kitploit:~
$ . setup.sh

Este script compila DPDK, LuaJIT y BIRD, y carga los módulos del kernel necesarios. Además, guarda los nombres de las interfaces y sus respectivas direcciones PCI en el archivo lua/if_map.lua para que los nombres de las interfaces se puedan usar en los archivos de configuración de Gatekeeper.

Una vez que DPDK y LuaJIT estén compilados, se puede compilar gatekeeper:

root@kitploit:~
$ make

Configurar Adaptadores de Red

Antes de que se pueda usar gatekeeper, los adaptadores de red deben estar enlazados a DPDK. Para ello, puede usar el script dependencies/dpdk/usertools/dpdk-devbind.py. Por ejemplo:

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

Este comando enlaza la interfaz enp131s0f0 al controlador vfio-pci para que los paquetes se puedan pasar directamente a DPDK en lugar de al kernel. Tenga en cuenta que este enlace debe realizarse después de configurar Gatekeeper en los pasos anteriores para que la interfaz enlazada aparezca en la lista de interfaces en lua/if_map.lua.

Cómo Ejecutar

Una vez que gatekeeper esté compilado y el entorno esté configurado correctamente, ejecute:

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

Donde [EAL OPTIONS] se especifican antes de un doble guión y representan los parámetros para la Capa de Abstracción Ambiental de DPDK, y [GATEKEEPER OPTIONS] se especifican después del doble guión y representan opciones específicas de Gatekeeper.

La configuración inicial del sistema, incluyendo la configuración de dispositivos y memoria en DPDK, se registrará en la salida estándar. Una vez que Gatekeeper se haya iniciado, toda la información se envía al registro de Gatekeeper.

Cómo compilar paquetes

Los paquetes Debian de Gatekeeper se pueden compilar con los comandos a continuación. Están diseñados para ejecutarse desde la raíz del repositorio y asumen que se han descargado los submódulos de git y que se han instalado las dependencias de compilación, como se indicó anteriormente. Gatekeeper y los submódulos se compilarán automáticamente durante el proceso de compilación del paquete.

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

El paquete de Gatekeeper estará disponible en el directorio padre.

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