Hardware requirements:
Software requirements:
- Ubuntu 12.04 LTS - I've chosen this for longevity purposes, previously I'd used non-LTS operating systems and the updates naturally ran out. I tried this with FreeBSD 9.1 but had issues with packages and getting traffic across the network bridge effectively (probably more my screw up than FreeBSD's)
- ntop - network traffic analysis monitor from www.ntop.org. They have version 5 available from the repositories on the site, version 4 is included in Ubuntu 12.04
- iftop - a neat command line package that shows network usage from a terminal screen. Highly configurable
- tcpdump or equivalent for deeper packet analysis.
Configuration
Setting up the box and the ethernet bridge
Setting up the box is straight forward - go through the usual Ubuntu installation. Use aptitude or apt-get to install bridge-utils and iftop
We want the network bridge between our ethernet adaptors to come up automatically. To do so edit /etc/rc.local and pop this into it (assuming eth1 and eth2 are the interfaces you want to bridge. I have eth0 configured statically in this instance so I can browse from other machines to it)
/etc/rc.local
brctl addbr br0
ifconfig eth1 0.0.0.0 promisc up
ifconfig eth2 0.0.0.0 promisc up
brctl addif br0 eth1
brctl addif br0 eth2
ip link set br0 up
This will bring the bridge up at boot time.
ntop
After you've added the necessary repositories to your aptitude configuration, install ntop5 using apt-get install ntop5
I run this from the command line - as a service it seems to fail fairly consistently. The command is:
ntop -P /var/lib/ntop -Q /usr/local/share/ntop/spool/ -i br0 -u ntop -m 192.168.0.0/24 -d
-P sets the database file path
-Q sets the spool file path
-i sets the interface (br0 as per /etc/rc.local)
-m sets the local subnet - in this case 192.168.0.0/24 (change to suit)
-d sets it to become a daemon freeing up your terminal
Browse to localhost:3000 to find your ntop installation, or if you have a third network card go to the address on the network e.g. 192.168.0.30:3000 and view your traffic stats.
iftop
To get what I want out of iftop, I run a script that calls it and configure the /etc/iftoprc file. The script is:
bridge_monitor.sh
#!/bin/sh
# customisable settings
LOCALNET="192.168.0.0/24"
IFACE="br0" # the bridged interface
CONF="/etc/iftoprc"
/usr/sbin/iftop -p -n -N -i $IFACE -F $LOCALNET -c $CONF
The contects of /etc/iftoprc are:
dns-resolution: yes
port-resolution: yes
show-bars: yes
promiscuous: no
port-display: source-only
#hide-source: yes
#hide-destination: yes
use-bytes: yes
sort: 2s
#line-display: one-line-both
show-totals: yes
Again customise to suit and start monitoring that network!
Is your setup modem -> ubuntu box (bridge) -> router?
ReplyDeleteNope: Switch -> Bridge -> router. This way we can set up ntop to correctly identify the internal network and catch all the traffic. Doing it the other way wouldn't allow us to see the internal host activity. Enjoy!
DeleteThanks ryv's! Really useful information to monitor the traffic.
ReplyDeleteThanks Brad!
DeleteI prefer http://www.softinventive.com/products/total-network-inventory/. It's simple and very effective for network management.
ReplyDeleteThanks for the reply Austin. I've had a quick look. It doesn't seem to be free, which my solution is. I've also recently looked into SpiceWorks again which has some advertising but looks like quite a decent product. My staff are testing it as we speak.
Delete