
nDPI v6.0
Toolkit Software Open Source per Ispezione Approfondita dei Pacchetti
nDPI
Cos'è nDPI ?
nDPI® è una libreria open source LGPLv3 per l'ispezione approfondita dei pacchetti.
Una FAQ generica su nDPI è disponibile qui
Come Compilare nDPI
Per compilare questo progetto esegui
- ./autogen.sh && ./configure
- make
Se ottieni degli errori durante la compilazione di croaring.c, prova:
- ./autogen.sh && ./configure --enable-old-croaring
- make
Per compilare la libreria senza strumenti o test:
- ./autogen.sh && ./configure --with-only-libndpi
- make
Sono supportate le build out-of-tree:
- ./autogen.sh
- mkdir build
- cd build
- ../configure && make
Per eseguire i test, fai inoltre:
- ./tests/do.sh # Generate and check for diff's in PCAP files
- ./tests/do-unit.sh # Run unit tests
- ./tests/do-dga.sh # Run DGA detection test
oppure esegui tutto con: make check
Nota che i prerequisiti (minimi) per la compilazione includono:
- GNU tools (autoconf automake libtool pkg-config gettext flex bison)
- GNU C compiler (gcc) or Clang
Su sistemi Debian/Ubuntu esegui:
- sudo apt-get install build-essential git gettext flex bison libtool autoconf automake pkg-config libpcap-dev libjson-c-dev libnuma-dev libpcre2-dev libmaxminddb-dev librrd-dev
Su Arch Linux:
- sudo pacman -S gcc git gettext flex bison libtool autoconf automake pkg-config libpcap json-c numactl pcre2 libmaxminddb rrdtool
Su FreeBSD:
- sudo pkg install gcc git gettext flex bison libtool autoconf automake devel/pkgconf gmake libpcap json-c pcre2 libmaxminddb rrdtool
Ricorda di usare gmake e non make su FreeBSD
Su macOS:
- brew install coreutils gcc git gettext flex bison libtool autoconf automake pkg-config libpcap json-c pcre2 libmaxminddb rrdtool
Su Windows:
Ci sono tre modi supportati per compilare nDPI:
- MSYS2 (supponendo che MSYS2 sia già installato):
- msys2 -c "pacman --noconfirm -S --needed --overwrite '*' git mingw-w64-x86_64-toolchain automake1.16 automake-wrapper autoconf libtool make mingw-w64-x86_64-json-c mingw-w64-x86_64-crt-git mingw-w64-x86_64-pcre2 mingw-w64-x86_64-libpcap"
-
Mingw-w64
-
Visual Studio (vedi
windows/nDPI.sln)
Nota: Tutte le versioni di Windows richiedono npcap con la modalità di compatibilità WinPcap abilitata.
Come Creare La Documentazione
- pip install --upgrade pip
- pip install -r doc/requirements.txt
- make doc
Usa il server web integrato python3 per visualizzare la documentazione:
- make doc-view
Come Aggiungere Un Nuovo Dissettore di Protocollo
L'intera procedura per aggiungere nuovi protocolli in dettaglio:
- Aggiungi il nuovo protocollo insieme al suo ID univoco a:
src/include/ndpi_protocol_ids.h - Crea un nuovo protocollo in:
src/lib/protocols/ - Le variabili da mantenere per tutta la durata del flusso (come variabili di stato) devono essere inserite in:
src/include/ndpi_typedefs.hinndpi_flow_tcp_struct(solo TCP),ndpi_flow_udp_struct(solo UDP), ondpi_flow_struct(per entrambi). - Aggiungi una nuova voce per la funzione di ricerca del nuovo protocollo in:
src/include/ndpi_private.h - Scegli (non modificare nulla) una bitmask di selezione da:
src/include/ndpi_define.h - Imposta le porte predefinite del protocollo in
ndpi_init_protocol_defaultsin:src/lib/ndpi_main.c - Assicurati di avere il supporto nBPF, clonando
PF_RINGnella stessa directory in cui hai clonatonDPI:git clone https://github.com/ntop/PF_RING/ && cd PF_RING/userland/nbpf && ./configure && make. Puoi ignorare l'errore/bin/sh: 1: ../lib/pfring_config: not found - Dalla directory root di
nDPI,./autogen.sh && ./configure --with-pcre2(nBPF e PCRE2 sono solitamente opzionali, ma sono necessari per eseguire/aggiornare tutti i test unitari) makemake check- Aggiorna la documentazione, aggiungendo questo nuovo protocollo a
doc/protocols.rst - Aggiorna la configurazione di Windows Visual Studio, aggiungendo il nuovo file c in
windows/nDPI.vcxproj
Come usare nDPI per Bloccare il Traffico Selezionato
Puoi usare nDPI per bloccare selettivamente il traffico Internet selezionato incorporandolo in un'applicazione (ricorda che nDPI è solo una libreria). Sia ntopng che nProbe cento possono farlo.
Citazione dell'Articolo su nDPI
- Deri, Luca, et al. nDPI: Open-source high-speed deep packet inspection 2014 International Wireless Communications and Mobile Computing Conference (IWCMC). IEEE, 2014.
Video e Presentazioni
- La Guida Definitiva a nDPI [2025]
- Usare nDPI per risolvere problemi reali: dalla Classificazione del Primo Pacchetto al Rilevamento del Traffico Offuscato [PacketFest, 2025]
- Fingerprinting Passivo del Traffico di Rete [FOSDEM, 2025]
- Un'Analisi Approfondita delle Impronte del Traffico usando Wireshark [SharkFest, 2024]
- Classificazione del Traffico di Rete per la Cybersecurity e il Monitoraggio [FOSDEM, 2022]
- Usare nDPI per Monitoraggio e Sicurezza [FOSDEM, 2021]
- Conoscere l'Ignoto: Come Monitorare e Risolvere i Problemi di una Rete Sconosciuta [SharkFest, 2017]
Progetti Correlati a nDPI
DISCLAIMER
Sebbene facciamo del nostro meglio per rilevare i protocolli di rete, non possiamo garantire che il nostro software sia privo di errori e accurato al 100% nel rilevamento dei protocolli. Assicurati di rispettare la privacy degli utenti e di avere la debita autorizzazione per ascoltare, catturare e ispezionare il traffico di rete.
nDPI è un marchio registrato negli Stati Uniti e nell'UE.