Сбой snmptrap v3 с ошибкой «Проверка подлинности не удалась для doit» - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь отправить snmptrap на целевой компьютер linux и на целевой компьютер, который получает прерывание, но не может его аутентифицировать.

0560: F5 58 7C AE  AF BB F7 F3  08 8E C3 29  97 F1 F6 3F    .X|........)...?
0576: 9F 3D 06 CF  95 A2 39 36  CD 78 18 AD                 .=....96.x..

Authentication failed for doit

Вот файл snmptrapf.conf целевой машины,

createUser -e 0x00002E390000005056877fb3 doit MD5 'doitpassword' DES 'doitpassword'
authuser log,execute doit

Вот код net-snmp, отправляющий ловушку

        session.securityEngineID = (u_char *)engineID;
    session.securityEngineIDLen = 12;

    session.contextEngineID = (u_char *)engineID;
    session.contextEngineIDLen = 12;

    session.engineTime = 0;

    session.securityLevel = securityOpt;

    session.securityAuthProto = usmHMACMD5AuthProtocol;
    session.securityAuthProtoLen = USM_AUTH_PROTO_MD5_LEN;
    session.securityAuthKeyLen = USM_AUTH_KU_LEN;

    log_error("Password [%d]", password);

    if (session.securityLevel == SNMP_SEC_LEVEL_AUTHNOPRIV) {

        error_code = generate_Ku(session.securityAuthProto,
            session.securityAuthProtoLen,
            (u_char *) password, strlen(password),
            session.securityAuthKey,
            &(session.securityAuthKeyLen));
        if (error_code != SNMPERR_SUCCESS) {
            log_error("Error generating user key from authentication passphrase. Error code [%d]", error_code);
        }
    } else if (session.securityLevel == SNMP_SEC_LEVEL_AUTHPRIV) {

        session.securityPrivProto = usmDESPrivProtocol;
        session.securityPrivProtoLen = USM_PRIV_PROTO_DES_LEN;
        session.securityPrivKeyLen = USM_PRIV_KU_LEN;

        error_code = generate_Ku(session.securityAuthProto,
            session.securityAuthProtoLen,
            (u_char *) password, strlen(password),
            session.securityPrivKey,
            &(session.securityPrivKeyLen));
        if (error_code != SNMPERR_SUCCESS) {
            log_error("Error generating user key from private passphrase. Error code [%d]", error_code);
        }
    }
...