Skip to content

irino/softflowd

Repository files navigation

Welcome to softflowd, a flow-based network monitor.

Introduction
------------

softflowd listens promiscuously on a network interface and semi-statefully
tracks network flows. These flows can be reported using NetFlow version 1, 5 
or 9 datagrams. softflowd is fully IPv6 capable: it can track IPv6 flows and 
export to IPv6 hosts.

More details about softflowd's function and usage may be found in the
softflowd wiki in following URLs:
https://github.com/irino/softflowd/wiki/softflowd
https://github.com/irino/softflowd/wiki/softflowctl

PDF manpages can be built with:

man -t ./softflowd.8 | ps2pdf - softflowd.pdf
man -t ./softflowctl.8 | ps2pdf - softflowctl.pdf

HTML manpages can be built with:

groff -mandoc -Thtml softflowd.8 > softflowd.html
groff -mandoc -Thtml softflowctl.8 > softflowctl.html

Markdown manpages (which are published in wiki pages) can be built
from above HtML manpages:

pandoc -s softflowd.html -o softflowd.md
pandoc -s softflowctl.html -o softflowctl.md

You can view those pages prior to installation using:

/usr/bin/nroff -c -mandoc softflowd.8 | less
/usr/bin/nroff -c -mandoc softflowctl.8 | less

If you are in need of a NetFlow collector, you may be interested in 
softflowd's companion project "flowd" (http://www.mindrot.org/projects/flowd/). 
flowd is a NetFlow collector that is maintained in parallel with
softflowd and includes a few handy features, such as the ability
to filter flows it receives as well as Perl and Python APIs to its
storage format. NB. You don't have to use flowd: any NetFlow compatible 
collector should work with softflowd. An example Perl collector is included 
for testing purposes as collector.pl, but it doesn't yet support NetFlow v.9

Installing
----------

Building softflowd should be as simple as typing:

autoreconf -if # instead of "aclocal && autoheader && automake --add-missing && autoconf"
./configure
make
make install

Unfortunately some systems like to make life complicated. Things work
fine on the systems that I develop and test on (OpenBSD and Linux).
There is peliminary support for Solaris 9 (i.e. it compiled), but no
testing on this platform has been performed.

Licensing
---------

Softflowd is licensed under a two-term BSD license (see the source
files for details). The code in sys-tree.h is Copyright Niels Provos
<provos@citi.umich.edu> and comes straight from OpenBSD CVS, convtime.c
comes is Copyright Kevin Steves and comes from OpenSSH (misc.c). Both
of these files are licensed under two-term BSD licenses too. strlcpy.c,
strlcat.c and closefrom.c also come from OpenBSD CVS and are Copyright
Todd C. Miller. Please refer to the LICENSE file for full details.

Reporting Bugs
--------------

Please report bugs in softflowd (https://github.com/irino/softflowd/)
to https://github.com/irino/softflowd/issues

Following descriptions are historical information:
Please report bugs in softflowd to http://bugzilla.mindrot.org/ If you
find a security bug, please report it directly by email. If you have any
feedback or questions, please email me:

Contributing
------------

Softflowd has an extensive TODO list of interesting features, large and
small, that are waiting to be implemented. If you are interested in
helping, please contact me.

The latest source code may be obtained from Github:
https://github.com/irino/softflowd/
(This repository was forked from http://code.google.com/p/softflowd/)

Original creator:
Damien Miller <djm@mindrot.org>

Current maintainer:
Hitoshi Irino <irino@sfc.wide.ad.jp>