UPSD.CONF(5)

NAME
upsd.conf - Configuration for Network UPS Tools upsd data server

DESCRIPTION

upsd(8) uses this file to control access to the server and set some other miscellaneous configuration values. This file contains details on access controls, so keep it secure. Ideally, only the upsd process should be able to read it.

IMPORTANT NOTES

    • Contents of this file should be pure ASCII (character codes not in range would be ignored with a warning message).

    • Balance the run-time user permissions to access the file (and perhaps the directory it is in) for only upsd to be able to read it; write access is not needed. It is common to use chown root:nut and chmod 640 to set up acceptable file permissions.

        • Packages (and build recipes) typically prepare one set of user and group accounts for NUT. Custom builds with minimal configuration might even use nobody:nogroup or similar, which is inherently insecure.

        • On systems with extra security concerns, NUT drivers and data server should run as separate user accounts which would be members of one same group for shared access to local Unix socket files and the directory they are in, but different groups for configuration file access. This would need some daemons to use customized user, group, RUN_AS_USER and/or RUN_AS_GROUP settings to override the single built-in value.

        • Note that the monitoring, logging, etc. clients are networked-only. They do not need access to these files and directories, and can run as an independent user and group altogether.

        • Keep in mind the security of also any backup copies of this file, e.g. the archive files it might end up in.

CONFIGURATION DIRECTIVES

MAXAGE seconds
    upsd usually allows a driver to stop responding for up to 15 seconds before declaring the data "stale". If your driver takes a very long time to process updates but is otherwise operational, you can use MAXAGE to make upsd wait longer.

    Most users should leave this at the default value.

TRACKINGDELAY seconds
    When instant commands and variables setting status tracking is enabled, status execution information are kept during this amount of time, and then cleaned up. This defaults to 3600 (1 hour).

ALLOW_NO_DEVICE Boolean
    Normally upsd requires that at least one device section is defined in ups.conf when the daemon starts, to serve its data. For automatically managed services it may be preferred to have upsd always running, and reload the configuration when power devices become defined.

    Boolean values true, yes, on and 1 mean that the server would not refuse to start with zero device sections found in ups.conf.

    Boolean values false, no, off and 0 mean that the server should refuse to start if zero device sections were found in ups.conf. This is the default, unless the calling environment sets a same-named variable to enforce a value for the current run. One way this can happen is somebody un-commenting it in the nut.conf file used by init-scripts and service unit method scripts.

ALLOW_NOT_ALL_LISTENERS Boolean
    Normally upsd requires that all LISTEN directives can be honoured at the moment the daemon starts. If your LAN IP address (or host name) used in one of the LISTEN directives may be not always accessible, and for some reason do not want to just LISTEN * on the wildcard interface, but e.g. you still want to use upsmon on localhost, this option can help. Note you would have to restart upsd to pick up the LISTEN'ed IP address if it appears later.

    Boolean values true, yes, on and 1 mean that the server would not refuse to start if it can listen on at least one interface.

    Boolean values false, no, off and 0 mean that the server should refuse to start if it can not LISTEN on each and every (non-localhost) interface found in upsd.conf. This is the default, unless the calling environment sets a same-named variable to enforce a value for the current run. One way this can happen is somebody un-commenting it in the nut.conf file used by init-scripts and service unit method scripts.

STATEPATH path
    Tell upsd to look for the driver state sockets in path rather than the default that was compiled into the program.

    Note that the drivers must use the same path, so upsd would prefer the same-named setting from ups.conf global section, if present, over its own.

    Environment variable NUT_STATEPATH set by caller (e.g. init script or service method) can override this setting.

