Internet Engineering Task Force                                 C. Grall
INTERNET-DRAFT                               Trusted Information Systems
Expires 25 October 1998                                    20 April 1998



                  Firewall Management Information Base


                   <draft-grall-firewall-mib-01.txt>



Status of this Memo

   This document is an Internet-Draft.  Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF), its areas,
   and its working groups.  Note that other groups may also distribute
   working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet- Drafts as reference
   material or to cite them other than as "work in progress."

   To view the entire list of current Internet-Drafts, please check the
   "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
   Directories on ftp.is.co.za (Africa), ftp.nordu.net (Europe),
   munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or
   ftp.isi.edu (US West Coast).

Abstract

   This document defines a portion of the Management Information Base
   (MIB) for use with network management protocols in TCP/IP-based
   internets.  In particular, it defines objects for monitoring firewall
   devices.

Table of Contents

   Abstract
   Table of Contents
   The Network Management Framework
   Overview
       Textual Conventions
           SnmpAdminString
           EventTypeUnitTC
           ProtocolUnitTC



Grall                                                          [Page 1]


Internet-Draft                Firewall MIB                 20 April 1998


       Structure of MIB
           The Service Identifiers Group
           The Firewall Event Variables and Logs Group
           The Status and Statistics Group
           The Firewall Traps Group
   Monitoring of Firewall Devices
       Events
           Event Logs and Traps
           Details Table Use
           Trap Flooding
           Thresholds
           Log Tables
   Conventions
   Definitions
   Acknowledgments
   Security Considerations
   References
   Author's Address
   Appendix A: Sample Configurations and Scripts




1.  The Network Management Framework

The Internet-standard Network Management Framework consists of three
components.  They are:


     RFC 1902 [4] which defines the SMI, the mechanisms used for
     describing and naming objects for the purpose of management.


     STD 17, RFC 1213 [5] defines MIB-II, the core set of managed
     objects for the Internet suite of protocols.


     RFC 1157 [6], RFC 1905 [7], and RFC 2261 [13] which define three
     versions of the protocol used for network access to managed
     objects.

     The Framework permits new objects to be defined for the purpose of
     experimentation and evaluation.

     Managed objects are accessed via a virtual information store,
     termed the Management Information Base or MIB.  Within a given MIB
     module, objects are defined using RFC 1902's OBJECT-TYPE macro.  At
     a minimum, each object has a name, a syntax, an access-level, and



Grall                                                          [Page 2]


Internet-Draft                Firewall MIB                 20 April 1998


     an implementation-status.

     The name is an object identifier, an administratively assigned
     name, which specifies an object type.  The object type together
     with an object instance serves to uniquely identify a specific
     instantiation of the object.  For human convenience, we often use a
     textual string, termed the object descriptor, to also refer to the
     object type.

     The syntax of an object type defines the abstract data structure
     corresponding to that object type.  The ASN.1[9] language is used
     for this purpose.  However, RFC 1155[3] purposely restricts the
     ASN.1 constructs which may be used.  These restrictions are expli-
     citly made for simplicity.


2.  Overview

This document specifies a working draft of a Management Information Base
(MIB) definition intended for use in monitoring firewall systems with
network management protocols in TCP/IP-based internets.  All object
identifiers defined herein are under the private enterprises MIB tree.
This positioning would change if and when this MIB is adopted as stan-
dard.


2.1.  Textual Conventions

Several new data types are introduced including EventTypeUnitTC, and
ProtocolUnitTC.  The SnmpAdminString as proposed in the SNMPV3 documents
is also used.


2.1.1.  SnmpAdminString

The SnmpAdminString textual convention is used for all string variables.
The definition from the current RFC [13] is included in this MIB (rather
than referenced) until the RFC becomes a standard.


2.1.2.  EventTypeUnitTC

This textual convention enumerates many kinds of common events that may
happen on a firewall.  The list represents error conditions, unusual
events, and normal activities.






Grall                                                          [Page 3]


Internet-Draft                Firewall MIB                 20 April 1998


2.1.3.  ProtocolUnitTC

This textual convention is an enumeration of the most common protocols
used with TCP/IP-based network firewalls.


2.2.  Structure of MIB

The objects are arranged into the following groups:

        - service identifiers (service)

        - firewall event variables and logs (fwevent)

        - firewall status and statistics data (fwquery)

        - firewall traps (fwtrap)

These groups are the basic units of conformance.  If a firewall imple-
ments a group, then it should implement all objects in that group.  The
fwevent, fwquery and fwtrap groups are optional.  If the fwtrap group is
implemented, the fwevent group must also be implemented. The services
group must be supported if any of the other groups are implemented.

These groups are defined to provide a means of assigning object identif-
iers, and to provide a method for managed agents to know which objects
they must implement.


2.2.1.  The Service Identifiers Group

The service group defines object identifiers (OIDs) for resource,
classes of services, and particular services handled by firewalls.
These OIDs are used as values in variables in other groups of the MIB to
designate a service.

In this document and the MIB definition, "resource" is defined as any
service, application, proxy, hardware unit, utility, operating system,
product, engine, etc. on the firewall.  Resource can also refer to the
firewall as a whole.  Also, the term "service" is used interchangeably
with "resource" throughout the document and MIB.


2.2.2.  The Firewall Event Variables and Logs Group

The fwevent group defines tables for logging events that take place on
the firewall.  Management stations are notified of the events via traps
from the fwtrap group.



Grall                                                          [Page 4]


Internet-Draft                Firewall MIB                 20 April 1998


2.2.3.  The Status and Statistics Group

The fwquery group contains status and statistic information.  It
includes version information for the firewall and its resouces and ser-
vices.  It includes version information, staus details, and statistics
measured by firewall resources and services.


2.2.4.  The Firewall Traps Group

The fwtrap group defines the traps that a firewall can send.


3.  Monitoring of Firewall Devices

The scope of the MIB defined here is to provide information for the pur-
pose of monitoring firewall activity. The objects defined here provide
information about urgent events, security, health and status, and per-
formance of a firewall.  This information is provided in two ways, via
traps and through objects that must be queried. The traps also have
associated information that can be queried.

It is worth noting areas this MIB is not meant to address.  It is not
meant to replicate all firewall audit information or perform all of a
firewall's logging.  The information provided by the MIB objects is not
necessarily all the information needed for a full audit capability.  For
example, suspicious monitoring entities would probably require audit
information which would not be provided as part of this MIB.

The MIB is also not meant to be used for reporting about the configura-
tion of a firewall.  Currently, most firewall's use unique and/or
proprietary protocols and representations for dealing with the confi-
guration and 'policy'.  It was decided it would be too difficult to try
to create a generic set of MIB objects that could represent most
firewall configurations.  This MIB does not have many variables related
to configuration items.

Write operations to MIB objects are not supported, i.e., SNMP SETs are
currently not supported by this MIB.  One motivation for this is that
many SNMP implementations and network architectures do not support
secure communications.  Once SNMPv3 is established this can be revisted
and the MIB can be expanded to include objects that can be written.
Another motivation for not addressing SETs is that values typically
"SET" on a firewall would deal with the firewall's configuration and
'policy'.  Without a secure connection, the firewall's configuration
could be exposed.

This section provides details on the expected use of the objects defined



Grall                                                          [Page 5]


Internet-Draft                Firewall MIB                 20 April 1998


in section "Definitions" below.  It also presents some implementation
issues.


3.1.  Events

Many of the objects in the MIB are related to events on the firewall.
An event as far as this MIB is concerned is what a trap is created for,
and what is stored in the event logs.  An event can represent the
activity of a single user on the firewall, the status of a program on
the firewall, or a collection of firewall activities.  It is up to the
firewall vendor to decide what activities on the firewall are
represented as events in the MIB.

In order to provide a common set of events for MIB users and management
status, the MIB includes an enumeration of event types, EventTypeUnitTC.
The list includes the most common events that happen on a firewall.  The
comments included in the list describe the firewall activities each
entry is meant to represent.  It is understood that the list will prob-
ably not represent all possible events any particular firewall may
report on and there are generic entries that can be used for these
cases.

While the MIB's main purpose is to report about "unusual" events on a
firewall, it was felt that the MIB should not disallow reporting related
to "normal" events.  Items are included in EventTypeUnitTC to represent
"normal", "okay", "good", and "up" activities and conditions.  A
firewall vender can then choose to report any kind of activity through
MIB events.  For example, a firewall could equate a MIB event with an
audited event and report on all firewall activity with the MIB.


3.1.1.  Event Logs and Traps

The fwevent group defines a set of log tables for storing information
about events.  The fwtrap group defines a set of traps for reporting
about the events that have been recorded in the logs.  These two groups
are meant to work together.  Although it is possible to implement the
fwevent group without any trap support, this is not the purpose of the
logs in the fwevent group.

The event logs are represented by a set of tables.  There is a basic
table that holds information common to every event, and there are other
tables that contain different sets of detailed information.  Figure 1
provides a conceptual view of the tables.  The basic table points to one
of the MIB detail tables by table OID and row index.  The basic table
also (optionally) points to a firewall vendor defined details table.




Grall                                                          [Page 6]


Internet-Draft                Firewall MIB                 20 April 1998



                                           details table
         basic table entries               ------------------------
        ---------------------------|      |                      |
        |index                     |      |                      |
        |time                      |      |                      |
        |source                    |      |                      |
        |type                      |     /|                      |
        |description               |    / ------------------------
        |                          |   /
        |details table row         |--/
        |                          |
        |vendor details table row  |-\     vendor details table
        |                          |  \   ------------------------
        ----------------------------   \  |                      |
                                        \ |                      |
                                         \|                      |
                                          |                      |
                                          ------------------------

             Figure 1: Conceptual view of event log tables.

When an event (see section "Events") occurs on the firewall, the basic
table information is collected and, based on the event, a details table
is chosen and its information is collected as well.  This information is
stored on the firewall and a trap from the fwtrap group is sent.  The
trap contains the same information contained in the basic table.  The
management station then has the option to query the firewall and ask for
the rows from the tables specified in the trap.

Which trap is sent depends on the details table chosen.  For the
netEventsLogTable details table use the networkEventTrap trap.  For the
healthEventsLogTable details table use the healthEventTrap.  For the
managementEventsLogTable details table use the managementEventTrap.
There is a one-to-one mapping between a detail table and a trap.  Which
details table to query is chosen based on the trap that was sent.

Since the trap contains the EventTypeUnitTC and EventDescription values
for the event, a user or management station can use these values to make
decisions on whether the event details are useful or not.  The retrieval
of the details can be automated for many management stations.  Appendix
A contains some configuration and script examples for some of the more
popular management tools.


3.1.2.  Details Table Use

The MIB defines three log tables to record details about an event.  Each



Grall                                                          [Page 7]


Internet-Draft                Firewall MIB                 20 April 1998


table includes a different set of information.  Multiple tables were
defined rather than have one large table to lower the likelihood that
queries (and traps) would have many unneeded or undefined values.

The MIB does not dictate which details table must be used for recording
a particular event.  In order to ease management station configuration
this section lists the preferred details table for each of the sets of
event in EventTypeUnitTC.

The following lists each of the sets from the EventTypeUnitTC and the
preferred details table used:


                EventTypeUnitTC set     Details Table
                ------------------------------------------------
                other                   [any]
                hardware                healthEventsLogTable
                system                  healthEventsLogTable
                fwmodule                healthEventsLogTable
                mgmt                    managementEventsLogTable
                logging                 healthEventsLogTable
                routing                 netEventsLogTable
                packet                  netEventsLogTable
                encryption              netEventsLogTable
                network                 netEventsLogTable
                protocol                healthEventsLogTable
                service                 healthEventsLogTable
                configuration           healthEventsLogTable
                access                  netEventsLogTable
                authentication          netEventsLogTable
                attack                  netEventsLogTable
                contentInspection       netEventsLogTable
                debug                   healthEventsLogTable
                test                    healthEventsLogTable



