home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / rfc / 3 / rfc2275.txt < prev    next >
Encoding:
Text File  |  2003-06-11  |  76.2 KB  |  2,021 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          B. Wijnen
  8. Request for Comments: 2275                     IBM T. J. Watson Research
  9. Obsoletes: 2265                                               R. Presuhn
  10. Category: Standards Track                             BMC Software, Inc.
  11.                                                            K. McCloghrie
  12.                                                      Cisco Systems, Inc.
  13.                                                             January 1998
  14.  
  15.              View-based Access Control Model (VACM) for the
  16.                Simple Network Management Protocol (SNMP)
  17.  
  18. Status of this Memo
  19.  
  20.    This document specifies an Internet standards track protocol for the
  21.    Internet community, and requests discussion and suggestions for
  22.    improvements.  Please refer to the current edition of the "Internet
  23.    Official Protocol Standards" (STD 1) for the standardization state
  24.    and status of this protocol.  Distribution of this memo is unlimited.
  25.  
  26. Copyright Notice
  27.  
  28.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  29.  
  30. IANA Note
  31.  
  32.    Due to a clerical error in the assignment of the snmpModules in this
  33.    memo, this RFC provides the corrected number assignment for this
  34.    protocol.  This memo obsoletes RFC 2265.
  35.  
  36. Abstract
  37.  
  38.    This document describes the View-based Access Control Model for use
  39.    in the SNMP architecture [RFC2271].  It defines the Elements of
  40.    Procedure for controlling access to management information.  This
  41.    document also includes a MIB for remotely managing the configuration
  42.    parameters for the View-based Access Control Model.
  43.  
  44. Table of Contents
  45.  
  46.    1.  Introduction                                             2
  47.    1.2.  Access Control                                         3
  48.    1.3.  Local Configuration Datastore                          3
  49.    2.  Elements of the Model                                    3
  50.    2.1.  Groups                                                 3
  51.    2.2.  securityLevel                                          4
  52.    2.3.  Contexts                                               4
  53.    2.4.  MIB Views and View Families                            4
  54.    2.4.1.  View Subtree                                         5
  55.  
  56.  
  57.  
  58. Wijnen, et. al.             Standards Track                     [Page 1]
  59.  
  60. RFC 2275                    VACM for SNMPv3                 January 1998
  61.  
  62.  
  63.    2.4.2.  ViewTreeFamily                                       5
  64.    2.5.  Access Policy                                          6
  65.    3.  Elements of Procedure                                    6
  66.    3.1.  Overview  of isAccessAllowed Process                   8
  67.    3.2.  Processing the isAccessAllowed Service Request         9
  68.    4.  Definitions                                             10
  69.    5.  Intellectual Property                                   26
  70.    6.  Acknowledgements                                        27
  71.    7.  Security Considerations                                 28
  72.    7.1.  Recommended Practices                                 28
  73.    7.2.  Defining Groups                                       29
  74.    7.3.  Conformance                                           29
  75.    8.  References                                              29
  76.    9.  Editors' Addresses                                      30
  77.    A.1.  Installation Parameters                               31
  78.    B.  Full Copyright Statement                                36
  79.  
  80. 1.  Introduction
  81.  
  82.    The Architecture for describing Internet Management Frameworks
  83.    [RFC2271] describes that an SNMP engine is composed of:
  84.  
  85.      1) a Dispatcher
  86.      2) a Message Processing Subsystem,
  87.      3) a Security Subsystem, and
  88.      4) an Access Control Subsystem.
  89.  
  90.    Applications make use of the services of these subsystems.
  91.  
  92.    It is important to understand the SNMP architecture and its
  93.    terminology to understand where the View-based Access Control Model
  94.    described in this document fits into the architecture and interacts
  95.    with other subsystems within the architecture.  The reader is
  96.    expected to have read and understood the description and terminology
  97.    of the SNMP architecture, as defined in [RFC2271].
  98.  
  99.    The Access Control Subsystem of an SNMP engine has the responsibility
  100.    for checking whether a specific type of access (read, write, notify)
  101.    to a particular object (instance) is allowed.
  102.  
  103.    It is the purpose of this document to define a specific model of the
  104.    Access Control Subsystem, designated the View-based Access Control
  105.    Model. Note that this is not necessarily the only Access Control
  106.    Model.
  107.  
  108.    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  109.    "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
  110.    document are to be interpreted as described in [RFC2119].
  111.  
  112.  
  113.  
  114. Wijnen, et. al.             Standards Track                     [Page 2]
  115.  
  116. RFC 2275                    VACM for SNMPv3                 January 1998
  117.  
  118.  
  119. 1.2.  Access Control
  120.  
  121.    Access Control occurs (either implicitly or explicitly) in an SNMP
  122.    entity when processing SNMP retrieval or modification request
  123.    messages from an SNMP entity.  For example a Command Responder
  124.    application applies Access Control when processing requests that it
  125.    received from a Command Generator application.  These requests
  126.    include these types of operations: GetRequest, GetNextRequest,
  127.    GetBulkRequest, and SetRequest operations.
  128.  
  129.    Access Control also occurs in an SNMP entity when an SNMP
  130.    notification message is generated (by a Notification Originator
  131.    application).  These notification messages include these types of
  132.    operations: InformRequest and SNMPv2-Trap operations.
  133.  
  134.    The View-based Access Control Model defines a set of services that an
  135.    application (such as a Command Responder or a Notification Originator
  136.    application) can use for checking access rights.  It is the
  137.    responsibility of the application to make the proper service calls
  138.    for access checking.
  139.  
  140. 1.3.  Local Configuration Datastore
  141.  
  142.    To implement the model described in this document, an SNMP entity
  143.    needs to retain information about access rights and policies.  This
  144.    information is part of the SNMP engine's Local Configuration
  145.    Datastore (LCD). See [RFC2271] for the definition of LCD.
  146.  
  147.    In order to allow an SNMP entity's LCD to be remotely configured,
  148.    portions of the LCD need to be accessible as managed objects.  A MIB
  149.    module, the View-based Access Control Model Configuration MIB, which
  150.    defines these managed object types is included in this document.
  151.  
  152. 2.  Elements of the Model
  153.  
  154.    This section contains definitions to realize the access control
  155.    service provided by the View-based Access Control Model.
  156.  
  157. 2.1.  Groups
  158.  
  159.    A group is a set of zero or more <securityModel, securityName> tuples
  160.    on whose behalf SNMP management objects can be accessed.  A group
  161.    defines the access rights afforded to all securityNames which belong
  162.    to that group. The combination of a securityModel and a securityName
  163.    maps to at most one group.  A group is identified by a groupName.
  164.  
  165.    The Access Control module assumes that the securityName has already
  166.    been authenticated as needed and provides no further authentication
  167.  
  168.  
  169.  
  170. Wijnen, et. al.             Standards Track                     [Page 3]
  171.  
  172. RFC 2275                    VACM for SNMPv3                 January 1998
  173.  
  174.  
  175.    of its own.
  176.  
  177.    The View-based Access Control Model uses the securityModel and the
  178.    securityName as inputs to the Access Control module when called to
  179.    check for access rights.  It determines the groupName as a function
  180.    of securityModel and securityName.
  181.  
  182. 2.2.  securityLevel
  183.  
  184.    Different access rights for members of a group can be defined for
  185.    different levels of security, i.e., noAuthNoPriv, authNoPriv, and
  186.    authPriv. The securityLevel identifies the level of security that
  187.    will be assumed when checking for access rights.  See the SNMP
  188.    Architecture document [RFC2271] for a definition of securityLevel.
  189.  
  190.    The View-based Access Control Model requires that the securityLevel
  191.    is passed as input to the Access Control module when called to check
  192.    for access rights.
  193.  
  194. 2.3.  Contexts
  195.  
  196.    An SNMP context is a collection of management information accessible
  197.    by an SNMP entity.  An item of management information may exist in
  198.    more than one context.  An SNMP entity potentially has access to many
  199.    contexts.  Details about the naming of management information can be
  200.    found in the SNMP Architecture document [RFC2271].
  201.  
  202.    The View-based Access Control Model defines a vacmContextTable that
  203.    lists the locally available contexts by contextName.
  204.  
  205. 2.4.  MIB Views and View Families
  206.  
  207.    For security reasons, it is often valuable to be able to restrict the
  208.    access rights of some groups to only a subset of the management
  209.    information in the management domain.  To provide this capability,
  210.    access to a context is via a "MIB view" which details a specific set
  211.    of managed object types (and optionally, the specific instances of
  212.    object types) within that context.  For example, for a given context,
  213.    there will typically always be one MIB view which provides access to
  214.    all management information in that context, and often there will be
  215.    other MIB views each of which contains some subset of the
  216.    information.  So, the access allowed for a group can be restricted in
  217.    the desired manner by specifying its rights in terms of the
  218.    particular (subset) MIB view it can access within each appropriate
  219.    context.
  220.  
  221.    Since managed object types (and their instances) are identified via
  222.    the tree-like naming structure of ISO's OBJECT IDENTIFIERs [ISO-
  223.  
  224.  
  225.  
  226. Wijnen, et. al.             Standards Track                     [Page 4]
  227.  
  228. RFC 2275                    VACM for SNMPv3                 January 1998
  229.  
  230.  
  231.    ASN.1, RFC1902],  it is convenient to define a MIB view as the
  232.    combination of a set of "view subtrees", where each view subtree is a
  233.    subtree within the managed object naming tree.  Thus, a simple MIB
  234.    view (e.g., all managed objects within the Internet Network
  235.    Management Framework) can be defined as a single view subtree, while
  236.    more complicated MIB views (e.g., all information relevant to a
  237.    particular network interface) can be represented by the union of
  238.    multiple view subtrees.
  239.  
  240.    While any set of managed objects can be described by the union of
  241.    some number of view subtrees, situations can arise that would require
  242.    a very large number of view subtrees.  This could happen, for
  243.    example, when specifying all columns in one conceptual row of a MIB
  244.    table because they would appear in separate subtrees, one per column,
  245.    each with a very similar format.  Because the formats are similar,
  246.    the required set of subtrees can easily be aggregated into one
  247.    structure.  This structure is named a family of view subtrees after
  248.    the set of subtrees that it conceptually represents.  A family of
  249.    view subtrees can either be included or excluded from a MIB view.
  250.  
  251. 2.4.1.  View Subtree
  252.  
  253.    A view subtree is the set of all MIB object instances which have a
  254.    common ASN.1 OBJECT IDENTIFIER prefix to their names.  A view subtree
  255.    is identified by the OBJECT IDENTIFIER value which is the longest
  256.    OBJECT IDENTIFIER prefix common to all (potential) MIB object
  257.    instances in that subtree.
  258.  
  259. 2.4.2.  ViewTreeFamily
  260.  
  261.    A family of view subtrees is a pairing of an OBJECT IDENTIFIER value
  262.    (called the family name) together with a bit string value (called the
  263.    family mask).  The family mask indicates which sub-identifiers of the
  264.    associated family name are significant to the family's definition.
  265.  
  266.    For each possible managed object instance, that instance belongs to a
  267.    particular ViewTreeFamily if both of the following conditions are
  268.    true:
  269.  
  270.    - the OBJECT IDENTIFIER name of the managed object instance
  271.      contains at least as many sub-identifiers as does the family name,
  272.      and
  273.  
  274.    - each sub-identifier in the OBJECT IDENTIFIER name of the managed
  275.      object instance matches the corresponding sub-identifier of the
  276.      family name whenever the corresponding bit of the associated family
  277.      mask is non-zero.
  278.  
  279.  
  280.  
  281.  
  282. Wijnen, et. al.             Standards Track                     [Page 5]
  283.  
  284. RFC 2275                    VACM for SNMPv3                 January 1998
  285.  
  286.  
  287.    When the configured value of the family mask is all ones, the view
  288.    subtree family is identical to the single view subtree identified by
  289.    the family name.
  290.  
  291.    When the configured value of the family mask is shorter than required
  292.    to perform the above test, its value is implicitly extended with
  293.    ones.  Consequently, a view subtree family having a family mask of
  294.    zero length always corresponds to a single view subtree.
  295.  
  296. 2.5.  Access Policy
  297.  
  298.    The View-based Access Control Model determines the access rights of a
  299.    group, representing zero or more securityNames which have the same
  300.    access rights.  For a particular context, identified by contextName,
  301.    to which a group, identified by groupName, has access using a
  302.    particular securityModel and securityLevel, that group's access
  303.    rights are given by a read-view, a write-view and a notify-view.
  304.  
  305.    The read-view represents the set of object instances authorized for
  306.    the group when reading objects.  Reading objects occurs when
  307.    processing a retrieval (for example a GetRequest, GetNextRequest,
  308.    GetBulkRequest) operation.
  309.  
  310.    The write-view represents the set of object instances authorized for
  311.    the group when writing objects.  Writing objects occurs when
  312.    processing a write (for example a Set) operation.
  313.  
  314.    The notify-view represents the set of object instances authorized for
  315.    3
  316.    2oup when sending objects in a notification, such as when
  317.    sending a notification (for example an Inform or SNMPv2-Trap).
  318.  
  319. 3.  Elements of Procedure
  320.  
  321.    This section describes the procedures followed by an Access Control
  322.    module that implements the View-based Access Control Model when
  323.    checking access rights as requested by an application (for example a
  324.    Command Responder or a Notification Originator application).  The
  325.    abstract service primitive is:
  326.  
  327.      statusInformation =          -- success or errorIndication
  328.          isAccessAllowed(
  329.              securityModel        -- Security Model in use
  330.              securityName         -- principal who wants access
  331.              securityLevel        -- Level of Security
  332.              viewType             -- read, write, or notify view
  333.              contextName          -- context containing variableName
  334.              variableName         -- OID for the managed object
  335.              )
  336.  
  337.  
  338.  
  339. Wijnen, et. al.             Standards Track                     [Page 6]
  340.  
  341. RFC 2275                    VACM for SNMPv3                 January 1998
  342.  
  343.  
  344.    The abstract data elements are:
  345.  
  346.      statusInformation - one of the following:
  347.         accessAllowed  - a MIB view was found and access is granted.
  348.         notInView      - a MIB view was found but access is denied.
  349.                          The variableName is not in the configured
  350.                          MIB view for the specified viewType (e.g., in
  351.                          the relevant entry in the vacmAccessTable).
  352.         noSuchView     - no MIB view found because no view has been
  353.                          configured for specified viewType (e.g., in
  354.                          the relevant entry in the vacmAccessTable).
  355.         noSuchContext  - no MIB view found because of no entry in the
  356.                          vacmContextTable for specified contextName.
  357.         noGroupName    - no MIB view found because no entry has been
  358.                          configured in the vacmSecurityToGroupTable
  359.                          for the specified combination of
  360.                          securityModel and securityName.
  361.         noAccessEntry  - no MIB view found because no entry has been
  362.                          configured in the vacmAccessTable for the
  363.                          specified combination of contextName,
  364.                          groupName (from vacmSecurityToGroupTable),
  365.                          securityModel and securityLevel.
  366.         otherError     - failure, an undefined error occurred.
  367.      securityModel - Security Model under which access is requested.
  368.      securityName  - the principal on whose behalf access is requested.
  369.      securityLevel - Level of Security under which access is requested.
  370.      viewType      - view to be checked (read, write or notify).
  371.      contextName   - context in which access is requested.
  372.      variableName  - object instance to which access is requested.
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395. Wijnen, et. al.             Standards Track                     [Page 7]
  396.  
  397. RFC 2275                    VACM for SNMPv3                 January 1998
  398.  
  399.  
  400. 3.1.  Overview  of isAccessAllowed Process
  401.  
  402.  The following picture shows how the decision for access control is made
  403.  by the View-based Access Control Model.
  404.  
  405.  +--------------------------------------------------------------------+
  406.  |                                                                    |
  407.  |      +-> securityModel -+                                          |
  408.  |      |   (a)            |                                          |
  409.  | who -+                  +-> groupName ----+                        |
  410.  | (1)  |                  |   (x)           |                        |
  411.  |      +-> securityName --+                 |                        |
  412.  |          (b)                              |                        |
  413.  |                                           |                        |
  414.  | where -> contextName ---------------------+                        |
  415.  | (2)      (e)                              |                        |
  416.  |                                           |                        |
  417.  |                                           |                        |
  418.  |      +-> securityModel -------------------+                        |
  419.  |      |   (a)                              |                        |
  420.  | how -+                                    +-> viewName -+          |
  421.  | (3)  |                                    |   (y)       |          |
  422.  |      +-> securityLevel -------------------+             |          |
  423.  |          (c)                              |             +-> yes/no |
  424.  |                                           |             | decision |
  425.  | why ---> viewType (read/write/notify) ----+             | (z)      |
  426.  | (4)      (d)                                            |          |
  427.  |                                                         |          |
  428.  | what --> object-type ------+                            |          |
  429.  | (5)      (m)               |                            |          |
  430.  |                            +-> variableName (OID) ------+          |
  431.  |                            |   (f)                                 |
  432.  | which -> object-instance --+                                       |
  433.  | (6)      (n)                                                       |
  434.  |                                                                    |
  435.  +--------------------------------------------------------------------+
  436.  
  437.  How the decision for isAccessAllowed is made.
  438.  
  439.  1) Inputs to the isAccessAllowed service are:
  440.  
  441.     (a)       securityModel    -- Security Model in use
  442.     (b)       securityName     -- principal who wants to access
  443.     (c)       securityLevel    -- Level of Security
  444.     (d)       viewType         -- read, write, or notify view
  445.     (e)       contextName      -- context containing variableName
  446.     (f)       variableName     -- OID for the managed object
  447.                                -- this is made up of:
  448.  
  449.  
  450.  
  451. Wijnen, et. al.             Standards Track                     [Page 8]
  452.  
  453. RFC 2275                    VACM for SNMPv3                 January 1998
  454.  
  455.  
  456.                                   - object-type (m)
  457.                                   - object-instance (n)
  458.  
  459.  2) The partial "who" (1), represented by the securityModel (a) and
  460.     the securityName (b), are used as the indices (a,b) into the
  461.     vacmSecurityToGroupTable to find a single entry that produces a
  462.     group, represented by groupName (x).
  463.  
  464.  3) The "where" (2), represented by the contextName (e), the "who",
  465.     represented by the groupName (x) from the previous step, and the
  466.     "how" (3), represented by securityModel (a) and securityLevel (c),
  467.     are used as indices (e,x,a,c) into the vacmAccessTable to find a
  468.     single entry that contains three MIB views.
  469.  
  470.  4) The "why" (4), represented by the viewType (d), is used to select
  471.     the proper MIB view, represented by a viewName (y), from the
  472.     vacmAccessEntry selected in the previous step. This viewName (y) is
  473.     an index into the vacmViewTreeFamilyTable and selects the set of
  474.     entries that define the variableNames which are included in or
  475.     excluded from the MIB view identified by the viewName (y).
  476.  
  477.  5) The "what" (5) type of management data and "which" (6) particular
  478.     instance, represented by the variableName (f), is then checked to be
  479.     in the MIB view or not, e.g., the yes/no decision (z).
  480.  
  481. 3.2.  Processing the isAccessAllowed Service Request
  482.  
  483.    This section describes the procedure followed by an Access Control
  484.    module that implements the View-based Access Control Model whenever
  485.    it receives an isAccessAllowed request.
  486.  
  487.    1) The vacmContextTable is consulted for information about
  488.       the SNMP context identified by the contextName.  If information
  489.       about this SNMP context is absent from the table, then an
  490.       errorIndication (noSuchContext) is returned to the calling module.
  491.  
  492.    2) The vacmSecurityToGroupTable is consulted for mapping the
  493.       securityModel and securityName to a groupName.  If the information
  494.       about this combination is absent from the table, then an
  495.       errorIndication (noGroupName) is returned to the calling module.
  496.  
  497.    3) The vacmAccessTable is consulted for information about the
  498.       groupName, contextName, securityModel and securityLevel.  If
  499.       information about this combination is absent from the table, then
  500.       an errorIndication (noAccessEntry) is returned to the calling
  501.       module.
  502.  
  503.  
  504.  
  505.  
  506.  
  507. Wijnen, et. al.             Standards Track                     [Page 9]
  508.  
  509. RFC 2275                    VACM for SNMPv3                 January 1998
  510.  
  511.  
  512.    4) a) If the viewType is "read", then the read view is used for
  513.          checking access rights.
  514.  
  515.       b) If the viewType is "write", then the write view is used for
  516.          checking access rights.
  517.  
  518.       c) If the viewType is "notify", then the notify view is used
  519.          for checking access rights.
  520.  
  521.       If the view to be used is the empty view (zero length viewName)
  522.       then an errorIndication (noSuchView) is returned to the calling
  523.       module.
  524.  
  525.    5) a) If there is no view configured for the specified viewType,
  526.          then an errorIndication (noSuchView) is returned to the calling
  527.          module.
  528.  
  529.       b) If the specified variableName (object instance) is not in the
  530.          MIB view (see DESCRIPTION clause for vacmViewTreeFamilyTable in
  531.          section 4), then an errorIndication (notInView) is returned to
  532.          the calling module.
  533.  
  534.          Otherwise,
  535.  
  536.       c) The specified variableName is in the MIB view.
  537.          A statusInformation of success (accessAllowed) is returned to
  538.          the calling module.
  539.  
  540. 4.  Definitions
  541.  
  542. SNMP-VIEW-BASED-ACM-MIB DEFINITIONS ::= BEGIN
  543.  
  544. IMPORTS
  545.     MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF
  546.     MODULE-IDENTITY, OBJECT-TYPE,
  547.     snmpModules                           FROM SNMPv2-SMI
  548.     TestAndIncr,
  549.     RowStatus, StorageType                FROM SNMPv2-TC
  550.     SnmpAdminString,
  551.     SnmpSecurityLevel,
  552.     SnmpSecurityModel                     FROM SNMP-FRAMEWORK-MIB;
  553.  
  554. snmpVacmMIB       MODULE-IDENTITY
  555.     LAST-UPDATED "9711200000Z"            -- 20 Nov 1997, midnight
  556.     ORGANIZATION "SNMPv3 Working Group"
  557.     CONTACT-INFO "WG-email:   snmpv3@tis.com
  558.                   Subscribe:  majordomo@tis.com
  559.                               In message body:  subscribe snmpv3
  560.  
  561.  
  562.  
  563. Wijnen, et. al.             Standards Track                    [Page 10]
  564.  
  565. RFC 2275                    VACM for SNMPv3                 January 1998
  566.  
  567.  
  568.                   Chair:      Russ Mundy
  569.                               Trusted Information Systems
  570.                   postal:     3060 Washington Rd
  571.                               Glenwood MD 21738
  572.                               USA
  573.                   email:      mundy@tis.com
  574.                   phone:      +1-301-854-6889
  575.  
  576.                   Co-editor:  Bert Wijnen
  577.                               IBM T.J. Watson Research
  578.                   postal:     Schagen 33
  579.                               3461 GL Linschoten
  580.                               Netherlands
  581.                   email:      wijnen@vnet.ibm.com
  582.                   phone:      +31-348-432-794
  583.  
  584.                   Co-editor:  Randy Presuhn
  585.                               BMC Software, Inc
  586.                   postal:     1190 Saratoga Avenue, Suite 130
  587.                               San Jose, CA  95129-3433
  588.                               USA
  589.                   email:      rpresuhn@bmc.com
  590.                   phone:      +1-408-556-0720
  591.  
  592.                   Co-editor:  Keith McCloghrie
  593.                               Cisco Systems, Inc.
  594.                   postal:     170 West Tasman Drive
  595.                               San Jose, CA  95134-1706
  596.                               USA
  597.                   email:      kzm@cisco.com
  598.                   phone:      +1-408-526-5260
  599.                  "
  600.     DESCRIPTION  "The management information definitions for the
  601.                   View-based Access Control Model for SNMP.
  602.                  "
  603.     ::= { snmpModules 16 }
  604.  
  605. -- Administrative assignments ****************************************
  606.  
  607. vacmMIBObjects      OBJECT IDENTIFIER ::= { snmpVacmMIB 1 }
  608. vacmMIBConformance  OBJECT IDENTIFIER ::= { snmpVacmMIB 2 }
  609.  
  610. -- Information about Local Contexts **********************************
  611.  
  612. vacmContextTable OBJECT-TYPE
  613.     SYNTAX       SEQUENCE OF VacmContextEntry
  614.     MAX-ACCESS   not-accessible
  615.     STATUS       current
  616.  
  617.  
  618.  
  619. Wijnen, et. al.             Standards Track                    [Page 11]
  620.  
  621. RFC 2275                    VACM for SNMPv3                 January 1998
  622.  
  623.  
  624.     DESCRIPTION "The table of locally available contexts.
  625.  
  626.                  This table provides information to SNMP Command
  627.                  Generator applications so that they can properly
  628.                  configure the vacmAccessTable to control access to
  629.                  all contexts at the SNMP entity.
  630.  
  631.                  This table may change dynamically if the SNMP entity
  632.                  allows that contexts are added/deleted dynamically
  633.                  (for instance when its configuration changes). Such
  634.                  changes would happen only if the management
  635.                  instrumentation at that SNMP entity recognizes more
  636.                  (or fewer) contexts.
  637.  
  638.                  The presence of entries in this table and of entries
  639.                  in the vacmAccessTable are independent.  That is, a
  640.                  context identified by an entry in this table is not
  641.                  necessarily referenced by any entries in the
  642.                  vacmAccessTable; and the context(s) referenced by an
  643.                  entry in the vacmAccessTable does not necessarily
  644.                  currently exist and thus need not be identified by an
  645.                  entry in this table.
  646.  
  647.                  This table must be made accessible via the default
  648.                  context so that Command Responder applications have
  649.                  a standard way of retrieving the information.
  650.  
  651.                  This table is read-only. It cannot be configured via
  652.                  SNMP.
  653.                 "
  654.     ::= { vacmMIBObjects 1 }
  655.  
  656. vacmContextEntry OBJECT-TYPE
  657.     SYNTAX       VacmContextEntry
  658.     MAX-ACCESS   not-accessible
  659.     STATUS       current
  660.     DESCRIPTION "Information about a particular context."
  661.     INDEX       {
  662.                   vacmContextName
  663.                 }
  664.     ::= { vacmContextTable 1 }
  665.  
  666. VacmContextEntry ::= SEQUENCE
  667.     {
  668.         vacmContextName SnmpAdminString
  669.     }
  670.  
  671. vacmContextName  OBJECT-TYPE
  672.  
  673.  
  674.  
  675. Wijnen, et. al.             Standards Track                    [Page 12]
  676.  
  677. RFC 2275                    VACM for SNMPv3                 January 1998
  678.  
  679.  
  680.     SYNTAX       SnmpAdminString (SIZE(0..32))
  681.     MAX-ACCESS   read-only
  682.     STATUS       current
  683.     DESCRIPTION "A human readable name identifying a particular
  684.                  context at a particular SNMP entity.
  685.  
  686.                  The empty contextName (zero length) represents the
  687.                  default context.
  688.                 "
  689.     ::= { vacmContextEntry 1 }
  690.  
  691. -- Information about Groups ******************************************
  692.  
  693. vacmSecurityToGroupTable OBJECT-TYPE
  694.     SYNTAX       SEQUENCE OF VacmSecurityToGroupEntry
  695.     MAX-ACCESS   not-accessible
  696.     STATUS       current
  697.     DESCRIPTION "This table maps a combination of securityModel and
  698.                  securityName into a groupName which is used to define
  699.                  an access control policy for a group of principals.
  700.                 "
  701.     ::= { vacmMIBObjects 2 }
  702.  
  703. vacmSecurityToGroupEntry OBJECT-TYPE
  704.     SYNTAX       VacmSecurityToGroupEntry
  705.     MAX-ACCESS   not-accessible
  706.     STATUS       current
  707.     DESCRIPTION "An entry in this table maps the combination of a
  708.                  securityModel and securityName into a groupName.
  709.                 "
  710.     INDEX       {
  711.                   vacmSecurityModel,
  712.                   vacmSecurityName
  713.                 }
  714.     ::= { vacmSecurityToGroupTable 1 }
  715.  
  716. VacmSecurityToGroupEntry ::= SEQUENCE
  717.     {
  718.         vacmSecurityModel               SnmpSecurityModel,
  719.         vacmSecurityName                SnmpAdminString,
  720.         vacmGroupName                   SnmpAdminString,
  721.         vacmSecurityToGroupStorageType  StorageType,
  722.         vacmSecurityToGroupStatus       RowStatus
  723.     }
  724.  
  725. vacmSecurityModel OBJECT-TYPE
  726.     SYNTAX       SnmpSecurityModel(1..2147483647)
  727.     MAX-ACCESS   not-accessible
  728.  
  729.  
  730.  
  731. Wijnen, et. al.             Standards Track                    [Page 13]
  732.  
  733. RFC 2275                    VACM for SNMPv3                 January 1998
  734.  
  735.  
  736.     STATUS       current
  737.     DESCRIPTION "The Security Model, by which the vacmSecurityName
  738.                  referenced by this entry is provided.
  739.  
  740.                  Note, this object may not take the 'any' (0) value.
  741.                 "
  742.     ::= { vacmSecurityToGroupEntry 1 }
  743.  
  744. vacmSecurityName OBJECT-TYPE
  745.     SYNTAX       SnmpAdminString (SIZE(1..32))
  746.     MAX-ACCESS   not-accessible
  747.     STATUS       current
  748.     DESCRIPTION "The securityName for the principal, represented in a
  749.                  Security Model independent format, which is mapped by
  750.                  this entry to a groupName.
  751.  
  752.                  The securityName for a principal represented in a
  753.                  Security Model independent format.
  754.                 "
  755.     ::= { vacmSecurityToGroupEntry 2 }
  756.  
  757. vacmGroupName    OBJECT-TYPE
  758.     SYNTAX       SnmpAdminString (SIZE(1..32))
  759.     MAX-ACCESS   read-create
  760.     STATUS       current
  761.     DESCRIPTION "The name of the group to which this entry (e.g., the
  762.                  combination of securityModel and securityName)
  763.                  belongs.
  764.  
  765.                  This groupName is used as index into the
  766.                  vacmAccessTable to select an access control policy.
  767.                 "
  768.     ::= { vacmSecurityToGroupEntry 3 }
  769.  
  770. vacmSecurityToGroupStorageType OBJECT-TYPE
  771.     SYNTAX       StorageType
  772.     MAX-ACCESS   read-create
  773.     STATUS       current
  774.     DESCRIPTION "The storage type for this conceptual row.
  775.                  Conceptual rows having the value 'permanent' need not
  776.                  allow write-access to any columnar objects in the row.
  777.                 "
  778.     DEFVAL      { nonVolatile }
  779.     ::= { vacmSecurityToGroupEntry 4 }
  780.  
  781. vacmSecurityToGroupStatus OBJECT-TYPE
  782.     SYNTAX       RowStatus
  783.     MAX-ACCESS   read-create
  784.  
  785.  
  786.  
  787. Wijnen, et. al.             Standards Track                    [Page 14]
  788.  
  789. RFC 2275                    VACM for SNMPv3                 January 1998
  790.  
  791.  
  792.     STATUS       current
  793.     DESCRIPTION "The status of this conceptual row.
  794.  
  795.                  The  RowStatus TC [RFC1903] requires that this
  796.                  DESCRIPTION clause states under which circumstances
  797.                  other objects in this row can be modified:
  798.  
  799.                  The value of this object has no effect on whether
  800.                  other objects in this conceptual row can be modified.
  801.                 "
  802.     ::= { vacmSecurityToGroupEntry 5 }
  803.  
  804. -- Information about Access Rights ***********************************
  805.  
  806. vacmAccessTable  OBJECT-TYPE
  807.     SYNTAX       SEQUENCE OF VacmAccessEntry
  808.     MAX-ACCESS   not-accessible
  809.     STATUS       current
  810.     DESCRIPTION "The table of access rights for groups.
  811.  
  812.                  Each entry is indexed by a contextPrefix, a groupName
  813.                  a securityModel and a securityLevel.  To determine
  814.                  whether access is allowed, one entry from this table
  815.                  needs to be selected and the proper viewName from that
  816.                  entry must be used for access control checking.
  817.  
  818.                  To select the proper entry, follow these steps:
  819.  
  820.                  1) the set of possible matches is formed by the
  821.                     intersection of the following sets of entries:
  822.                       the set of entries with identical vacmGroupName
  823.                       the union of these two sets:
  824.                        - the set with identical vacmAccessContextPrefix
  825.                        - the set of entries with vacmAccessContextMatch
  826.                          value of 'prefix' and matching
  827.                          vacmAccessContextPrefix
  828.                       intersected with the union of these two sets:
  829.                        - the set of entries with identical
  830.                          vacmSecurityModel
  831.                        - the set of entries with vacmSecurityModel
  832.                          value of 'any'
  833.                       intersected with the set of entries with
  834.                       vacmAccessSecurityLevel value less than or equal
  835.                       to the requested securityLevel
  836.  
  837.                  2) if this set has only one member, we're done
  838.                     otherwise, it comes down to deciding how to weight
  839.                     the preferences between ContextPrefixes,
  840.  
  841.  
  842.  
  843. Wijnen, et. al.             Standards Track                    [Page 15]
  844.  
  845. RFC 2275                    VACM for SNMPv3                 January 1998
  846.  
  847.  
  848.                     SecurityModels, and SecurityLevels as follows:
  849.                     a) if the subset of entries with identical
  850.                        securityModels is not empty, discard the rest.
  851.                     b) if the subset of entries with identical
  852.                        vacmAccessContextPrefix is not empty,
  853.                        discard the rest
  854.                     c) discard all entries with ContextPrefixes shorter
  855.                        than the longest one remaining in the set
  856.                     d) select the entry with the highest securityLevel
  857.  
  858.                  Please note that for securityLevel noAuthNoPriv, all
  859.                  groups are really equivalent since the assumption that
  860.                  the securityName has been authenticated does not hold.
  861.                 "
  862.     ::= { vacmMIBObjects 4 }
  863.  
  864. vacmAccessEntry  OBJECT-TYPE
  865.     SYNTAX       VacmAccessEntry
  866.     MAX-ACCESS   not-accessible
  867.     STATUS       current
  868.     DESCRIPTION "An access right configured in the Local Configuration
  869.                  Datastore (LCD) authorizing access to an SNMP context.
  870.                 "
  871.     INDEX       { vacmGroupName,
  872.                   vacmAccessContextPrefix,
  873.                   vacmAccessSecurityModel,
  874.                   vacmAccessSecurityLevel
  875.                 }
  876.     ::= { vacmAccessTable 1 }
  877.  
  878. VacmAccessEntry ::= SEQUENCE
  879.     {
  880.         vacmAccessContextPrefix    SnmpAdminString,
  881.         vacmAccessSecurityModel    SnmpSecurityModel,
  882.         vacmAccessSecurityLevel    SnmpSecurityLevel,
  883.         vacmAccessContextMatch     INTEGER,
  884.         vacmAccessReadViewName     SnmpAdminString,
  885.         vacmAccessWriteViewName    SnmpAdminString,
  886.         vacmAccessNotifyViewName   SnmpAdminString,
  887.         vacmAccessStorageType      StorageType,
  888.         vacmAccessStatus           RowStatus
  889.     }
  890.  
  891. vacmAccessContextPrefix OBJECT-TYPE
  892.     SYNTAX       SnmpAdminString (SIZE(0..32))
  893.     MAX-ACCESS   not-accessible
  894.     STATUS       current
  895.     DESCRIPTION "In order to gain the access rights allowed by this
  896.  
  897.  
  898.  
  899. Wijnen, et. al.             Standards Track                    [Page 16]
  900.  
  901. RFC 2275                    VACM for SNMPv3                 January 1998
  902.  
  903.  
  904.                  conceptual row, a contextName must match exactly
  905.                  (if the value of vacmAccessContextMatch is 'exact')
  906.                  or partially (if the value of vacmAccessContextMatch
  907.                  is 'prefix') to the value of the instance of this
  908.                  object.
  909.                 "
  910.     ::= { vacmAccessEntry 1 }
  911.  
  912. vacmAccessSecurityModel OBJECT-TYPE
  913.     SYNTAX       SnmpSecurityModel
  914.     MAX-ACCESS   not-accessible
  915.     STATUS       current
  916.     DESCRIPTION "In order to gain the access rights allowed by this
  917.                  conceptual row, this securityModel must be in use.
  918.                 "
  919.     ::= { vacmAccessEntry 2 }
  920.  
  921. vacmAccessSecurityLevel OBJECT-TYPE
  922.     SYNTAX       SnmpSecurityLevel
  923.     MAX-ACCESS   not-accessible
  924.     STATUS       current
  925.     DESCRIPTION "The minimum level of security required in order to
  926.                  gain the access rights allowed by this conceptual
  927.                  row.  A securityLevel of noAuthNoPriv is less than
  928.                  authNoPriv which in turn is less than authPriv.
  929.  
  930.                  If multiple entries are equally indexed except for
  931.                  this vacmAccessSecurityLevel index, then the entry
  932.                  which has the highest value for
  933.                  vacmAccessSecurityLevel wins.
  934.                 "
  935.     ::= { vacmAccessEntry 3 }
  936.  
  937. vacmAccessContextMatch OBJECT-TYPE
  938.     SYNTAX       INTEGER
  939.                 { exact (1), -- exact match of prefix and contextName
  940.                   prefix (2) -- Only match to the prefix
  941.                 }
  942.     MAX-ACCESS   read-create
  943.     STATUS       current
  944.     DESCRIPTION "If the value of this object is exact(1), then all
  945.                  rows where the contextName exactly matches
  946.                  vacmAccessContextPrefix are selected.
  947.  
  948.                  If the value of this object is prefix(2), then all
  949.                  rows where the contextName whose starting octets
  950.                  exactly match vacmAccessContextPrefix are selected.
  951.                  This allows for a simple form of wildcarding.
  952.  
  953.  
  954.  
  955. Wijnen, et. al.             Standards Track                    [Page 17]
  956.  
  957. RFC 2275                    VACM for SNMPv3                 January 1998
  958.  
  959.  
  960.                  See also the example in the DESCRIPTION clause of
  961.                  the vacmAccessTable above.
  962.                 "
  963.     ::= { vacmAccessEntry 4 }
  964.  
  965. vacmAccessReadViewName OBJECT-TYPE
  966.     SYNTAX       SnmpAdminString (SIZE(0..32))
  967.     MAX-ACCESS   read-create
  968.     STATUS       current
  969.     DESCRIPTION "The value of an instance of this object identifies
  970.                  the MIB view of the SNMP context to which this
  971.                  conceptual row authorizes read access.
  972.  
  973.                  The identified MIB view is that one for which the
  974.                  vacmViewTreeFamilyViewName has the same value as the
  975.                  instance of this object; if the value is the empty
  976.                  string or if there is no active MIB view having this
  977.                  value of vacmViewTreeFamilyViewName, then no access
  978.                  is granted.
  979.                 "
  980.     DEFVAL      { ''H }   -- the empty string
  981.     ::= { vacmAccessEntry 5 }
  982.  
  983. vacmAccessWriteViewName OBJECT-TYPE
  984.     SYNTAX       SnmpAdminString (SIZE(0..32))
  985.     MAX-ACCESS   read-create
  986.     STATUS       current
  987.     DESCRIPTION "The value of an instance of this object identifies
  988.                  the MIB view of the SNMP context to which this
  989.                  conceptual row authorizes write access.
  990.  
  991.                  The identified MIB view is that one for which the
  992.                  vacmViewTreeFamilyViewName has the same value as the
  993.                  instance of this object; if the value is the empty
  994.                  string or if there is no active MIB view having this
  995.                  value of vacmViewTreeFamilyViewName, then no access
  996.                  is granted.
  997.                 "
  998.     DEFVAL      { ''H }   -- the empty string
  999.     ::= { vacmAccessEntry 6 }
  1000.  
  1001. vacmAccessNotifyViewName OBJECT-TYPE
  1002.     SYNTAX       SnmpAdminString (SIZE(0..32))
  1003.     MAX-ACCESS   read-create
  1004.     STATUS       current
  1005.     DESCRIPTION "The value of an instance of this object identifies
  1006.                  the MIB view of the SNMP context to which this
  1007.                  conceptual row authorizes access for notifications.
  1008.  
  1009.  
  1010.  
  1011. Wijnen, et. al.             Standards Track                    [Page 18]
  1012.  
  1013. RFC 2275                    VACM for SNMPv3                 January 1998
  1014.  
  1015.  
  1016.                  The identified MIB view is that one for which the
  1017.                  vacmViewTreeFamilyViewName has the same value as the
  1018.                  instance of this object; if the value is the empty
  1019.                  string or if there is no active MIB view having this
  1020.                  value of vacmViewTreeFamilyViewName, then no access
  1021.                  is granted.
  1022.                 "
  1023.     DEFVAL      { ''H }   -- the empty string
  1024.     ::= { vacmAccessEntry 7 }
  1025.  
  1026. vacmAccessStorageType OBJECT-TYPE
  1027.     SYNTAX       StorageType
  1028.     MAX-ACCESS   read-create
  1029.     STATUS       current
  1030.     DESCRIPTION "The storage type for this conceptual row.
  1031.  
  1032.                  Conceptual rows having the value 'permanent' need not
  1033.                  allow write-access to any columnar objects in the row.
  1034.                 "
  1035.     DEFVAL      { nonVolatile }
  1036.     ::= { vacmAccessEntry 8 }
  1037.  
  1038. vacmAccessStatus OBJECT-TYPE
  1039.     SYNTAX       RowStatus
  1040.     MAX-ACCESS   read-create
  1041.     STATUS       current
  1042.     DESCRIPTION "The status of this conceptual row.
  1043.  
  1044.                  The  RowStatus TC [RFC1903] requires that this
  1045.                  DESCRIPTION clause states under which circumstances
  1046.                  other objects in this row can be modified:
  1047.  
  1048.                  The value of this object has no effect on whether
  1049.                  other objects in this conceptual row can be modified.
  1050.                 "
  1051.     ::= { vacmAccessEntry 9 }
  1052.  
  1053. -- Information about MIB views ***************************************
  1054.  
  1055. -- Support for instance-level granularity is optional.
  1056. --
  1057. -- In some implementations, instance-level access control
  1058. -- granularity may come at a high performance cost.  Managers
  1059. -- should avoid requesting such configurations unnecessarily.
  1060.  
  1061. vacmMIBViews     OBJECT IDENTIFIER ::= { vacmMIBObjects 5 }
  1062.  
  1063. vacmViewSpinLock OBJECT-TYPE
  1064.  
  1065.  
  1066.  
  1067. Wijnen, et. al.             Standards Track                    [Page 19]
  1068.  
  1069. RFC 2275                    VACM for SNMPv3                 January 1998
  1070.  
  1071.  
  1072.     SYNTAX       TestAndIncr
  1073.     MAX-ACCESS   read-write
  1074.     STATUS       current
  1075.     DESCRIPTION "An advisory lock used to allow cooperating SNMP
  1076.                  Command Generator applications to coordinate their
  1077.                  use of the Set operation in creating or modifying
  1078.                  views.
  1079.  
  1080.                  When creating a new view or altering an existing
  1081.                  view, it is important to understand the potential
  1082.                  interactions with other uses of the view.  The
  1083.                  vacmViewSpinLock should be retrieved.  The name of
  1084.                  the view to be created should be determined to be
  1085.                  unique by the SNMP Command Generator application by
  1086.                  consulting the vacmViewTreeFamilyTable.  Finally,
  1087.                  the named view may be created (Set), including the
  1088.                  advisory lock.
  1089.                  If another SNMP Command Generator application has
  1090.                  altered the views in the meantime, then the spin
  1091.                  lock's value will have changed, and so this creation
  1092.                  will fail because it will specify the wrong value for
  1093.                  the spin lock.
  1094.  
  1095.                  Since this is an advisory lock, the use of this lock
  1096.                  is not enforced.
  1097.                 "
  1098.     ::= { vacmMIBViews 1 }
  1099.  
  1100. vacmViewTreeFamilyTable OBJECT-TYPE
  1101.     SYNTAX       SEQUENCE OF VacmViewTreeFamilyEntry
  1102.     MAX-ACCESS   not-accessible
  1103.     STATUS       current
  1104.     DESCRIPTION "Locally held information about families of subtrees
  1105.                  within MIB views.
  1106.  
  1107.                  Each MIB view is defined by two sets of view subtrees:
  1108.                    - the included view subtrees, and
  1109.                    - the excluded view subtrees.
  1110.                  Every such view subtree, both the included and the
  1111.                  excluded ones, is defined in this table.
  1112.  
  1113.                  To determine if a particular object instance is in
  1114.                  a particular MIB view, compare the object instance's
  1115.                  OBJECT IDENTIFIER with each of the MIB view's active
  1116.                  entries in this table.  If none match, then the
  1117.                  object instance is not in the MIB view.  If one or
  1118.                  more match, then the object instance is included in,
  1119.                  or excluded from, the MIB view according to the
  1120.  
  1121.  
  1122.  
  1123. Wijnen, et. al.             Standards Track                    [Page 20]
  1124.  
  1125. RFC 2275                    VACM for SNMPv3                 January 1998
  1126.  
  1127.  
  1128.                  value of vacmViewTreeFamilyType in the entry whose
  1129.                  value of vacmViewTreeFamilySubtree has the most
  1130.                  sub-identifiers.  If multiple entries match and have
  1131.                  the same number of sub-identifiers, then the
  1132.                  lexicographically greatest instance of
  1133.                  vacmViewTreeFamilyType determines the inclusion or
  1134.                  exclusion.
  1135.  
  1136.                  An object instance's OBJECT IDENTIFIER X matches an
  1137.                  active entry in this table when the number of
  1138.                  sub-identifiers in X is at least as many as in the
  1139.                  value of vacmViewTreeFamilySubtree for the entry,
  1140.                  and each sub-identifier in the value of
  1141.                  vacmViewTreeFamilySubtree matches its corresponding
  1142.                  sub-identifier in X.  Two sub-identifiers match
  1143.                  either if the corresponding bit of the value of
  1144.                  vacmViewTreeFamilyMask for the entry is zero (the
  1145.                  'wild card' value), or if they are equal.
  1146.  
  1147.                  A 'family' of subtrees is the set of subtrees defined
  1148.                  by a particular combination of values of
  1149.                  vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask.
  1150.                  In the case where no 'wild card' is defined in the
  1151.                  vacmViewTreeFamilyMask, the family of subtrees reduces
  1152.                  to a single subtree.
  1153.  
  1154.                  When creating or changing MIB views, an SNMP Command
  1155.                  Generator application should utilize the
  1156.                  vacmViewSpinLock to try to avoid collisions. See
  1157.                  DESCRIPTION clause of vacmViewSpinLock.
  1158.  
  1159.                  When creating MIB views, it is strongly advised that
  1160.                  first the 'excluded' vacmViewTreeFamilyEntries are
  1161.                  created and then the 'included' entries.
  1162.  
  1163.                  When deleting MIB views, it is strongly advised that
  1164.                  first the 'included' vacmViewTreeFamilyEntries are
  1165.                  deleted and then the 'excluded' entries.
  1166.  
  1167.                  If a create for an entry for instance-level access
  1168.                  control is received and the implementation does not
  1169.                  support instance-level granularity, then an
  1170.                  inconsistentName error must be returned.
  1171.                 "
  1172.     ::= { vacmMIBViews 2 }
  1173.  
  1174. vacmViewTreeFamilyEntry OBJECT-TYPE
  1175.     SYNTAX       VacmViewTreeFamilyEntry
  1176.  
  1177.  
  1178.  
  1179. Wijnen, et. al.             Standards Track                    [Page 21]
  1180.  
  1181. RFC 2275                    VACM for SNMPv3                 January 1998
  1182.  
  1183.  
  1184.     MAX-ACCESS   not-accessible
  1185.     STATUS       current
  1186.     DESCRIPTION "Information on a particular family of view subtrees
  1187.                  included in or excluded from a particular SNMP
  1188.                  context's MIB view.
  1189.  
  1190.                  Implementations must not restrict the number of
  1191.                  families of view subtrees for a given MIB view,
  1192.                  except as dictated by resource constraints on the
  1193.                  overall number of entries in the
  1194.                  vacmViewTreeFamilyTable.
  1195.  
  1196.                  If no conceptual rows exist in this table for a given
  1197.                  MIB view (viewName), that view may be thought of as
  1198.                  consisting of the empty set of view subtrees.
  1199.                 "
  1200.     INDEX       { vacmViewTreeFamilyViewName,
  1201.                   vacmViewTreeFamilySubtree
  1202.                 }
  1203.     ::= { vacmViewTreeFamilyTable 1 }
  1204.  
  1205. VacmViewTreeFamilyEntry ::= SEQUENCE
  1206.     {
  1207.         vacmViewTreeFamilyViewName     SnmpAdminString,
  1208.         vacmViewTreeFamilySubtree      OBJECT IDENTIFIER,
  1209.         vacmViewTreeFamilyMask         OCTET STRING,
  1210.         vacmViewTreeFamilyType         INTEGER,
  1211.         vacmViewTreeFamilyStorageType  StorageType,
  1212.         vacmViewTreeFamilyStatus       RowStatus
  1213.     }
  1214.  
  1215. vacmViewTreeFamilyViewName OBJECT-TYPE
  1216.     SYNTAX       SnmpAdminString (SIZE(1..32))
  1217.     MAX-ACCESS   not-accessible
  1218.     STATUS       current
  1219.     DESCRIPTION "The human readable name for a family of view subtrees.
  1220.                 "
  1221.     ::= { vacmViewTreeFamilyEntry 1 }
  1222.  
  1223. vacmViewTreeFamilySubtree OBJECT-TYPE
  1224.     SYNTAX       OBJECT IDENTIFIER
  1225.     MAX-ACCESS   not-accessible
  1226.     STATUS       current
  1227.     DESCRIPTION "The MIB subtree which when combined with the
  1228.                  corresponding instance of vacmViewTreeFamilyMask
  1229.                  defines a family of view subtrees.
  1230.                 "
  1231.     ::= { vacmViewTreeFamilyEntry 2 }
  1232.  
  1233.  
  1234.  
  1235. Wijnen, et. al.             Standards Track                    [Page 22]
  1236.  
  1237. RFC 2275                    VACM for SNMPv3                 January 1998
  1238.  
  1239.  
  1240. vacmViewTreeFamilyMask OBJECT-TYPE
  1241.     SYNTAX       OCTET STRING (SIZE (0..16))
  1242.     MAX-ACCESS   read-create
  1243.     STATUS       current
  1244.     DESCRIPTION "The bit mask which, in combination with the
  1245.                  corresponding instance of vacmViewTreeFamilySubtree,
  1246.                  defines a family of view subtrees.
  1247.  
  1248.                  Each bit of this bit mask corresponds to a
  1249.                  sub-identifier of vacmViewTreeFamilySubtree, with the
  1250.                  most significant bit of the i-th octet of this octet
  1251.                  string value (extended if necessary, see below)
  1252.                  corresponding to the (8*i - 7)-th sub-identifier, and
  1253.                  the least significant bit of the i-th octet of this
  1254.                  octet string corresponding to the (8*i)-th
  1255.                  sub-identifier, where i is in the range 1 through 16.
  1256.  
  1257.                  Each bit of this bit mask specifies whether or not
  1258.                  the corresponding sub-identifiers must match when
  1259.                  determining if an OBJECT IDENTIFIER is in this
  1260.                  family of view subtrees; a '1' indicates that an
  1261.                  exact match must occur; a '0' indicates 'wild card',
  1262.                  i.e., any sub-identifier value matches.
  1263.  
  1264.                  Thus, the OBJECT IDENTIFIER X of an object instance
  1265.                  is contained in a family of view subtrees if, for
  1266.                  each sub-identifier of the value of
  1267.                  vacmViewTreeFamilySubtree, either:
  1268.  
  1269.                    the i-th bit of vacmViewTreeFamilyMask is 0, or
  1270.  
  1271.                    the i-th sub-identifier of X is equal to the i-th
  1272.                    sub-identifier of the value of
  1273.                    vacmViewTreeFamilySubtree.
  1274.  
  1275.                  If the value of this bit mask is M bits long and
  1276.                  there are more than M sub-identifiers in the
  1277.                  corresponding instance of vacmViewTreeFamilySubtree,
  1278.                  then the bit mask is extended with 1's to be the
  1279.                  required length.
  1280.  
  1281.                  Note that when the value of this object is the
  1282.                  zero-length string, this extension rule results in
  1283.                  a mask of all-1's being used (i.e., no 'wild card'),
  1284.                  and the family of view subtrees is the one view
  1285.                  subtree uniquely identified by the corresponding
  1286.                  instance of vacmViewTreeFamilySubtree.
  1287.  
  1288.  
  1289.  
  1290.  
  1291. Wijnen, et. al.             Standards Track                    [Page 23]
  1292.  
  1293. RFC 2275                    VACM for SNMPv3                 January 1998
  1294.  
  1295.  
  1296.                  Note that masks of length greater than zero length
  1297.                  do not need to be supported. In this case this
  1298.                  object is made read-only.
  1299.                 "
  1300.     DEFVAL      { ''H }
  1301.     ::= { vacmViewTreeFamilyEntry 3 }
  1302.  
  1303. vacmViewTreeFamilyType OBJECT-TYPE
  1304.     SYNTAX       INTEGER  { included(1), excluded(2) }
  1305.     MAX-ACCESS   read-create
  1306.     STATUS       current
  1307.     DESCRIPTION "Indicates whether the corresponding instances of
  1308.                  vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask
  1309.                  define a family of view subtrees which is included in
  1310.                  or excluded from the MIB view.
  1311.                 "
  1312.     DEFVAL      { included }
  1313.     ::= { vacmViewTreeFamilyEntry 4 }
  1314.  
  1315. vacmViewTreeFamilyStorageType OBJECT-TYPE
  1316.     SYNTAX       StorageType
  1317.     MAX-ACCESS   read-create
  1318.     STATUS       current
  1319.     DESCRIPTION "The storage type for this conceptual row.
  1320.  
  1321.                  Conceptual rows having the value 'permanent' need not
  1322.                  allow write-access to any columnar objects in the row.
  1323.                 "
  1324.     DEFVAL      { nonVolatile }
  1325.     ::= { vacmViewTreeFamilyEntry 5 }
  1326.  
  1327. vacmViewTreeFamilyStatus OBJECT-TYPE
  1328.     SYNTAX       RowStatus
  1329.     MAX-ACCESS   read-create
  1330.     STATUS       current
  1331.     DESCRIPTION "The status of this conceptual row.
  1332.  
  1333.                  The  RowStatus TC [RFC1903] requires that this
  1334.                  DESCRIPTION clause states under which circumstances
  1335.                  other objects in this row can be modified:
  1336.  
  1337.                  The value of this object has no effect on whether
  1338.                  other objects in this conceptual row can be modified.
  1339.                 "
  1340.     ::= { vacmViewTreeFamilyEntry 6 }
  1341.  
  1342. -- Conformance information *******************************************
  1343.  
  1344.  
  1345.  
  1346.  
  1347. Wijnen, et. al.             Standards Track                    [Page 24]
  1348.  
  1349. RFC 2275                    VACM for SNMPv3                 January 1998
  1350.  
  1351.  
  1352. vacmMIBCompliances  OBJECT IDENTIFIER ::= { vacmMIBConformance 1 }
  1353. vacmMIBGroups       OBJECT IDENTIFIER ::= { vacmMIBConformance 2 }
  1354.  
  1355. -- Compliance statements *********************************************
  1356.  
  1357. vacmMIBCompliance MODULE-COMPLIANCE
  1358.     STATUS       current
  1359.     DESCRIPTION "The compliance statement for SNMP engines which
  1360.                  implement the SNMP View-based Access Control Model
  1361.                  configuration MIB.
  1362.                 "
  1363.     MODULE -- this module
  1364.         MANDATORY-GROUPS { vacmBasicGroup }
  1365.  
  1366.         OBJECT        vacmAccessContextMatch
  1367.         MIN-ACCESS    read-only
  1368.         DESCRIPTION  "Write access is not required."
  1369.         OBJECT        vacmAccessReadViewName
  1370.         MIN-ACCESS    read-only
  1371.         DESCRIPTION  "Write access is not required."
  1372.  
  1373.         OBJECT        vacmAccessWriteViewName
  1374.         MIN-ACCESS    read-only
  1375.         DESCRIPTION  "Write access is not required."
  1376.  
  1377.         OBJECT        vacmAccessNotifyViewName
  1378.         MIN-ACCESS    read-only
  1379.         DESCRIPTION  "Write access is not required."
  1380.  
  1381.         OBJECT        vacmAccessStorageType
  1382.         MIN-ACCESS    read-only
  1383.         DESCRIPTION  "Write access is not required."
  1384.  
  1385.         OBJECT        vacmAccessStatus
  1386.         MIN-ACCESS    read-only
  1387.         DESCRIPTION  "Create/delete/modify access to the
  1388.                       vacmAccessTable is not required.
  1389.                      "
  1390.  
  1391.         OBJECT        vacmViewTreeFamilyMask
  1392.         WRITE-SYNTAX  OCTET STRING (SIZE (0))
  1393.         MIN-ACCESS    read-only
  1394.         DESCRIPTION  "Support for configuration via SNMP of subtree
  1395.                       families using wild-cards is not required.
  1396.                      "
  1397.  
  1398.         OBJECT        vacmViewTreeFamilyType
  1399.         MIN-ACCESS    read-only
  1400.  
  1401.  
  1402.  
  1403. Wijnen, et. al.             Standards Track                    [Page 25]
  1404.  
  1405. RFC 2275                    VACM for SNMPv3                 January 1998
  1406.  
  1407.  
  1408.         DESCRIPTION  "Write access is not required."
  1409.  
  1410.         OBJECT        vacmViewTreeFamilyStorageType
  1411.         MIN-ACCESS    read-only
  1412.         DESCRIPTION  "Write access is not required."
  1413.  
  1414.         OBJECT        vacmViewTreeFamilyStatus
  1415.         MIN-ACCESS    read-only
  1416.         DESCRIPTION  "Create/delete/modify access to the
  1417.                       vacmViewTreeFamilyTable is not required.
  1418.                      "
  1419.     ::= { vacmMIBCompliances 1 }
  1420.  
  1421. -- Units of conformance **********************************************
  1422.  
  1423. vacmBasicGroup OBJECT-GROUP
  1424.     OBJECTS {
  1425.               vacmContextName,
  1426.               vacmGroupName,
  1427.               vacmSecurityToGroupStorageType,
  1428.               vacmSecurityToGroupStatus,
  1429.               vacmAccessContextMatch,
  1430.               vacmAccessReadViewName,
  1431.               vacmAccessWriteViewName,
  1432.               vacmAccessNotifyViewName,
  1433.               vacmAccessStorageType,
  1434.               vacmAccessStatus,
  1435.               vacmViewSpinLock,
  1436.               vacmViewTreeFamilyMask,
  1437.               vacmViewTreeFamilyType,
  1438.               vacmViewTreeFamilyStorageType,
  1439.               vacmViewTreeFamilyStatus
  1440.             }
  1441.     STATUS       current
  1442.     DESCRIPTION "A collection of objects providing for remote
  1443.                  configuration of an SNMP engine which implements
  1444.                  the SNMP View-based Access Control Model.
  1445.                 "
  1446.     ::= { vacmMIBGroups 1 }
  1447.  
  1448. END
  1449.  
  1450. 5.  Intellectual Property
  1451.  
  1452.    The IETF takes no position regarding the validity or scope of any
  1453.    intellectual property or other rights that might be claimed to
  1454.    pertain to the implementation or use of the technology described in
  1455.    this document or the extent to which any license under such rights
  1456.  
  1457.  
  1458.  
  1459. Wijnen, et. al.             Standards Track                    [Page 26]
  1460.  
  1461. RFC 2275                    VACM for SNMPv3                 January 1998
  1462.  
  1463.  
  1464.    might or might not be available; neither does it represent that it
  1465.    has made any effort to identify any such rights.  Information on the
  1466.    IETF's procedures with respect to rights in standards-track and
  1467.    standards-related documentation can be found in BCP-11.  Copies of
  1468.    claims of rights made available for publication and any assurances of
  1469.    licenses to be made available, or the result of an attempt made to
  1470.    obtain a general license or permission for the use of such
  1471.    proprietary rights by implementors or users of this specification can
  1472.    be obtained from the IETF Secretariat.
  1473.  
  1474.    The IETF invites any interested party to bring to its attention any
  1475.    copyrights, patents or patent applications, or other proprietary
  1476.    rights which may cover technology that may be required to practice
  1477.    this standard.  Please address the information to the IETF Executive
  1478.    Director.
  1479.  
  1480. 6.  Acknowledgements
  1481.  
  1482.    This document is the result of the efforts of the SNMPv3 Working
  1483.    Group.  Some special thanks are in order to the following SNMPv3 WG
  1484.    members:
  1485.  
  1486.    Dave Battle (SNMP Research, Inc.)
  1487.    Uri Blumenthal (IBM T.J. Watson Research Center)
  1488.    Jeff Case (SNMP Research, Inc.)
  1489.    John Curran (BBN)
  1490.    T. Max Devlin (Hi-TECH Connections)
  1491.    John Flick (Hewlett Packard)
  1492.    David Harrington (Cabletron Systems Inc.)
  1493.    N.C. Hien (IBM T.J. Watson Research Center)
  1494.    Dave Levi (SNMP Research, Inc.)
  1495.    Louis A Mamakos (UUNET Technologies Inc.)
  1496.    Paul Meyer (Secure Computing Corporation)
  1497.    Keith McCloghrie (Cisco Systems)
  1498.    Russ Mundy (Trusted Information Systems, Inc.)
  1499.    Bob Natale (ACE*COMM Corporation)
  1500.    Mike O'Dell (UUNET Technologies Inc.)
  1501.    Dave Perkins (DeskTalk)
  1502.    Peter Polkinghorne (Brunel University)
  1503.    Randy Presuhn (BMC Software, Inc.)
  1504.    David Reid (SNMP Research, Inc.)
  1505.    Shawn Routhier (Epilogue)
  1506.    Juergen Schoenwaelder (TU Braunschweig)
  1507.    Bob Stewart (Cisco Systems)
  1508.    Bert Wijnen (IBM T.J. Watson Research Center)
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515. Wijnen, et. al.             Standards Track                    [Page 27]
  1516.  
  1517. RFC 2275                    VACM for SNMPv3                 January 1998
  1518.  
  1519.  
  1520.    The document is based on recommendations of the IETF Security and
  1521.    Administrative Framework Evolution for SNMP Advisory Team.  Members
  1522.    of that Advisory Team were:
  1523.  
  1524.    David Harrington (Cabletron Systems Inc.)
  1525.    Jeff Johnson (Cisco Systems)
  1526.    David Levi (SNMP Research Inc.)
  1527.    John Linn (Openvision)
  1528.    Russ Mundy (Trusted Information Systems) chair
  1529.    Shawn Routhier (Epilogue)
  1530.    Glenn Waters (Nortel)
  1531.    Bert Wijnen (IBM T. J. Watson Research Center)
  1532.  
  1533.    As recommended by the Advisory Team and the SNMPv3 Working Group
  1534.    Charter, the design incorporates as much as practical from previous
  1535.    RFCs and drafts. As a result, special thanks are due to the authors
  1536.    of previous designs known as SNMPv2u and SNMPv2*:
  1537.  
  1538.    Jeff Case (SNMP Research, Inc.)
  1539.    David Harrington (Cabletron Systems Inc.)
  1540.    David Levi (SNMP Research, Inc.)
  1541.    Keith McCloghrie (Cisco Systems)
  1542.    Brian O'Keefe (Hewlett Packard)
  1543.    Marshall T. Rose (Dover Beach Consulting)
  1544.    Jon Saperia (BGS Systems Inc.)
  1545.    Steve Waldbusser (International Network Services)
  1546.    Glenn W. Waters (Bell-Northern Research Ltd.)
  1547.  
  1548. 7.  Security Considerations
  1549.  
  1550. 7.1.  Recommended Practices
  1551.  
  1552.    This document is meant for use in the SNMP architecture.  The View-
  1553.    based Access Control Model described in this document checks access
  1554.    rights to management information based on:
  1555.  
  1556.    - contextName, representing a set of management information at the
  1557.      managed system where the Access Control module is running.
  1558.    - groupName, representing a set of zero or more securityNames.
  1559.      The combination of a securityModel and a securityName is mapped
  1560.      into a group in the View-based Access Control Model.
  1561.    - securityModel under which access is requested.
  1562.    - securityLevel under which access is requested.
  1563.    - operation performed on the management information.
  1564.    - MIB views for read, write or notify access.
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571. Wijnen, et. al.             Standards Track                    [Page 28]
  1572.  
  1573. RFC 2275                    VACM for SNMPv3                 January 1998
  1574.  
  1575.  
  1576.    When the User-based Access Control module is called for checking
  1577.    access rights, it is assumed that the calling module has ensured the
  1578.    authentication and privacy aspects as specified by the securityLevel
  1579.    that is being passed.
  1580.  
  1581.    When creating entries in or deleting entries from the
  1582.    vacmViewFamiliyTreeTable it is important to do such in the sequence
  1583.    as recommended in the DESCRIPTION clause of the vacmViewFamilityTable
  1584.    definition. Otherwise unwanted access may be granted while changing
  1585.    the entries in the table.
  1586.  
  1587. 7.2.  Defining Groups
  1588.  
  1589.    The groupNames are used to give access to a group of zero or more
  1590.    securityNames.  Within the View-Based Access Control Model, a
  1591.    groupName is considered to exist if that groupName is listed in the
  1592.    vacmSecurityToGroupTable.
  1593.  
  1594.    By mapping the combination of a securityModel and securityName into a
  1595.    groupName, an SNMP Command Generator application can add/delete
  1596.    securityNames to/from a group, if proper access is allowed.
  1597.  
  1598.    Further it is important to realize that the grouping of
  1599.    <securityModel, securityName> tuples in the vacmSecurityToGroupTable
  1600.    does not take securityLevel into account. It is therefore important
  1601.    that the security administrator uses the securityLevel index in the
  1602.    vacmAccessTable to separate noAuthNoPriv from authPriv and/or
  1603.    authNoPriv access.
  1604.  
  1605. 7.3.  Conformance
  1606.  
  1607.    For an implementation of the View-based Access Control Model to be
  1608.    conformant, it MUST implement the SNMP-VIEW-BASED-ACM-MIB.  It also
  1609.    SHOULD implement the initial configuration, described in appendix A.
  1610.  
  1611. 8.  References
  1612.  
  1613.    [RFC1902] Case, J., McCloghrie, K., Rose, M. and S., Waldbusser,
  1614.         "Structure of Management Information for Version  2 of the
  1615.         Simple Network Management Protocol (SNMPv2)", RFC 1902, January
  1616.         1996.
  1617.  
  1618.    [RFC1903] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser,
  1619.         "Textual Conventions for Version 2 of the Simple Network
  1620.         Management Protocol (SNMPv2)", RFC 1903, January 1996.
  1621.  
  1622.    [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
  1623.         Requirement Levels", BCP 14, RFC 2119, March 1997.
  1624.  
  1625.  
  1626.  
  1627. Wijnen, et. al.             Standards Track                    [Page 29]
  1628.  
  1629. RFC 2275                    VACM for SNMPv3                 January 1998
  1630.  
  1631.  
  1632.    [RFC2271] Harrington, D., Presuhn, R., and B. Wijnen,
  1633.         "An Architecture for describing SNMP Management Frameworks", RFC
  1634.         2271, January 1998.
  1635.  
  1636.    [RFC2272] Case, J., Harrington, D., Presuhn, R., and B. Wijnen,
  1637.         "Message Processing and Dispatching for the Simple Network
  1638.         Management Protocol (SNMP)", RFC 2272, January 1998.
  1639.  
  1640.    [RFC2274] Blumenthal, U., and B. Wijnen, "User-based
  1641.         Security Model (USM) for version 3 of the Simple Network
  1642.         Management Protocol (SNMPv3)", RFC 2274, January 1998.
  1643.  
  1644.    [ISO-ASN.1] Information processing systems - Open Systems
  1645.         Interconnection - Specification of Abstract Syntax Notation One
  1646.         (ASN.1), International Organization for Standardization.
  1647.         International Standard 8824, (December, 1987).
  1648.  
  1649. 9.  Editors' Addresses
  1650.  
  1651.    Bert Wijnen
  1652.    IBM T. J. Watson Research
  1653.    Schagen 33
  1654.    3461 GL Linschoten
  1655.    Netherlands
  1656.  
  1657.    EMail:      wijnen@vnet.ibm.com
  1658.    Phone:      +31-348-432-794
  1659.  
  1660.  
  1661.    Randy Presuhn
  1662.    BMC Software, Inc
  1663.    1190 Saratoga Avenue, Suite 130
  1664.    San Jose, CA  95129-3433
  1665.    USA
  1666.  
  1667.    EMail:      rpresuhn@bmc.com
  1668.    Phone:      +1-408-556-0720
  1669.  
  1670.  
  1671.    Keith McCloghrie
  1672.    Cisco Systems, Inc.
  1673.    170 West Tasman Drive
  1674.    San Jose, CA  95134-1706
  1675.    USA
  1676.  
  1677.    EMail:      kzm@cisco.com
  1678.    Phone:      +1-408-526-5260
  1679.  
  1680.  
  1681.  
  1682.  
  1683. Wijnen, et. al.             Standards Track                    [Page 30]
  1684.  
  1685. RFC 2275                    VACM for SNMPv3                 January 1998
  1686.  
  1687.  
  1688. APPENDIX A - Installation
  1689.  
  1690. A.1.  Installation Parameters
  1691.  
  1692.    During installation, an authoritative SNMP engine which supports this
  1693.    View-based Access Control Model SHOULD be configured with several
  1694.    initial parameters.  These include for the View-based Access Control
  1695.    Model:
  1696.  
  1697. 1) A security configuration
  1698.  
  1699.    The choice of security configuration determines if initial
  1700.    configuration is implemented and if so how.  One of three possible
  1701.    choices is selected:
  1702.  
  1703.         - initial-minimum-security-configuration
  1704.         - initial-semi-security-configuration
  1705.         - initial-no-access-configuration
  1706.  
  1707.    In the case of a initial-no-access-configuration, there is no initial
  1708.    configuration, and so the following steps are irrelevant.
  1709.  
  1710. 2) A default context
  1711.  
  1712.    One entry in the vacmContextTable with a contextName of "" (the empty
  1713.    string), representing the default context.  Note that this table gets
  1714.    created automatically if a default context exists.
  1715.  
  1716.                                  no privacy support  privacy support
  1717.                                  ------------------  ---------------
  1718.     vacmContextName              ""                  ""
  1719.  
  1720. 3) An initial group
  1721.  
  1722.    One entry in the vacmSecurityToGroupTable to allow access to group
  1723.    "initial".
  1724.  
  1725.                                  no privacy support  privacy support
  1726.                                  ------------------  ---------------
  1727.   vacmSecurityModel              3 (USM)             3 (USM)
  1728.   vacmSecurityName               "initial"           "initial"
  1729.   vacmGroupName                  "initial"           "initial"
  1730.   vacmSecurityToGroupStorageType anyValidStorageType anyValidStorageType
  1731.   vacmSecurityToGroupStatus      active              active
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739. Wijnen, et. al.             Standards Track                    [Page 31]
  1740.  
  1741. RFC 2275                    VACM for SNMPv3                 January 1998
  1742.  
  1743.  
  1744. 4) Initial access rights
  1745.  
  1746.    Three entries in the vacmAccessTable as follows:
  1747.  
  1748.    - read-notify access for securityModel USM, securityLevel
  1749.      "noAuthNoPriv" on behalf of securityNames that belong to the group
  1750.      "initial" to the <restricted> MIB view in the default context with
  1751.      contextName "".
  1752.  
  1753.    - read-write-notify access for securityModel USM, securityLevel
  1754.      "authNoPriv" on behalf of securityNames that belong to the group
  1755.      "initial" to the <internet> MIB view in the default context with
  1756.      contextName "".
  1757.  
  1758.    - if privacy is supported,
  1759.      read-write-notify access for securityModel USM, securityLevel
  1760.      "authPriv" on behalf of securityNames that belong to the group
  1761.      "initial" to the <internet> MIB view in the default context with
  1762.      contextName "".
  1763.  
  1764.    That translates into the following entries in the vacmAccessTable.
  1765.    Those columns marked with (index) are index-only objects and are not
  1766.    really present in this table.
  1767.  
  1768.    - One entry to be used for unauthenticated access (noAuthNoPriv):
  1769.  
  1770.  
  1771.                                no privacy support  privacy support
  1772.                                ------------------  ---------------
  1773.     vacmAccessContextPrefix    ""                  ""
  1774.     vacmGroupName     (index)  "initial"           "initial"
  1775.     vacmSecurityModel (index)  3 (USM)             3 (USM)
  1776.     vacmAccessSecurityLevel    noAuthNoPriv        noAuthNoPriv
  1777.     vacmAccessReadViewName     "restricted"        "restricted"
  1778.     vacmAccessWriteViewName    ""                  ""
  1779.     vacmAccessNotifyViewName   "restricted"        "restricted"
  1780.     vacmAccessStorageType      anyValidStorageType anyValidStorageType
  1781.     vacmAccessStatus           active              active
  1782.  
  1783.    - One entry to be used for authenticated access but without
  1784.      privacy (authNoPriv):
  1785.                                no privacy support  privacy support
  1786.                                ------------------  ---------------
  1787.     vacmAccessContextPrefix    ""                  ""
  1788.     vacmGroupName     (index)  "initial"           "initial"
  1789.     vacmSecurityModel (index)  3 (USM)             3 (USM)
  1790.     vacmAccessSecurityLevel    authNoPriv          authNoPriv
  1791.     vacmAccessReadViewName     "internet"          "internet"
  1792.  
  1793.  
  1794.  
  1795. Wijnen, et. al.             Standards Track                    [Page 32]
  1796.  
  1797. RFC 2275                    VACM for SNMPv3                 January 1998
  1798.  
  1799.  
  1800.     vacmAccessWriteViewName    "internet"          "internet"
  1801.     vacmAccessNotifyViewName   "internet"          "internet"
  1802.     vacmAccessStorageType      anyValidStorageType anyValidStorageType
  1803.     vacmAccessStatus           active              active
  1804.  
  1805.    - One entry to be used for authenticated access with privacy
  1806.      (authPriv):
  1807.  
  1808.                                no privacy support  privacy support
  1809.                                ------------------  ---------------
  1810.     vacmAccessContextPrefix                        ""
  1811.     vacmGroupName     (index)                      "initial"
  1812.     vacmSecurityModel (index)                      3 (USM)
  1813.     vacmAccessSecurityLevel                        authPriv
  1814.     vacmAccessReadViewName                         "internet"
  1815.     vacmAccessWriteViewName                        "internet"
  1816.     vacmAccessNotifyViewName                       "internet"
  1817.     vacmAccessStorageType                          anyValidStorageType
  1818.     vacmAccessStatus                               active
  1819.  
  1820. 5) Two MIB views, of which the second one depends on the security
  1821.    configuration.
  1822.  
  1823.    -  One view, the <internet> view, for authenticated access:
  1824.  
  1825.       -  the <internet> MIB view is the following subtree:
  1826.              "internet"  (subtree 1.3.6.1)
  1827.  
  1828.    -  A second view, the <restricted> view, for unauthenticated
  1829.       access.  This view is configured according to the selected
  1830.       security configuration:
  1831.  
  1832.       -  For the initial-no-access-configuration there is no default
  1833.          initial configuration, so no MIB views are pre-scribed.
  1834.  
  1835.       -  For the initial-semi-secure-configuration:
  1836.  
  1837.          the <restricted> MIB view is the union of these subtrees:
  1838.          (a) "system"       (subtree 1.3.6.1.2.1.1)     [RFC1907]
  1839.          (b) "snmp"         (subtree 1.3.6.1.2.1.11)    [RFC1907]
  1840.          (c) "snmpEngine"   (subtree 1.3.6.1.6.3.7.2.1) [RFC2271]
  1841.          (d) "snmpMPDStats" (subtree 1.3.6.1.6.3.8.2.1) [RFC2272]
  1842.          (e) "usmStats"     (subtree 1.3.6.1.6.3.9.2.1) [RFC2274]
  1843.  
  1844.       -  For the initial-minimum-secure-configuration:
  1845.  
  1846.          the <restricted> MIB view is the following subtree.
  1847.              "internet"  (subtree 1.3.6.1)
  1848.  
  1849.  
  1850.  
  1851. Wijnen, et. al.             Standards Track                    [Page 33]
  1852.  
  1853. RFC 2275                    VACM for SNMPv3                 January 1998
  1854.  
  1855.  
  1856.    This translates into the following "internet" entry in the
  1857.    vacmViewTreeFamilyTable:
  1858.  
  1859.                                 minimum-secure      semi-secure
  1860.                                 ----------------    ---------------
  1861.   vacmViewTreeFamilyViewName    "internet"          "internet"
  1862.   vacmViewTreeFamilySubtree     1.3.6.1             1.3.6.1
  1863.   vacmViewTreeFamilyMask        ""                  ""
  1864.   vacmViewTreeFamilyType        1 (included)        1 (included)
  1865.   vacmViewTreeFamilyStorageType anyValidStorageType anyValidStorageType
  1866.   vacmViewTreeFamilyStatus      active              active
  1867.  
  1868.    In addition it translates into the following "restricted" entries
  1869.    in the vacmViewTreeFamilyTable:
  1870.  
  1871.                                 minimum-secure      semi-secure
  1872.                                 ----------------    ---------------
  1873.   vacmViewTreeFamilyViewName    "restricted"        "restricted"
  1874.   vacmViewTreeFamilySubtree     1.3.6.1             1.3.6.1.2.1.1
  1875.   vacmViewTreeFamilyMask        ""                  ""
  1876.   vacmViewTreeFamilyType        1 (included)        1 (included)
  1877.   vacmViewTreeFamilyStorageType anyValidStorageType anyValidStorageType
  1878.   vacmViewTreeFamilyStatus      active              active
  1879.  
  1880.   vacmViewTreeFamilyViewName                        "restricted"
  1881.   vacmViewTreeFamilySubtree                         1.3.6.1.2.1.11
  1882.   vacmViewTreeFamilyMask                            ""
  1883.   vacmViewTreeFamilyType                            1 (included)
  1884.   vacmViewTreeFamilyStorageType                     anyValidStorageType
  1885.   vacmViewTreeFamilyStatus                          active
  1886.  
  1887.   vacmViewTreeFamilyViewName                        "restricted"
  1888.   vacmViewTreeFamilySubtree                         1.3.6.1.6.3.7.2.1
  1889.   vacmViewTreeFamilyMask                            ""
  1890.   vacmViewTreeFamilyType                            1 (included)
  1891.   vacmViewTreeFamilyStorageType                     anyValidStorageType
  1892.   vacmViewTreeFamilyStatus                          active
  1893.  
  1894.   vacmViewTreeFamilyViewName                        "restricted"
  1895.   vacmViewTreeFamilySubtree                         1.3.6.1.6.3.8.2.1
  1896.   vacmViewTreeFamilyMask                            ""
  1897.   vacmViewTreeFamilyType                            1 (included)
  1898.   vacmViewTreeFamilyStorageType                     anyValidStorageType
  1899.   vacmViewTreeFamilyStatus                          active
  1900.  
  1901.   vacmViewTreeFamilyViewName                        "restricted"
  1902.   vacmViewTreeFamilySubtree                         1.3.6.1.6.3.9.2.1
  1903.   vacmViewTreeFamilyMask                            ""
  1904.  
  1905.  
  1906.  
  1907. Wijnen, et. al.             Standards Track                    [Page 34]
  1908.  
  1909. RFC 2275                    VACM for SNMPv3                 January 1998
  1910.  
  1911.  
  1912.   vacmViewTreeFamilyType                            1 (included)
  1913.   vacmViewTreeFamilyStorageType                     anyValidStorageType
  1914.   vacmViewTreeFamilyStatus                          active
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963. Wijnen, et. al.             Standards Track                    [Page 35]
  1964.  
  1965. RFC 2275                    VACM for SNMPv3                 January 1998
  1966.  
  1967.  
  1968. B.  Full Copyright Statement
  1969.  
  1970.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  1971.  
  1972.    This document and translations of it may be copied and furnished to
  1973.    others, and derivative works that comment on or otherwise explain it
  1974.    or assist in its implementation may be prepared, copied, published
  1975.    and distributed, in whole or in part, without restriction of any
  1976.    kind, provided that the above copyright notice and this paragraph are
  1977.    included on all such copies and derivative works.  However, this
  1978.    document itself may not be modified in any way, such as by removing
  1979.    the copyright notice or references to the Internet Society or other
  1980.    Internet organizations, except as needed for the purpose of
  1981.    developing Internet standards in which case the procedures for
  1982.    copyrights defined in the Internet Standards process must be
  1983.    followed, or as required to translate it into languages other than
  1984.    English.
  1985.  
  1986.    The limited permissions granted above are perpetual and will not be
  1987.    revoked by the Internet Society or its successors or assigns.
  1988.  
  1989.    This document and the information contained herein is provided on an
  1990.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  1991.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  1992.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  1993.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  1994.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019. Wijnen, et. al.             Standards Track                    [Page 36]
  2020.  
  2021.