Insta-Snorby 0.4 with OpenFPC
Snorby had a big launch this weekend with an event that rivaled Apple in terms of hype and excitement! The two-dot-ooh-yeah release has reached the unwashed masses.
The Snorby 2.0 feature that I’m most excited about is the inclusion of support for OpenFPC directly in the Snorby UI (but face it I’m kind of biased here). Many users of Snorby will be unaware of the OpenFPC project, and as they could be eager to try out the bleeding Snorby version, I thought I would include a quick how-to (below) of adding OpenFPC on to the Insta-Snorby appliance.
I wouldn’t expect real-world users of Snorby / OpenFPC to use the Insta-Snorby VM, but it’s a good introduction / test platform. As a guide to effort, the below ten steps should take about ten minutes to follow (including the download and updating of packages).
If you spot any errors please let me know, this is the bleeding edge after all.
First the obvious bits….
1) Download the Insta-Snorby-0.4.iso
2) Install the .iso on to the hard disk of a virtual (or physical) machine
3) SSH in to the device as root.
Now the less-obvious bits…
4) Prepare the platform.
Update the package archives. This is mandatory, it’s not being performed as part of good practice.
root@Insta-Snorby ~# apt-get update
Install the dependancies from the Ubuntu package archive (note you can copy/paste the below into your ssh session rather than re-type).
apt-get install apache2 daemonlogger tcpdump tshark libarchive-zip-perl \ libfilesys-df-perl libapache2-mod-php5 mysql-server php5-mysql \ libdatetime-perl libdbi-perl libdate-simple-perl php5-mysql \ libterm-readkey-perl libdate-simple-perl
5) Download the latest version of OpenFPC from http://code.google.com/p/openfpc/downloads/list
root@Insta-Snorby ~# wget http://openfpc.googlecode.com/files/openfpc-0.4-266.tgz
Note that 0.4-266 is “current” at the time of writing, but there is a lot of development happening right, so make sure you get the latest and don’t assume 0.4-266 is still “current”
6) Install OpenFPC
root@Insta-Snorby ~# tar -zxf openfpc-0.4-266.tgz
root@Insta-Snorby ~# cd openfpc-0.4-266/
root@Insta-Snorby ~# ./openfpc-install.sh install
You will be promoted to provide a password for the OpenFPC extract.cgi script. This password protects any attempts to pull out a pcap via the cgi interface used by Snorby via Apache’s basic auth. It saves the password to /etc/openfpc/apache2.passwd.
You will need this username/pass to access any pcaps via Snorby, so REMEMBER IT!
7) Customize OpenFPC
OpenFPC is a client/server system, the openfpc-client does not need to be on the same physical host as the openfpc-queue daemon and therefore it listens on a network socket (default 4242). The default username and password is
Username: openfpc
Password: openfpc
If you want to change these, edit /etc/openfpc/openfpc-default.conf and set…
a) USER=openfpc=openfpc
Set this to whatever username/pass you desire e.g.
USER=snorby=letmein
b) Change the user account that is used to pull PCAP files via the extract.cgi interface to one you have specified with a USER definition. e.g. for the above user definition I would use:
GUIUSER=snorby
GUIUSER=letmein
8) Start up OpenFPC
root@Insta-Snorby ~/openfpc-0.4-266# openfpc –action start
############################################################################### [*] OpenFPC instance openfpc-example-proxy.conf - NODENAME: Example_Proxy - DESCRIPTION: "An example OpenFPC Proxy config. www.openfpc.org" - STATUS : DISABLED - PORT: 4243 ############################################################################### [*] OpenFPC instance openfpc-default.conf - NODENAME: Default_Node - DESCRIPTION: "An OpenFPC node. www.openfpc.org" - STATUS : ENABLED - PORT: 4242 - INTERFACE: eth0 - FULL PACKET CAPTURE: ENABLED - PACKET STORE: /var/tmp/openfpc/pcap - SESSION DATA SEARCH: DISABLED Starting Daemonlogger (Default_Node)... Done Starting OpenFPC Queue Daemon (Default_Node)... Done
9) Check communications and your openfpc username/password.
Use the command line tool openfpc-client to check things are working. The –action status will provide a status check of a remote OpenFPC instance.
root@Insta-Snorby ~/openfpc-0.4-266# openfpc-client -a status * openfpc-client 0.4 * Part of the OpenFPC project Username: openfpc Password for user openfpc : #################################### OpenFPC Node name : Default_Node OpenFPC Node Type : NODE OpenFPC Version : 0.4 Oldest Packet : 1291638906 (Mon Dec 6 12:35:06 2010) Oldest Session : 0 (Thu Jan 1 00:00:00 1970) Packet utilization : 10% Session utilization : Disabled% Session DB Size : Disabled rows Session lag : 0 files Storage utilization : 10% Packet space used : 1867896 (1.87 GB) Session space used : Disabled (Disabled Bytes) Storage used : 1867896 (1.87 GB) Load avg 1 : 0.04 Load avg 5 : 0.05 Load avg 15 : 0.08 Errors : 0 root@Insta-Snorby ~/openfpc-0.4-266#
10) Configure the Snorby OpenFPC plugin
Navigate to the Snorby web interface, and browse to Administration.
- Check the box “Enable OpenFPC support”
- Use the below URL for extraction
- https://<your Insta-snorby IP>/openfpc/cgi-bin/extract.cgi
- Hit “Save Settings”
Complete!
Now when you look at an IPS event, you will have a “Packet Capture” button that pulls out the complete session data via OpenFPC.
Many of the advanced OpenFPC capabilities are not addressed in this how-to such as connection/flow capture and searching, compressed extracts, reports, distributed extracts, horizontal scaling, etc etc but I’m keeping this How-to simple. If you want to know more, you know where to look http://www.openfpc.org.
-Leon


[...] This post was mentioned on Twitter by Leon Ward, Dustin Webber. Dustin Webber said: RT @leonward Insta-Snorby 0.4 with OpenFPC: http://wp.me/psQ1j-7K [...]
Tweets that mention Insta-Snorby 0.4 with OpenFPC « An alchemists view from the bar -- Topsy.com
December 6, 2010 at 2:06 pm
Leonwad, thanks so much for your support, great tutorial.
I wanted to let you know that we plan on adding support for OpenFPC to VM in the next day or so, thanks for instructions so users can get up and running right away!
Jason Meller (Terracatta)
December 6, 2010 at 2:11 pm
Leon Ward! Not Leon Wad!!
Jason Meller (Terracatta)
December 6, 2010 at 2:14 pm