3.1.3.  Trap Flooding

Under normal network conditions, one should not see many traps sent by a
firewall to a management station.  There is a potential for a large
number of traps to be sent by a firewall implementing this MIB.  This
depends on how the firewall maps activities to events and how many of a
particular event can occur in a short time.  The MIB has no variables
related to controlling which traps are sent or to limit the number of
traps sent. If this turns out to be a widespread problem after initial
reference implementation testing, it will be addressed in a later draft
of this MIB.



Grall                                                          [Page 8]


Internet-Draft                Firewall MIB                 20 April 1998


To provide firewall and SNMP management users some control it is sug-
gested that an agent implementation provide some on/off configuration
options for the events a firewall will report about.  Whether and how to
implement this and the granularity of the configuration control is
beyond the scope of this document.


3.1.4.  Thresholds

It was stated earlier that a particular firewall vendor defines what a
MIB event is on their firewall.  It is expected that some MIB events
will actually represent a set of activities on the firewall.  For exam-
ple, EventTypeUnitTC has an event called login attempts.  What is not
specified by the MIB is how many attempts happened before the event was
handled by the SNMP agent.

Individual thresholds for controlling which firewall activities are
represented as events in the MIB or for controlling which events should
generate traps are not specified in this MIB.  Some activities are unin-
teresting when they occur occasionally, but more interesting when they
are more frequent.  Firewall vendors decide which activities have thres-
holds and what kind of thresholds are available.


3.1.5.  Log Tables

All of the log tables defined in the fwevent group are used and indexed
in the same way.  This section addresses some implementation issues to
consider.  The MIB does not dictate how the tables are implemented, just
how the values of the variables in a table row are used.


3.1.5.1.  Table Size and Index Value