LISTEN interface port
    Bind a listening port to the interface specified by its Internet address or name. This may be useful on hosts with multiple interfaces. You should not rely exclusively on this for security, as it can be subverted on many systems.

    Optionally listen on TCP port port instead of the default value which was compiled into the code. This overrides any value you may have set with configure --with-port. If you don’t change it with configure or this value, upsd will listen on port 3493 for this interface.

    Multiple LISTEN addresses may be specified. The default is to bind to 127.0.0.1 if no LISTEN addresses are specified (and also ::1 if IPv6 support is compiled in).

    To listen on all available interfaces and configured IP addresses of your system, you may also use :: for IPv6 and 0.0.0.0 for IPv4, respectively. As a special case, a single LISTEN * <port> directive (with an asterisk) will try to listen on both IPv6 (::0) and IPv4 (0.0.0.0) wild-card IP addresses, subject to upsd command-line arguments or system configuration. Note that if the system supports IPv4-mapped IPv6 addressing per RFC-3493, and does not allow to disable this mode, then there may be one listening socket to handle both address families.

        LISTEN 127.0.0.1
        LISTEN 192.168.50.1
        LISTEN myhostname.mydomain
        LISTEN ::1
        LISTEN 2001:0db8:1234:08d3:1319:8a2e:0370:7344

    This parameter will only be read at startup. You’ll need to restart (rather than merely reload) upsd to apply any changes made here.

    Please note that older NUT releases could have been using the IPv4-mapped IPv6 addressing (sometimes also known as "dual-stack") mode, if provided by the system. Current versions (since NUT v2.8.1 release) explicitly try to restrict their listening sockets to only support one address family on each socket, and so avoid IPv4-mapped mode where possible.

MAXCONN connections
    This defaults to maximum number allowed on your system. Each UPS, each LISTEN address and each client count as one connection. If the server runs out of connections, it will no longer accept new incoming client connections. Only set this if you know exactly what you’re doing.

    Note that on some platforms there may be a smaller amount of file descriptors or handles that can be polled in one operation, the server would then poll several smaller groups until it handles all the connections it tracks. With a large amount of connections this may however impact the delays between processing loops, and time before an incoming message is seen and processed.

CERTFILE certificate file
    When compiled with SSL support with OpenSSL backend, you can enter the certificate file here.

    The certificates must be in PEM format and must be sorted starting with the subject’s certificate (server certificate), followed by intermediate CA certificates (if applicable) and the highest level (root) CA. It should end with the server key. See docs/security.txt in NUT sources, or the Security chapter of NUT user manual, for more information on the SSL support in NUT.

CERTPATH certificate database
    When compiled with SSL support with NSS backend, you can enter the certificate path here.

    Certificates are stored in a dedicated database (data split in 3 files). Specify the path of the database directory.

CERTIDENT certificate name database password
    When compiled with SSL support with NSS backend, you can specify the certificate name to retrieve from database to authenticate itself and the password required to access certificate related private key.

        Note
        Be sure to enclose "certificate name" in double-quotes if you are using a value with spaces in it.

CERTREQUEST certificate request level
    When compiled with SSL support with NSS backend and client certificate validation (disabled by default, see ‘docs/security.txt` in NUT sources), you can specify whether upsd requests or requires clients’ certificates.

        Warning
        Until issue #3329 is solved, not all stock NUT clients may even have a way to present some certain certificate.

    Possible values are:

        • 0 or NO to not request that clients provide any certificate

        • 1 or REQUEST to require all clients to present some certificate

        • 2 or REQUIRE to require all clients to present a valid certificate (with auth chain trusted by server database)

DISABLE_WEAK_SSL BOOLEAN
    Tell upsd to disable older/weak SSL/TLS protocols and ciphers. With relatively recent versions of OpenSSL or NSS it will be restricted to TLSv1.2 or better.

    Unless you have really ancient clients, you probably want to enable this. Currently disabled by default to ensure compatibility with existing setups.

DEBUG_MIN INTEGER
    Optionally specify a minimum debug level for upsd data daemon, e.g. for troubleshooting a deployment, without impacting foreground or background running mode directly. Command-line option -D can only increase this verbosity level.

        Note
        If the running daemon receives a reload command, presence of the DEBUG_MIN NUMBER value in the configuration file can be used to tune debugging verbosity in the running service daemon (it is recommended to comment it away or set the minimum to explicit zero when done, to avoid huge journals and I/O system abuse). Keep in mind that for this run-time tuning, the DEBUG_MIN value present in reloaded configuration files is applied instantly and overrides any previously set value, from file or CLI options, regardless of older logging level being higher or lower than the newly found number; a missing (or commented away) value however does not change the previously active logging verbosity.

SEE ALSO

upsd(8), nutupsdrv(8), upsd.users(5)

  Internet resources:

The NUT (Network UPS Tools) home page: https://www.networkupstools.org/historic/v2.8.5/