Perché non tcpdump scrivere un file pcap?

Nel process di debug di un pitbot irc bot che non sembra connettersi, ho pensato "lo so, lo farò solo a tcpdump e vedere cosa sta facendo". Così ho eseguito tcpdump come faccio solitamente e dice che è pacchetti catturati, ma in realtà non scrivere il file di protezione.

akraut@lance ~/pcaps $ sudo tcpdump -w pyhole -s 0 "port 6667" tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes ^C17 packets captured 17 packets received by filter 0 packets dropped by kernel 4294966881 packets dropped by interface akraut@lance ~/pcaps $ ls -la total 8 drwxr-xr-x 2 akraut akraut 4096 Feb 6 11:50 . drwxr-xr-x 8 akraut akraut 4096 Feb 6 11:50 .. akraut@lance ~/pcaps $ 

  • Acquistare una casella NAS o creare un server Linux?
  • Come proteggere una networking a basso budget da server DHCP rogue?
  • Telefono 8 fili per networking ethernet?
  • Perché non posso collegarmi ad alcuni server ftp da dietro il mio win2008 NAT?
  • Fare NAT con più uplink su Linux
  • come riparare la fibra verticale correre
  • Recuperare il file system sovrascritto
  • Impatto della prestazione di esecuzione di diversi filesystem su un singolo server Linux
  • Come posso impostare una directory condivisa su Linux?
  • Impostazione del flag noatime per i filesystem all'interno di un contenitore lxc
  • Consigli per la scelta e l'accordatura dei filesystem su SSD?
  • Le partizioni wherevano essere smontate quando si ridimensionano una partizione?
  • 3 Solutions collect form web for “Perché non tcpdump scrivere un file pcap?”

    Potresti voler controllare il comportmento di tcpdump con strace, per vedere se sta facendo qualcosa di strano come il chroot, se è in gentoo o in un'altra distribuzione che potrebbe suidare i binari.

    Ok, ho risolto il mistero. Segui con me mentre scopriamo il TCPDump di Funtoo e il mistero del file pcap mancante .

    Ho usato strace per vedere cosa sta succedendo e le linee sono:

     chroot("/var/lib/tcpdump") = 0 chdir("/") = 0 --- SNIP --- open("/tmp/lol.wat", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 ENOENT (No such file or directory) 

    Così…

     lance ~ # ls /var/lib/tcpdump/ blah blah.cap irc.cap pyhole 

    Ehi guarda! Tutti i file di protezione che ho cercato di creare!

    Dopo aver dato un'occhiata alle flag di utilizzo che tcpdump è costruito per impostazione predefinita, vedo questo:

     lance ~ # grep tcpdump /usr/portge/profiles/use*desc use.local.desc:net-analyzer/tcpdump:chroot - Enable chrooting when dropping privileges 

    Allora perché farlo in questo modo? La mia teoria va in questo modo:

    1. Molte applicazioni che interagiscono con il traffico di networking crudo devono funzionare come root.
    2. Il traffico di networking raw ha una vasta gamma di valori validi e non validi in natura.
    3. Molti exploit esistono per quelle applicazioni. (Wireshark, Ethereal, tcpdump e altri)
    4. Di conseguenza, tcpdump afferra l'accesso all'interface di networking mentre radice, si blocca in /var/lib/tcpdump , quindi scade i privilegi di root e inizia a catturare.

    Di conseguenza, quando ho specificato ./blah or blah funzionava bene. Ma /tmp/blah non perché il file /var/lib/tcpdump/tmp non esiste.

    Una funzionalità laterale accurata di tutto questo è: quando si utilizza la suid flag per installare tcpdump SetUID, è ansible concedere agli utenti l'accesso con il gruppo tcpdump senza dare loro accesso sudo o root. Gli usi possibili includono una scatola di acquisizione per i tecnici di networking o per i ricercatori.

    Vorrei che Gentoo / Funtoo avrebbe avuto un messaggio sull'installazione che ha detto tutto questo.

    tl; dr: Gentoo / Funtoo mette i file pcap in /var/lib/tcpdump .

    La syntax è corretta: l'ho appena provata (anche se sulla port 80) e ho generato un file pcap nella directory di lavoro corrente, dato le stesse opzioni che stai utilizzando.

    Potrebbe avere qualcosa a che fare con la tua home directory, che stai cercando di scrivere come root (a causa del sudo)? È ansible che tu utilizzi le home directory montate su NFS con la schiacciatura di root? sudo touch ~akraut/pcaps/foo ?

    Puoi provare a scrivere il pcap a / tmp / o qualcosa del genere?

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.