Uživatelské nástroje

Nástroje pro tento web


libpcap

wireshark

  • wireshark byl později rozdělen na 2 části, aby i non-root uživatel mohl spouštět zachytávání peketů a celý GUI neběželo pod root permission.
  • 'dumpcap' - je vhodné mu nastavit 'sticky bit'

rpcapd

  • musí se povolit při kompilaci libpcap … jak? nejspíš '–enable-have-remote'
  • debian nemá u libpcap standartně povolený rpcapd … důkaz?
 djbuldog@Pharaon:~$ dumpcap -i rpcap://veneto.liberouter.org/eth0
 The capture session could not be initiated (SIOCGIFHWADDR: No such device).
 Please check to make sure you have sufficient permissions, and that you have the proper interface or pipe specified.
 
 Následující balíky budou ODSTRANĚNY:
   arp-scan arping ettercap iftop kismet libnids-dev libnids1.21 libpcap0.8 mz
   network-manager-pptp network-manager-pptp-gnome nmap ppp pptp-linux tcpdump
   tshark vde2 wireshark wireshark-common
 
  • zkusme to nejprve s centOS …
    • nainstalujeme balíček …
   rpm -i http://www.liberouter.org/nific/usecases/rpcap/libpcap-1.1.1-903.x86_64.rpm
   
  • a ejhle… libpcap tam už máme, protože jej používá například network manager, použijeme přepínač '–force'
  • hm.. jenomze on to tam natvrdo nainstaloval bez upgrade :) tak ted tam mam 2x libpcap :) ⇒ rollback :)
  • odinstaloval jsem libpcap a nainstaloval znovu.. pouze default verzi, zkusil jsem použít 'rpm -U' jenomže balíček 'ppp' byl stavěný přesně na default verzi libpcap :(
  • tak prostě stáhnu 'source' balíček a sám si jej zkompiluji s 'have remote'
  • zpátky k debianu
 $ cd /tmp/
 $ tar libpcap-1.1.1.tar.gz 
 $ cd libpcap-1.1.1
 $ ./configure && make
 
 make: yacc: Command not found
 apt-get install bison
 
 make install // ale uz ne??? -> && make install-rpcapd
 
  • krása, nainstalovalo se to do /usr/local/* ale normální libpcap je v /usr/* .. při configure lze změnit přepínačem –prefix=/usr/ ale to bych skutečně přepsal soubory distribuce :) přepsat? nepřepsat? :)
 $ ldd `type dumpcap`
 ..
 libpcap.so.0.8 => /usr/lib/libpcap.so.0.8 
 ..
 
 $ ls -la /usr/lib/libpcap.so.0.8 
 lrwxrwxrwx 1 root root 16  3. kvě 21.09 /usr/lib/libpcap.so.0.8 -> libpcap.so.1.1.1
 
 ln --force -s /usr/local/lib/libpcap.so.1.1.1 /usr/lib/libpcap.so.0.8
 
  • žádná změna nenastala :) jdu aspoň zkusit rozchodit ten rpcapd lokálně :)
  • rpcapd hlásil, že nemůže najít knihovnu… hledal ji ve špatném dir.. chyba make :)
 $ ln -s /usr/local/lib/libpcap.so.1 /usr/lib/ 
 
  • rpcapd úspešně odzkoušen.. plně funkční ⇒ a jdeeeme na wireshark :) konkrétně dumpcap
 tar -xf wireshark-1.2.7.tar.bz2 
 sudo ./configure --help | grep pcap 
  --enable-text2pcap      build text2pcap. [default=yes]
  --enable-dumpcap        build dumpcap. [default=yes]
  --enable-setuid-install install dumpcap as setuid [default=no]
  --enable-airpcap        use airpcap in wireshark. [default=no]
  --with-pcap[=DIR]       use libpcap for packet capturing. [default=yes]
  --with-pcap-remote      use libpcap remote capturing (requires libpcap) 
 
Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]
 
  • default instalace je prý do /usr/local/*
 $ ./configure --enable-setuid-install --with-pcap-remote 
 $ make
 
  • chyba při kompilaci: '/usr/local/include/pcap/pcap.h:413:24: error: remote-ext.h: Adresář nebo soubor neexistuje'
  • soubor je k nalezení: 'libpcap-1.1.1/remote-ext.h' (není nikde v /usr/local/*)
  • proto:
 cp /usr/src/libpcap-1.1.1/remote-ext.h /usr/local/include/
 
  • už to běháááá.. ale bacha.. není tam prej eth0 !!??!! ale sze0 - aha.. musím být root … a taky uri je rpcap a ne rpcapd :)
  • funkční cmd
 sudo  ./dumpcap -i rpcap://veneto.liberouter.org:2002/sze0
 
  • jinak.. když je hacknutá library, tak tahle uri funguje i s wiresharkem bez patche.. avšak jsou tam nějaké omezení, wireshark nezobrazje v gui možnost pro remote a nefuguje update list of packet in real time
  • na centOS ..
  • 1) čistý systém + pcap rpm balíček od liberouteru (/usr/lib = tj né local) + build wiresharku
     [root@localhost wireshark-1.2.7]# repoquery -l libpcap-devel
     /usr/include/pcap-bpf.h
     /usr/include/pcap-namedb.h
     /usr/include/pcap.h
     
  • 2) čistý systém + kompilace libpcap od liberouteru + build wiresharku

Problemy

  • dle wiki se má použít https://www.liberouter.org/repo/STABLE/x86_64/ .. ale STABLE tam není
  • chyby kompilace rpcapd
    • yacc: Command not found - chybí závislost na bison v configure scriptu
    • závislost na libpcap-dev při kompilaci libpcap? :-D - vyskytlo se pouze jednou a už nikdy nereprodukováno - asi haluz :)
gcc -pthread -DHAVE_REMOTE -DHAVE_SNPRINTF -D_GNU_SOURCE -g -D_REENTRANT -I../  -o rpcapd rpcapd.o daemon.o utils.o fileconf.o pcap-remote.o sockutils.o pcap-new.o -L../ -lpcap -lcrypt 
..//libpcap.so: undefined reference to `pcap_parse'
  • makefile poskytuje uninstall … uuuuužasné, ale zdá se, že nesmaže vše.. třeba rpcapd :)
  • linker.. rpcapd nemůže najít knihovnu libpcap.so.1, nehledá ji v /usr/local/lib (default).. ale například v /usr/lib/
  • hlavičkový soubor remote-ext.h není distribuován do /usr/local/include/

wireshark 1.2.7 ze source sestaveny na x86_64 debianu, rpcapd na veneto se zkompilovanym openvpn dle wiki

  • pri zastaveni vzdaleneho zachytavani
    • se zobrazi v rpcapd konzoli hlaska:
The other end system asked to close the connection.
I'm exiting from the child loop
  • a na strane wireshark klienta chybova hlaska:
Error while capturing packets: select(): Interrupted system call (code 4)
Please report this to the Wireshark developers.
(This is not a crash; please do not report it as such.)
  • ve windows verzi wireshark se to neprojevuje
  • pri ukonceni vpn a znovuotevreni dialogoveho okna capture options wireshark tak na 3 minuty vytuhne
    • ceka se na odpoved (timeout) posledne pouzite (uzavreneho vpn p2p spojeni) IP adresy
    • chovaji se tak i ostatni programy - napriklad firefox - ale ten umoznuje akci zastavit
    • cekani lze vyvolat i znovupouzitim automaticky vytvorene zalozky na predesle vpn spojeni
    • lze take vyvolat zadanim IP adresy, na kterou system nedostane ze site icmp odpoved Destination Host Unreachable
    • po cekaci dobe se zobrazi nasledujici chybova hlaska (jen v tech dalsich dvou metodach zpusobeni cekani)
Can't get list of interfaces: Is the server properly installed on 10.3.0.1?  connect() failed: Spojení bylo příliš dlouho neaktivní (code 110) 
  • vyskytuje se i ve windows verzi, avsak cekaci doba je max do 30s
  • nachystaný rpm balíček se nedá nainstalovat na normálním desktop centOS, protože předchystané balíčky očekávají určitou verzi.
    • Použití tarbalu neumožní použití baličkovaných nástrojů z důvodu závislosti na libpcap
    • Zkompilování zdrojáků balíčkového libpcap s přepínačem pro rpcap nebude obsahovat bugfixy od liberouteru?
    • Zkompilování zdrojáků libpcap z liberouteru nebude opět verzí odpovídat požadované verzi libpcap
      • použití fake verze vnese zmatek…
      • použití trans… balíčku nemusí být optimální
      • nová zafixovaná verze libpcap může způsobit problémy v balíčkovaných aplikacích
    • mám vytvořit tedy balíčky pro wireshark běžící s naší rpm libpcap? nebo návod jak je vytvořit?

TODO

  • na debianu si v klidečku v /usr/local rozjet rpcapd a zkusit se na něj připojit z windows.. jestli funguje libpcap + rpcapd
  • rozjet to na mym milovanym debianu :) - vytvořením balíčku z distra i od liberouteru - ať vidím případné chyby :)
  • napsat něco ke klient návodu :)
  • asi rozjet OpenVPN server podle navodu na linuxu, abych mohl popsat klienta :)
  • čím by šel nahradit openvpn? n2n je méně podporovaný a také používá tun/tap
libpcap.txt · Poslední úprava: autor: 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki