summaryrefslogtreecommitdiff
path: root/MIBS/dlink/DLINKSW-SSH-MIB
blob: 94614b7ba0a539d1b4a46c57d405fba66e7d71f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
--  *****************************************************************
--  DLINKSW-SSH-MIB.mib : Secure Shell MIB
-- 
--  Copyright (c) 2013 D-Link Corporation, all rights reserved.
--   
--  *****************************************************************
DLINKSW-SSH-MIB DEFINITIONS ::= BEGIN


    IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32,
        Unsigned32
                FROM SNMPv2-SMI
        RowStatus, TimeStamp,TruthValue,DisplayString
                FROM SNMPv2-TC               
        OBJECT-GROUP, MODULE-COMPLIANCE            
            FROM SNMPv2-CONF               
        InetAddressType,InetAddress
                FROM INET-ADDRESS-MIB                
        InterfaceIndexOrZero
                FROM IF-MIB  
        SnmpAdminString
                FROM SNMP-FRAMEWORK-MIB                             
        dlinkIndustrialCommon
                FROM DLINK-ID-REC-MIB;


    dlinkSwSshMIB MODULE-IDENTITY
        LAST-UPDATED "201307180000Z"
        ORGANIZATION "D-Link Corp."
        CONTACT-INFO
            "        D-Link Corporation

             Postal: No. 289, Sinhu 3rd Rd., Neihu District,
                     Taipei City 114, Taiwan, R.O.C
             Tel:     +886-2-66000123
             E-mail: tsd@dlink.com.tw
            "
        DESCRIPTION
            "This MIB module defines objects for Secure Shell (SSH)."
        REVISION "201307180000Z"
        DESCRIPTION
            "This is the first version of the MIB file for 'SSH'
             functionality.
            "
    ::= { dlinkIndustrialCommon 17 }

-- -----------------------------------------------------------------------------
    dSshNotifications    OBJECT IDENTIFIER ::= { dlinkSwSshMIB 0 }
    dSshObjects          OBJECT IDENTIFIER ::= { dlinkSwSshMIB 1 }
    dSshConformance      OBJECT IDENTIFIER ::= { dlinkSwSshMIB 2 }

-- -----------------------------------------------------------------------------
    dSshGeneral          OBJECT IDENTIFIER ::= { dSshObjects 1 }

    dSshEnabled OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object enables or disables Secure Shell (SSH) service."
        DEFVAL      { false }
        ::= { dSshGeneral 1 }

    dSshVersion OBJECT-TYPE
        SYNTAX      INTEGER { v1(1), v2(2), v1v2(3) }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The version of SSH is running on the switch.
            The version that is currently supported is v2."
        ::= { dSshGeneral 2 }

    dSshTimeout OBJECT-TYPE
        SYNTAX      Integer32 (30..600)
        UNITS       "seconds"
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The time interval that the switch waits for the SSH client to respond
             during the SSH negotiation phase."
        DEFVAL      { 120 }
        ::= { dSshGeneral 3 }

    dSshAuthenticationRetries OBJECT-TYPE
        SYNTAX      Integer32 (1..32)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The number of authentication attempts after the session
             has reset or authentication failed."
        DEFVAL      { 3 }
        ::= { dSshGeneral 4 }

    dSshServicePort OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Specifies the service port, such as 22, which Secure Shell (SSH)
             needs to connect to."
        DEFVAL      { 22 }
        ::= { dSshGeneral 5 }

    dSshSrcIfIndex OBJECT-TYPE
        SYNTAX      InterfaceIndexOrZero
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object specifies the ifIdex value of the source 
            source address of SSH packets that initiates a SSH connection.
            The value of this object should be a valid 'ifIndex' value.                        
            The value of this object being 'zero' implies that the IP address
            of the closest interface will be used."
        DEFVAL    {0}
        ::= { dSshGeneral 6}
