#!/bin/sh . ../support/simple_eval_tools.sh HEADER SNMPv3 agent USM user management with snmpusm SKIPIF NETSNMP_DISABLE_SET_SUPPORT SKIPIF NETSNMP_NO_WRITE_SUPPORT SKIPIFNOT USING_SNMPV3_USMUSER_MODULE SKIPIFNOT NETSNMP_CAN_DO_CRYPTO SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV # # Begin test # # standard SNMPv3 USM agent configuration DEFSECURITYLEVEL=authPriv . ./Sv3usmconfigagent # test user NEWUSER=newtestuser NEWAUTHPASS=newauthpass NEWPRIVPASS=newprivpass NEWAUTHPRIVPASS=newauthprivpass # configure agent CONFIGAGENT rwuser $NEWUSER # Start the agent STARTAGENT ## usmUserTable management ## 1) create, clone, test, delete # create new (vanilla) user CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER" CHECKORDIE "User successfully created" # clone CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT cloneFrom $NEWUSER $TESTPRIVUSER" CHECKORDIE "User successfully cloned" # test (authPriv) CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $TESTAUTHPASS -x $DEFPRIVTYPE -X $TESTPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" # delete CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT delete $NEWUSER" CHECKORDIE "User successfully deleted" ## 2) create w/ clone, passwd (auth), passwd (priv), test (authPriv+authNoPriv) # create+clone template user CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER $TESTPRIVUSER2" CHECKORDIE "User successfully created" # change auth passphrase of new user CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS -Ca $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTAUTHPASS2 $NEWAUTHPASS $NEWUSER" CHECKORDIE "SNMPv3 Key(s) successfully changed" # change priv passphrase of new user CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS -Cx $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTPRIVPASS2 $NEWPRIVPASS $NEWUSER" CHECKORDIE "SNMPv3 Key(s) successfully changed" # test (authNoPriv) CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l anp -a $DEFAUTHTYPE -A $NEWAUTHPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" # test (authPriv) CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" ## 3) passwd (priv), passwd (auth+priv), test # change priv passphrase (to auth passphrase) by the user himself CAPTURE "snmpusm $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWPRIVPASS -Cx $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWPRIVPASS $NEWAUTHPASS" CHECKORDIE "SNMPv3 Key(s) successfully changed" # change both passphrases at once CAPTURE "snmpusm $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWAUTHPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWAUTHPASS $NEWAUTHPRIVPASS" CHECKORDIE "SNMPv3 Key(s) successfully changed" # test (authPriv) CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPRIVPASS -x $DEFPRIVTYPE -X $NEWAUTHPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" ## 5) persistency I: reconfigure (SIGHUP), re-test if ISDEFINED HAVE_SIGHUP; then HUPAGENT DELAY # test (authPriv) CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPRIVPASS -x $DEFPRIVTYPE -X $NEWAUTHPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" ## 5) persistency II: stop, start, re-test STOPAGENT DELAY # make sure it picks up persistent config and uses a new logfile SNMPCONFPATH="${SNMP_TMPDIR}${SNMP_ENV_SEPARATOR}${SNMP_TMP_PERSISTENTDIR}" export SNMPCONFPATH SNMP_CONFIG_FILE="does-not-exist" SNMP_SNMPD_LOG_FILE=${SNMP_TMPDIR}/snmpd2.log STARTAGENT # test (authPriv) CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPRIVPASS -x $DEFPRIVTYPE -X $NEWAUTHPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:" fi ## stop agent and finish STOPAGENT FINISHED