Domanda

Non è solo una cattura sto cercando di fare qui.Voglio prima di acquisire il pacchetto, quindi in tempo reale, controllare il carico utile di dati specifici, rimuovere, inserire una firma e reiniettare il pacchetto in stack per essere inviato come prima.

Ho avuto una lettura di ipfw deviare prese utilizzando IPFW e sembra molto promettente.Che dire di esempi, nel modificare i pacchetti e reinjecting in stack utilizzando deviare prese?Inoltre, come una questione di curiosità, sarebbe possibile leggere i dati dal socket utilizzando Java oppure limitare me con imballaggio alterazione e reinjecting ecc?

È stato utile?

Soluzione

Stavo per echo altre risposte che hanno consigliato di iptables (a seconda della complessità del pattern che si sta cercando di partita e il pacchetto di modifiche che si desidera apportare) - fino a quando ho preso atto del BSD tag sulla questione.

Come Stefano Pellicer si è già accennato, libpcap è una buona opzione per la cattura dei pacchetti.Credo, però, che libpcap può essere utilizzato anche per inviare i pacchetti.Per riferimento, io sono abbastanza sicuro che tcpreplay utilizza per la riproduzione di file in formato pcap.

Altri suggerimenti

Vedere la deviazione di corrente: Deviazione Prese mini HOWTO.

Funzionano facendo passare il traffico di corrispondenza di un certo ipfw regola speciale per i raw socket che può quindi reiniettare alterato il traffico in rete strati.

Se siete solo in cerca di cattura dei pacchetti, libpcap è molto popolare.E ' utilizzato in strumenti di base come tcpdump ed etereo.Per quanto riguarda il "aggancio in pila", a meno che non si prevede di non cambiando radicalmente il modo in cui la rete è implementato (es.aggiungi il tuo livello o di alterare il comportamento del TCP), la tua idea di usare IPF per il pacchetto di modifica o intervento sembra la migliore scommessa.In Linux hanno una specifica reindirizzamento destinazione per userspace moduli, IPF probabilmente ha qualcosa di simile o è possibile modificare IPF per fare qualcosa di simile.

Se siete solo interessati a vedere i pacchetti, quindi libpcap è la strada da percorrere.Lo si può trovare presso: http://www.tcpdump.org/

È possibile fare questo in userspace con la CODA o NFQUEUE iptables target penso.L'applicazione client è collegato a una coda e riceve tutti i pacchetti, che è possibile modificare prima di essere re-iniettato (si può anche farli cadere se si vuole).

C'è una libreria client libnetfilter_queue che ha bisogno di essere collegato.Purtroppo la documentazione è minima, ma ci sono alcuni messaggi di mailing list ed esempi bussare in giro.

Per motivi di prestazioni, non si vuole fare questo per ogni pacchetto, ma solo specifici corrispondenti a quelli, che dovrete corrispondere l'utilizzo di standard di regole di iptables.Se questo non basta, è necessario scrivere il proprio netfilter modulo del kernel.

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