-- -----------------------------------------------------------------------------
    dSshKeyConfiguration  OBJECT IDENTIFIER ::= { dSshObjects 2 }
    dSshCryptoKeyPairTable  OBJECT-TYPE
        SYNTAX      SEQUENCE OF DSshCryptoKeyPairEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION   
               "dSshCryptokeyTable is a table that lets the user configure 
                the SSH keys"
        ::= { dSshKeyConfiguration 1 }
        
    dSshCryptoKeyPairEntry OBJECT-TYPE
        SYNTAX      DSshCryptoKeyPairEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION   
           "A SSH key table entry. The index specifies which
            protocol the user wants to generate the key for.
            
            An    entry is created/removed when a    key pair for a specific
            protocol is generated or deleted via CLI or by issuing appropriate 
            sets to this table using snmp.
                            
            To replace the existing key for a protocol 

            1. Specify the Protocol: dSshCryptoKeyPairIndex 
            2. Specify the modulus size of the key pair(s): dSshCryptoKeyPairNBits
            3. Set dSshCryptoKeyPairReplace as true(1)."
        INDEX  { dSshCryptoKeyPairIndex }
        ::= { dSshCryptoKeyPairTable 1 }

    DSshCryptoKeyPairEntry ::=
        SEQUENCE {                             
                   dSshCryptoKeyPairIndex              INTEGER,
                   dSshCryptoKeyPairNBits              Integer32,
                   dSshCryptoKeyPairReplace            TruthValue,
                   dSshCryptoKeyPairLastCreateTime     TimeStamp,
                   dSshCryptoKeyPairString             DisplayString,
                   dSshCryptoKeyPairRowStatus          RowStatus
        }

    dSshCryptoKeyPairIndex OBJECT-TYPE
        SYNTAX  INTEGER {
                    rsa(1),                         
                    dsa(2)
                }
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
            "The SSH Protocol Identifier for which this entry 
             pertains to. 

             rsa  - A public-key cryptosystem defined by Rivest,
                  Shamir and Adleman.

             dsa  - Digital Signature Algorithm, a public key
                  cipher used to generate digital signatures."
    ::= { dSshCryptoKeyPairEntry 1 }

    dSshCryptoKeyPairNBits OBJECT-TYPE
        SYNTAX          Integer32 (360|512|768|1024|2048)
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION   
            "Specifies the modulus size of the key pair(s):
             For RSA, the valid values are 360, 512, 768, 1024, and 2048.
             For DSA, the valid value is fixed as 1024.
             For SSH version 2, the minimum recommended key size is 768 bits.

             A key size with a larger number provides higher security but
             takes longer to generate.

             This object cannot be modified while this row is
             active, unless the associated dSshCryptoKeyPairReplace 
             object is set to True in the same Set PDU."
        ::= { dSshCryptoKeyPairEntry 2 }

    dSshCryptoKeyPairReplace    OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
            "This object specifies whether a new key should replace 
             an existing key for the protocol.
             No action is taken if this object is set to 'false'.
             The value of this object when read is always 'false'."
        ::= { dSshCryptoKeyPairEntry 3 }

    dSshCryptoKeyPairLastCreateTime    OBJECT-TYPE
        SYNTAX          TimeStamp
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The time of the last creation of the key."
        ::= { dSshCryptoKeyPairEntry 4 }

    dSshCryptoKeyPairString              OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The generated SSH public key string."
        ::= { dSshCryptoKeyPairEntry 6 }

    dSshCryptoKeyPairRowStatus       OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
               "Status of this SSH key pair."
        ::= { dSshCryptoKeyPairEntry 99 }
        
   dSshCryptoKeyGenerationStatus OBJECT-TYPE
       SYNTAX   INTEGER {
                    inProgress(1),
                    successful(2),
                    failed(3)
                }
       MAX-ACCESS          read-only
       STATUS              current
       DESCRIPTION
           "This object indicates the status of the last key 
            generation request."
   ::= { dSshKeyConfiguration 2 }

