Terminal pogryzł człowieka: jnettop
Większość z nas lubi utrzymywać porządek na swoim podwórku. I wytłumaczeniem na odstępstwo od tej reguły nie jest nawet pomieszkiwanie w wielkiej płycie. A jak utrzymywać porządek to wiadomo – z odpowiednimi narzędziami w ręku. Stąd też zaciekawienie powinien wzbudzić elegancki i utrzymany w manierze top programik jnettop. Pozwala on bardzo szybko zorientować się, co, gdzie i jak przelatuje przez nasze interfejsy sieciowe.
Jnettop jak sama nazwa wskazuje pomyślany został tak, aby zobrazować nam statystyki ruchu z i do danego hosta lub portu. Chociaż brzmi to niepozornie, to sposób wyświetlania informacji docenią osoby które już zetknęły się z problemem odnalezienia w gąszczu połączeń tego, które np. zatyka sieć. O ile bowiem ogół ruchu z danej maszyny daje jakieś wyobrażenie, o tyle rozpisanie informacji na porty (lokalne i zdalne) znacznie ułatwia kontrolowanie tego, czy wszystko mamy pod kontrolą. Program jest skrajnie uproszczony w obsłudze, bowiem do jego użytkowania wystarczy samo wpisanie nazwy polecenia. Po uruchomieniu będziemy mogli zmienić zarówno interfejs na którym chcemy nasłuchiwać, agregację danych według hosta lokalnego, zdalnego lub numeru portu. Do wyboru mamy także jednostkę przepustowości, zliczanie pakietów na sekundę oraz sortowanie wyniku.
Mało tego, program zezwala również na stosowanie reguł filtrowania rodem z tcpdump. Niestety, reguły te musimy wcześniej zdefiniować w pliku konfiguracyjnym ~/.jnettop, albo wypisać ją podczas uruchamiania programu z parametrem -x
# jnettop -h Usage: jnettop [-hv] [-i interface] [-d filename] -h, --help display this help message -v, --version display version information -c, --content-filter disable content filtering -d, --debug filename write debug information into file (or syslog) --display type type of display (curses, text, uia) -f, --config-file name reads configuration from file. defaults to ~/.jnettop --format format list of fields to list in text output -i, --interface name capture packets on specified interface --local-aggr arg set local aggregation to none/host/port/host+port -n, --no-resolver disable resolving of addresses -p, --promiscuous enable promisc mode on the devices --remote-aggr arg set remote aggregation to none/host/port/host+port -s, --select-rule rule selects one of the rules defined in config file by it's name -t, --timeout sec timeout in seconds after which jnettop ends (text display) -x, --filter rule allows for specification of custom filtering rule this follows tcpdump(1) syntax. don't forget to enclose the filter in quotes when running from shell Report bugs to <j@kubs.cz> Format variable can be CSV (comma separated values), TSV (tab separated values) or completelly custom format string, where the following identifiers are subst- ituted when surrounded by '$': src, srcname, srcport, srcbytes, srcpackets, srcbps, srcpps, dst, dstname, dstport, dstbytes, dstpackets, dstbps, dstpps, proto, totalbytes, totalpackets, totalbps, totalpps, filterdata example: jnettop --display text -t 5 --format CSV jnettop --display text -t 5 --format '$srcname$,$srcport$,$dstname$,$dstport$,$totalbps$'
Na powyższym widać kolejną arcyciekawą cechę tego programu. Możliwość definiowania formatu wyjściowego, a co za tym idzie gromadzenia danych w sposób korzystny na potrzeby późniejszego ich parsowania.
Kolejną świetną cechą jnettop jest to, że zainstalujemy go wprost z repozytorium niemal wszystkich dystrybucji.