| .TH SNMPD 8 "30 Jun 2010" VVERSIONINFO "Net-SNMP" |
| .SH NAME |
| snmpd - daemon to respond to SNMP request packets. |
| .SH SYNOPSIS |
| .B snmpd |
| [OPTIONS] [LISTENING ADDRESSES] |
| .SH DESCRIPTION |
| .B snmpd |
| is an SNMP agent which binds to a port and awaits requests from |
| SNMP management software. Upon receiving a request, it processes the |
| request(s), collects the requested information and/or performs the |
| requested operation(s) and returns the information to the sender. |
| .SH OPTIONS |
| .TP 8 |
| .B \-a |
| Log the source addresses of incoming requests. |
| .TP |
| .B \-A |
| Append to the log file rather than truncating it. |
| .TP |
| .B "\-c" \fIFILE |
| Read |
| .I FILE |
| as a configuration file |
| (or a comma-separated list of configuration files). Note that the loaded |
| file will only understand snmpd.conf tokens, unless the configuration type |
| is specified in the file as described in the snmp_config man page under |
| SWITCHING CONFIGURATION TYPES IN MID-FILE. |
| .TP |
| .B \-C |
| Do not read any configuration files except the ones optionally specified by the |
| .B \-c |
| option. |
| Note that this behaviour also covers the persistent configuration files. |
| This may result in dynamically-assigned values being reset following an |
| agent restart, unless the relevant persistent config files are |
| explicitly loaded using the |
| .B \-c |
| option. |
| .TP |
| .B \-d |
| Dump (in hexadecimal) the sent and received SNMP packets. |
| .TP |
| .B \-D\fI[TOKEN[,...]] |
| Turn on debugging output for the given |
| .IR "TOKEN" "(s)." |
| Without any tokens specified, it defaults to printing all the tokens |
| (which is equivalent to the keyword "ALL"). |
| You might want to try |
| .IR ALL |
| for extremely verbose output. Note: You can not put a space between |
| the \-D flag and the listed TOKENs. |
| .TP |
| .B \-f |
| Do not fork() from the calling shell. |
| .TP |
| .B \-g \fIGID |
| Change to the numerical group ID |
| .I GID |
| after opening listening sockets. |
| .TP |
| .B \-h, \-\-help |
| Display a brief usage message and then exit. |
| .TP |
| .B \-H |
| Display a list of configuration file directives understood by the |
| agent and then exit. |
| .TP |
| .B \-I \fI[\-]INITLIST |
| Specifies which modules should (or should not) be initialized |
| when the agent starts up. If the comma-separated |
| .I INITLIST |
| is preceded |
| with a '\-', it is the list of modules that should \fInot\fR be started. |
| Otherwise this is the list of the \fIonly\fR modules that should be started. |
| |
| To get a list of compiled modules, run the agent with the arguments |
| .I "\-Dmib_init \-H" |
| (assuming debugging support has been compiled in). |
| .TP |
| .B \-L[efos] |
| Specify where logging output should be directed (standard error or output, |
| to a file or via syslog). See LOGGING OPTIONS in snmpcmd(5) for details. |
| .TP |
| .BR \-m " \fIMIBLIST" |
| Specifies a colon separated list of MIB modules to load for this |
| application. This overrides the environment variable MIBS. |
| See \fIsnmpcmd(1)\fR for details. |
| .TP |
| .BR \-M " \fIDIRLIST" |
| Specifies a colon separated list of directories to search for MIBs. |
| This overrides the environment variable MIBDIRS. |
| See \fIsnmpcmd(1)\fR for details. |
| .TP |
| .B \-n \fINAME |
| Set an alternative application name (which will affect the |
| configuration files loaded). |
| By default this will be \fIsnmpd\fR, regardless of the name |
| of the actual binary. |
| .TP |
| .B \-p \fIFILE |
| Save the process ID of the daemon in |
| .IR FILE "." |
| .TP |
| .B \-q |
| Print simpler output for easier automated parsing. |
| .TP |
| .B \-r |
| Do not require root access to run the daemon. Specifically, do not exit |
| if files only accessible to root (such as /dev/kmem etc.) cannot be |
| opened. |
| .TP |
| .B \-u \fIUID |
| Change to the user ID |
| .I UID |
| (which can be given in numerical or textual form) after opening |
| listening sockets. |
| .TP |
| .B \-U |
| Instructs the agent to not remove its pid file (see the |
| .B \-p |
| option) on shutdown. Overrides the leave_pidfile token in the |
| .I snmpd.conf |
| file, see |
| .I snmpd.conf(5). |
| .TP |
| .B \-v, \-\-version |
| Print version information for the agent and then exit. |
| .TP |
| .B \-V |
| Symbolically dump SNMP transactions. |
| .TP |
| .B \-x \fIADDRESS |
| Listens for AgentX connections on the specified address |
| rather than the default AGENTX_SOCKET. |
| The address can either be a Unix domain socket path, |
| or the address of a network interface. The format is the same as the |
| format of listening addresses described below. |
| .TP |
| .B \-X |
| Run as an AgentX subagent rather than as an SNMP master agent. |
| .TP |
| .BI \-\- "name"="value" |
| Allows one to specify any token ("name") supported in the |
| .I snmpd.conf |
| file and sets its value to "value". Overrides the corresponding token in the |
| .I snmpd.conf |
| file. See |
| .I snmpd.conf(5) |
| for the full list of tokens. |
| .SH LISTENING ADDRESSES |
| By default, |
| .B snmpd |
| listens for incoming SNMP requests on UDP port 161 on all IPv4 interfaces. |
| However, it is possible to modify this behaviour by specifying one or more |
| listening addresses as arguments to \fBsnmpd\fR. |
| A listening address takes the form: |
| .IP |
| [<transport-specifier>:]<transport-address> |
| .PP |
| At its simplest, a listening address may consist only of a port |
| number, in which case |
| .B snmpd |
| listens on that UDP port on all IPv4 interfaces. Otherwise, the |
| <transport-address> part of the specification is parsed according to |
| the following table: |
| .RS 4 |
| .TP 28 |
| .BR "<transport-specifier>" |
| .BR "<transport-address> format" |
| .IP "udp \fI(default)\fR" 28 |
| hostname[:port] |
| .I or |
| IPv4-address[:port] |
| .IP "tcp" 28 |
| hostname[:port] |
| .I or |
| IPv4-address[:port] |
| .IP "unix" 28 |
| pathname |
| .IP "ipx" 28 |
| [network]:node[/port] |
| .TP 28 |
| .IR "" "aal5pvc " or " pvc" |
| [interface.][VPI.]VCI |
| .TP 28 |
| .IR "" "udp6 " or " udpv6 " or " udpipv6" |
| hostname[:port] |
| .I or |
| IPv6-address[:port] |
| .TP 28 |
| .IR "" "tcp6 " or " tcpv6 " or " tcpipv6" |
| hostname[:port] |
| .I or |
| IPv6-address[:port] |
| .TP 28 |
| .IR "" "ssh" |
| hostname:port |
| .TP 28 |
| .IR "" "dtlsudp" |
| hostname:port |
| .RE |
| .PP |
| Note that <transport-specifier> strings are case-insensitive so that, |
| for example, "tcp" and "TCP" are equivalent. Here are some examples, |
| along with their interpretation: |
| .TP 24 |
| .IR "127.0.0.1:161" |
| listen on UDP port 161, but only on the loopback interface. This |
| prevents |
| .B snmpd |
| being queried remotely. The port specification ":161" is |
| not strictly necessary since that is the default SNMP port. |
| .TP 24 |
| .IR "TCP:1161" |
| listen on TCP port 1161 on all IPv4 interfaces. |
| .TP 24 |
| .IR "ipx:/40000" |
| listen on IPX port 40000 on all IPX interfaces. |
| .TP 24 |
| .IR "unix:/tmp/local\-agent" |
| listen on the Unix domain socket \fI/tmp/local\-agent\fR. |
| .TP 24 |
| .IR "/tmp/local\-agent" |
| is identical to the previous specification, since the Unix domain is |
| assumed if the first character of the <transport-address> is '/'. |
| .TP 24 |
| .IR "PVC:161" |
| listen on the AAL5 permanent virtual circuit with VPI=0 and VCI=161 |
| (decimal) on the first ATM adapter in the machine. |
| .TP 24 |
| .IR "udp6:10161" |
| listen on port 10161 on all IPv6 interfaces. |
| .TP 24 |
| .IR "ssh:127.0.0.1:22" |
| Allows connections from the snmp subsystem on the ssh server on port |
| 22. The details of using SNMP over SSH are defined below. |
| .TP 24 |
| .IR "dtlsudp:127.0.0.1:9161" |
| Listen for connections over DTLS on UDP port 9161. The snmp.conf file |
| must have the |
| .IR serverCert, |
| configuration tokens defined. |
| .PP |
| Note that not all the transport domains listed above will always be |
| available; for instance, hosts with no IPv6 support will not be able |
| to use udp6 transport addresses, and attempts to do so will result in |
| the error "Error opening specified endpoint". Likewise, since AAL5 |
| PVC support is only currently available on Linux, it will fail with |
| the same error on other platforms. |
| .SH Transport Specific Notes |
| .RS 0 |
| .TP 8 |
| ssh |
| The SSH transport, on the server side, is actually just a unix |
| named pipe that can be connected to via a ssh subsystem configured in |
| the main ssh server. The pipe location (configurable with the |
| sshtosnmpsocket token in snmp.conf) is |
| .I /var/net\-snmp/sshtosnmp. |
| Packets should be submitted to it via the sshtosnmp application, which |
| also sends the user ID as well when starting the connection. The TSM |
| security model should be used when packets should process it. |
| .IP |
| The |
| .I sshtosnmp |
| command knows how to connect to this pipe and talk to |
| it. It should be configured in the |
| .IR "OpenSSH sshd" |
| configuration file (which is normally |
| .IR "/etc/ssh/sshd_config" |
| using the following configuration line: |
| .TP 8 |
| .IP |
| Subsystem snmp /usr/local/bin/sshtosnmp |
| .IP |
| The |
| .I sshtosnmp |
| command will need read/write access to the |
| .I /var/net\-snmp/sshtosnmp |
| pipe. Although it should be fairly safe to grant access to the |
| average user since it still requires modifications to the ACM settings |
| before the user can perform operations, paranoid administrators may |
| want to make the /var/net\-snmp directory accessible only by users in a |
| particular group. Use the |
| .I sshtosnmpsocketperms |
| snmp.conf configure option to set the permissions, owner and group of |
| the created socket. |
| .IP |
| Access control can be granted to the user "foo" using the following |
| style of simple snmpd.conf settings: |
| .TP 8 |
| .IP |
| rouser \-s tsm foo authpriv |
| .IP |
| Note that "authpriv" is acceptable assuming as SSH protects everything |
| that way (assuming you have a non-insane setup). |
| snmpd has no notion of how SSH has actually protected a packet and |
| thus the snmp agent assumes all packets passed through the SSH |
| transport have been protected at the authpriv level. |
| .TP 8 |
| dtlsudp |
| The DTLS protocol, which is based off of TLS, requires both client and |
| server certificates to establish the connection and authenticate both |
| sides. In order to do this, the client will need to configure the |
| snmp.conf file |
| with the |
| .IR clientCert |
| configuration tokens. The server will need to configure the snmp.conf |
| file with the |
| .IR serverCert |
| configuration tokens defined. |
| .IP |
| Access control setup is similar to the ssh transport as the TSM |
| security model should be used to protect the packet. |
| .RE |
| .SH CONFIGURATION FILES |
| .PP |
| .B snmpd |
| checks for the existence of and parses the following files: |
| .TP 6 |
| .B SYSCONFDIR/snmp/snmp.conf |
| Common configuration for the agent and applications. See |
| .I snmp.conf(5) |
| for details. |
| .TP |
| .B SYSCONFDIR/snmp/snmpd.conf |
| .TP |
| .B SYSCONFDIR/snmp/snmpd.local.conf |
| Agent-specific configuration. See |
| .I snmpd.conf(5) |
| for details. These files are optional and may be used to configure |
| access control, trap generation, subagent protocols and much else |
| besides. |
| .IP |
| In addition to these two configuration files in SYSCONFDIR/snmp, the |
| agent will read any files with the names |
| .I snmpd.conf |
| and |
| .I snmpd.local.conf |
| in a colon separated path specified in the |
| SNMPCONFPATH environment variable. |
| .TP |
| .B DATADIR/snmp/mibs/ |
| The agent will also load all files in this directory as MIBs. It will |
| not, however, load any file that begins with a '.' or descend into |
| subdirectories. |
| .SH SEE ALSO |
| (in recommended reading order) |
| .PP |
| snmp_config(5), |
| snmp.conf(5), |
| snmpd.conf(5) |
| .\" Local Variables: |
| .\" mode: nroff |
| .\" End: |