Linux

如何更改 net-snmp engineID

  • January 5, 2020

我正在NET-SNMP 5.7.3使用Freebsd 12.1. 我想engineIDsnmpset命令改變。

snmpd.conf

rwcommunity private

我輸入這個命令:

snmpset -v 2c -c private localhost e x 800000020109840301

錯誤是:

Error in packet.
Reason: notWritable (That object does not support modification)
Failed object: SNMPv2-SMI::enterprises

我也使用了這個命令:

snmpset -v 2c -c private localhost 1.3.6.1.6.3.10.2.1.1 x 800000020109840301

但這有上述錯誤。

我該如何解決這個問題?

答案是:

snmpd.conf

engineID a

對於測試:

snmpget -v 2c -c public localhost  .1.3.6.1.6.3.10.2.1.1.0   

SNMP-FRAMEWORK-MIB::snmpEngineID.0 = Hex-STRING: 80 00 1F 88 04 61

每個 enginID 都以 080001F. 它不能用 snmpset 改變。它應該在配置文件中設置。

從 net-snmpsnmpd.conf手冊頁:

SNMPv3 協議定義了唯一標識代理的“engineID”。該字元串必須始終保持一致,並且不應更改或與另一個代理的引擎 ID 衝突。曾經。

預設情況下,Net-SNMP 在內部創建一個基於目前系統時間和隨機數的唯一引擎 ID。對於大多數使用者來說,這應該足夠了,除非您將我們的代理嵌入到設備中,在設備初始啟動時這些數字不會因框而異。

EngineID 既用作從設備中選擇資訊的“上下文”,又使用帶有 USM 的 SNMPv3 使用它在其使用者表中為使用者創建唯一條目。

換句話說,更改引擎 ID 會使所有現有的 SNMPv3 使用者條目和資訊請求的“上下文”無效,因此更改它是一件大事。更改引擎 ID 時,根據我的經驗,您必須重新創建任何現有的 SNMPv3 使用者,否則他們的 SNMPv3 密碼將停止工作。(換句話說,引擎 ID 似乎被 SNMPv3 密碼散列算法使用。)

我希望snmpd在更改引擎 ID 時重新啟動是強制性的。

錯誤消息告訴您不能使用 SNMP 更改 Net-SNMP 引擎 ID。

但是,您可以engineID通過使用文件中的,engineIDType和/或engineIDNic設置來更改引擎 ID snmpd.conf,但是如果您使用它們,手冊頁會顯示“您應該知道自己在做什麼”的警告。

引用自:https://unix.stackexchange.com/questions/559665