Home page logo

bugtraq logo Bugtraq mailing list archives

[ANNOUNCE]: ipfilter for FreeBSD2.2.x + FreeBSD3.0-current
From: proff () SUBURBIA NET (Julian Assange)
Date: Mon, 14 Apr 1997 00:20:03 +1000

Darren Reed and contributors' excellent firewall software, ipfilter
is now available for FreeBSD2.2/3.0-current.

                         The IP packet filter can:

          o explicitly deny/permit any packet from passing through

          o distinguish between various interfaces
          o filter by IP networks or hosts
          o selectively filter any IP protocol
          o selectively filter fragmented IP packets
          o selectively filter packets with IP options.
          o send back an ICMP error/TCP reset for blocked packets
          o keep packet state infromation for TCP, UDP and ICMP
          packet flows.
          o keep fragment state information for any IP packet,
          applying the same rule to all fragments.
          o act as a Network Address Translator (NAT)
          o use redirection to setup true transparent proxy

          Special provision is made for the three most common Internet
          protocols, TCP, UDP and ICMP. The IP Packet filter allows
          filtering of:

                o TCP/UDP packets by port number or a port number
                o ICMP packets by type/code
                o "established" TCP packets
                o on any arbitary combination of TCP flags
                o "short" (fragmented) IP packets with incomplete
                headers can be filtered
                o any of the 19 IP options or 8 registered IP
                security classes
                o TOS (Type of Service) field in packets

FreeBSD version available from:




Note that while I (Julian Assange) have fixed various bugs originally
found in ipfilter3.2a4, I don't guarentee that this version is bug
free, and Darren certainly doesn't, not having had an opportunity to
test my changes fully.

-Julian <proff () suburbia net>

# The archive contains:
#       ipfilter-proff-README
#       sys-ipfilter-proff-2.2.1.diff
#       sys-ipfilter-proff-current-970411.diff
#       lkm/if_ipf
#       lkm/if_ipf/Makefile
#       sbin/ipf
#       sbin/ipf/ipfstat
#       sbin/ipf/ipfstat/Makefile
#       sbin/ipf/ipftest
#       sbin/ipf/ipftest/Makefile
#       sbin/ipf/Makefile
#       sbin/ipf/Makefile.inc
#       sbin/ipf/mkfilters
#       sbin/ipf/mkfilters/Makefile
#       sbin/ipf/ipf
#       sbin/ipf/ipf/Makefile
#       sbin/ipf/ipmon
#       sbin/ipf/ipmon/Makefile
#       sbin/ipf/ipnat
#       sbin/ipf/ipnat/Makefile
#       contrib-sys
#       contrib-sys/ipfilter
#       contrib-sys/ipfilter/cflow
#       contrib-sys/ipfilter/snoop.h
#       contrib-sys/ipfilter/man


Unpack the new source trees and patch files:

        root () paranoia# cd /usr
        root () paranoia# unshar </tmp/ipfilter.shar

Patch the sys tree - quite tiny really.

  For -current dated on or around Arpil 11 1997:

        root () paranoia# patch <src/sys-ipfilter-proff-current-970411.diff

  For FreeBSD-2.2.1 (and probably 2.2 also)

        root () paranoia# patch <src/sys-ipfilter-proff-2.2.1.diff

If you have have the /usr/src/etc tree:

        root () paranoia# patch <src/etc-ipfilter-proff.diff
        root () paranoia# cp src/etc/etc.i386/MAKEDEV /dev
        root () paranoia# cd /dev
        root () paranoia# ./MAKEDEV ipl ipnat ipstate


        root () paranoia# cd /dev
        root () paranoia# mknod ipl c 79 0
        root () paranoia# mknod ipnat c 79 1
        root () paranoia# mknod ipstate c 79 2

If you use devfs for /dev you can ignore the device creation above -
the new module loading code will do it for you.

Compile and install the user-land code:

        root () paranoia# cd /usr/src/sbin/ipf
        root () paranoia# make && make install

Compile and install the kernel module:

        root () paranoia# cd /usr/src/lkm/if_ipf
        root () paranoia# make && make install

Add the following to your kernel configuration:

        # new IPFILTER firewall
        # you need to have the src/contrib-sys tree installed to compile
        # kernel support for the in-kernel version.
        #options        IPFILTER                #in-kernel version
        options         IPFILTER_LKM            #module version
        options         IPFITLER_LOG            #support logging (in-kernel)

Make sure you have DEVFS support turned on in your kernel configuration,
or you will need to comment out the -DDEVFS in src/lkm/if_ipf/Makefile

If you want the in-kernel version instead (it has no advantage):


        #options IPFITLER

  and comment out:

        options IPFITLER_LKM

Re-config(8), recompile, install and boot the new kernel.

If you are running the loadable-module version, load the module:

        root () paranoia# modload /lkm/if_ipf_mod.o

  see if it worked:

        root () paranoia# modstat

If you are running the in-kernel version:

        root () paranoia# dmesg | grep -i ipf

Create some test firewall rules:

        root () paranoia# mkfilters | tee /tmp/basic-filters

Load them in:

        root () paranoia# ipf -f /tmp/basic-filters


        root () paranoia# ipfstat -i -o

Write some better ones:

        root () paranoia# man 5 ipf
Prof. Julian Assange  |If you want to build a ship, don't drum up people
                      |together to collect wood and don't assign them tasks
proff () suburbia net    |and work, but rather teach them to long for the endless
proff () gnu ai mit edu  |immensity of the sea. -- Antoine de Saint Exupery

  By Date           By Thread  

Current thread:
[ Nmap | Sec Tools | Mailing Lists | Site News | About/Contact | Advertising | Privacy ]