Firewall Builder

Requirements


Our main development platform is RedHat. Curently we use machines running RedHat 7.2 and 7.3. We run occasional test builds on Solars 8, FreeBSD 4.5-STABLE and OpenBSD 3.0, but these are not our main development machines. We could not test it on Debian, SuSe distributions, although we've got positive feedback saying it works there, provided that correct libstdc++ and gtkmm packages are installed.

What is needed to run binary distribution


Generally speaking, you need the following packages:

Red Hat 7.2 and 7.3

If your system is configured as "Gnome Workstation" or Ximian Gnome is installed, then you already have proper gtk+, gtkmm and libsigc++ packages. If you are using KDE, then you may need to add these packages.

We build using gtkmm and libsigc++ packages that come with Ximian Gnome. These RPM can be downloaded from their ftp site directly, or obtained as part of Ximian Gnome or using Red Carpet. libsigc++ now comes on disk #2 with RedHat 7.3. Users of RedHat 7.2 systems can also get it from the home page at http://libsigc.sourceforge.net/

libxml2 and libxslt come as part of RedHat 7.3 or can be downloaded from http://xmlsoft.org We recommend using the latest available versions of both libxml2 and libxslt.

Firewall Builder implements number of features which make use of SNMP, therefore you will need ucd-snmp RPM installed, too. RPMs we distribute are built using ucd-snmp v4.2.3 (as of Feb 2002)

Here is the list of recommended packages and where you can get them from:

gtkmm-1.2.8-1 ftp://ftp.ximian.com/pub/ximian-gnome/redhat-73-i386/
gdk-pixbuf-0.16.0 Ximian Gnome or RedHat updates
libsigc++-1.0.4-1 RedHat 7.3 disk #2 or ftp://ftp.ximian.com/pub/ximian-gnome/redhat-73-i386/
libxml2-2.4.19 RedHat 7.3 distribution or ftp://ftp.gnome.org/pub/GNOME/stable/redhat/i386/libxml/
libxslt-1.0.15-1 RedHat 7.3 distribution or ftp://ftp.gnome.org/pub/GNOME/stable/redhat/i386/libxslt/
ucd-snmp-4.2.3 RedHat distribution
ucd-snmp-utils-4.2.3 RedHat distribution
openssl-0.9.6 RedHat distribution

Mandrake 8.1 and 8.2

Requirements are very similar to those for Red Hat 7.2. If the system is configured as "Gnome Workstation" or Ximian Gnome is installed, the you don't need to add gtk+, gtkmm and libsigc++ packages. If you use KDE, you will need to add these packages though.

Here is the list of recommended packages. All these packages come with standard Mandrake distribution, but you may need to install some of them by hand. What packages need to be installed depends on the configuration of OS. Some of these packages can be found on CD #1, while some others are on CD #2. Use can use rpmdrake to install these.

libglib1.2-1.2.10
libstdc++2.10-2.96
libgtkmm1.2-1.2.8
libgdk-pixbuf2-0.16.0
libsigc++1.0-4.0.4
libxml2-2.4.16
libxslt1-1.0.12
libxslt-proc-1.0.12
libsnmp0-4.2.3
ucd-snmp-utils-4.2.3
libopenssl0-0.9.6c


How to build Firewall Builder from source tarball


Build environment

First of all, you need to establish build environment. You will need to install the same libraries you would need to run our binary distribution, plus development packages of all the same libraries. That is, if you use RedHat or Mandrake, then you would need to install gtkmm-devel in addition to gtkmm RPM, libxml2-devel in addition to libxml2 and so on. See below for the list of packages for other OS and distributions.

We tested with different versions of libxml2 and libxstl starting from libxml2-2.4.0 and libxslt-1.0.0, although we recommend using the latest which at the moment of writing this document are libxml2 2.4.19 and libxslt 1.0.15. Gnome ships with libxml-1.8 but you do not need to remove this one, just install libxml2 in addition, they do not conflict.

