Skip to content

Commit 1bd3c46

Browse files
committed
Add VACM user configuration
1 parent c329d5c commit 1bd3c46

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

snmptrapd.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
LOG_FILE = os.environ.get("SNMPTRAPD_LOG_FILE")
3737
LOG_LEVEL = os.environ.get("SNMPTRAPD_LOG_LEVEL", "INFO").upper()
3838
V3_USERS_RAW = os.environ.get("SNMPTRAPD_V3_USERS", "").strip()
39+
VACM_SUBTREE = (1, 3, 6)
3940

4041
AUTH_PROTOCOLS = {
4142
"NONE": usmNoAuthProtocol,
@@ -130,6 +131,20 @@ def _configure_v3_users(snmp_engine: engine.SnmpEngine) -> None:
130131
continue
131132

132133
config.addV3User(snmp_engine, username, auth_protocol, auth_key, priv_protocol, priv_key)
134+
security_level = "noAuthNoPriv"
135+
if auth_protocol is not usmNoAuthProtocol and priv_protocol is usmNoPrivProtocol:
136+
security_level = "authNoPriv"
137+
elif auth_protocol is not usmNoAuthProtocol and priv_protocol is not usmNoPrivProtocol:
138+
security_level = "authPriv"
139+
config.addVacmUser(
140+
snmp_engine,
141+
3,
142+
username,
143+
security_level,
144+
VACM_SUBTREE,
145+
VACM_SUBTREE,
146+
VACM_SUBTREE,
147+
)
133148
logging.info(
134149
"Configured SNMPv3 user '%s' (auth=%s, priv=%s)",
135150
username,
@@ -165,6 +180,8 @@ def main() -> None:
165180
)
166181

167182
config.addV1System(snmp_engine, "trap-area", COMMUNITY)
183+
config.addVacmUser(snmp_engine, 1, "trap-area", "noAuthNoPriv", VACM_SUBTREE, VACM_SUBTREE, VACM_SUBTREE)
184+
config.addVacmUser(snmp_engine, 2, "trap-area", "noAuthNoPriv", VACM_SUBTREE, VACM_SUBTREE, VACM_SUBTREE)
168185
_configure_v3_users(snmp_engine)
169186

170187
def cb_fun(snmp_engine, state_reference, context_engine_id, context_name, var_binds, cb_ctx):

0 commit comments

Comments
 (0)