summaryrefslogtreecommitdiff
path: root/usr.sbin/snmpd
AgeCommit message (Collapse)Author
2021-01-28Remove print_{debug,verbose} since they're currently unused and I see noMartijn van Duren
reason to start using them in the future. OK tb@
2021-01-27these programs (with common ancestry) had a -fno-common problem relatedTheo de Raadt
to privsep_procid. ok mortimer
2021-01-22Remove the traphandler process, which was nothing more then a sham.Martijn van Duren
It did nothing more then receive a message over UDP, do some basic ber and ASN.1 parsing and forward the packet to the parent process. snmpe can do/does the same thing but with a far more thorough ASN.1 validation. Because we move trap receiving to snmpe we get trap over tcp for free. However, to make sure that a normal snmp port doesn't automatically start handling traps a new set of "listen on" flags are introduced: read, write, and notify. To enable trap handling either let snmpd listen on port 162 without flags, or add the notify flag. Only a flag without port results in listening on port 162. To keep current behaviour copy all UDP-based "listen on" lines without port and add the notify keyword: listen on 127.0.0.1 port 666 becomes listen on 127.0.0.1 port 666 listen on 127.0.0.1 notify This change also enforces snmpd to honor trap community on receiving a trap, where previously no community was checked before handling a packet. OK denis@, rob@
2021-01-05Refactor how traphandler verifies the code.Martijn van Duren
Two things of note: 1) traphandler_v1translate now translates v1 traps to v2 traps in line with RFC3584 section 3.1 before handing them over to the "command". This can cause compatibility issues if you still receive v1 traps. 2) sysUpTime and snmpTrapOID are now always taken from the varbindlist, which means that if you run snmpd with -N the names will now show up numerical in the script, instead of by their full symbolic name. lots of feedback and OK rob@
2021-01-04Remove BER_TYPE_BOOLEAN, it's not part of the spec and I haven't seen itMartijn van Duren
used anywhere. OK jan@
2020-10-30Remove the old deprecated listen on syntax.Martijn van Duren
OK deraadt@
2020-10-24double word blunder; from sean daviesJason McIntyre
2020-09-10Move the tcp/udp keyword before <address>. This allows for easier addingMartijn van Duren
of different protocols in the future. The old syntax is still supported for for now, but will generate a deprecation warning and will be removed in a future release. While here add support for specifying a tcp/udp port. This will be used for snmp services, "trap handle" will still only run on port 162. Feedback and OK denis@
2020-09-06Remove snmpe_dispatch_parent.Martijn van Duren
It's an empty stub and proc.c will put implement proc_dispatch_null if not set, which does the exact same thing. OK denis@
2020-09-06replace duplicated sizeofa marco with predefined nitemsjan
OK martijn@
2020-09-06Split "trap receiver" into its own trap_address struct and clean up theMartijn van Duren
code surrounding this struct and struct address. No functional change intended, except that trap receiver's source-address may now be a resolvable hostname. Tweaks and OK jan@
2020-08-23Merge listen_sock into address, since there's a 1:1 correlation. Save someMartijn van Duren
overhead and 18LoC. OK jan@
2020-08-17Previous commit broke two things:Martijn van Duren
1) Bulkget broke because mps_getbulkreq doesn't exactly do what it says on the tin, so use it how it works for now. 2) A break statement got left behind resulting in only a single varbind being answered. Reported and tested by sthen@
2020-08-08Greatly simplify snmpe_parsevarbinds.Martijn van Duren
except for some minor changes in the handling of snmp_intotal{req,set}vars no functional changes intended. OK jan@
2020-07-01Allow hrStorageSize and hrStorageUsed to cope with sizes larger thenMartijn van Duren
INT32_MAX by increasing the hrStorageAllocationUnits value until they fit. Original patch from Johan Huldtgren (johan+openbsd-tech <at> huldtgren <dot> com) OK sthen@
2020-07-01Remove control socket referenceMartijn van Duren
2020-06-30Remove agentx and control socket support.Martijn van Duren
snmpctl has been removed two releases ago, which makes the control interface obsolete. agentx support has always been quirky at best, but got completely broken with the BER_MAX_OID_LEN increase in ber.h. This change resulted in the oid length on the snmp side being left uninitialized because of size difference, resulting in weird behaviour. No one reported the breakage, even after 6.7 was released. This change requires users to remove the socket keyword from their snmpd.conf. OK denis@
2020-06-05Remove redundant codedenis
Reported by Prof. Dr. Steffen Wendzel <wendzel @ hs-worms . de>, thanks! OK martijn@ sthen@
2020-05-15pf(4): use CLOCK_BOOTTIME to get time_uptime(9) in userspacecheloha
In pf(4), the pf_status.since timestamp is set with time_uptime(9). This is a low-res snapshot of nanouptime(9). nanouptime(9) is used to implement CLOCK_BOOTTIME for clock_gettime(2). It is not used to implement CLOCK_UPTIME, though. The names are misleading. Switch to CLOCK_BOOTTIME in places in userspace where we use pf_status.since so we are working with the right clock. Technically CLOCK_MONOTONIC is equivalent, but we shouldn't use that here. CLOCK_MONOTONIC is not necessarily the "time since boot": the standard says its absolute value is meaningless. ok patrick@ bluhm@
2020-05-02If read-write is set to disabled, also disable reading with the privateMartijn van Duren
community. Issue reported by Steven Surdock ssurdock <at> engineered-net <dot> com OK deraadt@ claudio@ sthen@
2020-03-11Make traphandler_parse also set vbinds for SNMPv1 traps.Martijn van Duren
This also prevents the access of an initialized pointer in traphandler_fork_handler as found by jan@. OK jan@
2020-02-14Don't log a generr in stats when there is no error.Martijn van Duren
OK gerhard@
2020-02-10briefly mention /etc/examples/ in the FILES section of all theIngo Schwarze
manual pages that document the corresponding configuration files; OK jmc@, and general direction discussed with many
2020-01-28usr.sbin/snmpd: replace TAILQ concatenation loop with TAILQ_CONCATbket
OK florian@, martijn@. reads ok benno@
2020-01-02When many prefixes are stored in pf tables it is not sensibleFlorian Obser
to export them via snmp. Introduce option filter-pf-addresses similar to filter-routes which prevents exporting below the OPENBSD-PF-MIB::pfTblAddrTable oid. Other pf table statistics are uneffected by this and still available. With this I can do a bulkwalk starting at pfMIBObjects without hitting timeouts and without spinning the cpu at 100% for days to export 300k prefixes. man page input kn OK claudio, sthen. martijn is also fine with it going in.
2019-12-09Initialize length of uptime and trapoid for trap_agentx.Martijn van Duren
This probably needs a cleaner approach in the long run, but fixes the ober_oid_cmp for now. From gerhard_roth <at> genua <dot> de
2019-10-24The ber_* namespace is used by liblber since time immemorial,Theo Buehler
so move our BER API to the unused ober_* prefix to avoid some breakage in ports. Problem diagnosed by jmatthew with ber_free() in samba, but there are many others as pointed out by sthen. tests & ok rob ok sthen (who had an almost identical diff for libutil) "go head hit it" deraadt
2019-10-09Revert previous. This introduces problems when requesting the base oid of aMartijn van Duren
scalar. For example if you getnext request 1.3.6.1.4.1.30155.6.1.1 you get a varbind oid of 1.3.6.1.4.1.30155.6.1.1.0, but the value of 1.3.6.1.4.1.30155.6.1.2.0. I have a fix in the making, but we're too close to release and here be too many dragons. Found by bluhm@
2019-10-03For getnext request check if the requested oid or one of its parentMartijn van Duren
elements exists and is a (agentx) registered element. If so, forward the getnext to the subagent, else get the actual next element. This is only a partial fix, but lets us at least (together with a different patch for relayd) walk relayd's elements. OK claudio@
2019-08-14Fix ber_scanf_elements for traphandler:Martijn van Duren
- pdu header has 3 elements, not 4 - additional varbinds are optional. This is needed to make ber_scanf_elements stricter. Note that people using "trap handle" in their snmpd.conf and expect a trap without additional varbinds to show the trapoid to appear twice will have to adjust their "command". OK rob@
2019-08-13snmpd was using ifq_len for ifOutQLen, apart from being the wrong variableStuart Henderson
for this MIB in the first place, this has now been removed in ifq changes. Since the MIB is marked as deprecated anyway, simply return 0. ok claudio@
2019-08-13Report if_iqdrops (input queue drops) as ifInDiscards. This is prettyClaudio Jeker
much what this counter is for. For sure better than net.inet.ip.ifq.drops which no longer exists. Found by and OK martijn@ and OK sthen@
2019-08-09Replace snmpctl(8) references with snmp(1).Martijn van Duren
2019-08-08added /* no filesystem visibility */ above unveil("/", "") since "" is too easyRicardo Mestre
to misread. as per suggestion by and OK deraadt@
2019-06-28When system calls indicate an error they return -1, not some arbitraryTheo de Raadt
value < 0. errno is only updated in this case. Change all (most?) callers of syscalls to follow this better, and let's see if this strictness helps us in the future.
2019-06-11Implement SHA-2 (RFC7860) support for authentication.Martijn van Duren
OK claudio@, gerhard@
2019-06-11The digestlength is not always 12 bytes. Make this value variable inMartijn van Duren
preparation for SHA-2 support. OK claudio@, gerhard@
2019-05-16Allow arbitrary oids to be specified for the getnext request, instead ofMartijn van Duren
oids needing to be part of the snmpd loaded tree. This is in line with RFC3416. OK gerhard@ who apparently has the exact same diff in his repo.
2019-05-13According to RFC3414 section 4 applications should be able to discover theMartijn van Duren
snmpEngineBoots and snmpEngineTime by sending an AuthPriv request with the requested values set to zero and with a valid user. Move the engine_boots and engine_time down after the user check and remove the 0-check, so we can reply with the appropriate usmStatsNotInTimeWindows. This allows us to use p5-Net-SNMP against snmpd with seclevel enc. OK rob@
2019-05-13According to RFC3414 section 4 applications should be able to discover theMartijn van Duren
snmpEngineID by sending a noAuthNoPriv request. Move the seclevel check to after the usm_decode phase, so we can reply with the mandatory usmStatsUnknownEngineIDs instead of usmStatsUnsupportedSecLevels. This brings us one step closer to using p5-Net-SNMP with seclevel enc. OK tb@, rob@
2019-05-11The BER API is currently used by ldap, ldapd, ldapctl, ypldap, snmpd, androb
snmpctl. Separate copies of ber.[ch] have existed and been maintained in sync in ldap, ldapd, ypldap and snmpd. This commit moves the BER API into /usr/lib/libutil. All current consumers already link libutil. ldapd and snmpd regress passes, and release builds. With help from tb@ and guenther@. ok deraadt@, tb@
2019-05-02Index 0 is out of range for hrStorageIndex.Gerhard Roth
ok reyk@
2019-04-29Remove unnecessary end-of-contents octets.rob
ok claudio@
2019-04-27Only apply sign extension when less than eight bytes have been consumed. Thisrob
fixes a problem when handling large negative integers. ok claudio@
2019-03-24Include two new functions added by martijn@. Still a work in progress.rob
2019-02-13(unsigned) means (unsigned int) which on ptrdiff_t or size_t or otherTheo de Raadt
larger types really is a range reduction... Almost any cast to (unsigned) is a bug. ok millert tb benno
2019-01-22PF_ROUTE -> AF_ROUTE in the scattered sock()/setsockopt() callsKenneth R Westerback
where the "wrong" #define was used. ok dlg@
2019-01-08The child processes of snmpd(8) did not detach from the terminal.Alexander Bluhm
Dup /dev/null to the stdio file descriptors in the children. based on a fix for httpd(8) and relayd(8); from Jan Klemkow
2018-12-13fix printf statements when compiled with -DDEBUG.Martijn van Duren
OK deraadt@, tb@, claudio@
2018-12-10Add a velocity sensor type (displayed as m/s)Landry Breuil
Change distance sensor type to be displayed as meters with 3 decimals instead of millimeters. ok mpi@ kettenis@