Table size is an implementation specific matter.  Each table has an
index variable to uniquely identify a row in the table.  The index is
assigned beginning with 1 when the table is created and increases by one
with each new log entry. Table creation will generally happen at
firewall system reboot, but may happen at any time (eg., when the
firewall's SNMP agent is restarted).

An agent implementation may even preserve data in the tables between
periods of down time (e.g., between firewall reboots).  Note that this
MIB does not require preservation of table information.  An example of a
reason for maintaining the data is for management stations that would
like to try and find out (quickly) why a machine rebooted.  Note thought
that this MIB is not trying to recreate a reliable logging function.




Grall                                                          [Page 9]


Internet-Draft                Firewall MIB                 20 April 1998


The agent may choose to delete the rows of a table as needed.  This may
be due to lack of space for the entries or due to other reasons (eg.,
the entries are too old).  A query to the table cannot assume anything
about the table's size or whether a particular index value in the table
is valid or not.

Deletion of rows in the table may be based on age (ie., the smallest
valid index is deleted) or based on some other scheme (eg., the priority
of the event is lower than other events in the log).  The MIB does not
place any requirements on which rows may or may not be deleted.

Each log table has a corresponding '...LogTableLastValidRow' object.
This variable can be used to obtain the index value of the last (or
newest) valid row in the table. Since the index value starts at 1 and
monotonically increases with each new entry, one can see how many events
have been recorded since the creation of the table by obtaining this
variable.


3.1.5.2.  Entry Order

The MIB places no requirements on the order of entries in the log
tables.  The order of entries in a table might not necessarily be in the
same order as the traps that arrive at the management station.  The
order of the entries in the basicEventsLogTable will not necessarily be
in order by the basicEventTime value.


3.1.5.3.  MIB Walks

There is a concern that for implementations that choose to use a large
log table size (eg., thousands of entries), that a MIB walk into the log
table will take a long time and will not necessarily be what the MIB
walker had in mind.  One way to address this concern is to allow the
administrator to be able to choose the maximum size of the log tables.


3.1.5.4.  Table Status

Section left in for now for historical reference, will be deleted.

[@?@ Earlier discussions addressed issues related to the status of the
various tables.  For example, a value for the time when old rows in a
table were deleted, a value for how many events are in the table, a
value for how "full" the table is, and a trap for when the table gets X%
full.  The majority opinion at that time was that overall these values
would not be useful, would unnecessarily complicate the MIB and instru-
mentation at the firewall, and could potentially cause too many traps



Grall                                                         [Page 10]


Internet-Draft                Firewall MIB                 20 April 1998


(since these kinds of values would probably end up as traps).  So most
of the table management information was left out of the MIB objects
until we get a better feel for how the MIB will be used.  Of course a
vendor can implement values like these in their private table.  Keep in
mind that event information should not be lost since these tables are
not meant to replace a robust logging mechanism.]


3.1.5.5.  Examples

The following examples are included to illustrate the use of object
identifiers and additional trap variables in a TRAP to describe a
firewall event.


3.1.5.5.1.  Network Event Example

Event: a telnet proxy running on a firewall system 199.94.211.1, is con-
figured to deny access to users not connecting from a network, say
199.94.200.0.  When denying access to a connection coming from
199.94.222.2, the proxy service might generate the following trap.

The trap type is set to 6 (enterprise specific).  A specific trap of
type 1 (networkEventTrap) is chosen to best describe this event.  The
networkEventTrap includes variables to point to the basicEventLogTable
and the netEventDetailsTable.

For this specific event the details table describes the entity making
the connection attempt and why the attempt failed.

TRAP networkEventTrap:

        trap type = 6 (enterprise specific)
        enterprise specific type = 1 (networkEventTrap)


Values set in the basicEventLogTable, the networkEventTrap contains the
same values except that it does not include basicEventDetailsTableOID:

        basicEventLogIndex = INTEGER (217)
        basicEventTime = TimeStamp
        basicEventSource = IpAddress (199.94.211.1)
        basicEventType = accessDeniedSource(1404)
        basicEventDescription = String ("XXX")
        basicEventDetailsTableRow = OID (netEventsLogTable.16)
        basicEventVendorDetailsTableRow = OID (0.0)





Grall                                                         [Page 11]


Internet-Draft                Firewall MIB                 20 April 1998

The netEventsLogTable would have a row containing the following:

        netEventLogIndex = INTEGER (16)
        netEventInterface = INTEGER (1)
        netEventProtocol = TCP (1)
        netEventICMPCommand =
        netEventSrcIpAddress = IpAddress (199.94.222.2)
        netEventMappedSrcIPAddress = IpAddress (NULL)
        netEventDstIPAddress = IpAddress (NULL)
        netEventMappedDstIPAddress = IpAddress (NULL)
        netEventSrcIPPort = INTEGER (3333)
        netEventMappedSrcIPPort = INTEGER (NULL)
        netEventDstIPPort = INTEGER (23)
        netEventMappedSrcIPort = INTEGER (NULL)
        netEventGenericService = OID (fwmib.service.svcLogin.telnet)
        netEventServiceInformation = String ("tn-gw")
        netEventAuthdEntity = String ("unknown")
        netEventRuleID = INTEGER (27, eg., the config. file line number)
        netEventActionReason = String ("source IP address denied")



3.1.5.5.2.  Health Event Example

A service on the firewall is misconfigured.  The firewall has an http
service and the system administrator configured it to run on port 8000.
But there is already another service running on port 8000.  The http
service cannot bind to the port.

The trap type is set to 6 (enterprise specific).  A specific trap of
type 2 (healthEventTrap) is chosen to best describe the event.

Values set in the basicEventLogTable, the healthEventTrap contains the
same values except that it does not include basicEventDetailsTableOID:

    basicEventLogIndex = INTEGER (12)
    basicEventTime = TimeStamp
    basicEventSource = IpAddress (201.217.12.1)
    basicEventType = configurationPortInUse(1305)
    basicEventDescription = String ("XXX")
    basicEventDetailsTableRow = OID (healthEventsLogTable.70)
    basicEventVendorDetailsTableRow = OID (0.0)


The healthEventsLogTable would have a row containing the following:






Grall                                                         [Page 12]


Internet-Draft                Firewall MIB                 20 April 1998


    healthEventLogIndex = INTEGER (70)
    healthEventResourceType    = OID (fwmib.service.svcWeb.http)
    healthEventResourceDetails = String ("http proxy")
    healthEventProblemDetail = String ("cannot bind to port 8000")



3.1.5.5.3.  Management Event Example

A new configuration effecting the whole firewall was loaded by a remote
configuration utility.

The trap type is set to 6 (enterprise specific).  A specific trap of
type 3 (managementEventTrap) is chosen to best describe the event.

Values set in the basicEventLogTable, the managementEventTrap contains
the same values except that it does not include basicEventDetailsTa-
bleOID:

    basicEventLogIndex = INTEGER (743)
    basicEventTime = TimeStamp
    basicEventSource = IpAddress (198.198.198.198)
    basicEventType = mgmtLoadedConfigRemote(407)
    basicEventDescription = String ("XXX")
    basicEventDetailsTableRow = OID (managementEventsLogTable.66)
    basicEventVendorDetailsTableRow = OID (0.0)


The managementEventsLogTable would have a row containing the following:

    managementEventLogIndex = INTEGER(66)
    managementEventSubjectName = String ("root")
    managementEventSubjectAction = mgmtLoadedConfigRemote(407)
    managementEventActionDetail = String ("new config. loaded")
    managementEventObjectManaged = OID (fwmib.service.svcFirewall)



4.  Conventions

The following conventions are used throughout the Firewall MIB.

   Good Packets

   Good packets are error-free packets that have a valid frame length.
   For example, on Ethernet, good packets are error-free packets that
   are between 64 octets long and 1518 octets long.  They follow the
   form defined in IEEE 802.3 section 3.2.all.



Grall                                                         [Page 13]


Internet-Draft                Firewall MIB                 20 April 1998


   Bad Packets

   Bad packets are packets that have proper framing and are therefore
   recognized as packets, but contain errors within the packet or have
   an invalid length.  For example, on Ethernet, bad packets have a
   valid preamble and SFD, but have a bad CRC, or are either shorter
   than 64 octets or longer than 1518 octets.


5.  Definitions









































Grall                                                         [Page 14]


Internet-Draft                Firewall MIB                 20 April 1998


FireWallMIB DEFINITIONS ::= BEGIN

- -- SUBTREE: 1.3.6.1.4.1.14.3.9
- -- iso.org.dod.internet.private.enterprises.bbn.products.fwmib

IMPORTS
        -- RFC 1904
        OBJECT-GROUP,
        MODULE-COMPLIANCE               FROM SNMPv2-CONF
        -- RFC 1902
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        IpAddress,
        enterprises,
        TimeTicks,
        Counter32                       FROM SNMPv2-SMI
        -- RFC 1903
        TEXTUAL-CONVENTION,
        TimeStamp                       FROM SNMPv2-TC
        -- RFC 2233
        InterfaceIndex                  FROM IF-MIB;


fwMIB MODULE-IDENTITY
        LAST-UPDATED "9803040000Z"      --March 4, 1998
        ORGANIZATION "GTE Corporation & Trusted Information Systems Inc."
        CONTACT-INFO
                "
                Comments should be sent to fwmib@tis.com
                Subscribe: majordomo@tis.com
                           In message body: subscribe fwmib

                Herbert Lin
                Tel: +1-617-873-5920
                E-mail: hlin@bbn.com

                Cindy Grall
                Tel: +1-310-737-1744
                E-mail: grall@tis.com

                Ephraim Vider
                Tel: +972-3-753-4592 (Israel)
                E-mail: eff@checkpoint.com

                Mike Wittig
                Tel: +1-954-973-5059
                E-mail: mwittig@mail.cybg.com



Grall                                                         [Page 15]


Internet-Draft                Firewall MIB                 20 April 1998


                "
        DESCRIPTION
                "The MIB module for entities implementing
                firewalls."
- --@?@ What's the correct value here?  MIBs that are RFCs seem to
- --    be using OIDs out of other MIB trees, like RFC1759 (the printer
- --    MIB) uses { mib-2 43 }.  The Internet Drafts appear to use
- --    { experimental 9999 } here, I will go with bbn for now so
- --    the ASN.1 will compile.
        ::= { bbn 9999 }

- -- textual conventions

SnmpAdminString ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "255a"
        STATUS       current
        DESCRIPTION "An octet string containing administrative
                    information, preferably in human-readable form.

                    To facilitate internationalization, this
                    information is represented using the ISO/IEC
                    IS 10646-1 character set, encoded as an octet
                    string using the UTF-8 transformation format
                    described in [RFC2044].

                    Since additional code points are added by
                    amendments to the 10646 standard from time
                    to time, implementations must be prepared to
                    encounter any code point from 0x00000000 to
                    0x7fffffff.

                    The use of control codes should be avoided.

                    When it is necessary to represent a newline,
                    the control code sequence CR LF should be used.

                    The use of leading or trailing white space should
                    be avoided.

                    For code points not directly supported by user
                    interface hardware or software, an alternative
                    means of entry and display, such as hexadecimal,
                    may be provided.

                    For information encoded in 7-bit US-ASCII,
                    the UTF-8 encoding is identical to the
                    US-ASCII encoding.




Grall                                                         [Page 16]


Internet-Draft                Firewall MIB                 20 April 1998


                    Note that when this TC is used for an object that
                    is used or envisioned to be used as an index, then
                    a SIZE restriction must be specified so that the
                    number of sub-identifiers for any object instance
                    does not exceed the limit of 128, as defined by
                    [RFC1905].
                   "
       SYNTAX       OCTET STRING (SIZE (0..255))


- -- The following list of event types is meant to enumerate the most common
- -- events that happen on a firewall.
- --
- -- The list is organized into sets of common events.  Each set has an
- -- initial entry to designate the set.  The next two events in a set are
- -- meant to represent generic "okay"/"good"/"up" conditions and generic
- -- "error"/"failed"/"down" conditions.  The rest of the events in a set
- -- represent more detailed events (either good or bad).  The sets will
- -- probably not represent all the possible events on every firewall, but
- -- they are meant to be a good representation of events.  If an event
- -- just does not fit any of the sets, then use the 'other' choices.
- --
EventTypeUnitTC ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
           "Enumeration of types of events on the firewall"
        SYNTAX INTEGER {

        -- Undefined Events
        other(0),       -- the event type is not in this list
        otherOkay(1),   -- a normal event occurred
        otherError(2),  -- an error event occurred
        unknown(3),     -- could not determine the event type

        -- Resource events, could be hardware problems, operating system
        -- problems, or services problems
        resource(100),
        resourceOkay(101),
        resourceError(102),
        resourceUp(103),
        resourceUse(104), --normal use of a resource
        resourceDown(105),
        resourceStarting(106),
        resourceRestarting(107), -- the resource is going down and
                                -- coming back up
        resourceHalting(108), -- eg., the firewall is going down
        resourceExiting(109),
        resourceOverTemperature(110),



Grall                                                         [Page 17]


Internet-Draft                Firewall MIB                 20 April 1998


        resourceHighUse(111),  -- eg., the CPU usage is high
        resourceTestFailed(112),
        resourceBusy(113),
        resourceNoMedia(114), -- a device doesn't have its needed media
        resourceBackup(116), -- processing has switched to the backup
        resourceNoBackup(117), -- there is no backup to switch to
        resourceNoMemory(118),
        resourceNoBuffers(119),
        resourceSyscallFailed(120),
        resourceHighLoad(121),

        -- Events about the basic health of the firewall or particular modules
        fwmodule(300),
        fwmoduleUp(301), -- the module is up
        fwmoduleError(302),
        fwmoduleDown(303), -- the module is down
        fwmoduleStarting(304), -- the module is coming up
        fwmoduleExiting(305),
        fwmoduleRestarting(306),
        fwmoduleLicenseExceeded(307),

        -- Management events, these are events related to overall management
        -- tasks on the firewall.  For example, the configuration is being
        -- changed or a patch has been applied. This is from the perspective
        -- of the firewall, it is not a remote mgmt tool reporting on the
        -- activities it is doing.
        mgmt(400),
        mgmtOkay(401), -- a normal management event
        mgmtError(402), -- an error while performing firewall
                        -- management functions
        mgmtNoResponse(403), -- the firewall expected and received no
                             -- response from a mgmt tool
        mgmtReadConfigLocal(404), -- configuration information has been
                                  -- read
        mgmtReadConfigRemote(405), -- configuration information has been
                                   -- uploaded to a remote mgmt tool
        mgmtLoadedConfigLocal(406), -- a local mgmt tool loaded/applied a
                                    -- new config
        mgmtLoadedConfigRemote(407), -- a remote mgmt tool loaded/applied a
                                     -- new config.
        mgmtPatch(408), -- This event is used by the patching mechanism to
                        -- record what it patched. The genericService OID
                        -- would be the patching tool and the mgmtObjManaged
                        -- in the mgmtEventLogEntry would be the service
                        -- OID patched.  This would not be used by the
                        -- service being patched.  This alleviates the
                        -- confusion when the patching mechanism is patched.




Grall                                                         [Page 18]


Internet-Draft                Firewall MIB                 20 April 1998


        -- Log file events
        logging(500),
        loggingUp(501), -- logging is functioning normally
        loggingError(502), -- the logging facility had an error
        loggingStarting(503), -- the log daemon was started
        loggingExiting(504), -- the log daemon is exiting
        loggingRestarting(505), -- the log daemon was restarted
        loggingDown(506), -- the log daemon is not running
        loggingRolloverStarted(507), -- logging is switching to another file
        loggingFileFull(508), -- the log file/partition is full
        loggingFileOverwrite(509), -- the log file is being overwritten
        loggingFileMessagesLost(510), -- messages have been lost
        loggingStopped(511), -- logging is stopped until other
                             -- problems are resolved (eg., space is
                             -- free'd)
        loggingRolloverCompleted(512),
        loggingRolloverFailed(513),

        -- Routing events
        routing(600),
        routingOkay(601),
        routingError(602),
        routingNoRouteToHost(603),
        routingICMPRedirect(604),

        -- Packet handling
        packet(700),
        packetAccepted(701), -- accepted the packet
        packetError(702), -- unknown error with packet
        packetDropped(703), -- dropped packets (eg., internal buffer is full),
                            --  didn't even look at them, they could be
                            -- good or bad...
        packetInvalid(704), -- these are "bad" packets, see section 4.0
        packetIgnored(705), -- the packet was not meant for the firewall
        packetRejected(706), -- rejected packets based on rule(s)
        packetForwarded(707), -- forwarded packets based on rule(s)
        packetEncrypted(708),
        packetFragmented(709),

        -- En(De)cryption events
        encryption(800), -- generic/successful event
        encryptionUp(801), --encryption is functioning
        encryptionError(802), -- there was an encryption error
        encryptionDown(803),
        encryptionEncryptFailed(804),
        encryptionDecryptFailed(805),
        encryptionEncryptSucceeded(806),
        encryptionDecryptSucceeded(807),



Grall                                                         [Page 19]


Internet-Draft                Firewall MIB                 20 April 1998


        -- Network events
        network(900),
        networkUp(901),
        networkError(902),
        networkDown(903),
        networkCollision(904),
        networkDuplicateAddress(905),
        networkMyAddressInUse(906),
        networkNetUnreachable(907),
        networkStarting(908),
        networkRestarting(909),
        networkHostUnreachable(910),
        networkNoResponse(911),

        -- protocol related events
        protocol(1000), -- an event related to a protocol supported
        protocolEnabled(1001),
        protocolError(1002),
        protocolDisabled(1003), -- the requested protocol is disabled
        protocolNoDaemon(1004), -- there is no daemon for this protocol

        -- Service connection/network connectivity events
        connection(1100), -- a generic connection event
        connectionAccepted(1101),
        connectionError(1102),
        connectionDropped(1103),
        connectionClosed(1104),
        connectionTimedout(1105),
        connectionRefused(1106),
        connectionReset(1107),
        connectionNoResponse(1108),

        -- Configuration events, represent errors or problems with the
        -- configuration for the system or a service.
        configuration(1300),
        configurationOkay(1301),
        configurationError(1302), -- an error in processing the configuration
        configurationBadConfig(1303), -- the config provided is corrupt,
                                      -- invalid, or incomplete
        configurationArgumentError(1304), -- wrong arguments were provided
        configurationPortInUse(1305),
        configurationNoData(1306), -- the required data was not provided

        -- Access
        access(1400),
        accessGranted(1401), -- a service allowed use based on all its checks
        accessError(1402),
        accessDenied(1403), -- a client was denied use of a service



Grall                                                         [Page 20]


Internet-Draft                Firewall MIB                 20 April 1998


        accessDeniedSource(1404), -- client denied based on its source IP
        accessDeniedPolicy(1405), -- client denied based on the sec. policy
        accessDeniedUser(1406),  -- client denied based on the userid
        accessDeniedDest(1407), -- client denied based on the destination IP
        accessDeniedDestPort(1408), -- client denied based on dest. port
        accessDeniedFileRead(1409), -- the policy denied read access to a file
        accessDeniedFileWrite(1410), -- the policy denied write access to
                                     -- a file
        accessDeniedNetworkInterface(1411), -- the policy denied access to a
                                            -- particular net. int.
        accessDeniedDevice(1412), -- the policy denied access to a device

        -- Authentication and login events
        authentication(1500),
        authenticationSucceeded(1501), -- a user had a successful auth
        authenticationError(1502), -- error while auth'ing
        authenticationFailed(1503), -- a user failed an auth
        authenticationSucceededPriv(1504), -- a user logged in with or
                                           -- gained privilege
        authenticationFailedPrivileged(1505), -- user failed to gain/login
                                              -- with privilege
        authenticationFailedMulti(1506), -- multiple failed auth attempts
                                         -- by a user

        -- Security attack events,  these represent events that could
        -- be or that indicate a security attack is taking place on the
        -- firewall
        attack(1600),
        attackNone(1601),
        attackDenialOfService(1602),
        attackPing(1603), -- a ping of death attack
        attackPacketForward(1604), --
        attackSYNFlood(1605), -- a TCP SYN flood attack
        attackIPSpoof(1606), -- an IP address is being spoofed
        attackPortScan(1607), -- a port scan is/has taken place
        attackNameSpoof(1608), -- a name service (eg., DNS) name is spoofed
        attackSmurf(1609), -- see:
        -- http://www.quadrunner.com/~chuegen/smurf.txt
        attackTeardrop(1610),

        -- Content inspection events, these events just report that
        -- something was found. The details entry in for the event can
        -- report on what was found (eg., virus, company private info.,
        -- etc), what it was found in (eg., html, win32 executable, e-mail),
        -- and what was done with it (eg., the quarantine location).
        contentInspection(1700),
        contentInspectionOkay(1701), -- the check of the content was okay,
                                     -- nothing "bad" found



Grall                                                         [Page 21]


Internet-Draft                Firewall MIB                 20 April 1998


        contentInspectionError(1702), -- there was an error while checking
                                      -- content
        contentInspectionFound(1703), -- found something
        contentInspectionFoundCleaned(1704), -- found something and cleaned
                                              -- the content of it
        contentInspectionFoundRejected(1705), -- found something and threw
                                               -- the content away
        contentInspectionFoundSaved(1706), -- found something and saved the
                                            -- content in quarantine
        contentInspectionFoundNotified(1707), -- found something and
                                              -- notified someone

        -- Debugging event
        debug(1800),
        debugOkay(1801),
        debugError(1802),
        debugOn(1803), -- debugging mode is on/was turned on
        debugOff(1804), -- debugging mode is off/was turned off

        -- Testing events
        test(1900),
        testPassed(1901), -- a test passed
        testFailed(1902), -- a test failed
        testNoResponse(1903) -- there was no response for running a test

        }

ProtocolUnitTC ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION

        "Enumeration of network protocols commonly used on firewalls."

        SYNTAX INTEGER {
                tcp(1),
                udp(2),
                icmp(3),
                ip(4),
                ipsec(5),
                igmp(6),
                arp(7),
                ggp(8),
                egp(9),
                rip(10),
                other(11) }


- -- This fwmib is divided into four main groups.  The first, fwmib.service,



Grall                                                         [Page 22]


Internet-Draft                Firewall MIB                 20 April 1998


- -- Service identifiers, defines OIDs used by other areas of the MIB.  The
- -- second, fwmib.fwevent, Event variables and logs, is described briefly
- -- above in the trap examples text. Third main group is fwmib.fwquery,
- -- the set of  variables for queries.  For a firewall this set is read only.
- -- The fourth group, fwmib.fwtrap, defines the traps for notification of
- -- extraordinary events on the firewall.
- --
- -- There is also a group for specifying MIB conformance as described in
- -- RFC1444, "Conformance Statements for version 2 of the Simple Network
- -- Management Protocol (SNMPv2)".

- -- @?@ bbn OIDs will change when this becomes an RFC...
bbn                     OBJECT IDENTIFIER ::= { enterprises 14 }
products                OBJECT IDENTIFIER ::= { bbn 3 }
fwmib                    OBJECT IDENTIFIER ::= { products 9 }

- --
- -- service group
- --
- -- The service group defines OIDs that are used by other parts of the MIB.
- -- The OIDs are used by traps to designate the generic service type
- -- causing the trap.  Expect this list to change occasionally as new service
- -- types emerge in the network/firewall community.  Once a service type
- -- is in use by two or more firewall vendors it can be considered for
- -- inclusion in the services group.  This change is treated as any other
- -- update to the MIB and will be included during a revision cycle.

- -- This list does not differentiate between a local service (eg., local
- -- login into the firewall via telnet) and a proxied service (eg., use of
- -- a telnet application gateway).  This information can be provided in a
- -- string, since each use of these OIDs in a MIB variable (usually as
- -- part of a table entry) has a corresponding description or information
- -- variable.

- -- Use of these OIDs in the MIB variables:
- --
- -- If a new service emerges that is not in the MIB yet, but that has been
- -- assigned a port number or other identifying number, then it can be
- -- represented by choosing the appropriate service category and using the
- -- assigned number.  For example, a new service called Foo Protocol (fp)
- -- is the latest rage on the Internet.  It is a multi-media protocol and
- -- has been assigned port number XXX.  The OID used to represent the
- -- service would be fwmib.service.svcMultimedia.XXX.  The corresponding
- -- information variable can provide the protocol name.
- --
- -- If the firewall supports a service or protocol that is unique or
- -- specific to that firewall, then the OID used to represent the service
- -- will include that vendor's enterprise number.  For example, the Foo



Grall                                                         [Page 23]


Internet-Draft                Firewall MIB                 20 April 1998


- -- firewall has a Bar service.  The firewall company's enterprise number
- -- is ZZZ and they have chosen W to represent the Bar service.  The
- -- OID used would be fwmib.service.svcOther.ZZZ.W It is the vendor's
- -- responsibility to publish definitions of the numbers used.
- --
- -- In any of the cases above where a service listed below cannot be used,
- -- the service can be further described with the serviceInformation object.
- --
- -- The numbers assigned in the list correspond, when possible, to the
- -- assigned port number for a protocol or other assigned number as
- -- appropriate (eg., the protocol number for IP protocols).
- --
- -- Alternatively a vendor can define an OID in their enterprise tree and
- -- use that value for genericService.  It is the vendor's responsibility
- -- to publish these OIDs.
- --

service                 OBJECT IDENTIFIER ::= { fwmib 1 }

- -- represents the firewall as a whole, useful when statistics or events
- -- apply to the whole firewall
- --
svcFirewall OBJECT IDENTIFIER ::= { service 1 }

- --
svcOther OBJECT IDENTIFIER ::= { service 2 }

- --
svcFileTransfer OBJECT IDENTIFIER ::= { service 3 }
        ftp OBJECT IDENTIFIER ::= { svcFileTransfer 21 }
        tftp OBJECT IDENTIFIER ::= { svcFileTransfer 69 }
        ftps OBJECT IDENTIFIER ::= { svcFileTransfer 990 } -- ftp over ssl

- --
svcLogin OBJECT IDENTIFIER ::= { service 4 }
        login OBJECT IDENTIFIER ::= { svcLogin 1 } -- a login/su program
        telnet OBJECT IDENTIFIER ::= { svcLogin 23 }
        rlogin OBJECT IDENTIFIER ::= { svcLogin 513 }
        telnets OBJECT IDENTIFIER ::= { svcLogin 992 } -- telnet over ssl

- --
svcRemoteExecution OBJECT IDENTIFIER ::= { service 5 }
        sunRPC OBJECT IDENTIFIER ::= { svcRemoteExecution 111 }
        rsh OBJECT IDENTIFIER ::= { svcRemoteExecution 514 }
        xserver OBJECT IDENTIFIER ::= { svcRemoteExecution 6000 }

- --
svcWeb OBJECT IDENTIFIER ::= { service 6 }



Grall                                                         [Page 24]


Internet-Draft                Firewall MIB                 20 April 1998


        gopher OBJECT IDENTIFIER ::= { svcWeb 70 }
        http OBJECT IDENTIFIER ::= { svcWeb 80 }
        pointcast OBJECT IDENTIFIER ::= { svcWeb 90 }
        https OBJECT IDENTIFIER ::= { svcWeb 443 } -- also know as shttp

- --
svcMail OBJECT IDENTIFIER ::= { service 7 }
        sendmail OBJECT IDENTIFIER ::= { svcMail 1 }
        smtp OBJECT IDENTIFIER ::= { svcMail 25 }
        pop2 OBJECT IDENTIFIER ::= { svcMail 109 }
        pop3 OBJECT IDENTIFIER ::= { svcMail 110 }
        smtps OBJECT IDENTIFIER ::= { svcMail 465 } -- smtp over ssl
        pop3s OBJECT IDENTIFIER ::= { svcMail 995 } -- pop3 over ssl

- --
svcNews OBJECT IDENTIFIER ::= { service 8 }
        nntp OBJECT IDENTIFIER ::= { svcNews 119 }
        nntps OBJECT IDENTIFIER ::= { svcNews 563 } -- nntp over ssl

- --
svcMultimedia OBJECT IDENTIFIER ::= { service 9 }
        irc OBJECT IDENTIFIER ::= { svcMultimedia 194 }
        talk OBJECT IDENTIFIER ::= { svcMultimedia 517 }
        ircs OBJECT IDENTIFIER ::= { svcMultimedia 994 } -- irc over ssl
        streamworks OBJECT IDENTIFIER ::= { svcMultimedia 1558 }
        h323 OBJECT IDENTIFIER ::= { svcMultimedia 1718 }
        netShow OBJECT IDENTIFIER ::= { svcMultimedia 1755 }
        vDOLive   OBJECT IDENTIFIER ::= { svcMultimedia 7000 }
        realAV OBJECT IDENTIFIER ::= { svcMultimedia 7070 }

- --
svcDatabase OBJECT IDENTIFIER ::= { service 10 }
        dbSybas OBJECT IDENTIFIER ::= { svcDatabase 1 }
        dbInformix OBJECT IDENTIFIER ::= { svcDatabase 3 }
        -- for sql*net
        dbOracle OBJECT IDENTIFIER ::= { svcDatabase 66 }
        dbMSsql OBJECT IDENTIFIER ::= { svcDatabase 1433 }

- -- these are the current areas that are checked for today, eg., there
- -- are products or engines that scan in these areas
svcContentInspection OBJECT IDENTIFIER ::= { service 11 }
        virus OBJECT IDENTIFIER ::= { svcContentInspection 1 }
        certificate OBJECT IDENTIFIER ::= { svcContentInspection 2 }
        -- eg., Java, Active-X
        programLanguage OBJECT IDENTIFIER ::= { svcContentInspection 3 }
        url OBJECT IDENTIFIER ::= { svcContentInspection 4 }
        mailHeader OBJECT IDENTIFIER ::= { svcContentInspection 5 }
        -- eg., company private



Grall                                                         [Page 25]


Internet-Draft                Firewall MIB                 20 April 1998


        proprietaryData OBJECT IDENTIFIER ::= { svcContentInspection 6 }
        prohibitedLanguage OBJECT IDENTIFIER ::= { svcContentInspection 7 }

- --
svcDirectory OBJECT IDENTIFIER ::= { service 12 }
        nis OBJECT IDENTIFIER ::= { svcDirectory 1 }
        dns OBJECT IDENTIFIER ::= { svcDirectory 53 }
        netbiosns OBJECT IDENTIFIER ::= { svcDirectory 137 }
        netbiosdgm OBJECT IDENTIFIER ::= { svcDirectory 138 }
        netbiosssn OBJECT IDENTIFIER ::= { svcDirectory 139 }
        ldap OBJECT IDENTIFIER ::= { svcDirectory 389 }
        wins OBJECT IDENTIFIER ::= { svcDirectory 1512 }

- --
svcOperatingSystem OBJECT IDENTIFIER ::= { service 13 }
        inetd OBJECT IDENTIFIER ::= { svcOperatingSystem 1 }
        cron OBJECT IDENTIFIER ::= { svcOperatingSystem 2 }
        kernel OBJECT IDENTIFIER ::= { svcOperatingSystem 3 }
        fileSystem OBJECT IDENTIFIER ::= { svcOperatingSystem 4 }
        printer OBJECT IDENTIFIER ::= { svcOperatingSystem 515 }

- --
svcManagement OBJECT IDENTIFIER ::= { service 14 }
        mgmtTool OBJECT IDENTIFIER ::= { svcManagement 1 }
        patchTool OBJECT IDENTIFIER ::= { svcManagement 2 }
        snmp OBJECT IDENTIFIER ::= { svcManagement 161 }

- --
svcEncryption OBJECT IDENTIFIER ::= { service 15 }
        ipsec OBJECT IDENTIFIER ::= { svcEncryption 1 }
        vpn OBJECT IDENTIFIER ::= { svcEncryption 2 }
        kerberos        OBJECT IDENTIFIER ::= { svcEncryption 88 }
        isakmp OBJECT IDENTIFIER ::= { svcEncryption 500 }
- --
svcPacketFilter OBJECT IDENTIFIER ::= { service 16 }

- -- network address translation
svcNAT OBJECT IDENTIFIER ::= { service 17 }

- --
svcAuthentication OBJECT IDENTIFIER ::= { service 18 }
        password OBJECT IDENTIFIER ::= { svcAuthentication 1 }
        skey OBJECT IDENTIFIER ::= { svcAuthentication 2 }
         -- Digital Pathways
        snk OBJECT IDENTIFIER ::= { svcAuthentication 3 }
        -- Enigma Logics
        silvercard OBJECT IDENTIFIER ::= { svcAuthentication 4 }
        crytocard OBJECT IDENTIFIER ::= { svcAuthentication 5 }



Grall                                                         [Page 26]


Internet-Draft                Firewall MIB                 20 April 1998


        -- Digital Pathways server
        dss OBJECT IDENTIFIER ::= { svcAuthentication 6 }
         -- Enigma Logics
        safeword OBJECT IDENTIFIER ::= { svcAuthentication 7 }
        vasco OBJECT IDENTIFIER ::= { svcAuthentication 8 }
        apop OBJECT IDENTIFIER ::= { svcAuthentication 9 }
        digipass OBJECT IDENTIFIER ::= { svcAuthentication 10 }
        secureID OBJECT IDENTIFIER ::= { svcAuthentication 755 }
- --
svcLog OBJECT IDENTIFIER ::= { service 19 }
        syslog OBJECT IDENTIFIER ::= { svcLog 514 }

- --
svcTime OBJECT IDENTIFIER ::= { service 20 }
        time OBJECT IDENTIFIER ::= { svcTime 37 }
        ntp OBJECT IDENTIFIER ::= { svcTime 123 }
        timed OBJECT IDENTIFIER ::= { svcTime 525 }

- --
svcGroupware OBJECT IDENTIFIER ::= { service 21 }
        exchange OBJECT IDENTIFIER ::= { svcGroupware 1 } -- Microsoft
        lotusNotes OBJECT IDENTIFIER ::= { svcGroupware 1352 }

- --
svcHardware OBJECT IDENTIFIER ::= { service 22 }
        memory OBJECT IDENTIFIER ::= { svcHardware 1 }
        disk OBJECT IDENTIFIER ::= { svcHardware 2 }
        power OBJECT IDENTIFIER ::= { svcHardware 3 }
        netinterface OBJECT IDENTIFIER ::= { svcHardware 4 }
        tape OBJECT IDENTIFIER ::= { svcHardware 5 }
        controller OBJECT IDENTIFIER ::= { svcHardware 6 }

- --
svcQuery OBJECT IDENTIFIER ::= { service 23 }
        whois OBJECT IDENTIFIER ::= { svcQuery 43 }
        finger OBJECT IDENTIFIER ::= { svcQuery 79 }
        ident OBJECT IDENTIFIER ::= { svcQuery 113 }

- --
svcFileShare OBJECT IDENTIFIER ::= { service 24 }
        nfsStatus OBJECT IDENTIFIER ::= { svcFileShare 1110 }
        nfs OBJECT IDENTIFIER ::= { svcFileShare 2049 }

- -- mainly used in the module and statistics tables to designate that
- -- information applies to the protocol class chosen
svcProtocol OBJECT IDENTIFIER ::= { service 25 }
        icmp OBJECT IDENTIFIER ::= { svcProtocol 1 }
        igmp OBJECT IDENTIFIER ::= { svcProtocol 2 }



Grall                                                         [Page 27]


Internet-Draft                Firewall MIB                 20 April 1998


        tcp OBJECT IDENTIFIER ::= { svcProtocol 6 }
        udp OBJECT IDENTIFIER ::= { svcProtocol 17 }
        ip OBJECT IDENTIFIER ::= { svcProtocol 255 }

- --
- -- The firewall event group
- --

- -- The firewall event group defines a set of variables and tables used to
- -- log and track extraordinary firewall events.  The tables are filled in
- -- when an event occurs and then a trap is sent referencing the filled in
- -- row.

- -- For any particular event up to three tables will be referenced.  The
- -- general event information will go into one table and the details are
- -- placed in another.  A third vendor defined table can also be used.
- -- There is only one table defined for general information.

- -- The table chosen for event details depends on the event type and the
- -- set of detailed information available at the time the event took place.
- -- The general table has a value to point to the table and row containing
- -- the event's details.  A trap is sent once the relevant tables are
- -- filled in.  The trap contains pointers to the tables used.

- -- A management station can wait for a trap to get details on an event.
- -- Alternatively the management station can query the objects in this
- -- group at any time to retrieve event information.

fwevent                      OBJECT IDENTIFIER ::= { fwmib 2 }

- --
- -- BASIC EVENTS LOG
- --
- -- This group defines the basic table containing information that is
- -- logged for every event on the firewall.  The table is defined along
- -- with one variable to obtain the index value of the last valid row in
- -- the table.  To obtain the first valid index value, query the table
- -- (via GETNEXT) for the first entry in the table.
- --
- -- The index of the last valid row also indicates the total number of
- -- events logged in the table since reboot.
- --

basicEventsLog          OBJECT IDENTIFIER ::= { fwevent 1 }

basicEventsLogTableLastValidRow OBJECT-TYPE
        SYNTAX INTEGER(1..2147483647)
        MAX-ACCESS read-only



Grall                                                         [Page 28]


Internet-Draft                Firewall MIB                 20 April 1998


        STATUS current
        DESCRIPTION

        "The index value of the last valid row in the basicEventsLogTable."

        ::= { basicEventsLog 1 }

basicEventsLogTableTrapIndex OBJECT-TYPE
        SYNTAX INTEGER(1..2147483647)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "The index value of the row provided in the traps."

        ::= { basicEventsLog 2 }

basicEventsLogTable OBJECT-TYPE
        SYNTAX SEQUENCE OF BasicEventsLogEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "Table of basic data for firewall events."

        ::= { basicEventsLog 3 }

basicEventsLogEntry OBJECT-TYPE
        SYNTAX BasicEventsLogEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "An entry in the table, containing general information
        about an event."

        INDEX { basicEventLogIndex }
        ::= { basicEventsLogTable 1 }

BasicEventsLogEntry ::= SEQUENCE {
        basicEventLogIndex      INTEGER(1..2147483647),
        basicEventTime          TimeStamp,
        basicEventSource        IpAddress,
        basicEventType          EventTypeUnitTC,
        basicEventDescription   SnmpAdminString,
        basicEventDetailsTableRow OBJECT IDENTIFIER,
        basicEventVendorDetailsTableRow OBJECT IDENTIFIER
        }



Grall                                                         [Page 29]


Internet-Draft                Firewall MIB                 20 April 1998


basicEventLogIndex OBJECT-TYPE
        SYNTAX  INTEGER(1..2147483647)
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION

        "An index that uniquely identifies an entry
        in the log table.  These indices are assigned
        beginning with 1 and increase by one with each
        new log entry.  The agent may choose to delete the
        instances of basicEventEntry as required
        because of lack of memory.  It is an implementation
        specific matter as to when this deletion may occur and
        as to which log entries are deleted."

        ::= { basicEventsLogEntry 1 }

basicEventTime OBJECT-TYPE
        SYNTAX TimeStamp
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "The time that the Event occurred."

        ::= { basicEventsLogEntry 2 }

basicEventSource OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "The IP address of the firewall entity where the event
        occurred, the IP address of the entity.  If there are two
        or more IP addresses there is no guarantee which IP
        address will be used."

        ::= { basicEventsLogEntry 3 }

basicEventType OBJECT-TYPE
        SYNTAX EventTypeUnitTC
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "What type of event this is."




Grall                                                         [Page 30]


Internet-Draft                Firewall MIB                 20 April 1998


        ::= { basicEventsLogEntry 4 }

basicEventDescription OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "An (optional) description of the event."

        ::= { basicEventsLogEntry 5 }

basicEventDetailsTableRow OBJECT-TYPE
        SYNTAX  OBJECT IDENTIFIER
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "A pointer to a row in the table containing details about this
        event. It will be one of the tables defined in this
        MIB.  One of type1NetEventsLogTable, type2NetEventsLogTable,
        type3NetEventsLogTable, healthEventsLogTable,
        managementEventsLogTable.  The last sub-identifier(s) of the OID
        represents the specific row index values for the row in the table
        that contains the data."

        ::= { basicEventsLogEntry 6 }

basicEventVendorDetailsTableRow OBJECT-TYPE
        SYNTAX  OBJECT IDENTIFIER
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "This value is vendor defined. Generally this will be a
        pointer to a table and row containing vendor specific details
        about this event.  It is up to firewall vendor to define how
        this value should be interpreted and to publish this information.
        If a vendor private table is not supported, then the NULL OID
        value (0.0) should be provided."

        ::= { basicEventsLogEntry 7 }


- -- NETWORK EVENTS LOG
- --
- -- A details table with information related to network events
- -- or events involving "users" of the firewall resources and services



Grall                                                         [Page 31]


Internet-Draft                Firewall MIB                 20 April 1998


- -- (eg., traffic flows through the firewall or a user authenticating
- -- to use a firewall service).

netEventsLog    OBJECT IDENTIFIER ::= { fwevent 4 }

netEventsLogTableLastValidRow OBJECT-TYPE
        SYNTAX INTEGER(1..2147483647)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "The index value of the last valid row in the netEventsLogTable."

        ::= { netEventsLog 1 }

netEventsLogTable OBJECT-TYPE
        SYNTAX SEQUENCE OF NetEventsLogEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "Table of detailed data for transport events."

        ::= { netEventsLog 2}

netEventsLogEntry OBJECT-TYPE
        SYNTAX NetEventsLogEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "An entry in the table, containing detailed information
        about an event."

        INDEX { netEventLogIndex }
        ::= { netEventsLogTable 1 }

NetEventsLogEntry ::= SEQUENCE {
        netEventLogIndex        INTEGER(1..2147483647),
        netEventInterface       InterfaceIndex,
        netEventProtocol           ProtocolUnitTC,
        netEventICMPCommand     INTEGER,
        netEventSrcIpAddress    IpAddress,
        netEventMappedSrcIpAddress      IpAddress,
        netEventDstIpAddress       IpAddress,
        netEventMappedDstIpAddress IpAddress,
        netEventSrcIpPort               INTEGER(0..65535),
        netEventMappedSrcIpPort INTEGER(0..65535),



Grall                                                         [Page 32]


Internet-Draft                Firewall MIB                 20 April 1998


        netEventDstIpPort               INTEGER(0..65535),
        netEventMappedDstIpPort INTEGER(0..65535),
        netEventService         OBJECT IDENTIFIER,
        netEventServiceInformation      SnmpAdminString,
        netEventAuthdEntity     SnmpAdminString,
        netEventRuleID          INTEGER(0..65535),
        netEventActionReason    SnmpAdminString
        }

netEventLogIndex OBJECT-TYPE
        SYNTAX  INTEGER(1..2147483647)
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION

        "An index that uniquely identifies an entry
        in the log table.  These indices are assigned
        beginning with 1 and increase by one with each
        new log entry.  The agent may choose to delete the
        instances of basicEventEntry as required
        because of lack of memory.  It is an implementation
        specific matter as to when this deletion may occur and
        as to which log entries are deleted."

        ::= { netEventsLogEntry 1 }

netEventInterface OBJECT-TYPE
        SYNTAX InterfaceIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "The interface number that any packets may have arrived on
        or that activity may have taken place on.  [Will be zero if
        no interface was involved.]"

        ::= { netEventsLogEntry 2 }

netEventProtocol OBJECT-TYPE
        SYNTAX ProtocolUnitTC
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Enumeration of possible network protocols."

        ::= {  netEventsLogEntry 3 }




Grall                                                         [Page 33]


Internet-Draft                Firewall MIB                 20 April 1998


netEventICMPCommand OBJECT-TYPE
        SYNTAX INTEGER {
                echoreply(0),
                destunreach(3),
                sourcequench(4),
                redirect(5),
                echo(8),
                timeexceeded(11),
                paramprob(12),
                timestamp(13),
                timestampreply(14),
                mask(17),
                maskreply(18),
                traceroute(30),
                notICMP(41) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Enumeration of the most common types of ICMP packets, the
        numbers used above represent the ICMP Type number currently
        assigned by IANA."

        ::= { netEventsLogEntry 4 }

netEventSrcIpAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Source IP address as provided in an IP packet."

        ::= { netEventsLogEntry 5 }

netEventMappedSrcIpAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Source IP address after network address translation
        has been applied."

        ::= { netEventsLogEntry 6 }

netEventDstIpAddress OBJECT-TYPE
        SYNTAX IpAddress



Grall                                                         [Page 34]


Internet-Draft                Firewall MIB                 20 April 1998


        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Destination IP address as provided in an IP packet
        or by a service user."

        ::= { netEventsLogEntry 7 }

netEventMappedDstIpAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Destination IP address after network address translation
        has been applied."

        ::= { netEventsLogEntry 8 }

netEventSrcIpPort OBJECT-TYPE
        SYNTAX INTEGER (0..65535)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Source UDP/TCP port as provided in an IP packet."

        ::= { netEventsLogEntry 9 }

netEventMappedSrcIpPort OBJECT-TYPE
        SYNTAX INTEGER (0..65535)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Source UDP/TCP port after any port translation or change
        has been applied."

        ::= { netEventsLogEntry 10 }

netEventDstIpPort OBJECT-TYPE
        SYNTAX INTEGER (0..65535)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Destination UDP/TCP port as provided in an IP packet



Grall                                                         [Page 35]


Internet-Draft                Firewall MIB                 20 April 1998


        or by a service user."

        ::= { netEventsLogEntry 11 }

netEventMappedDstIpPort OBJECT-TYPE
        SYNTAX INTEGER (0..65535)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Destination UDP/TCP port after any port translation or change
        has been applied."

        ::= { netEventsLogEntry 12 }

netEventService OBJECT-TYPE
        SYNTAX OBJECT IDENTIFIER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "The identification of the type of service notifying about the
        event.  This value may be chosen from the fwmib.service
        or vendor specific trees.  The description in serviceInformation
        can be used to designate a particular service from within this
        service type."

        ::= { netEventsLogEntry 13 }

netEventServiceInformation OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Specific service information.  This can be used to
        designate the particular service within a genericService
        type and/or it can designate whether the service is a local
        service or a gateway service.  For example, if the value
        for genericService is service.svcLogin.telnet, then the
        string provided might be local telnet."

        ::= { netEventsLogEntry 14 }

netEventAuthdEntity OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current



Grall                                                         [Page 36]


Internet-Draft                Firewall MIB                 20 April 1998


        DESCRIPTION

        "A userid, username, processid or other identifier for the entity
        using the service. If there is no such information then 'none'
        must be provided."

        ::= { netEventsLogEntry 15 }

netEventRuleID OBJECT-TYPE
        SYNTAX INTEGER (0..65535)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "INTEGER representation of a rule identifier.  How
        to interpret the number provided is defined by the
        firewall vendor.  Eg., it may represent a configuration
        line number in a file, or a rule number in a table."

        ::= { netEventsLogEntry 16 }

netEventActionReason OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "A detailed description of the reason the ruleAction took
        place.  Could be a copy of the rule used."

        ::= { netEventsLogEntry 17 }

- -- HEALTH EVENTS LOG
- --
- -- This table is used for events related to the firewall's health and
- -- status.  The events can be for hardware or software resources.

healthEventsLog         OBJECT IDENTIFIER ::= { fwevent 5 }

healthEventsLogTableLastValidRow OBJECT-TYPE
        SYNTAX INTEGER(1..2147483647)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "The index value of the last valid row in the healthEventsLogTable."

        ::= { healthEventsLog 1 }



Grall                                                         [Page 37]


Internet-Draft                Firewall MIB                 20 April 1998


healthEventsLogTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HealthEventsLogEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "Table of detailed data for firewall health events."

        ::= { healthEventsLog 2 }

healthEventsLogEntry OBJECT-TYPE
        SYNTAX HealthEventsLogEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "An entry in the table, containing detailed information
        about a health event."

        INDEX { healthEventLogIndex }
        ::= { healthEventsLogTable 1 }

HealthEventsLogEntry ::= SEQUENCE {
        healthEventLogIndex             INTEGER(1..2147483647),
        healthEventResourceType         OBJECT IDENTIFIER,
        healthEventResourceDetails      SnmpAdminString,
        healthEventProblemDetail        SnmpAdminString
        }

healthEventLogIndex OBJECT-TYPE
        SYNTAX  INTEGER(1..2147483647)
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION

        "An index that uniquely identifies an entry
        in the log table.  These indices are assigned
        beginning with 1 and increase by one with each
        new log entry.  The agent may choose to delete the
        instances of basicEventEntry as required
        because of lack of memory.  It is an implementation
        specific matter as to when this deletion may occur and
        as to which log entries are deleted."

        ::= { healthEventsLogEntry 1 }

healthEventResourceType OBJECT-TYPE
        SYNTAX OBJECT IDENTIFIER



Grall                                                         [Page 38]


Internet-Draft                Firewall MIB                 20 April 1998


        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "The identification of the type of resource notifying about the
        problem.  This value may be chosen from the fwmib.service
        or vendor specific trees.  The description in
        healthEventResourceDetails can be used to provide more details
        about the resource."

        ::= { healthEventsLogEntry 2 }

healthEventResourceDetails OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Specific resource information.  This can be used to
        designate details about the service OID chosen."

::= { healthEventsLogEntry 3 }

healthEventProblemDetail OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Details on the problem being reported.  Used if more
        detail is needed to interpret the value used in
        basicEventType from the basicEventsTable entry."

        ::= { healthEventsLogEntry 4 }

- -- MANAGEMENT EVENTS LOG
- --
- -- This table is used for reporting events related to management of the
- -- firewall.

managementEventsLog             OBJECT IDENTIFIER ::= { fwevent 6 }

managementEventsLogTableLastValidRow OBJECT-TYPE
        SYNTAX INTEGER(1..2147483647)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION




Grall                                                         [Page 39]


Internet-Draft                Firewall MIB                 20 April 1998


        "The index value of the last valid row in the
        managementEventsLogTable."

        ::= { managementEventsLog 1 }

managementEventsLogTable OBJECT-TYPE
        SYNTAX SEQUENCE OF ManagementEventsLogEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "Table of detailed data for firewall management events."

        ::= { managementEventsLog 2 }

managementEventsLogEntry OBJECT-TYPE
        SYNTAX ManagementEventsLogEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "An entry in the table, containing detailed information
        about a management event."

        INDEX { managementEventLogIndex }
        ::= { managementEventsLogTable 1 }

ManagementEventsLogEntry ::= SEQUENCE {
        managementEventLogIndex                 INTEGER(1..2147483647),
        managementEventSubjectName      SnmpAdminString,
        managementEventSubjectAction    EventTypeUnitTC,
        managementEventActionDetail     SnmpAdminString,
        managementEventObjectManaged         OBJECT IDENTIFIER
        }

managementEventLogIndex OBJECT-TYPE
        SYNTAX  INTEGER(1..2147483647)
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION

        "An index that uniquely identifies an entry
        in the log table.  These indices are assigned
        beginning with 1 and increase by one with each
        new log entry.  The agent may choose to delete the
        instances of basicEventEntry as required
        because of lack of memory.  It is an implementation
        specific matter as to when this deletion may occur and



Grall                                                         [Page 40]


Internet-Draft                Firewall MIB                 20 April 1998


        as to which log entries are deleted."

        ::= { managementEventsLogEntry 1 }

managementEventSubjectName OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "The userid, processid, or other unique information that
        designates which subject is causing the management event
        event."

        ::= { managementEventsLogEntry 2 }

managementEventSubjectAction OBJECT-TYPE
        SYNTAX EventTypeUnitTC
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "What a subject did on the firewall."

        ::= { managementEventsLogEntry 3 }

managementEventActionDetail OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Details on the management event based on the
        subjectAction chosen."

        ::= { managementEventsLogEntry 4 }

managementEventObjectManaged OBJECT-TYPE
        SYNTAX OBJECT IDENTIFIER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "The identification of the type of resource begin managed.
        This value may be chosen from the fwmib.service or vendor specific
        trees. "

        ::= { managementEventsLogEntry 5 }



Grall                                                         [Page 41]


Internet-Draft                Firewall MIB                 20 April 1998


- --
- -- fwquery group
- --
- -- The query group defines status and statistical data at the firewall.
- -- The data included here concentrate on variables not covered by
- -- other MIBs.

- -- All data are designated as read-only.  Changes to a firewall's
- -- configuration or any of the data here is assumed to take place via
- -- a different channel.

- -- We encourage the firewall to support MIB-II for resource information
- -- when possible.  To that extent, this query group does not include any
- -- objects that are covered by MIB-II.

fwquery                 OBJECT IDENTIFIER ::= { fwmib 3 }
fwinformation           OBJECT IDENTIFIER ::= { fwquery 1 }
fwstatus                OBJECT IDENTIFIER ::= { fwquery 2 }
fwstatistic             OBJECT IDENTIFIER ::= { fwquery 3 }

- -- The firewall product related queries

fwProductName OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "The product name of the firewall."

        ::= { fwinformation 1 }

fwVersionMajor OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "The major version of the firewall as a whole."

        ::= { fwinformation 2 }

fwVersionMinor OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION




Grall                                                         [Page 42]


Internet-Draft                Firewall MIB                 20 April 1998


        "The minor version of the firewall as a whole."

        ::= { fwinformation 3 }

fwOSName OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "The specific vendor's name for the operating system the firewall
        is running on.  For Unix type operating systems this would usually be
        the output from 'uname -s'."

        ::= { fwinformation 4 }

fwOSVersion OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "The specific vendor's version for the operating system the firewall
        is running on.  For Unix type operating systems this would usually be
        the output from 'uname -r'."

        ::= { fwinformation 5 }

- -- The firewall module table is used to provide additional version and
- -- status information for firewall modules.  The definition of a module
- -- is vendor specific.  At the least the firewall should provide one row
- -- for this table to represent the firewall system as a whole (ie, the
- -- value used for fwModuleType would be services.svcFirewall).  For values
- -- in this table that the firewall module does not support (eg., the
- -- module does not support serial numbers), the value used would be
- -- "NULL".

fwModuleInfoTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FwModuleInfoEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "Table of firewall Module entries that provide
        version and status information."

        ::= { fwinformation 6 }




Grall                                                         [Page 43]


Internet-Draft                Firewall MIB                 20 April 1998


fwModuleInfoEntry OBJECT-TYPE
        SYNTAX FwModuleInfoEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "An entry in the table, containing information about a
         module."

        INDEX { fwModuleType }
        ::= { fwModuleInfoTable 1 }

FwModuleInfoEntry ::= SEQUENCE {
        fwModuleType            OBJECT IDENTIFIER,
        fwModuleInformation     SnmpAdminString,
        fwModuleVersion         SnmpAdminString,
        fwModulePatchLevel      SnmpAdminString,
        fwModuleLicenseKey      SnmpAdminString,
        fwModuleSerialNumber    SnmpAdminString,
        fwModuleCfgID           SnmpAdminString,
        fwModuleCfgDate         TimeStamp,
        fwModuleCfgState        INTEGER }

fwModuleType OBJECT-TYPE
        SYNTAX  OBJECT IDENTIFIER
        MAX-ACCESS not-accessible
        STATUS  current
        DESCRIPTION

        "Firewall module type.  This can be an OID from the services
        group, or the vendor can choose to define OIDs in their
        enterprise group."

        ::= { fwModuleInfoEntry 1 }

fwModuleInformation OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "Detailed information to designate the specific firewall
        module or service based on the type chosen for fwModuleInfoType."

        ::= { fwModuleInfoEntry 2 }

fwModuleVersion OBJECT-TYPE
        SYNTAX  SnmpAdminString



Grall                                                         [Page 44]


Internet-Draft                Firewall MIB                 20 April 1998


        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "Module Version."

        ::= { fwModuleInfoEntry 3 }

fwModulePatchLevel OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION

        "Module Patch Level."

        ::= { fwModuleInfoEntry 4 }

fwModuleLicenseKey OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Module license key"

        ::= { fwModuleInfoEntry 5 }

fwModuleSerialNumber OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Module serial number."

        ::= { fwModuleInfoEntry 6 }

fwModuleCfgID OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "Module configuration ID."

        ::= { fwModuleInfoEntry 7 }




Grall                                                         [Page 45]


Internet-Draft                Firewall MIB                 20 April 1998


fwModuleCfgDate OBJECT-TYPE
        SYNTAX TimeStamp
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Module configuration date."

        ::= { fwModuleInfoEntry 8 }

fwModuleCfgState OBJECT-TYPE
        SYNTAX INTEGER {
                inprogress(1),
                done(2),
                reconfigFailed(3)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Enumeration of the state the module's
        configuration is in."

        ::= { fwModuleInfoEntry 9 }

- -- The resource information related queries, this table is for
- -- providing the status of the resources on the firewall.  Resources
- -- can include hardware or software modules on the firewall.

resourceStatusTable OBJECT-TYPE
        SYNTAX SEQUENCE OF ResourceStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "Table of firewall resource entries"

        ::= { fwstatus 1 }

resourceStatusEntry OBJECT-TYPE
        SYNTAX ResourceStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "An entry in the table, containing information about a
        resource."




Grall                                                         [Page 46]


Internet-Draft                Firewall MIB                 20 April 1998


        INDEX { resourceType }
        ::= { resourceStatusTable 1 }

ResourceStatusEntry ::= SEQUENCE {
        resourceType            OBJECT IDENTIFIER,
        resourceInformation     SnmpAdminString,
        resourceStatusDetail    EventTypeUnitTC,
        resourceStatusInfo      SnmpAdminString
        }

resourceType OBJECT-TYPE
        SYNTAX  OBJECT IDENTIFIER
        MAX-ACCESS not-accessible
        STATUS  current
        DESCRIPTION

        "Resource type. This can be an OID from the services
        group, or the vendor can choose to define OIDs in their
        enterprise group."

        ::= { resourceStatusEntry 1 }

resourceInformation OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "Detailed information to further designate the specific firewall
        resource or service reporting status."

        ::= { resourceStatusEntry 2 }

resourceStatusDetail OBJECT-TYPE
        SYNTAX EventTypeUnitTC
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Enumeration of firewall resource status/events.  This
        list applies to hardware and software resources provided
        and used by the firewall."

        ::= { resourceStatusEntry 3 }

resourceStatusInfo OBJECT-TYPE
        SYNTAX  SnmpAdminString
        MAX-ACCESS read-only



Grall                                                         [Page 47]


Internet-Draft                Firewall MIB                 20 April 1998


        STATUS  current
        DESCRIPTION

        "Detailed information to further describe the status of
        the resource if the value for resourceStatusDetails is not
        descriptive enough."

        ::= { resourceStatusEntry 4 }

- -- The statistic related queries

- -- This group contains several tables, each table can be used to provide
- -- the indicated statistics for any firewall resource or service.  The tables
- -- all contain rows for (and are indexed by) each service that the statistic
- -- applies to.
- --
- -- The tables in this group can be used to provide statistics on:
- --
- --      packet level data (packetStatTable)
- --      service level data (fwStatTable)
- --
- -- The packetStatTable includes variables to record the number of packets
- -- handled by the firewall in various ways.
- --
- -- In all the tables, for any Counter32 objects that are not supported,
- -- a value of "0" is returned.

packetStatTable OBJECT-TYPE
        SYNTAX SEQUENCE OF PacketStatEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "Table of firewall packet statistic entries."

        ::= { fwstatistic 1 }

packetStatEntry OBJECT-TYPE
        SYNTAX PacketStatEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "An entry in the table, containing information about a
        statistic."

        INDEX { packetStatServiceType, packetNetInterface }
        ::= { packetStatTable 1 }



Grall                                                         [Page 48]


Internet-Draft                Firewall MIB                 20 April 1998


PacketStatEntry ::= SEQUENCE {
        packetStatServiceType           OBJECT IDENTIFIER,
        packetNetInterface              InterfaceIndex,
        packetStatServiceDetail         SnmpAdminString,
        packetsAccepted                 Counter32,
        packetsDropped                  Counter32,
        packetsEncrypted                Counter32,
        packetsInvalid                  Counter32,
        packetsIgnore                   Counter32,
        packetsRejected                 Counter32,
        packetsForwarded                Counter32,
        packetsFragmented               Counter32
}

packetStatServiceType OBJECT-TYPE
        SYNTAX  OBJECT IDENTIFIER
        MAX-ACCESS not-accessible
        STATUS  current
        DESCRIPTION

        "The identification of the type of service notifying about the
        event.  This value may be chosen from the fwmib.service
        or vendor specific trees.  The description in packetStatServiceDetail
        can be used to designate a particular service from within this
        service type."

        ::= { packetStatEntry 1 }

packetNetInterface OBJECT-TYPE
        SYNTAX InterfaceIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "The interface number that the packet(s) arrived on."

        ::= { packetStatEntry 2 }

packetStatServiceDetail OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Specific service information.  This can be used to
        further designate the particular service.  It can also be
        used to designate different types of packet statistics from
        the same service (e.g., the kernel counts rejected packets



Grall                                                         [Page 49]


Internet-Draft                Firewall MIB                 20 April 1998


        meant to be forwared and meant to be accepted as two seperate
        counts)."

        ::= { packetStatEntry 3 }

packetsAccepted OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "Number of packets accepted."

        ::= { packetStatEntry 4 }

packetsDropped OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "Number of packets dropped."

        ::= { packetStatEntry 5 }

packetsEncrypted OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION
                "Number of packets encrypted."
        ::= { packetStatEntry 6 }

packetsInvalid OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "Number of bad (see section 4.0) packets received."

        ::= { packetStatEntry 7 }

packetsIgnore OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION



Grall                                                         [Page 50]


Internet-Draft                Firewall MIB                 20 April 1998


        "Number of bad (see section 4.0) packets ignored."

        ::= { packetStatEntry 8 }

packetsRejected OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "Number of packets rejected."

        ::= { packetStatEntry 9 }

packetsForwarded OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "Number of packets forwarded."

        ::= { packetStatEntry 10 }

packetsFragmented OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS read-only
        STATUS  current
        DESCRIPTION

        "Number of packets fragmented."

        ::= { packetStatEntry 11 }

- -- The Firewall Statistics Table Definition
- --
- -- This table can be used to provide the statistics
- -- for any firewall resource or service.  This table contains rows for
- -- (and are indexed by) each service to which the statistic applies.
- --
- -- This table can be used to provide statistics on any of the events
- -- that are also reported via traps, as well as any other events included
- -- in EventTypeUnitTC.  For example to report on the number of users
- -- that where denied access to the ftp service you could use the following:
- --
- --  resource = OID (service.svcFileTransfer.ftp)
- --  resourceDetails = STRING ("the ftp proxy")
- --  statisticType = accessDenied(1403)



Grall                                                         [Page 51]


Internet-Draft                Firewall MIB                 20 April 1998


- --  statsDataType = count
- --  statsValue = INTEGER (35)
- --  statDescription = STRING ("The number of users of the ftp proxy that...")
- --  statStartTime = TimeStamp (####)
- --  statElapsedTime = ??
- --
- -- The table contains a column to provide details about the statistic
- -- being reported on.  So, for example, if the statistic is for a particular
- -- user, this can be provided in the statDescription.

resourceStatTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF ResourceStatEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION

        "Table of firewall statistic entries."

        ::= { fwstatistic 2 }

resourceStatEntry OBJECT-TYPE
        SYNTAX          ResourceStatEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION

        "An entry in the table, containing information about a
        firewall statistic."

        INDEX { statResourceType, statType }
        ::= { resourceStatTable 1 }

ResourceStatEntry ::= SEQUENCE {
        statResourceType        OBJECT IDENTIFIER,
        statResourceDetails     SnmpAdminString,
        statType                EventTypeUnitTC,
        statDataType            INTEGER,
        statValue               OCTET STRING,
        statDescription         SnmpAdminString
        }

statResourceType OBJECT-TYPE
        SYNTAX          OBJECT IDENTIFIER
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION

        "The identification of the type of service providing statistics



Grall                                                         [Page 52]


Internet-Draft                Firewall MIB                 20 April 1998


        This value may be chosen from the fwmib.service
        or vendor specific trees.  The description in
        statResourceDetails can be used to designate a
        particular service from within this service type."

        ::= { resourceStatEntry 1 }

statResourceDetails OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "Specific service information.  This can be used to
        designate the particular service reporting the statistic."

        ::= { resourceStatEntry 2 }

statType OBJECT-TYPE
        SYNTAX EventTypeUnitTC
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION

        "The type of statistic this row is reporting on.  This along with
        statResourceType provides a unique index into the table."

        ::= { resourceStatEntry 3 }

statDataType OBJECT-TYPE
        SYNTAX INTEGER {
                counter(1),
                int(2),
                percent(3),
                gauge(4),
                timestmp(5) }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "The data type of the statistic value in this row.  This value
        is used to interpret the data provided in statValue."

        ::= { resourceStatEntry 4 }

statValue OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(1..8))
        MAX-ACCESS read-only



Grall                                                         [Page 53]


Internet-Draft                Firewall MIB                 20 April 1998


        STATUS current
        DESCRIPTION

        "The value of the statistic, the type of this value is provided
        in statDataType.  Regardless of the type of the value, the
        bytes are interpreted in network byte order. @?@ any opinions @?@

        If the statDataType value is 'counter' then @?@ any restrictions?

        If the statDataType value is 'int' then this value shall be
        @?@X bytes long maximum. @?@ any opinions?

        If the statDataType value is 'percent' then this value shall
        be an integer value between 00 and 100 inclusive.

        If the statDataType value is 'gauge' then this value shall
        be @?@.

        If the statDataType value is 'timestmp' then this value shall
        be @?@."

        ::= { resourceStatEntry 5 }

statDescription OBJECT-TYPE
        SYNTAX SnmpAdminString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION

        "A more detailed description of the statistic provided in
        case the statType does not give a good indication of what
        the data in statValue represents."

        ::= { resourceStatEntry 6 }


- --
- -- fwtrap group
- --
- -- The fwtrap group defines the trap types that a firewall may
- -- send.

fwtrap                  OBJECT IDENTIFIER ::= { fwmib 4 }

- -- Traps are defined using the conventions in SNMPv2-SMI
- --
- -- The networkEventTrap is used for events related to the network
- -- operation in the firewall.  This includes packet screening events and



Grall                                                         [Page 54]


Internet-Draft                Firewall MIB                 20 April 1998


- -- service events.  The trap contains the OID/row index of the
- -- netEventDetailsTable and the OID/row and index of the vendor private
- -- table. Then the management station can choose to access the event
- -- details without having to query the base table.

networkEventTrap NOTIFICATION-TYPE

        OBJECTS {
                basicEventsLogTableTrapIndex,
                basicEventTime,
                basicEventSource,
                basicEventType,
                basicEventDescription,
                basicEventDetailsTableRow,
                basicEventVendorDetailsTableRow
        }
        STATUS current
        DESCRIPTION

        "Network event notification from network components."

        ::= { fwtrap 1 }

        -- Example use: see introduction.

- -- The healthEventTrap is used for events related to configuration problems,
- -- resource problems, service problems, and system problems.  The
- -- basicEventDetailsTableIndex represents the index of the row in
- -- the healthEventDetailsTable related to this event.

healthEventTrap NOTIFICATION-TYPE
        OBJECTS {
                basicEventsLogTableTrapIndex,
                basicEventTime,
                basicEventSource,
                basicEventType,
                basicEventDescription,
                basicEventDetailsTableRow,
                basicEventVendorDetailsTableRow
        }
        STATUS current
        DESCRIPTION

        "Notification on events concerning the status and
        health of the firewall"

        ::= { fwtrap 2 }




Grall                                                         [Page 55]


Internet-Draft                Firewall MIB                 20 April 1998


        -- Example use: see introduction.

- -- The managementEventTrap is for events that relate to configuration
- -- changes, operating system changes, and patches to components on the
- -- firewall.  The basicEventDetailsTableIndex represents the index of
- -- the row in the mgmtEventDetailsTable related to this event.

managementEventTrap NOTIFICATION-TYPE
        OBJECTS {
                basicEventsLogTableTrapIndex,
                basicEventTime,
                basicEventSource,
                basicEventType,
                basicEventDescription,
                basicEventDetailsTableRow,
                basicEventVendorDetailsTableRow
        }

        STATUS current
        DESCRIPTION

        "Notification of a configuration related event."

        ::= { fwtrap 3 }

        -- Example use: see introduction.


- -- conformance information, see RFC1444

fwmibConformance OBJECT IDENTIFIER ::= { fwmib 5 }
fwmibCompliances OBJECT IDENTIFIER ::= { fwmibConformance 1 }
fwmibGroups  OBJECT IDENTIFIER ::= { fwmibConformance 2 }

- -- compliance statements

fwCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION

        "The compliance statement for SNMPv2 entities
        which implement the Firewall MIB."

        MODULE  -- this module

        GROUP basicEventsLogGroup
        DESCRIPTION
                "If the firewall will be sending traps, then the



Grall                                                         [Page 56]


Internet-Draft                Firewall MIB                 20 April 1998


                basicEventsLog group is mandatory."

        ::= { fwmibCompliances 1 }

- -- units of conformance

basicEventsLogGroup OBJECT-GROUP
        OBJECTS {
        basicEventsLogTableLastValidRow,
        basicEventsLogTableTrapIndex,
        basicEventTime, basicEventSource,
        basicEventType, basicEventDescription,
        basicEventDetailsTableRow,
        basicEventVendorDetailsTableRow
        }
        STATUS current
        DESCRIPTION

        "A collection of objects allowing the description of
        events occurring on a firewall."

        ::= { fwmibGroups 1 }

otherEventsLogGroup OBJECT-GROUP
        OBJECTS {
        netEventsLogTableLastValidRow,
        netEventInterface, netEventProtocol,
        netEventICMPCommand, netEventSrcIpAddress,
        netEventMappedSrcIpAddress, netEventDstIpAddress,
        netEventMappedDstIpAddress, netEventSrcIpPort,
        netEventMappedSrcIpPort, netEventDstIpPort,
        netEventMappedDstIpPort, netEventService,
        netEventServiceInformation, netEventAuthdEntity,
        netEventRuleID, netEventActionReason,
        healthEventsLogTableLastValidRow,
        healthEventResourceType, healthEventResourceDetails,
        healthEventProblemDetail, managementEventsLogTableLastValidRow,
        managementEventSubjectName,
        managementEventSubjectAction, managementEventActionDetail,
        managementEventObjectManaged
        }
        STATUS current
        DESCRIPTION

        "A collection of objects allowing the description of
        event details occurring on a firewall."

        ::= { fwmibGroups 2 }



Grall                                                         [Page 57]


Internet-Draft                Firewall MIB                 20 April 1998


fwqueryGroup1 OBJECT-GROUP
        OBJECTS {
        fwProductName, fwVersionMajor,
        fwVersionMinor, fwOSName, fwOSVersion
        }
        STATUS current
        DESCRIPTION

        "A collection of objects allowing the collection of generic
        information about the firewall."

        ::= { fwmibGroups 3 }

fwqueryGroup2 OBJECT-GROUP
        OBJECTS {
        fwModuleInformation, fwModuleVersion,
        fwModulePatchLevel, fwModuleLicenseKey,
        fwModuleSerialNumber,
        fwModuleCfgID, fwModuleCfgDate, fwModuleCfgState
        }
        STATUS current
        DESCRIPTION

        "A collection of objects allowing the collection of information
        about modules on the firewall."

        ::= { fwmibGroups 4 }

fwqueryGroup3 OBJECT-GROUP
        OBJECTS {
        resourceInformation,
        resourceStatusDetail, resourceStatusInfo
        }
        STATUS current
        DESCRIPTION

        "A collection of objects allowing the collection of information
        about service status on the firewall."

        ::= { fwmibGroups 5 }


fwqueryGroup4 OBJECT-GROUP
        OBJECTS {
        packetStatServiceDetail, packetsAccepted,
        packetsDropped, packetsEncrypted, packetsInvalid, packetsIgnore,
        packetsRejected, packetsForwarded, packetsFragmented
        }



Grall                                                         [Page 58]


Internet-Draft                Firewall MIB                 20 April 1998


        STATUS current
        DESCRIPTION

        "A collection of objects allowing the collection of packet statistics
        on the firewall."

        ::= { fwmibGroups 6 }

fwqueryGroup5 OBJECT-GROUP
        OBJECTS {
        statResourceDetails,
        statDataType, statValue,
        statDescription
        }
        STATUS current
        DESCRIPTION

        "A collection of objects allowing the collection of statistics
        about serivces/resources on the firewall."

        ::= { fwmibGroups 7 }

END






6.  Acknowledgments

The Firewall MIB has benefitted greatly from the comments and instrumen-
tation work of many people.  In addition to those already mentioned ear-
lier in this document, the following individuals have contributed to
this specification (with advance apologies to anyone who may have been
left out of this list):















Grall                                                         [Page 59]


Internet-Draft                Firewall MIB                 20 April 1998



                Lee Brown
                Dave Chouihard
                Mike Coram
                Holly Ding
                Dorit Dor
                Bill Funk
                Dale Lancaster
                Ken Laube
                Herbert Lin
                Ian McDonnell
                Thomas Oeser
                Ashok Nadkarni
                Poornima Rao
                Ephraim Vider
                Cliff Wang
                Michael Wittig



7.  Security Considerations

@?@ Portions still TBD...

@?@ Address known threats

@?@ Address methods to mitigate threads and any residual risks

Users of this MIB will have access to data which is potentially not
secure.  Users should take reasonable steps to protect the data for dis-
closure by using SNMPv3 or other encryption methods. It is not recom-
mended that objects in the MIB be supported or used in an "untrusted" or
unknown network environment unless privacy, authentication, and
integrity are provided (eg., use encryption).

There is the potential for unauthorized management stations to access
firewall MIB objects.  Users should use SNMPv3 to provide management
identification and authentication.

Write operations to MIB objects are not supported, i.e., SNMP SETs are
currently not supported by this MIB.  Many SNMP implementations and net-
work architectures do not support secure communications.  After SNMPv3
is established the MIB may be expanded to include objects that can be
written.

The MIB defines very few objects related to configuration data.  As
described in the section titled "Monitoring of Firewall Devices", there
is a risk of exposing a firewall's configuration, and possibly provide



Grall                                                         [Page 60]


Internet-Draft                Firewall MIB                 20 April 1998


an adversary information on a firewall's weaknesses.


8.  References

[1] Cerf, V., "IAB Recommendations for the Development of Internet Net-
     work Management Standards", RFC 1052, NRI, April 1988.

[2] Cerf, V., "Report of the Second Ad Hoc Network Management Review
     Group", RFC 1109, NRI, August 1989.

[3] Rose M., and K. McCloghrie, "Structure and Identification of Manage-
     ment Information for TCP/IP-based internets", STD 16, RFC 1155,
     Performance Systems International, Hughes LAN Systems, May 1990.

[4]  SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S.
     Waldbusser, "Structure of Management Information for Version 2 of
     the Simple Network Management Protocol (SNMPv2)", RFC 1902, January
     1996.

[5] McCloghrie K., and M. Rose, Editors, "Management Information Base
     for Network Management of TCP/IP-based internets", STD 17, RFC
     1213, Performance Systems International, March 1991.

[6] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network
     Management Protocol", STD 15, RFC 1157, SNMP Research, Performance
     Systems International, Performance Systems International, MIT
     Laboratory for Computer Science, May 1990.

[7]  SNMPv2 working Group, Case, J., McCloghrie, K., Rose, M., and S.
     Waldbusser, "Protocol Operations for Version 2 of the Simple Net-
     work Management Protocol (SNMPv2)", RFC 1905, January 1996.

[8] McCloghrie, K., and F. Kastenholz, "Evolution of the Interfaces
     Group of MIB-II", RFC 1573, Hughes LAN Systems, FTP Software, Janu-
     ary 1994.

[9] Information processing systems - Open Systems Interconnection -
     Specification of Abstract Syntax Notation One (ASN.1), Interna-
     tional Organization for Standardization.  International Standard
     8824, (December, 1987).

[10] Information processing systems - Open Systems Interconnection -
     Specification of Basic Encoding Rules for Abstract Notation One
     (ASN.1), International Organization for Standardization.  Interna-
     tional Standard 8825, (December, 1987).

[11] Rose, M., and K. McCloghrie, Editors, "Concise MIB Definitions",



Grall                                                         [Page 61]


Internet-Draft                Firewall MIB                 20 April 1998


     RFC 1212, Performance Systems International, Hughes LAN Systems,
     March 1991.

[12] Rose, M., Editor, "A Convention for Defining Traps for use with the
     SNMP", RFC 1215, Performance Systems International, March 1991.

[13] Harrington, D., Presuhn, R., Wijnen, B., "An Architecture for
     Describing SNMP Management Frameworks", RFC 2261, Cabletron Sys-
     tems, Inc., January 1998.




9.  Author's Address

        Cindy Grall
        Trusted Information Systems
        3415 S. Sepulvida Blvd., suite 700
        Los Angeles, CA 90034

        Phone: (310) 737-1744
        EMail: grall@tis.com



Appendix A: Sample Configurations and Scripts

This appendix will contain configuration and script samples for using
this MIB with some popular SNMP management products.


Appendix B: Changes

This section will be removed before final submittal as an RFC.

Since draft 00 (24 November 1997) of the Firewall MIB, the following
changes were made:














Grall                                                         [Page 62]


Internet-Draft                Firewall MIB                 20 April 1998



        * The textual convention SnmpAdminString was added and all objects
          using Utf8String where changed to use SnmpAdminString.
        * More words were added to address things this MIB is NOT meant
          to address.
        * The three network event log tables were combined into one table,
          references throughout the MIB to the old tables were removed/changed
          as needed.
        * Examples were moved into the RFC text and updated to reflect latest
          MIB definition.
        * The main OID name for the mib changed from 'spfw' to 'fwmib'.
        * Some tables now use the InterfaceIndex textual convention
          from RFC 2233.
        * Some values (hardware, system, service) in EventTypeUnitTC were
          combined into one resource set.
        * Several new entries in EventTypeUnitTC were added.
        * A resourceStatusInfo object was added to the resource status table.
        * The service statistics table was redone.
        * Each trap has a one-to-one correspondence to an event log table,
          so reference for the OID to the details table was removed from
          the trap's objects.
        * The conformance groups were split up so that more MIB objects
          can be optional.
        * All index objects were changed to be 'not-accessible' as a result
          basicEventLogIndex could not be used in the traps, so a new object
          called basicEventsLogTableTrapIndex was created for this purpose.


Note that this list does not reflect minor changes in wording or correc-
tion of typographical or grammatical errors.





















Grall                                                         [Page 63]