651 lines
30 KiB
HTML
651 lines
30 KiB
HTML
<!--lint disable double-link-->
|
||
<h1 id="awesome-snmp-awesome">Awesome SNMP <a
|
||
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
|
||
alt="Awesome" /></a></h1>
|
||
<p><a
|
||
href="https://github.com/eozer/awesome-snmp/actions/workflows/awesome-lint.yml"><img
|
||
src="https://github.com/eozer/awesome-snmp/actions/workflows/awesome-lint.yml/badge.svg"
|
||
alt="Awesome lint" /></a></p>
|
||
<p><a
|
||
href="https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol">Simple
|
||
Network Management Protocol (SNMP)</a> is an Internet Standard protocol
|
||
for collecting and organizing information about managed devices on IP
|
||
networks and for modifying that information to change device
|
||
behaviour.</p>
|
||
<p>This is a curated list of awesome SNMP libraries, tools, and other
|
||
resources. Contributions are welcome!</p>
|
||
<h2 id="contents">Contents</h2>
|
||
<ul>
|
||
<li><a href="#libraries">Libraries</a>
|
||
<ul>
|
||
<li><a href="#cc">C/C++</a></li>
|
||
<li><a href="#c">C#</a></li>
|
||
<li><a href="#erlang">Erlang</a></li>
|
||
<li><a href="#go">Go</a></li>
|
||
<li><a href="#java">Java</a></li>
|
||
<li><a href="#javascript">JavaScript</a></li>
|
||
<li><a href="#lua">Lua</a></li>
|
||
<li><a href="#php">PHP</a></li>
|
||
<li><a href="#python">Python</a></li>
|
||
<li><a href="#ruby">Ruby</a></li>
|
||
<li><a href="#rust">Rust</a></li>
|
||
</ul></li>
|
||
<li><a href="#tools">Tools</a>
|
||
<ul>
|
||
<li><a href="#clis">CLIs</a></li>
|
||
<li><a href="#guis">GUIs</a></li>
|
||
</ul></li>
|
||
<li><a href="#publications">Publications</a>
|
||
<ul>
|
||
<li><a href="#books">Books</a></li>
|
||
<li><a href="#rfcs">RFCs</a></li>
|
||
<li><a href="#tutorials">Tutorials</a></li>
|
||
</ul></li>
|
||
<li><a href="#public-servers">Public servers</a></li>
|
||
<li><a href="#mib-repositories">MIB repositories</a></li>
|
||
<li><a href="#miscellaneous">Miscellaneous</a></li>
|
||
</ul>
|
||
<h2 id="libraries">Libraries</h2>
|
||
<p><em>Helpful to write SNMP applications.</em></p>
|
||
<h3 id="cc">C/C++</h3>
|
||
<ul>
|
||
<li><a href="http://www.net-snmp.org/">net-snmp</a> - A suite of
|
||
software for using and deploying the SNMP protocol (v1, v2c and v3 and
|
||
the AgentX subagent protocol). Contains also Python bindings.</li>
|
||
<li><a href="https://www.agentpp.com/api/cpp/snmp_pp.html">SNMP++</a> -
|
||
BSD licensed SNMP implemention from HP. Supports SNMP v1/2c/v3,
|
||
thread-safety, and many more.</li>
|
||
<li><a href="https://www.agentpp.com/api/cpp/agent_pp.html">AGENT++</a>
|
||
- The AGENT++ C++ framework provides a complete tri-lingual SNMP v1/2c/3
|
||
protocol engine and dispatcher for the development of SNMP agents.
|
||
Apache licensed.</li>
|
||
<li><a
|
||
href="https://www.agentpp.com/api/cpp/agentx_pp.html">AgentX++</a> - The
|
||
AgentX++ C++ framework provides a complete AgentX protocol (RFC 2741)
|
||
implementation that adds AgentX master and sub-agent support to AGENT++
|
||
(<code>Commercial</code>).</li>
|
||
<li><a href="https://sourceforge.net/projects/opensnmp/">openSNMP</a> -
|
||
BSD licensed multi-threaded implementation of SNMPv3.</li>
|
||
</ul>
|
||
<h3 id="c">C</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/lextudio/sharpsnmplib">C# SNMP
|
||
Library</a> - MIT licensed SNMP library for .NET with extensive SNMP
|
||
standard support, latest .NET platform targets, as well as rich
|
||
manager/agent samples.</li>
|
||
<li><a href="https://pro.sharpsnmp.com">SNMP Pro</a> - Commercial
|
||
extension that adds enterprise MIB support.</li>
|
||
<li><a href="https://github.com/rqx110/SnmpSharpNet">SnmpSharpNet</a> -
|
||
Simple Network Management Protocol (SNMP) .Net library written in C#
|
||
(csharp). Implements protocol version 1, 2 and 3.</li>
|
||
</ul>
|
||
<h3 id="erlang">Erlang</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.erlang.org/doc/apps/snmp/users_guide.html">Erlang/OTP
|
||
SNMP</a> - SNMP development is included as a component of the
|
||
Erlang/Open Telecom Platform development environment.</li>
|
||
</ul>
|
||
<h3 id="go">Go</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/gosnmp/gosnmp">gosnmp/gosnmp</a> - An
|
||
SNMP library written in Go. It provides Get, GetNext, GetBulk, Walk,
|
||
BulkWalk, Set and Traps. It supports IPv4/IPv6, using SNMP
|
||
v1/v2c/v3.</li>
|
||
<li><a
|
||
href="https://github.com/sleepinggenius2/gosmi">sleepinggenius2/gosmi</a>
|
||
- MIB parser in Go language.</li>
|
||
<li><a href="https://github.com/posteo/go-agentx">posteo/go-agentx</a> -
|
||
A library with a pure Go implementation of the AgentX-Protocol.</li>
|
||
</ul>
|
||
<h3 id="java">Java</h3>
|
||
<ul>
|
||
<li><a href="https://www.agentpp.com/api/java/snmp4j.html">SNMP4J</a> -
|
||
SNMP4J is an enterprise class, free open source, and state-of-the-art
|
||
SNMP v1/2c/v3 implementation for Java™.</li>
|
||
<li><a
|
||
href="https://www.agentpp.com/api/java/snmp4jagent.html">SNMP4J-Agent</a>
|
||
- SNMP4J-Agent is a Java™ API on top of the core SNMP4J API for the
|
||
development of SNMP agents (command responders).</li>
|
||
<li><a href="https://sourceforge.net/projects/joesnmp/">joeSNMP</a> -
|
||
joeSNMP is an open-source Java SNMP class library published under the
|
||
LGPL.</li>
|
||
<li><a href="https://snmp.westhawk.co.uk/">Westhawk’s SNMP</a> - An
|
||
open-sourced Java library that can be used for SNMP v1/v2c/v3. Supports
|
||
traps, authentication and privacy. As authentication protocols it offers
|
||
MD5 and SHA1.</li>
|
||
<li><a href="https://github.com/cederberg/mibble">mibble</a> - Mibble is
|
||
an open-source SNMP MIB (or SMI) parser library for Java.</li>
|
||
</ul>
|
||
<h3 id="javascript">JavaScript</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/markabrahams/node-net-snmp">node-net-snmp</a> -
|
||
JavaScript implementation of the Simple Network Management Protocol
|
||
(SNMP), implements versions 1, 2c and 3.</li>
|
||
<li><a
|
||
href="https://github.com/calmh/node-snmp-native">node-snmp-native</a> -
|
||
Native JavaScript SNMP library for Node.js.</li>
|
||
<li><a href="https://github.com/joyent/node-snmpjs">node-snmpjs</a> -
|
||
This package provides a toolkit for SNMP agents and management
|
||
applications in Node.js.</li>
|
||
<li><a href="https://github.com/neias/snmp-node">snmp-node</a> - Native
|
||
JavaScript SNMP library for Node.js.</li>
|
||
</ul>
|
||
<h3 id="lua">Lua</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/hleuwer/luasnmp">luasnmp</a> - Lua
|
||
binding to net-snmp library.</li>
|
||
</ul>
|
||
<h3 id="php">PHP</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://www.php.net/manual/en/book.snmp.php">php.net/SNMP</a> -
|
||
This is an SNMP extension for PHP, which is a wrapper around the
|
||
net-snmp library.</li>
|
||
<li><a href="https://github.com/FreeDSx/SNMP">FreeDSx/SNMP</a> - A Pure
|
||
PHP SNMP Library.</li>
|
||
<li><a
|
||
href="https://github.com/opensolutions/OSS_SNMP">opensolutions/OSS_SNMP</a>
|
||
- A PHP SNMP library for people who hate SNMP, MIBs and OIDs!</li>
|
||
</ul>
|
||
<h3 id="python">Python</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/lextudio/pysnmp">pysnmp</a> - This is a
|
||
pure-Python, open source and free implementation of v1/v2c/v3 SNMP
|
||
engine distributed under 2-clause BSD license.
|
||
<ul>
|
||
<li>This project is derived from <a
|
||
href="https://github.com/etingof/pysnmp">the original repo</a>.</li>
|
||
</ul></li>
|
||
<li><a href="https://github.com/lextudio/pysmi">pysmi</a> - PySMI is a
|
||
pure-Python implementation of SNMP SMI MIB parser.
|
||
<ul>
|
||
<li>This project is derived from <a
|
||
href="https://github.com/etingof/pysmi">the original repo</a>.</li>
|
||
</ul></li>
|
||
<li><a href="https://github.com/gufolabs/gufo_snmp">gufo_snmp</a> - The
|
||
accelerated Python SNMP client library supporting both async and
|
||
synchronous mode. It consists of a clean Python API for high-efficient
|
||
BER parser and socket IO, implemented in the Rust language with PyO3
|
||
wrapper. Seems to be a bit early in the project’s lifecycle, but it is
|
||
easy to use and <strong><em>extremely</em></strong> fast, especially
|
||
when querying many devices. <img
|
||
src="https://img.shields.io/github/last-commit/gufolabs/gufo_snmp"
|
||
alt="GitHub last commit" /></li>
|
||
<li><a
|
||
href="http://www.net-snmp.org/wiki/index.php/Python_Bindings">net-snmp
|
||
Python bindings</a> - Net-SNMP 5.4 and later contains Python bindings in
|
||
the “python” sub-directory, though, they are not built by default. <img
|
||
src="https://img.shields.io/github/last-commit/net-snmp/net-snmp"
|
||
alt="GitHub last commit" /></li>
|
||
<li><a href="https://github.com/easysnmp/easysnmp">easysnmp</a> - A fork
|
||
of <a
|
||
href="http://www.net-snmp.org/wiki/index.php/Python_Bindings">net-snmp
|
||
Python bindings</a> that attempts to bring a more Pythonic interface to
|
||
the library. <img
|
||
src="https://img.shields.io/github/last-commit/easysnmp/easysnmp"
|
||
alt="GitHub last commit" /></li>
|
||
<li><a href="https://github.com/exhuma/puresnmp">puresnmp</a> - Pure
|
||
Python3 SNMPv2 library without any dependencies. <img
|
||
src="https://img.shields.io/github/last-commit/exhuma/puresnmp"
|
||
alt="GitHub last commit" /></li>
|
||
<li><a href="https://github.com/vincentbernat/snimpy">snimpy</a> -
|
||
Snimpy is a Python-based tool providing a simple interface to build SNMP
|
||
query. <img
|
||
src="https://img.shields.io/github/last-commit/vincentbernat/snimpy"
|
||
alt="GitHub last commit" /></li>
|
||
<li><a
|
||
href="https://github.com/pief/python-netsnmpagent">python-netsnmpagent</a>
|
||
- This package allows to write net-snmp subagents in Python. <img
|
||
src="https://img.shields.io/github/last-commit/pief/python-netsnmpagent"
|
||
alt="GitHub last commit" /></li>
|
||
<li><a href="https://github.com/trehn/hnmp">hnmp</a> - HNMP is a
|
||
high-level Python library to ease the pain of retrieving and processing
|
||
data from SNMP-capable devices such as network switches, routers, and
|
||
printers. <img
|
||
src="https://img.shields.io/github/last-commit/trehn/hnmp"
|
||
alt="GitHub last commit" /></li>
|
||
<li><a href="https://github.com/hh-h/aiosnmp">aiosnmp</a> - Python
|
||
package aiosnmp is an asynchronous SNMP client for use with asyncio.
|
||
Only SNMP v2c is supported. <img
|
||
src="https://img.shields.io/github/last-commit/hh-h/aiosnmp"
|
||
alt="GitHub last commit" /></li>
|
||
<li><a
|
||
href="https://github.com/kontron/robotframework-snmplibrary">robotframework-snmplibrary</a>
|
||
- SNMPLibrary is a Robot Framework test library for testing SNMP. <img
|
||
src="https://img.shields.io/github/last-commit/kontron/robotframework-snmplibrary"
|
||
alt="GitHub last commit" /></li>
|
||
<li><a href="https://github.com/secdev/scapy">Scapy</a> - Packet
|
||
manipulation program & library. Scapy has a <a
|
||
href="https://github.com/secdev/scapy/blob/master/scapy/layers/snmp.py">module</a>
|
||
to build/dissect SNMP packets. <img
|
||
src="https://img.shields.io/github/last-commit/secdev/scapy"
|
||
alt="GitHub last commit" /></li>
|
||
</ul>
|
||
<h3 id="ruby">Ruby</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/swisscom/ruby-netsnmp">ruby-netsnmp</a>
|
||
- SNMP library in ruby (v1, v2c, v3).</li>
|
||
</ul>
|
||
<h3 id="rust">Rust</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/rusticata/snmp-parser">snmp-parser</a> -
|
||
SNMP parser written in rust with nom parser combinator framework.</li>
|
||
<li><a
|
||
href="https://github.com/davedufresne/modern_snmp">davedufresne/modern_snmp</a>
|
||
- Modern SNMP is a pure-Rust library for SNMPv3. This repository
|
||
includes snmp_mp (SNMPv3 Message Processing) and snmp_usm
|
||
(Implementation of the User-based Security Model (USM) for SNMPv3)
|
||
crates.</li>
|
||
<li><a href="https://github.com/Svedrin/sunt">Svedrin/sunt</a> - This
|
||
repository implements an SNMP Agent written in Rust.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="tools">Tools</h2>
|
||
<p><em>You use these to work with SNMP easier.</em></p>
|
||
<h3 id="clis">CLIs</h3>
|
||
<ul>
|
||
<li><a href="http://www.net-snmp.org/">net-snmp tools</a> - The
|
||
applications listed here are part of net-snmp.
|
||
<ul>
|
||
<li><a
|
||
href="http://www.net-snmp.org/docs/man/encode_keychange.html">encode_keychange</a>
|
||
- Produces the KeyChange string for SNMPv3.</li>
|
||
<li><a
|
||
href="http://www.net-snmp.org/docs/man/snmptranslate.html">snmptranslate</a>
|
||
- Translates MIB OID names between numeric and textual forms.</li>
|
||
<li><a href="http://www.net-snmp.org/docs/man/snmpget.html">snmpget</a>
|
||
- Communicates with a network entity using SNMP GET requests.</li>
|
||
<li><a
|
||
href="http://www.net-snmp.org/docs/man/snmpgetnext.html">snmpgetnext</a>
|
||
- Communicates with a network entity using SNMP GETNEXT requests.</li>
|
||
<li><a
|
||
href="http://www.net-snmp.org/docs/man/snmpbulkget.html">snmpbulkget</a>
|
||
- Communicates with a network entity using SNMP GETBULK requests.</li>
|
||
<li><a
|
||
href="http://www.net-snmp.org/docs/man/snmpwalk.html">snmpwalk</a> -
|
||
Retrieves a subtree of management values using SNMP GETNEXT
|
||
requests.</li>
|
||
<li><a
|
||
href="http://www.net-snmp.org/docs/man/snmpbulkwalk.html">snmpbulkwalk</a>
|
||
- Retrieves a subtree of management values using SNMP GETBULK
|
||
requests.</li>
|
||
<li><a href="http://www.net-snmp.org/docs/man/snmpset.html">snmpset</a>
|
||
- Communicates with a network entity using SNMP SET requests.</li>
|
||
<li><a
|
||
href="http://www.net-snmp.org/docs/man/snmptest.html">snmptest</a> -
|
||
Communicates with a network entity using SNMP requests.</li>
|
||
<li><a
|
||
href="https://net-snmp.sourceforge.io/docs/man/snmptable.html">snmptable</a>
|
||
- Retrieve an SNMP table and display it in tabular form.</li>
|
||
<li><a
|
||
href="https://net-snmp.sourceforge.io/docs/man/snmpdelta.html">snmpdelta</a>
|
||
- Monitor delta differences in SNMP Counter values.</li>
|
||
<li><a href="http://www.net-snmp.org/docs/man/snmpusm.html">snmpusm</a>
|
||
- Manipulates the SNMPv3 User-based-security user table.</li>
|
||
<li><a
|
||
href="http://www.net-snmp.org/docs/man/snmpvacm.html">snmpvacm</a> -
|
||
Manipulates the SNMPv3 View-based-access-control-module configuration
|
||
tables.</li>
|
||
<li><a
|
||
href="https://net-snmp.sourceforge.io/docs/man/snmpstatus.html">snmpstatus</a>
|
||
- Retrieves a fixed set of management information from a network
|
||
entity.</li>
|
||
<li><a
|
||
href="https://net-snmp.sourceforge.io/docs/man/snmpnetstat.html">snmpnetstat</a>
|
||
- Display networking status and configuration information from a network
|
||
entity via SNMP.</li>
|
||
<li><a href="http://www.net-snmp.org/docs/man/snmpdf.html">snmpdf</a> -
|
||
Displays disk information like the unix df tool using information
|
||
collected from SNMP.</li>
|
||
<li><a
|
||
href="http://www.net-snmp.org/docs/man/snmptrap.html">snmptrap</a> -
|
||
Sends SNMP TRAP or INFORM notification messages.</li>
|
||
<li><a
|
||
href="http://www.net-snmp.org/docs/man/snmptrap.html">snmpinform</a> -
|
||
Send INFORM notification messages. snmpinform command is functionally
|
||
the same as snmptrap -Ci.</li>
|
||
<li><a
|
||
href="http://www.net-snmp.org/docs/man/snmptrapd.html">snmptrapd</a> -
|
||
An SNMP daemon that listens for SNMP TRAPs or INFORMs and logs or acts
|
||
upon them.</li>
|
||
<li><a
|
||
href="https://net-snmp.sourceforge.io/docs/man/traptoemail.html">traptoemail</a>
|
||
- This an snmptrapd handler script to convert snmp traps into
|
||
emails.</li>
|
||
<li><a
|
||
href="https://net-snmp.sourceforge.io/docs/man/net-snmp-config.html">net-snmp-config</a>
|
||
- Returns information about installed net-snmp libraries and
|
||
binaries.</li>
|
||
<li><a
|
||
href="https://net-snmp.sourceforge.io/docs/man/snmpconf.html">snmpconf</a>
|
||
- Creates and modifies SNMP configuration files.</li>
|
||
<li><a
|
||
href="https://net-snmp.sourceforge.io/docs/man/fixproc.html">fixproc</a>
|
||
- Fixes a process by performing the specified action.</li>
|
||
<li><a href="http://www.net-snmp.org/docs/man/snmpd.html">snmpd</a> - An
|
||
SNMP agent that responds to SNMP requests for a given host.</li>
|
||
<li><a
|
||
href="https://net-snmp.sourceforge.io/docs/man/mib2c.html">mib2c</a> - A
|
||
MIB conversion utility that can translate MIB structures into other
|
||
forms, such as C-code.</li>
|
||
<li><a
|
||
href="https://net-snmp.sourceforge.io/docs/man/mib2c-update.html">mib2c-update</a>
|
||
- This a script to merge custom code into updated mib2c code.</li>
|
||
</ul></li>
|
||
<li><a href="https://www.agentpp.com/tools/snmp4jclt.html">SNMP4JCLT</a>
|
||
- Use the SNMP4J Command Line Tool (CLT) to send SNMPv1/v2c/v3 requests
|
||
and traps to a target with IPv4 or v6 based UDP, TCP, or TLSv1,2
|
||
transport (<code>Commercial</code>).</li>
|
||
<li><a href="https://www.ibr.cs.tu-bs.de/projects/libsmi/">libsmi
|
||
tools</a> - Applications built on top of libsmi and an sh/awk script
|
||
that are integrated with the libsmi distribution.
|
||
<ul>
|
||
<li><a
|
||
href="https://www.ibr.cs.tu-bs.de/projects/libsmi/smilint.html">smilint</a>
|
||
- This is used to check MIB or PIB modules for syntax errors and
|
||
semantics at some degree. SMIv1/v2 style MIB modules as well as SPPI PIB
|
||
modules are supported.</li>
|
||
<li><a
|
||
href="https://www.ibr.cs.tu-bs.de/projects/libsmi/smidump.html">smidump</a>
|
||
- This is a MIB/PIB compiler. It allows to dump the contents of a module
|
||
in various formats: SMIv1, SMIv2, SMIng, SPPI, Import Trees, Type
|
||
Definition Trees, OID Node Trees, MOSY Style, and CORBA IDL definitions
|
||
according to the JIDM Specs, and others.</li>
|
||
<li><a
|
||
href="https://www.ibr.cs.tu-bs.de/projects/libsmi/smidiff.html">smidiff</a>
|
||
- This is a tool that parses two revisions of a MIB module and analyzes
|
||
the modifications from the old to the new revision.</li>
|
||
<li><a
|
||
href="https://www.ibr.cs.tu-bs.de/projects/libsmi/smiquery.html">smiquery</a>
|
||
- This is a MIB/PIB query front end. It can be used to query single
|
||
items from the command line.</li>
|
||
<li><a
|
||
href="https://www.ibr.cs.tu-bs.de/projects/libsmi/smistrip.html">smistrip</a>
|
||
- This is a simple shell/awk script that allows to extract MIB and PIB
|
||
modules from documents, such as RFCs or Internet Drafts.</li>
|
||
</ul></li>
|
||
<li><a href="https://github.com/etingof/snmpsim">snmpsim</a> - This is a
|
||
pure-Python, open source and free implementation of SNMP agents
|
||
simulator distributed under 2-clause BSD license.</li>
|
||
<li><a href="https://github.com/etingof/snmpfwd">snmpfwd</a> - The SNMP
|
||
Proxy Forwarder tool works as an application-level proxy with a built-in
|
||
SNMP message router. Typical use case for an SNMP proxy is to work as an
|
||
application-level firewall or a protocol translator that enables SNMPv3
|
||
access to a SNMPv1/SNMPv2c entity or vice versa.</li>
|
||
<li><a href="https://github.com/etingof/snmpclitools">snmpclitools</a> -
|
||
This is a collection of command-line SNMP tools written in pure-Python.
|
||
The tools mimic their famous Net-SNMP counterparts. It includes
|
||
snmpget.py, snmpset.py, snmpwalk.py, snmpbulkwalk.py, snmptrap.py, and
|
||
snmptranslate.py, see <a
|
||
href="https://snmplabs.thola.io/snmpclitools/">here</a> for more
|
||
details.</li>
|
||
<li><a href="https://github.com/hatlord/snmpwn">snmpwn</a> - SNMPwn is
|
||
an SNMPv3 user enumerator and attack tool.</li>
|
||
<li><a href="https://github.com/dropbox/trapperkeeper">trapperkeeper</a>
|
||
- A suite of tools for ingesting and displaying SNMP traps. This is
|
||
designed as a replacement for snmptrapd and to supplement existing
|
||
stateful monitoring solutions.</li>
|
||
<li><a href="http://www.snmptt.org/">SNMP Trap Translator</a> - SNMPTT
|
||
(SNMP Trap Translator) is an SNMP trap handler written in Perl for use
|
||
with the Net-SNMP / UCD-SNMP snmptrapd program (www.net-snmp.org).
|
||
<ul>
|
||
<li><a href="http://www.snmptt.org/docs/snmptt.shtml">snmptt</a> -
|
||
SNMPTT (SNMP Trap Translator) is an SNMP trap handler written in Perl
|
||
for use with the Net-SNMP / UCD-SNMP snmptrapd program
|
||
(www.net-snmp.org). SNMPTT supports Linux, Unix and Windows.</li>
|
||
<li><a
|
||
href="http://www.snmptt.org/docs/snmpttconvert.shtml">snmpttconvert</a>
|
||
- Some vendors provide a file that can be imported into HP Openview
|
||
using a HP Openview utility. snmpttconvert is a simple Perl script which
|
||
will convert one of these files into the format used by snmptt.</li>
|
||
<li><a
|
||
href="http://www.snmptt.org/docs/temp/snmpttconvertmib.shtml">snmpttconvertmib</a>
|
||
- The snmpttconvertmib is a Perl script which will read a MIB file and
|
||
convert the TRAP-TYPE (v1) or NOTIFICATION-TYPE (v2) definitions into a
|
||
configuration file readable by snmptt.</li>
|
||
</ul></li>
|
||
<li><a
|
||
href="https://github.com/prometheus/snmp_exporter">prometheus/snmp_exporter</a>
|
||
- This exporter is the recommended way to expose SNMP data in a format
|
||
which Prometheus can ingest.</li>
|
||
<li><a
|
||
href="https://github.com/trailofbits/onesixtyone">trailofbits/onesixtyone</a>
|
||
- Fast SNMP Scanner.</li>
|
||
<li><a
|
||
href="https://github.com/SECFORCE/SNMP-Brute">SECFORCE/SNMP-Brute</a> -
|
||
Fast SNMP brute force, enumeration, CISCO config downloader and password
|
||
cracking script.</li>
|
||
<li><a href="https://github.com/hatlord/snmpwn">hatlord/snmpwn</a> - An
|
||
SNMPv3 User Enumerator and Attack tool.</li>
|
||
<li><a
|
||
href="https://github.com/zabbix-tools/mib2zabbix">zabbix-tools/mib2zabbix</a>
|
||
- This Perl script will generate a Zabbix v3 Template in XML format from
|
||
an OID tree in a SNMP MIB file.</li>
|
||
<li><a href="https://github.com/patrickscottbest/OIDrage">OIDrage</a> -
|
||
A lightweight standalone SNMPd mimic server based on any snmpwalk
|
||
output. Easily scales to mock thousands of servers.</li>
|
||
</ul>
|
||
<h3 id="guis">GUIs</h3>
|
||
<ul>
|
||
<li><a href="http://www.net-snmp.org/">tkmib</a> - A perl/Tk interactive
|
||
graphical MIB browser for SNMP.</li>
|
||
<li><a href="https://www.agentpp.com/tools/mibdesigner.html">agentpp/MIB
|
||
Designer</a> - Use MIB Designer to create, edit, manage, and explore SMI
|
||
specifications (<code>Commercial</code>).</li>
|
||
<li><a href="https://www.agentpp.com/tools/mibexplorer.html">agentpp/MIB
|
||
Explorer Pro</a> - Use MIB Explorer to browse, configure,
|
||
test&debug, monitor, and discover SNMPv1/2c/3 entities.</li>
|
||
<li><a href="https://www.sharpsnmp.com/">sharpsnmp/SNMP Pro</a> - A
|
||
family of .NET based SNMP products, including the commercial MIB
|
||
Compiler, MIB Assembly, and the open source Library.</li>
|
||
<li><a
|
||
href="https://www.paessler.com/tools/snmptester">paessler/snmptester</a>
|
||
- This tool enables you to debug SNMP activities to find communication
|
||
and/or data issues in SNMP monitoring configurations. Windows.</li>
|
||
<li><a href="http://ireasoning.com/mibbrowser.shtml">ireasoning/MIB
|
||
Browser</a> - This tool allows users to load standard, proprietary MIBs,
|
||
and even some mal-formed MIBs. It also allows them to issue SNMP
|
||
requests to retrieve agent’s data, or make changes to the agent. Free
|
||
for personal use.</li>
|
||
<li><a href="http://ireasoning.com/snmpsimulator.shtml">ireasoning/SNMP
|
||
Agent Simulator</a> - Free SNMP Agent Simulator Java based application
|
||
that can simulate SNMPv1/v2c/v3 agents.</li>
|
||
<li><a href="https://github.com/sisraell/VisualSNMP">Visual SNMP</a> -
|
||
Visual SNMP is a simple tool for testing access to SNMP agents.
|
||
Currently SNMPGET and SNMPWALK are supported with some limited
|
||
funcionality.</li>
|
||
<li><a href="http://www.muonics.com/Tools/smicheck.php">muonics/Online
|
||
MIB validator</a> - Free online MIB/PIB Validator based on MIB Smithy
|
||
SDK.</li>
|
||
<li><a
|
||
href="https://github.com/toni-moreno/snmpcollector">toni-moreno/snmpcollector</a>
|
||
- SnmpCollector is a full featured Generic SNMP data collector with Web
|
||
Administration Interface Open Source tool which has as main goal
|
||
simplify the configuration for getting data from any device which snmp
|
||
protocol support and send resulting data to an influxdb backend.</li>
|
||
<li><a
|
||
href="https://www.unleashnetworks.com/products/unbrowse-snmp.html">Unbrowse
|
||
SNMP</a> - Unbrowse SNMP is a tool that helps to compile cryptic MIB
|
||
files into an easy GUI view, retrieve and set MIB variables on devices,
|
||
import snmpwalk dumps, receive traps, chart counters, and much
|
||
more.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="publications">Publications</h2>
|
||
<p><em>How-to’s, tutorials, blog posts, documentation and
|
||
books.</em></p>
|
||
<h3 id="books">Books</h3>
|
||
<ul>
|
||
<li><a href="https://mwl.io/nonfiction/networking#networknomicon">The
|
||
Networknomicon, or SNMP Mastery by Abdul Alhazred and Michael W.
|
||
Lucas</a> - The Simple Network Management Protocol, SNMP, empowers you
|
||
to invoke ancient standards from the void. SNMP exposes the secrets of
|
||
your network and servers, and–if you’re careless–reconfigures them into
|
||
unspeakable nightmares. It exposes your inadequate brain to the vast
|
||
alien dimensions underlying modern computing.</li>
|
||
<li><a href="https://mwl.io/nonfiction/networking#snmp">SNMP Mastery by
|
||
Michael W. Lucas</a> - SNMP, Simple Network Management Protocol, Four
|
||
lies in one acronym?</li>
|
||
<li><a
|
||
href="https://www.amazon.com/SNMP-MIB-Handbook-Larry-Walsh/dp/0981492207">SNMP
|
||
MIB Handbook by Larry Walsh</a> - Essential Guide to SNMP MIB
|
||
Development, Use, and Diagnosis.</li>
|
||
<li><a
|
||
href="https://www.amazon.com/Essential-SNMP-System-Network-Administrators-ebook/dp/B0043EWUZ2">Mauro,
|
||
D. and Schmidt, K., 2005. Essential SNMP: Help for System and Network
|
||
Administrators. ” O’Reilly Media, Inc.”.</a> - Essential SNMP explores
|
||
both commercial and open source packages, and elements like OIDs, MIBs,
|
||
community strings, and traps are covered in depth. The book contains
|
||
five new chapters and various updates throughout.</li>
|
||
<li><a
|
||
href="https://www.amazon.com/Snmp-Snmpv2-Snmpv3-William-Stallings/dp/0201485346">Snmp,
|
||
Snmpv2, Snmpv3, and Rmon 1 and 2 by William Stallings</a> - Presents a
|
||
concise, focused & practical guide to SNMP-based network &
|
||
internetwork management for network administrators, managers, &
|
||
designers.</li>
|
||
<li><a
|
||
href="https://www.amazon.com/Understanding-SNMP-MIBs-David-Perkins/dp/0134377087">Perkins,
|
||
D. and McGinnis, E., 1997. Understanding SNMP MIBs (p. 528). Englewood
|
||
Cliffs: Prentice Hall PTR.</a> - The first complete, practical insider’s
|
||
guide to writing SNMP MIBs.</li>
|
||
</ul>
|
||
<h3 id="rfcs">RFCs</h3>
|
||
<ul>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc1098.txt">rfc1098</a> - A
|
||
Simple Network Management Protocol (version 1).</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc1155.txt">rfc1155</a> -
|
||
Structure and Identification of Management Information.</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc2578.txt">rfc2578</a> -
|
||
Structure of Management Information Version 2 (SMIv2).</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc2741.txt">rfc2741</a> - Agent
|
||
Extensibility (AgentX) Protocol Version 1.</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc2742.txt">rfc2742</a> -
|
||
Definitions of Managed Objects for Extensible SNMP Agents.</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc3410.txt">rfc3410</a> -
|
||
Introduction and Applicability Statements for Internet Standard
|
||
Management Framework.</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc3411.txt">rfc3411</a> - An
|
||
Architecture for Describing Simple Network Management Protocol (SNMP)
|
||
Management Frameworks.</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc3412.txt">rfc3412</a> -
|
||
Message Processing and Dispatching for the Simple Network Management
|
||
Protocol (SNMP).</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc3413.txt">rfc3413</a> -
|
||
Simple Network Management Protocol (SNMP) Applications.</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc3414.txt">rfc3414</a> -
|
||
User-based Security Model (USM) for version 3 of the Simple Network
|
||
Management Protocol (SNMPv3).</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc3415.txt">rfc3415</a> -
|
||
View-based Access Control Model (VACM) for the Simple Network Management
|
||
Protocol (SNMP).</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc3416.txt">rfc3416</a> -
|
||
Version 2 of the Protocol Operations for the Simple Network Management
|
||
Protocol (SNMP).</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc3417.txt">rfc3417</a> -
|
||
Transport Mappings for the Simple Network Management Protocol
|
||
(SNMP).</li>
|
||
<li><a href="https://www.ietf.org/rfc/rfc3418.txt">rfc3418</a> -
|
||
Management Information Base (MIB) for the Simple Network Management
|
||
Protocol (SNMP).</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc3584.txt">rfc3584</a> -
|
||
Coexistence between Version 1, Version 2, and Version 3 of the
|
||
Internet-standard Network Management Framework.</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc3826.txt">rfc3826</a> - The
|
||
Advanced Encryption Standard (AES) Cipher Algorithm in the SNMP
|
||
User-based Security Model.</li>
|
||
<li><a href="https://tools.ietf.org/rfc/rfc4088.txt">rfc4088</a> -
|
||
Uniform Resource Identifier (URI) Scheme for the Simple Network
|
||
Management Protocol (SNMP).</li>
|
||
<li><a href="https://www.rfc-editor.org/rfc/rfc5343.txt">rfc5343</a> -
|
||
Simple Network Management Protocol (SNMP) Context EngineID
|
||
Discovery.</li>
|
||
<li><a href="https://www.rfc-editor.org/rfc/rfc5590.txt">rfc5590</a> -
|
||
Transport Subsystem for the Simple Network Management Protocol
|
||
(SNMP).</li>
|
||
<li><a href="https://www.rfc-editor.org/rfc/rfc5591.txt">rfc5591</a> -
|
||
Transport Subsystem for the Simple Network Management Protocol
|
||
(SNMP).</li>
|
||
<li><a href="https://www.rfc-editor.org/rfc/rfc5592.txt">rfc5592</a> -
|
||
Secure Shell Transport Model for the Simple Network Management Protocol
|
||
(SNMP).</li>
|
||
<li><a href="https://www.rfc-editor.org/rfc/rfc7630.txt">rfc7630</a> -
|
||
HMAC-SHA-2 Authentication Protocols in the User-based Security Model
|
||
(USM) for SNMPv3.</li>
|
||
</ul>
|
||
<h3 id="tutorials">Tutorials</h3>
|
||
<ul>
|
||
<li><a href="http://www.net-snmp.org/wiki/index.php/Tutorials">net-snmp
|
||
tutorials</a> - This Wiki page contains various tutorials ranging from
|
||
the basics of SNMP protocol to implementation of SNMP applications and
|
||
agents using net-snmp library.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="public-servers">Public servers</h2>
|
||
<ul>
|
||
<li><a href="http://ireasoning.com/pubtest.php">snmp.ireasoning.com</a>
|
||
- Free public an SNMP agent for testing purpose.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="mib-repositories">MIB repositories</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/hsnodgrass/snmp_mib_archive">hsnodgrass/snmp_mib_archive</a>
|
||
- An archive of over 3000 unique SNMP MIBs.</li>
|
||
<li><a href="https://github.com/kcsinclair/mibs">kcsinclair/mibs</a> -
|
||
Another collection of MIBS used for SNMP. Make sure to clone the
|
||
repository to see the full list of MIBs.</li>
|
||
<li><a href="http://www.mibdepot.com">mibdepot.com</a> - mibDepot is a
|
||
free service to the SNMP community and offers a dictionary of MIBs and a
|
||
unique-in-the-industry Search Engine with over 12,000 SNMP MIBs
|
||
representing over 1,800,000 MIB object definitions.</li>
|
||
<li><a href="http://oid-info.com">oid-info.com</a> - This OID repository
|
||
gathers information about Object Identifiers (OIDs), and provides tools
|
||
to display, update and search for this information.</li>
|
||
<li><a
|
||
href="https://blog.michaelfmcnamara.com/mibs/">michaelfmcnamara.com</a>
|
||
- Hand-curated list of MIBs by Michael McNamara.</li>
|
||
<li><a href="http://www.snmplink.org">snmplink.org/OnLineMIB</a> - This
|
||
website shows documentation of a set of MIBs with a built-in MIB viewer.
|
||
<ul>
|
||
<li><a
|
||
href="http://www.snmplink.org/OnLineMIB/Standards/">OnLineMIB/Standards</a>
|
||
- Standard: (ATM Forum, IANA, RFC) - RFC1065-5324.</li>
|
||
<li><a
|
||
href="http://www.snmplink.org/OnLineMIB/Cisco/">OnLineMIB/Cisco</a> -
|
||
Cisco.</li>
|
||
<li><a
|
||
href="http://www.snmplink.org/OnLineMIB/Juniper/">OnLineMIB/Juniper</a>
|
||
- Juniper.</li>
|
||
<li><a
|
||
href="http://www.snmplink.org/OnLineMIB/Extreme/">OnLineMIB/Extreme</a>
|
||
- Extreme.</li>
|
||
<li><a
|
||
href="http://www.snmplink.org/OnLineMIB/Brocade/">OnLineMIB/Brocade</a>
|
||
- Brocade.</li>
|
||
</ul></li>
|
||
<li><a
|
||
href="http://www.oidview.com/mibs/detail.html">oidview.com/mibs</a> -
|
||
This repository contains over 7000 unique MIBs from various
|
||
vendors.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="miscellaneous">Miscellaneous</h2>
|
||
<p><em>Items that belong on the list but difficult to classify.</em></p>
|
||
<ul>
|
||
<li><a href="http://snmplink.org/">SNMPLink.org</a> - SNMPlink.org
|
||
provides links and information about SNMP, MIB (Management Information
|
||
Base), Network Management and Network Monitoring.</li>
|
||
<li><a href="https://www.snmptools.net/">SNMPTools.net</a> -
|
||
SNMPTools.net provides links and information about SNMP applications,
|
||
toolkits, gateways, simulators, MIB browsers and many more.</li>
|
||
</ul>
|
||
<p><strong><a href="#contents">⬆ back to top</a></strong></p>
|
||
<h2 id="contributing">Contributing</h2>
|
||
<p>Please take a quick look at the <a
|
||
href="contributing.md">contribution guidelines</a> first. Thank you to
|
||
all contributors.</p>
|
||
<p><a href="https://github.com/eozer/awesome-snmp">snmp.md
|
||
Github</a></p>
|