.\" netsniff-ng - the packet sniffing beast .\" Copyright 2013 Daniel Borkmann. .\" Subject to the GPL, version 2. .TH FLOWTOP 8 "03 March 2013" "Linux" "netsniff-ng toolkit" .SH NAME flowtop \- top-like netfilter TCP/UDP/SCTP/DCCP/ICMP(v6) flow tracking .PP .SH SYNOPSIS .PP \fBflowtop\fP { [\fIoptions\fP] } .PP .SH DESCRIPTION .PP flowtop is a top-like connection tracking tool that can run on an end host or small home router. It is able to present TCP, UDP/UDP-lite, SCTP, DCCP, and ICMP(v6) flows that have been collected by the kernel's netfilter connection tracking framework, thus no packet capturing in user space needs to be done. .PP flowtop is able to give you a quick overview of current connections on your local system, e.g. for debugging purposes or to answer questions like: .PP * If you access website X, what other connections are being opened in the background that I'm not aware of? * What connections are active that pass one's router? * I have this proprietary binary Y, to where does it connect? * To which countries am I sending data? * Are there any suspicious background connections on my machine? * How many active connections does binary Y have? * How long are connections active already? * At which rate am I sending/receiving data? .PP The following information will be presented in flowtop's output: .PP * Application name and PID when run on local machine * Reverse DNS for source and destination * Geo-location information (country, city) * Used protocols (IPv4, IPv6, TCP, UDP, SCTP, ICMP, ...) * Flow port's service name heuristic * Transport protocol state machine information * Byte/packet counters (if they are enabled) * Connection duration (if timestamping is enabled) * Flow send/receive rate (if byte/packet counters are enabled) .PP In order for flowtop to work, netfilter must be active and running on your machine, thus kernel-side connection tracking is active. If netfilter is not running, you can activate it with .BR iptables (8): .in +4 .sp iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT .sp iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT .in -4 .sp or by loading the following kernel modules: .sp .in +4 modprobe nf_conntrack_ipv4 .sp modprobe nf_conntrack_ipv6 .in -4 .PP To dump byte/packet counters flowtop enables the .BR sysctl (8) parameter \fBnet.netfilter.nf_conntrack_acct\fP via: .in +4 .sp echo 1 > /proc/sys/net/netfilter/nf_conntrack_acct .sp .in -4 and resets it to the previously set value on exit. These counters will only be active on connections which were created after accounting was enabled. Thus, to have these counters be active all the time the parameter should be enabled after the system is up. To automatically enable it, .BR sysctl.conf (8) or .BR sysctl.d (8) might be used. .PP To calculate the connection duration flowtop enables the .BR sysctl (8) parameter \fBnet.netfilter.nf_conntrack_timestamp\fP via: .in +4 .sp echo 1 > /proc/sys/net/netfilter/nf_conntrack_timestamp .sp .in -4 and resets it to the previously set value on exit. .PP flowtop's intention is just to get a quick look over your active connections. If you want logging support, have a look at netfilter's .BR conntrack (8) tools instead. .PP .SH OPTIONS .TP .B -4, --ipv4 Display IPv4 flows. That is the default when flowtop is started without any arguments. .TP .B -6, --ipv6 Display IPv6 flows. That is the default when flowtop is started without any arguments. .TP .B -T, --tcp Display TCP flows. That is the default when flowtop is started without any arguments. .TP .B -U, --udp Display UDP and UDP-lite flows. .TP .B -D, --dccp Display DCCP flows. .TP .B -I, --icmp Display ICMP version 4 and version 6 flows. .TP .B -S, --sctp Display SCTP flows. .TP .B -n, --no-dns Don't perform hostname lookup. Only numeric addresses will be shown for flow endpoints. .TP .B -G, --no-geoip Don't perform GeoIP lookup. No geographical information will be shown for flow endpoints. .TP .B -s, --show-src Also show source information of the flow, not only destination information. .TP .B -b, --bits Show flow rates in bits per second instead of bytes per second. .TP .B -u, --update The built-in database update mechanism will be invoked to get Maxmind's latest database. To configure search locations for databases, the file /etc/netsniff-ng/geoip.conf contains possible addresses. Thus, to save bandwidth or for mirroring Maxmind's databases (to bypass their traffic limit policy), different hosts or IP addresses can be placed into geoip.conf, separated by a newline. .TP .B -t