Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
gatekeeper — Il primo sistema di protezione DDoS open-source | Kitploit
Strumenti/GitHubGitHub/altramayor/gatekeeper
Strumenti DifensiviScanner di VulnerabilitàSicurezza di ReteRilevamento Intrusioni
GitHubaltramayor/gatekeeper

gatekeeper

Il primo sistema di protezione DDoS open-source

Vedi Repository
1.6k2519 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Gatekeeper

Gatekeeper compilation status

Cos'è Gatekeeper?

Gatekeeper è il primo sistema di protezione DDoS open source. È progettato per scalare a qualsiasi larghezza di banda di picco, in modo da resistere agli attacchi DDoS sia di oggi che di domani. Nonostante l'architettura geograficamente distribuita di Gatekeeper, la politica di rete che descrive tutte le decisioni da applicare al traffico in arrivo è centralizzata. Questa politica centralizzata consente agli operatori di rete di sfruttare algoritmi distribuiti che non sarebbero praticabili con latenze molto elevate (ad esempio database distribuiti) e di contrastare più attacchi DDoS multi-vettore contemporaneamente.

Gli utenti previsti di Gatekeeper sono gli operatori di rete di istituzioni, fornitori di servizi e contenuti, reti aziendali, ecc. Non è destinato all'uso da parte di singoli utenti Internet.

Per maggiori informazioni, consulta la wiki di Gatekeeper.

Come Configurare

Configurare gli Hugepages

DPDK richiede l'uso di hugepages; le istruzioni per montare gli hugepages sono disponibili nella documentazione dei requisiti. Su molti sistemi, la seguente configurazione di hugepages è sufficiente:

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

Abilitare il modulo del kernel vfio-pci

Il modulo del kernel Linux vfio-pci è necessario per associare le NIC a DPDK/Gatekeeper. Affinché vfio-pci funzioni, sia il BIOS che il kernel devono supportarlo. I BIOS devono avere VT-d abilitato. I BIOS potrebbero identificare VT-d come "Intel (R) VT for Directed I/O", "Intel (R) VT-d Feature", "Intel VT-d", "VT-d" o variazioni simili; per ulteriori esempi, cerca "BIOS VT-d" su Google Immagini. Alcuni BIOS potrebbero richiedere l'abilitazione di un'opzione chiamata "Intel (R) Virtualization Technology" (o varianti di questa stringa) prima che VT-d possa essere abilitato.

Per verificare che VT-d sia abilitato nel BIOS, esegui il seguente comando dopo l'avvio di Linux:

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

Se il comando sopra restituisce alcune righe, VT-d dovrebbe essere abilitato. Altrimenti, bisogna tornare al BIOS per abilitarlo. Ulteriori informazioni su come verificare che VT-d sia abilitato nel BIOS sono disponibili su questa pagina.

Una volta che VT-d è abilitato nel BIOS, bisogna assicurarsi che il kernel supporti IOMMU. Nota che è necessaria una versione del kernel maggiore di 3.6 per supportare IOMMU. Si può verificare se il kernel in esecuzione ha IOMMU abilitato per impostazione predefinita con il seguente comando:

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

Molto probabilmente, il comando sopra restituirà # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set, ovvero il kernel in esecuzione non ha IOMMU abilitato per impostazione predefinita. Modi alternativi per verificare le opzioni di build del kernel (cioè CONFIG_INTEL_IOMMU_DEFAULT_ON) sono disponibili su questa pagina.

Se il kernel non ha IOMMU abilitato per impostazione predefinita, è necessario passare il parametro di avvio del kernel intel_iommu=on tramite GRUB. Per informazioni sul perché è necessario il parametro di avvio intel_iommu=on, consulta questa pagina. Si può verificare se il kernel in esecuzione ha ricevuto questo parametro con il comando seguente:

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

Se il kernel in esecuzione non ha ricevuto il parametro intel_iommu=on, aggiungilo a GRUB e riavvia la macchina. Le informazioni su come aggiungere un parametro di avvio a GRUB si trovano qui.

Una volta che VT-d è abilitato nel BIOS e il kernel supporta IOMMU, si può verificare che tutto sia a posto con uno dei seguenti comandi:

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

OPPURE

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

Tutto è a posto se gli output dei comandi sopra non sono vuoti.

Opzione 1: Ottenere i Pacchetti

I pacchetti Debian di Gatekeeper sono disponibili per Ubuntu 24.04 LTS nella pagina Releases del progetto.

Installazione

Una volta scaricati i pacchetti, possono essere installati con i comandi seguenti:

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

Configurare Gatekeeper

Quando installato tramite pacchetti Debian, i file di configurazione di Gatekeeper si trovano in /etc/gatekeeper. Dovresti modificare almeno il file net.lua e impostare le variabili front_ports, front_ips, back_ports e back_ips in base al tuo ambiente.