You will also need relatively new resolver library (libresolv). I do not know how to determine version of libresolv itself since RedHat now ships it as part of glibc and glibc-devel package. You should be fine if you use any fresh distribution. If your glibc is 2.2 then your copy of libresolv is fine. RedHat 6.2 ships old resolver though, so unfortunately you can not build Firewall Builder with support for advanced DNS features on RedHat 6.2.

Make sure you have both bind and bind-devel packages installed and it should be bind 8 or 9

If you want to be able to use SNMP to collect some information about hosts/firewalls, you need to have ucd-snmp package installed. We tested with version 4.1.3 and newer. Home page: http://net-snmp.sourceforge.net/ If snmp library is not installed on your system, then support for features requiring SNMP will be automatically disabled by configure script.

If you would like to build API online class reference, you need to install DOC++ package. Home page: http://docpp.sourceforge.net/. If it is not present no error message will be shown, but class reference will not be generated.

Firewall Builder has been translated into several languages and uses GNU gettext to support internationalization. This means you will need this package on your system to build Firewall Builder. Some OS and distributions come with it by default, while others do not. See below for details.

To build from source, download and unpack two tar.gz archives: libfwbuilder-N.N.N.tar.gz and fwbuilder-M.M.M.tar.gz. First you need to build and install libfwbuilder because fwbuilder depends on it. The build procedure is the same for both modules, so I'll describe it only once using libfwbuilder as an example.

In order to build, you basically need to do the following:

$ zcat libfwbuilder-0.10.8.tar.gz | tar xvf -
$ cd libfwbuilder
$ ./autogen.sh --prefix=/usr/local
$ make
$ su
# make install

Note that you should run script autogen.sh instead of configure, this script regenrates configure and number of other autoconf scripts using templates specific your OS and distribution.

this will install the following files on your system (actual directory paths may differ on different OS and distributions and also depend on the value of parameter --prefix given to autogen.sh ):

Once you installed libfwbuilder, you can execute the same sequence of commands for fwbuilder. Module fwbuilder builds and installs the following:

Packages that need to be installed on particular OS and distributions

Red Hat 7.2 and 7.3

Here is the list of recommended packages for RedHat 7.2 and where you can get them from:

gtkmm-1.2.8-1ftp://ftp.ximian.com/pub/ximian-gnome/redhat-73-i386/
gtkmm-devel-1.2.8-1ftp://ftp.ximian.com/pub/ximian-gnome/redhat-73-i386/
gdk-pixbuf-devel-0.16.0Ximian Gnome or RedHat updates
libsigc++-1.0.4-1ftp://ftp.ximian.com/pub/ximian-gnome/redhat-73-i386/
libsigc++-devel-1.0.4-1RedHat 7.3 or http://www.hvrlab.org/pub/gtkmm/
libxml2-2.4.19RedHat 7.3 or ftp://ftp.gnome.org/pub/GNOME/stable/redhat/i386/libxml/
libxml2-devel-2.4.19 RedHat 7.3 or ftp://ftp.gnome.org/pub/GNOME/stable/redhat/i386/libxml/
libxslt-1.0.15-1 RedHat 7.3 or ftp://ftp.gnome.org/pub/GNOME/stable/redhat/i386/libxslt/
libxslt-devel-1.0.15-1 RedHat 7.3 or ftp://ftp.gnome.org/pub/GNOME/stable/redhat/i386/libxslt/
doc++-3.4.8-1 http://docpp.sourceforge.net/download.html
ucd-snmp-4.2.3 RedHat distribution
ucd-snmp-devel-4.2.3 RedHat distribution
ucd-snmp-utils-4.2.3 RedHat distribution
openssl-0.9.6b RedHat distribution
openssl-devel-0.9.6b RedHat distribution

Mandrake 8.1 and 8.2

Here is the list of recommended packages for Mandrake 8.1 and where you can get them from:

