GNU/Linux >> Linux Esercitazione >  >> Linux

Come acquisire tutti i pacchetti in arrivo sulla NIC, anche se quei pacchetti non mi appartengono

AFAIK, la NIC riceve tutti i pacchetti dal cavo in una rete locale ma rifiuta quei pacchetti il ​​cui indirizzo di destinazione non è uguale al suo ip.

Correzione:rifiuta quei pacchetti la cui destinazione è MAC address non è uguale al suo indirizzo MAC (o multicast o qualsiasi altro indirizzo aggiuntivo nel suo filtro.

Le utilità di cattura dei pacchetti possono banalmente mettere il dispositivo di rete in modalità promiscua, vale a dire che il controllo di cui sopra viene aggirato e il dispositivo accetta tutto ciò che riceve. Infatti, questo è di solito il valore predefinito:con tcpdump , devi specificare il -p opzione per non fallo.

La questione più importante è se i pacchetti che ti interessano vengono addirittura trasportati lungo il filo fino alla tua porta di sniffing. Poiché stai utilizzando uno switch Ethernet non gestito, quasi certamente non lo sono. Lo switch sta decidendo di eliminare i pacchetti che non ti appartengono dalla tua porta prima che il tuo dispositivo di rete possa sperare di vederli.

Per eseguire questa operazione, devi connetterti a una porta di mirroring o monitoraggio appositamente configurata su uno switch Ethernet gestito.


All'inizio degli hub Ethernet (non degli switch), i pacchetti inviati sono disponibili per tutti gli host sulla sottorete, ma gli host che non sono il destinatario previsto dovrebbero ignorarli.

Ovviamente, non ci volle molto perché le sottoreti si saturassero, quindi la tecnologia degli switch è nata per risolvere i problemi, e una delle cose che hanno fatto è stata fare in modo che lo switch di rete instradasse solo i pacchetti destinati a quell'host a quella porta (più il traffico di andy broadcast ).

Questo complica il monitoraggio/sniffing della rete perché puoi solo sniffare i pacchetti che sono per il tuo host. Questa era considerata una buona cosa dal punto di vista della sicurezza, ma dal punto di vista del monitoraggio della rete non così buona. Per far funzionare il monitoraggio della rete, i fornitori implementano una funzionalità chiamata mirroring delle porte. Questo deve essere configurato sullo switch di rete e il link sottostante dovrebbe indirizzarti nella giusta direzione per i prodotti D-link. Lo troverai da qualche parte nel tuo software di gestione degli switch o nell'interfaccia di amministrazione web. Se non trovi queste funzionalità, la funzionalità potrebbe non essere fornita in quel dispositivo specifico.

http://www.dlink.com/uk/en/support/faq/switches/layer-2-gigabit/dgs-series/es_dgs_1210_como_monitorear_trafico_de_un_puerto_port_mirroring


Per prima cosa devi cambiare la tua NIC in modalità promiscua. Supponiamo che la tua interfaccia NIC sia eth0.

[email protected]#ifconfig eth0 promesc

Se sei su una rete switch, il tuo sniffing è ridotto al dominio di collisione connesso alla porta dello switch. Puoi eseguire macof per sopraffare la tabella di inoltro dello switch.

[email protected]#macof -i eth0

Quindi puoi usare wireshark o tcpdump per catturare tutto il traffico.

[email protected]#tcpdump -i eth0 -w outputfile

Se non sei su una rete commutata, abilita la modalità promiscua e usa tcpdump .


Linux
  1. Come diagnosticare l'adattatore di rete difettoso (a bordo)?

  2. CentOS / RHEL:come scoprire se una porta di rete è aperta o meno?

  3. Come posso incanalare tutto il mio traffico di rete attraverso SSH?

  4. Come elencare tutti i file in una condivisione di rete Windows SMB

  5. Quanti servizi sono in ascolto sul sistema di destinazione su tutte le interfacce? (Non solo su localhost e IPv4)

Come acquisire e analizzare i pacchetti con il comando tcpdump su Linux

Come utilizzare Wireshark per acquisire e analizzare i pacchetti di rete

Come trovare quali dispositivi sono collegati alla rete in Linux

Come verificare se sei nella sessione dello schermo o meno in Linux

Come riparare le connessioni di lavoro non sono sufficienti errori su Nginx

Come trovo tutte le interfacce che sono state configurate in Linux, incluse quelle dei container?