The NF controller, shared library, applications, and iptables code is protected by a license agreement that allows free use of the OpenNF code for academic and research purposes. Please fill out our request form to obtain access to the code.
If you have questions about the code, please email agemberjacobson@colgate.edu.
NEW! To learn how to use OpenNF, follow the OpenNF tutorial.
The NF controller is written in Java and runs atop Floodlight 0.90. The README file included in the download provides instructions for compiling and running the controller.
The shared library for NFs is written in C and handles communication between NFs and the NF controller. The README file included in the download provides instructions for compiling and installing the shared library.
We have written several applications that use OpenNF.
Bro, a popular intrusion detection system, has been modified to support OpenNF. The modifications are available as a patch against Bro 2.1. The code requires the Boost serialization library.
PRADS, an asset detection and monitoring system, has been modified to support OpenNF. The modifications are available as a patch against commit "930ff5140aa90259ec02b85fdd8ba69f9c0c5c64" in the PRADS git repository.
iptables, a userspace command line program that facilitates configuration of packet filtering rules in the Linux kernel to realize firewall and network address translator functionality, supports OpenNF through the use of libnetfilter_contrack. A standalone program provides the OpenNF support, as opposed to modifying iptables itself, as is done with other NFs.
We are improving our modifications to Squid, a popular caching proxy, to support OpenNF. This code will be available shortly.