-- -----------------------------------------------------------------------------

    dSshConnectionTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DSshConnectionEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "A table to display the status of Secure Shell (SSH) server connections."
        ::= { dSshObjects 3 }

    dSshConnectionEntry OBJECT-TYPE
        SYNTAX          DSshConnectionEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "An entry (conceptual row) in the dSshConnectionTable object."
        INDEX  { dSshConnectionSID }
        ::= { dSshConnectionTable 1 }

    DSshConnectionEntry ::=
        SEQUENCE {
            dSshConnectionSID           Integer32,
            dSshConnectionVersion       INTEGER,
            dSshConnectionCipher        DisplayString,
            dSshConnectionUserID        DisplayString,
            dSshConnectionHostAddrType  InetAddressType,
            dSshConnectionHostAddr      InetAddress            
        }

    dSshConnectionSID OBJECT-TYPE
        SYNTAX      Integer32 (0..65535)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A unique number that identifies the SSH session."
        ::= { dSshConnectionEntry 1 }

    dSshConnectionVersion OBJECT-TYPE
        SYNTAX      INTEGER { v1(1), v2(2), v1v2(3) }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The protocol version number that the SSH client supports."
        ::= { dSshConnectionEntry 2}
    
    dSshConnectionCipher OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The crypto/Hashed Message Authentication Code (HMAC) algorithm that
             the SSH client is using."
        ::= { dSshConnectionEntry 3}

    dSshConnectionUserID OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The login username that has been authenticated for the session."
        ::= { dSshConnectionEntry 4 }                
        
    dSshConnectionHostAddrType OBJECT-TYPE
        SYNTAX          InetAddressType
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The type of Internet address for client 
            establised this session."       
        ::= { dSshConnectionEntry 5 }
    

    dSshConnectionHostAddr OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
           "The Internet address assigned for client 
            establised this session."
        ::= { dSshConnectionEntry 6 }
        
        
-- -----------------------------------------------------------------------------
    dSshUserTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DSshUserEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "This table lists all users and their corresponding authentication
            methods through which SSH client can login."
        ::= { dSshObjects 4 }

    dSshUserEntry OBJECT-TYPE
        SYNTAX          DSshUserEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "An entry (conceptual row) in the dSshUserTable."
        INDEX  { dSshUserName }
        ::= { dSshUserTable 1 }

    DSshUserEntry ::=
        SEQUENCE {
            dSshUserName                SnmpAdminString,
            dSshUserAuthMethod          INTEGER,
            dSshUserKeyFilename         SnmpAdminString,
            dSshUserHostName            DisplayString,
            dSshUserHostAddrType        InetAddressType,
            dSshUserHostAddr            InetAddress,
            dSshUserRowStatus           RowStatus
        }  

    dSshUserName OBJECT-TYPE
        SYNTAX      SnmpAdminString (SIZE (1..32))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This object indicates the name of SSH user."
        ::= { dSshUserEntry 1 }

    dSshUserAuthMethod OBJECT-TYPE
        SYNTAX   INTEGER {
                    password(1),
                    publickey(2),
                    hostbased(3)
                }    
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the authentication method for this user account.
            'password' - use password authentication method for this user account.
            'publickey' - use public key authentication method for this user account.
            'hostbased' - use host-based authentication method for this user account.

            "
        DEFVAL { password }
        ::= { dSshUserEntry 2 }
        
    dSshUserKeyFilename OBJECT-TYPE
        SYNTAX   SnmpAdminString (SIZE (0..255))    
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the name of the file storing the SSH public key.
            The SSH public key is used to authenticate the SSH 
            session for this user.
            
            If dSshUserAuthMethod is 'publickey', this object refers to
            user's public key. 
            
            If dSshUserAuthMethod is 'hostbased', this object refers to 
            client's host key.
            
            If dSshUserAuthMethod is 'password', the value of this
            object will be ignored and a zero-length string is 
            always returned when read."
        ::= { dSshUserEntry 3 }        
        

    dSshUserHostName OBJECT-TYPE
        SYNTAX   DisplayString (SIZE (0..255))    
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The host name of the SSH client.
            This object is only valid for host-based authentication method.
            
            For password and public key authentication method, a 
            zero-length string is always returned when read.
            "
        ::= { dSshUserEntry 4 }    

    dSshUserHostAddrType OBJECT-TYPE
        SYNTAX   InetAddressType    
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The host address type of the SSH client.
            This object is only valid for host-based authentication method.
            
            For password and publickey authentication method, unknown(0) 
            is always returned when read.
            "
        ::= { dSshUserEntry 5 }    

    dSshUserHostAddr OBJECT-TYPE
        SYNTAX   InetAddress    
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The host address of the SSH client.
            This object is only valid for host-based authentication method.
            
            For password and public key authentication method, a 
            zero-length string is always returned when read.
            "
        ::= { dSshUserEntry 6 }       

    dSshUserRowStatus   OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
               "Status of this SSH user entry.
               
               When read, active(1) is always returned.
               
               If administrator wants to modify the authentication method for
               a specific user account, setting createAndGo(4) for this node
               after corresponding parameters are configured:
               
               For password, there is no need to specify more parameters.
               For publickey, dSshUserKeyFilename must be specified.
               For hostbased, dSshUserKeyFilename and dSshUserHostName
               must be specified, but parameters dSshUserHostAddrType and dSshUserHostAddr
               are optional.
               
               Other value of this node is not supported.
               "
        ::= { dSshUserEntry 99 }        
        
