ipfw — IP packet
    filter and traffic accounting
To compile the driver into the kernel, place the following option
    in the kernel configuration file:
options IPFIREWALL
Other related kernel options which may also be useful are:
options
  IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
options IPFIREWALL_NAT
options IPFIREWALL_NAT64
options IPFIREWALL_NPTV6
options IPFIREWALL_PMOD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options LIBALIAS
To load the driver as a module at boot time, add the following
    line into the
    loader.conf(5)
    file:
The ipfw system facility allows filtering,
    redirecting, and other operations on IP packets travelling through network
    interfaces.
The default behavior of ipfw is to block
    all incoming and outgoing traffic. This behavior can be modified, to allow
    all traffic through the ipfw firewall by default, by
    enabling the IPFIREWALL_DEFAULT_TO_ACCEPT kernel
    option. This option may be useful when configuring
    ipfw for the first time. If the default
    ipfw behavior is to allow everything, it is easier
    to cope with firewall-tuning mistakes which may accidentally block all
    traffic.
When using
    natd(8)
    in conjunction with ipfw as NAT facility, the kernel
    option IPDIVERT enables diverting packets to
    natd(8)
    for translation.
When using the in-kernel NAT facility of
    ipfw, the kernel option
    IPFIREWALL_NAT enables basic
    libalias(3)
    functionality in the kernel.
When using any of the IPv4 to IPv6 transition mechanisms in
    ipfw, the kernel option
    IPFIREWALL_NAT64 enables all of these NAT64 methods
    in the kernel.
When using the IPv6 network prefix translation facility of
    ipfw, the kernel option
    IPFIREWALL_NPTV6 enables this functionality in the
    kernel.
When using the packet modification facility of
    ipfw, the kernel option
    IPFIREWALL_PMOD enables this functionality in the
    kernel.
To enable logging of packets passing through
    ipfw, enable the
    IPFIREWALL_VERBOSE kernel option. The
    IPFIREWALL_VERBOSE_LIMIT option will prevent
    syslogd(8)
    from flooding system logs or causing local Denial of Service. This option
    may be set to the number of packets which will be logged on a per-entry
    basis before the entry is rate-limited.
When using the in-kernel NAT facility of
    ipfw, the kernel option
    LIBALIAS enables full
    libalias(3)
    functionality in the kernel. Full functionality refers to included support
    for ftp, bbt, skinny, irc, pptp and smedia packets, which are missing in the
    basic
    libalias(3)
    functionality accomplished with the IPFIREWALL_NAT
    kernel option.
The user interface for ipfw is implemented
    by the
    ipfw(8)
    utility, so please refer to the
    ipfw(8)
    man page for a complete description of the ipfw
    capabilities and how to use it.