Content-type: text/html
The SNMPv3 USM specifications (see RFC2574) dictate that users are created and maintained by adding and modifying rows to the usmUserTable MIB table. To create a new user you simply create the row using snmpset. User's profiles contain private keys that are never transmitted over the wire in clear text (regardless of whether the administration requests are encrypted or not).
The secret key for a user is initially set by cloning another user in the table, so that a new user inherits the cloned user's secret key. A user can only be cloned once, however, after which they must be deleted and re-created to be re-cloned. The authentication and privacy security types are also inherited during this cloning (e.g., MD5 vs. SHA1). To change the secret key for a user, you must know the user's old passphrase as well as the new one. The passwd sub-command of the snmpusm command, therefore, requires both the new and the old pass-phrases to be supplied. After cloning from the appropriate template, you should immediately change the new users passphrase.
The Net-SNMP agent must first be initialized so that at least one user is setup in it before you can use this command to clone new ones. See the snmpd.conf(5) manual page on the createUser configuration parameter.
Let's assume for our examples that the following VACM and USM configurations lines were in the snmpd.conf file for a Net-SNMP agent. These lines set up a default user called "initial" with the authentication passphrase "setup_passphrase" so that we can perform the initial setup of an agent:
# VACM configuration entries rwuser initial # lets add the new user we'll create too: rwuser wes # USM configuration entries createUser initial MD5 setup_passphrase DES
Note: the "initial" user's setup should be removed after creating a real user that you grant administrative privileges to (like the user "wes" we'll be creating in this example.
Note: passphrases must be 8 characters minimum in length.
snmpusm -v3 -u initial -n "" -l authNoPriv -a MD5 -A setup_passphrase localhost create wes initial
snmpusm -v 3 -u wes -n "" -l authNoPriv -a MD5 -A setup_passphrase localhost passwd setup_passphrase new_passphrase
snmpget -v 3 -u wes -n "" -l authNoPriv -a MD5 -A new_passphrase localhost sysUpTime.0
Now, go remove the vacm "group" snmpd.conf entry for the "initial" user and you have a valid user 'wes' that you can use for future transactions instead of initial.