-- Conformance
  

    dSshCompliances    OBJECT IDENTIFIER ::= { dSshConformance 1 }

    dSshGroups      OBJECT IDENTIFIER ::= { dSshConformance 2 }        
       
       
   dSshCompliance MODULE-COMPLIANCE
        STATUS   deprecated
        DESCRIPTION
                "The compliance statement for entities which
                 implement the DLINKSW-SSH-MIB."
        MODULE MANDATORY-GROUPS { 
                 dSshConfigGroup
        }

       OBJECT          dSshSrcIfIndex       
       MIN-ACCESS      read-only
       DESCRIPTION
            "It is compliant to implement this object as read-only. 
            Support for configurable source interface is only
            required on the platform which supports SSH client."

        GROUP dSshUserGroup
        DESCRIPTION
            "This group is mandatory only for the platform which supports
             configuring SSH authentication method for a user account."
        ::= { dSshCompliances 1 }

    dSshConfigGroup OBJECT-GROUP
        OBJECTS 
            {   dSshEnabled, 
                dSshVersion, 
                dSshTimeout, 
                dSshAuthenticationRetries, 
                dSshServicePort, 
                dSshSrcIfIndex, 
                dSshCryptoKeyPairNBits, 
                dSshCryptoKeyPairReplace, 
                dSshCryptoKeyPairLastCreateTime, 
                dSshCryptoKeyPairRowStatus, 
                dSshCryptoKeyPairString, 
                dSshCryptoKeyGenerationStatus 
            }
            STATUS current
            DESCRIPTION 
                "A collection of objects for SSH configuration."
            ::= { dSshGroups 1 }

        
    dSshConnectionGroup OBJECT-GROUP
        OBJECTS
            {   dSshConnectionVersion, 
                dSshConnectionCipher, 
                dSshConnectionUserID,
                dSshConnectionHostAddrType, 
                dSshConnectionHostAddr                 
            }
            STATUS current
            DESCRIPTION 
                "A collection of objects to display SSH 
                connection related information."
            ::= { dSshGroups 2 }
            
    dSshUserGroup OBJECT-GROUP
        OBJECTS
            {   dSshUserAuthMethod,
                dSshUserKeyFilename,
                dSshUserHostName,
                dSshUserHostAddrType,
                dSshUserHostAddr    
            }
            STATUS current
            DESCRIPTION 
                "A collection of objects related to SSH users."
            ::= { dSshGroups 3 }

END