libglib1.2-1.2.10 CD #1
libglib1.2-devel-1.2.10 CD #1
libgtkmm1.2-1.2.8 CD #1
libgtkmm1.2-devel-1.2.8 CD #2
libgdk-pixbuf2-0.16.0 CD #1
libgdk-pixbuf2-devel-0.16.0CD #2
libsigc++1.0-1.0.4 CD #2
libsigc++1.0-devel-1.0.4 CD #2
libxml2-2.4.16 CD #1
libxml2-devel-2.4.16 CD #2
libxslt1-1.0.12 CD #2
libxslt1-devel-1.0.12 CD #2
libsnmp0-4.2.3 CD #1
libsnmp0-devel-4.2.3 CD #3
ucd-snmp-utils-4.2.3 CD #1
ucd-snmp-4.2.3 CD #2
libopenssl0-0.9.6c CD #1
openssl-0.9.6c CD #1
libopenssl0-devel-0.9.6c CD #2
doc++-3.4.8-1 http://docpp.sourceforge.net/download.html

We use SGML DocBook to generate HTML version of FAQ, so if you want to regenerate it, you would need openjade and docbook-utils packages as well. These are part of Mandrake Cooker, or you can find them on rpmfind.net.


Solaris 8:


You need to install GNU development environment, in particular gcc version 2.95.3 or newer, GNU ld which is part of binutils-2.11.2 , GNU make, autoconf, automake, libtool and GNU gettext. These packages can be downloaded from http://www.sunfreeware.com

Here is the list of recommended packages. Precompiled xml2 and xslt libraries for Solaris 8 can be downloaded from this site: http://garypennington.net/libxml2/ The rest can be found either on http://www.unixrealm.com/downloads/ or on http://www.sunfreeware.com

autoconf-2.53  
automake-1.6  
libtool-1.4  
gettext-0.10.37 GNU gettext
   
gcc-2.95.3  
binutils-2.11.2 Need this for GNU ld
make-3.79.1 GNU make
   
glib-1.2.10  
gtk+-1.2.10  
gtkmm-1.2.8  
gdk-pixbuf-0.13.0 See comment for libpng below
libpng-1.0.6 Do not use any other version; pre-built gdk-pixbuf v0.13 found on SunFreeware.com requires specifically libpng 1.0.6
libsigc++-1.0.4  
libxml2-2.4.16  
libxslt-1.0.12  
openssl-0.9.6c Try openssl_noshared-0.9.6c package if configure does not find openssl even though it is installed
ucdsnmp-4.2.3  
doc++-3.4.2  

Certain patches are also critical. Make sure you have at least patch 109326 which replaces some header files and libraries we use. It is a good idea to install all latest recommended patches anyway.

Since all the packages downloaded from SunFreeware or Unixworld install in /usr/local, you need to set environment variables PATH to begin with "/usr/local/bin" and LD_LIBRARY_PATH to include /usr/local/lib before you run script configure.


FreeBSD 4.5


We did our testing on FreeBSD 4.5-STABLE, brought up to the latest patch level with cvsup. We use lots of ports, so ports were also updated with cvsup.

On FreeBSD, Firewall Builder supports advanced DNS queries with the aid of lightweight resolver library (lwres) which comes as part of bind9 package. Note: Firewall Builder API library libfwbuilder must be compiled with an option "--with-lwres" and lwresd daemon must be running on the system. Unfortunately lwres does not provide any means for DNS zone transfer and FreeBSD does not have any other library capable of doing it, so object discovery through DNS zone import does not work on this OS.

Here is the list of ports that need to be installed before you can compile libfwbuilder and fwbuilder:

Make sure you use gmake to build and set the following environment variables:

export GLIB_CONFIG=/usr/local/bin/glib12-config
export LD_LIBRARY_PATH=/usr/local/lib


OpenBSD 3.0 and 3.1


You need the same packages as for FreeBSD and should be using gmake to build.

GCC 3.0


We do not recommend using gcc 3.0 at this time because libraries built with gcc 2.95 can not link with the program code compiled with gcc 3.0. If you decide to use gcc 3.0, then you either need to find somewhere libraries compiled with gcc 3.0, or compile and install everything yourself.