Allow setting the engineid.
authormartijn <martijn@openbsd.org>
Mon, 9 Aug 2021 18:14:53 +0000 (18:14 +0000)
committermartijn <martijn@openbsd.org>
Mon, 9 Aug 2021 18:14:53 +0000 (18:14 +0000)
commit73b5c081a08ab8132aaab716c8f4da9aebb020e7
tree7aed861d5c0679b4325983e905ca0c34302368a2
parent1d900c3f252ab206009f87d90e98ac9c4be954fa
Allow setting the engineid.

The previous engineid was based aronud the engine boottime and a random
value, which gives problems when sending/receiving unacknowledged PDUs
(trapv2) over SNMPv3 with authentication enabled, which need a consistent
engineid across restarts to determine the correct user from the sender.

The new default engineid takes a sha256 hash (chosen for its longer output)
of gethostname(3) and places the first 27 bytes after the new format number
129. This should give us a very low probability of collisions, assuming
all machines have a unique name.

The other formats as specified in SNMP-FRAMEWORK-MIB (RFC3411) are also
supported as well as arbitrary formats in the range 128-255 for other
private enterprise numbers in hex format.

OK jmatthew@
usr.sbin/snmpd/parse.y
usr.sbin/snmpd/snmpd.c
usr.sbin/snmpd/snmpd.conf.5
usr.sbin/snmpd/snmpd.h
usr.sbin/snmpd/snmpe.c
usr.sbin/snmpd/util.c