Gli altri file Lua configurano diversi blocchi funzionali di Gatekeeper. Consulta la wiki del progetto per ulteriori informazioni sulla necessità di modificarli nella tua configurazione.

Devi anche modificare il file /etc/gatekeeper/envvars e impostare la variabile GATEKEEPER_INTERFACES sugli indirizzi PCI degli adattatori di rete da associare a DPDK. Questi possono essere trovati usando il comando lshw. Ad esempio:

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

Dato questo output, imposta GATEKEEPER_INTERFACES come segue:

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

Nello stesso file, puoi opzionalmente specificare le opzioni del livello di astrazione ambientale nella variabile DPDK_ARGS e le opzioni specifiche di Gatekeeper in GATEKEEPER_ARGS.

Come eseguire

Esegui i comandi seguenti per avviare Gatekeeper e assicurarti che si avvii automaticamente ai riavvii.

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

Opzione 2: Compilare dal Codice Sorgente

Installare le Dipendenze

Installa le seguenti dipendenze 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: Sia libmnl0 che libmnl-dev sono necessari per compilare ed eseguire gatekeeper, ma solo libmnl0 è necessario per la semplice esecuzione di gatekeeper. Sia libkmod2 che libkmod-dev sono necessari per compilare ed eseguire gatekeeper, ma solo libkmod2 è necessario per la semplice esecuzione di gatekeeper. libnuma-dev è necessario per compilare l'ultima versione di DPDK e per supportare sistemi NUMA. Il pacchetto libelf-dev è necessario per compilare DPDK con il supporto alla lettura di programmi BPF da file ELF, ma solo libelf1 è necessario per eseguirlo. Il pacchetto libc6-dev-i386 è necessario per compilare i programmi BPF nella cartella . I pacchetti , , , e sono per BIRD. Il pacchetto è usato per creare i pacchetti Debian di Gatekeeper. I pacchetti e sono necessari per compilare DPDK e per eseguire script Python come . è necessario per compilare Gatekeeper, ma solo è necessario per eseguire Gatekeeper. e sono necessari per compilare DPDK. è necessario per compilare Gatekeeper.

Per usare DPDK, assicurati di avere tutti i requisiti ambientali.

Clonare il Repository

Clona il repository di Gatekeeper, inclusi i sottomoduli che contengono le dipendenze di Gatekeeper:

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

Se non usi l'opzione --recursive durante la clonazione, devi ottenere i sottomoduli che contengono le dipendenze dalla directory gatekeeper:

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

Compilare

Questa sezione spiega come compilare Gatekeeper manualmente. Se desideri creare pacchetti Debian, consulta la sezione Come creare i pacchetti.

Mentre ti trovi nella directory gatekeeper, esegui lo script di configurazione:

root@kitploit:~
$ . setup.sh

Questo script compila DPDK, LuaJIT e BIRD, e carica i moduli del kernel necessari. Inoltre, salva i nomi delle interfacce e i rispettivi indirizzi PCI nel file lua/if_map.lua in modo che i nomi delle interfacce possano essere usati nei file di configurazione di Gatekeeper.

Una volta che DPDK e LuaJIT sono compilati, gatekeeper può essere compilato:

root@kitploit:~
$ make

Configurare le Schede di Rete

Prima di poter usare gatekeeper, le schede di rete devono essere associate a DPDK. Per questo, puoi usare lo script dependencies/dpdk/usertools/dpdk-devbind.py. Ad esempio:

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

Questo comando associa l'interfaccia enp131s0f0 al driver vfio-pci in modo che i frame possano essere passati direttamente a DPDK invece che al kernel. Nota che questa associazione deve avvenire dopo la configurazione di Gatekeeper nei passaggi precedenti, in modo che l'interfaccia associata appaia nell'elenco delle interfacce in lua/if_map.lua.

Come Eseguire

Una volta che gatekeeper è compilato e l'ambiente è configurato correttamente, esegui:

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

Dove [EAL OPTIONS] sono specificati prima di un doppio trattino e rappresentano i parametri per il livello di astrazione ambientale di DPDK, e [GATEKEEPER OPTIONS] sono specificati dopo il doppio trattino e rappresentano le opzioni specifiche di Gatekeeper.

La configurazione iniziale del sistema, inclusa la configurazione dei dispositivi e della memoria in DPDK, verrà registrata su stdout. Una volta che Gatekeeper è avviato, tutte le informazioni vengono inviate al log di Gatekeeper.

Come creare i pacchetti

I pacchetti Debian di Gatekeeper possono essere creati con i comandi seguenti. Sono pensati per essere eseguiti dalla radice del repository e presuppongono che i sottomoduli git siano stati scaricati e che le dipendenze di compilazione siano state installate, come indicato sopra. Gatekeeper e i sottomoduli verranno compilati automaticamente durante il processo di creazione del pacchetto.

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

Il pacchetto Gatekeeper sarà disponibile nella directory padre.

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