Domanda

Ho impostato una regola per eliminare i pacchetti udp / tcp con stringhe corrispondenti. tuttavia, il mio programma che cattura i pacchetti usando libpcap, è ancora in grado di vedere questo pacchetto.

Perché è questo /, quali dovrebbero essere le regole iptable per eliminare i pacchetti prima che venga visto da libpcap?

Esiste comunque, forse diverso dalle regole di iptables, eliminare questo pacchetto prima che venga visto da libpcap / tcpdump?

È stato utile?

Soluzione

Sì, libpcap vede tutti i pacchetti. . Vengono catturati prima di essere elaborati dal netfilter.

Altri suggerimenti

Hai provato a cambiare la priorità dell'hook netfilter che usi? se provi a collegarti con la massima priorità per i pacchetti in arrivo, otterrà il pacchetto prima del codice del kernel del socket dei pacchetti, che è il modo in cui libpcap usa per catturare i pacchetti.

* Presumo che tu stia utilizzando Linux *

EDIT: Libpcap utilizza diversi modi per acquisire i pacchetti, in base al sistema operativo. su Linux usa un socket di pacchetto che è implementato nel codice del kernel usando il framework netfilter.

Non c'è modo per libpcap di vedere i pacchetti prima di netfilter, netfilter è un modulo del kernel ed elabora tutti i pacchetti prima che colpiscano la modalità utente, può persino vedere i pacchetti prima che il kernel lo veda. Potresti spiegare ulteriormente spiegare? È possibile che libpcap stia anche impostando hook su netfilter che sovrascrivono quello in iptables. Il vero problema è che guardare e quali hook sono impostati su netfilter è tutt'altro che banale e può essere fatto solo in modalità kernel. Scopri come libpcap ottiene i pacchetti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top