Ver código fonte

really clean up these github docs

Bryan Heden 8 anos atrás
pai
commit
ac8aa7c33e
7 arquivos alterados com 1021 adições e 999 exclusões
  1. 493 0
      CHANGELOG.md
  2. 0 499
      Changelog
  3. 0 339
      LICENSE
  4. 264 0
      LICENSE.md
  5. 37 30
      README.SSL.md
  6. 192 106
      README.md
  7. 35 25
      SECURITY.md

+ 493 - 0
CHANGELOG.md

@@ -0,0 +1,493 @@
+NRPE Changelog
+==============
+
+[3.2.0](https://github.com/NagiosEnterprises/nrpe/releases/tag/nrpe-3.2.0) - 2017-06-26
+---------------------------------------------------------------------------------------
+**ENHANCEMENTS**
+* Added max_commands definition to nrpe.cfg to rate limit simultaneous fork()ed children (Bryan Heden)
+* Added -E, --stderr-to-stdout options for check_nrpe to redirect output (Bryan Heden)
+* Added support for Gentoo init (Troy Lea @box293)
+* Cleaned up code a bit, updated readmes and comments across the board (Bryan Heden)
+* Added -V, --version to nrpe and fixed the output (Bryan Heden)
+* Added different SSL error messages to be able to pinpoint where some SSL errors occured (Bryan Heden)
+* Updated logic in al parse_allowed_hosts (Bryan Heden)
+* Added builtin OpenSSL Engine support where available (Bryan Heden + @skrueger8)
+* Clean up compilation warnings (Bryan Heden)
+* Added more commented commands in nrpe.cfg (Bryan Heden)
+
+**FIXES**
+* Undefined check returns UNKNOWN (Bryan Heden)
+* Fix incompatibility with OpenSSL 1.1.0 via SECLEVEL distinction (Bryan Heden)
+* Fix ipv4 error in logfile even if address is ipv6 (Bryan Heden)
+* Fix improper valid/invalid certificate warnings (Bryan Heden)
+
+[3.1.1](https://github.com/NagiosEnterprises/nrpe/releases/tag/nrpe-3.1.1) - 2017-05-24
+---------------------------------------------------------------------------------------
+**FIXES**
+* The '--log-file=' or '-g' option is missing from the help (John Frickson)
+* check_nrpe = segfault when specifying a config file (John Frickson)
+* Alternate log file not being used soon enough (John Frickson)
+* Unable to compile v3.1.0rc1 with new SSL checks on rh5 (John Frickson)
+* Unable to compile nrpe-3.1.0 - undefined references to va_start, va_end (John Frickson)
+* Can't build on Debian Stretch, openssl 1.1.0c (John Frickson)
+* Fix build failure with -Werror=format-security (Bas Couwenberg)
+* Fixed a typo in `nrpe.spec.in` (John Frickson)
+* More detailed error logging for SSL (John Frickson)
+* Fix infinite loop when unresolvable host is in allowed_hosts (Nick / John Frickson)
+
+[3.1.0](https://github.com/NagiosEnterprises/nrpe/releases/tag/nrpe-3.1.0) - 2017-04-17
+---------------------------------------------------------------------------------------
+**ENHANCEMENTS**
+* Added option to nrpe.cfg.in that can override hard-coded NASTY_METACHARS (John Frickson)
+* While processing 'include_dir' statement, sort the files (Philippe Kueck / John Frickson)
+* nrpe can now write to a log file using 'log_file=' in nrpe.cfg (John Frickson)
+* check_nrpe can now write to a log file using '--log-file=' or '-g' options (John Frickson)
+
+**FIXES**
+* Added missing debugging syslog entries, and changed printf()'s to syslog()'s. (Jobst Schmalenbach)
+* Fix help output for ssl option (configure) (Ruben Kerkhof)
+* Fixes to README.SSL.md and SECURITY.md (Elan Ruusamäe)
+* Changed the 'check_load' command in nrpe.cfg.in (minusdavid)
+* Cleanup of config.h.in suggested by Ruben Kerkhof
+* Minor change to logging in check_nrpe (John Frickson)
+* Solaris 11 detection is broken in configure (John Frickson)
+* Removed function `b64_decode` which wasn't being used (John Frickson)
+* check_nrpe ignores -a option when -f option is specified (John Frickson)
+* Added missing LICENSE file (John Frickson)
+* Off-by-one BO in my_system() (John Frickson)
+* Got rid of some compiler warnings (Stefan Krüger / John Frickson)
+* Add SOURCE_DATE_EPOCH specification support for reproducible builds. (Bas Couwenberg)
+* nrpe 3.0.1 allows TLSv1 and TLSv1.1 when I configure for TLSv1.2+ (John Frickson)
+* "Remote %s accepted a Version %s Packet", please add to debug (John Frickson)
+* nrpe 3.0.1 segfaults when key and/or cert are broken symlinks (John Frickson)
+* Fixed a couple of typos in docs/NRPE.* files (Ludmil Meltchev)
+* Changed release date to ISO format (yyyy-mm-dd) (John Frickson)
+* Fix systemd unit description (Bas Couwenberg)
+* Add reload command to systemd service file (Bas Couwenberg)
+* fix file not found error when updating version (Sven Nierlein)
+* Spelling fixes (Josh Soref)
+* Return UNKNOWN when check_nrpe cannot communicate with nrpe and -u set (John Frickson)
+* xinetd.d parameter causes many messages in log file (John Frickson)
+* Fixes for openssl 1.1.x (Stephen Smoogen / John Frickson)
+* PATH and other environment variables not set with numeric nrpe_user (John Frickson)
+* rpmbuild -ta nrpe-3.0.1.tar.gz failed File not found: /etc/init.d/nrpe (bvandi / John Frickson)
+
+[3.0.1](https://github.com/NagiosEnterprises/nrpe/releases/tag/nrpe-3.0.1) - 2016-09-08
+---------------------------------------------------------------------------------------
+**FIXES**
+* _set_rc: command not found reported by init script (John Frickson)
+* Version string contains name (John Frickson)
+* Changes to get 'rpmbuild' to work - nrpe.spec file outdated (John Frickson)
+* typo in startup/default-xinetd.in (Philippe Kueck)
+* debug output missing command name (Philippe Kueck)
+* /usr/lib/tmpfiles.d/ndo2db.conf should have 'd' type, not 'D' (John Frickson)
+* Fixes in parse_allowed_hosts() and called functions (Jobst Schmalenbach / John Frickson)
+* nrpe.cfg: 'debug' statement needs to be first in file (Jobst Schmalenbach / John Frickson)
+
+[3.0.0](https://github.com/NagiosEnterprises/nrpe/releases/tag/nrpe-3.0.0) - 2016-08-01
+---------------------------------------------------------------------------------------
+**SECURITY**
+* Fix for CVE-2014-2913
+* Added function to clean the environment before forking. (John Frickson)
+
+**ENHANCEMENTS**
+* Added support for optional config file to check_nrpe. With the new SSL
+  parameters, the line was getting long. The config file is specified with
+  --config-file=<path> or -f <path> parameters. The config file must look
+  like command line options, but the options can be on separate lines. It
+  MUST NOT include --config-file (-f), --command (-c) or --args (-a). If any
+  options are in both the config file and on the command line, the command line
+  options are used.
+* make can now add users and groups using "make install-groups-users" (John Frickson)
+* Added "nrpe-uninstall" script to the same directory nrpe get installed to (John Frickson)
+* Updated code so configure && make will work on AIX, HP-UX, Solaris, OS X.
+  There should be no errors or warnings. Let me know if any errors or
+  warning appear (John Frickson)
+* Added command-line option to prevent forking, since some of the init
+  replacements (such as systemd, etc.) don't want daemons to fork (John Frickson)
+* Added autoconf macros and additional files to better support multi-platform
+  config and compile. The default will still set up to install to
+  /usr/local/nagios but I added a new configure option:
+  '--enable-install-method=<method>'. If <method> is 'opt', everything will
+  install to '/opt/nagios'. If <method> is 'os', installation will be to O/S-
+  and distribution-specific locations, such as /usr/sbin, /usr/lib/nagios,
+  /etc/nagios, and so on.
+* Added additional init and inetd config files to support more systems,
+  including SuSE, Debian, Slackware, Gentoo, *BSD, AIX, HP-UX, Solaris, OS X.
+* Added listen_queue_size as configuration option (Vadim Antipov, Kaspersky Lab)
+* Reworked SSL/TLS. See the README.SSL.md file for full info. (John Frickson)
+* Added support for version 3 variable sized packets up to 64KB. nrpe will
+  accept either version from check_nrpe. check_nrpe will try to send a
+  version 3 packet first, and fall back to version 2. check_nrpe can be forced
+  to only send version 2 packets if the switch `-2` is used. (John Frickson)
+* Added extended timeout syntax in the -t <secs>:<status> format. (ABrist)
+
+**FIXES**
+* Fixed configure to check more places for SSL headers/libs. (John Frickson)
+* Added ifdefs for complete_SSL_shutdown to compile without SSL. (Matthew L. Daniel)
+* Renamed configure.in to configure.ac and added check for sigaction (John Frickson)
+* Replaced all instances of signal() with sigaction() + blocking (John Frickson)
+* check_nrpe does not parse passed arguments correctly (John Frickson)
+* NRPE should not start if cannot write pid file (John Frickson)
+* Fixed out-of-bounds error (return code 255) for some failures (John Frickson)
+* Connection Timeout and Connection Refused messages need a new line (Andrew Widdersheim)
+* allowed_hosts doesn't work, if one of the hostnames can't be resolved by dns (John Frickson)
+* allowed_hosts doesn't work with a hostname resolving to an IPv6 address (John Frickson)
+* Return UNKNOWN when issues occur (Andrew Widdersheim)
+* NRPE returns OK if check can't be executed (Andrew Widdersheim)
+* nrpe 2.15 [regression in Added SRC support on AIX - 2.14] (frphoebus)
+* compile nrpe - Solaris 9 doesn't have isblank() (lilo, John Frickson)
+* sample configuration for check_load has crazy sample load avg (ernestoongaro)
+
+
+2.15 - 09/06/2013
+-----------------
+* Now compiles on HP-UX (Grant Byers)
+* Added support for IPv6 (Leo Baltus, Eric Stanley)
+
+
+
+2.14 - 12/21/2012
+-----------------
+* Added configure option to allow bash command substitutions, disabled by default [bug #400] (Eric Stanley)
+* Patched to shutdown SSL connection completely (Jari Takkala)
+* Added SRC support on AIX (Thierry Bertaud)
+* Updated RPM SPEC file to support creating RPMs on AIX (Eric Stanley)
+* Updated logging to support compiling on AIX (Eric Stanley)
+
+
+
+2.13 - 11/11/2011
+-----------------
+* Applied Kaspersky Labs supplied patch for extending allowed_hosts (Konstantin Malov)
+* Fixed bug in allowed_hosts parsing (Eric Stanley)
+* Updated to support compiling on Solaris 10 (thanks to Kevin Pendleton)
+
+
+
+2.12 - 03/10/2008
+-----------------
+* Fix for unterminated multiline plugin (garbage) output (Krzysztof Oledzki)
+
+
+
+2.11 - 12/26/2007
+-----------------
+* Added lib64 library paths to configure script for 64-bit systems (John Maag)
+* Added --with-ssl-lib configure script option
+* Added --with-log-facility option to control syslog logging (Ryan Ordway and Brian Seklecki)
+
+
+
+2.10 - 10/19/2007
+-----------------
+* Moved PDF docs to docs/ subdirectory, added OpenOffice source document
+* A critical result is now returned for child processed that die due to a signal (Klas Lindfors) 
+
+
+
+2.9 - 08/13/2007
+----------------
+* Fixed bug with --with-nrpe-group configure script option (Graham Collinson)
+* Fixed bug with check_disk thresholds in sample config file (Patric Wust)
+* Added NRPE_PROGRAMVERSION and NRPE_MULTILINESUPPORT environment variables
+  for scripts that need to detect NRPE version and capabilities (Gerhard Lausser)
+* Added asprintf() support for systems that are missing it (Samba team)
+
+
+
+2.8.1 - 05/10/2007
+-----------------
+* Fixed configure script error with user-specified NRPE group
+
+
+
+2.8 - 05/08/2007
+---------------
+* Added support for multiline plugin output (limited to 1KB at the moment) (Matthias Flacke)
+
+
+
+2.8b1 - 03/14/2007
+-----------------
+* Changes to sample config files
+* Added ';' as an additional prohibited metachar for command arguments
+* Updated documentation and added easier installation commands
+
+
+
+2.7.1 - 03/08/2007
+------------------
+* Changed C++ style comment to C style to fix compilation errors on AIX (Ryan McGarry)
+
+
+
+2.7 - 02/18/2007
+----------------
+* Patches for detection SSL header and library locations (Andrew Boyce-Lewis)
+* NRPE daemon will now partially ignore non-fatal configuration file errors and attempt to startup (Andrew Boyce-Lewis)
+
+
+
+2.6 - 12/11/2006
+----------------
+* Added -u option to check_nrpe to return UNKNOWN states on socket timeouts (Bjoern Beutel)
+* Added connection_timeout variable to NRPE daemon to catch dead client connections (Ton Voon)
+* Added graceful timeout to check_nrpe to ensure connection to NRPE daemon is properly closed (Mark Plaksin)
+
+
+
+2.5.2 - 06/30/2006
+------------------
+* Fixed incorrect service name in sample xinetd config file
+* Added note on how to restart inetd for OpenBSD users (Robert Peaslee)
+* Fix for nonblocking accept()s on systems that define EAGAIN differently than EWOULDBLOCK (Gerhard Lausser)
+* Fix to (re)allow week random seed (Gerhard Lausser)
+
+
+
+2.5.1 - 04/09/2006
+------------------
+* Patch to fix segfault if --no-ssl option is used (Sean Finney/Peter Palfrader)
+
+
+
+2.5 - 04/06/2006
+----------------
+* (Re)added allowed_hosts option for systems that don't support TCP wrappers
+* Fix for SSL errors under Solaris 8 (Niels Endres)
+* Fix for config file directory inclusion on ReiserFS (Gerhard Lausser)
+
+
+
+2.4 - 02/22/2006
+----------------
+* Added option to allow week random seed (Gerhard Lausser)
+* Added optional command line prefix (Sean Finney)
+* Added ability to reload config file with SIGHUP
+* Fixed bug with location of dh.h include file
+* Fixed bug with disconnect message in debug mode
+
+
+
+2.3 - 01/23/2006
+----------------
+* Spec file fixes
+* Removed errant PID file debugging code
+* Fixed problem with trimming command definitions
+
+
+
+2.2 - 01/22/2006
+----------------
+* Spec file fix
+* Patch to add Tru64 and IRIX support (Ton Voon)
+* Updated config.sub and config.guess
+* Fixed bug with config file lines with only whitespace
+* Fixed bug with missing getopt() command line option for -V
+* Removed sample FreeBSD init script (now maintained by FreeBSD port)
+* Added config file option for writing a PID file
+
+
+
+2.1 - 01/19/2004
+----------------
+* Replaced host access list with TCP wrapper support
+* Removed length restrictions for command names and command lines
+* Configure script patch for getopt_long on Solaris
+* Bug fixes for accept() on HP-UX 11.0
+* Init script for SUSE Linux (Subhendu Ghosh)
+* SSL protocol used is now limited to TLSv1
+* Any output from plugins after first line is now ignored before
+  plugin process is closed
+
+
+
+2.0 - 09/08/2003
+----------------
+* Added support for passing arguments to command
+* NRPE daemon can no longer be run as root user/group
+* Added getopt support
+* Added 'include' variable to config file to allow inclusion
+  of external config files
+* Added 'include_dir' variable to allow inclusion of external
+  config files in directories (with recursion)
+* Added native SSL support (Derrick Bennett)
+* Added my_strsep(), as Solaris doesn't have strsep()
+* Added license exemption for use with OpenSSL
+
+
+
+1.8 - 01/16/2003
+----------------
+* Daemon now closes stdio/out/err properly (James Peterson)
+* Makefile changes (James Peterson)
+* Mode command line option bug fix in daemon
+* Fixed incorrect command line options in check_nrpe plugin
+
+
+
+1.7 - 01/08/2003
+----------------
+* Spec file updates and minor bug fixes (James Peterson)
+* Bug fix with default nrpe port definition
+* Added sample xinetd config file (nrpe.xinetd)
+* Bug fix for command_timeout variable (James Peterson)
+
+
+
+1.6 - 12/30/2002
+----------------
+* Updated sample commands to match new plugin argument format
+* Added sample init scripts for FreeBSD and Debian (Andrew Ryder)
+* Syntax changes (-H option specifies host name in check_nrpe, 
+  -c option specifies config file in nrpe)
+* Added command_timeout directive to config file to allow user
+  to specify timeout for executing plugins
+* Added spec file and misc patches for building RPMs (James Peterson)
+* Added --with-nrpe-port config directive (James Peterson)
+
+
+
+1.5 - 06/03/2002
+----------------
+* Added setuid/setgid option to config file (suggested by Marek Cervenka) 
+
+
+
+1.4 - 06/01/2002
+----------------
+* Changed STATE_UNKNOWN to value of 3 instead of -1 (old style)
+* Minor doc and sample config file changes
+
+
+
+1.3 - 02/21/2002
+----------------
+* Name and version change
+* Ignore SIGHUP, minor cleanup (Jon Andrews)
+
+
+
+1.2.5 - 12/22/2001
+------------------
+* Implemented Beej's sendall() to handle partial send()s
+* Added instructions on running under xinetd to README
+* Removed some old crud
+
+
+
+1.2.4 - 02/22/2001
+------------------
+* I forgot what changes I made.  Go figure...
+
+
+
+1.2.3 - 12/21/2000
+------------------
+* A bit more documentation on configuring command definitions for the plugin
+
+
+
+1.2.2 - 06/05/2000
+------------------
+* Fixed error in docs for running under inetd using TCP wrappers
+* Replaced old email address in src/netutils.h with new one
+
+
+
+1.2.1 - 05/07/2000
+------------------
+* Removed trapping of SIGCHLD
+* Changed wait4() to waitpid() to allow compilation on HP-UX and AIX
+
+
+
+1.2.0 - 04/18/2000
+------------------
+* Server forks twice after accepting a client connection, so as to prevent the
+  creation of zombies
+
+
+
+1.1.5 - 04/07/2000
+------------------
+* Fixed a small bug where one debug message was not getting logged properly
+
+
+
+1.1.4 - 03/30/2000
+------------------
+* Added option to disable/enable debug messages using the debug option in the
+  config file
+
+
+
+1.1.3 - 03/11/2000
+------------------
+* Changed config file to use an absolute path
+* Changed all debug output to use syslog (Rene Klootwijk)
+* No convert all data to network order before sending it and convert it back to
+  host order when receiving it. This makes it possible to mix Solaris and Linux,  
+  e.g. running check_nrpe on Linux and nrpe on Solaris. (Rene Klootwijk)
+
+
+
+1.1.2 - 03/07/2000
+------------------
+* Removed unnecessary code in signal handler routine
+* Unused signals are no longer trapper
+
+
+
+1.1.1 - 02/28/2000 - RKL
+---------------------------
+* Modified syslog code to include string describing the error code.
+* Changed hardcoded number in signal handler to its name. This prevented nrpe
+  to run on Solaris.
+* Fixed race condition in accept loop. The result of accept should also be
+  checked for EINTR.
+* Modified recv and send function calls to compile without warnings on Solaris.
+* Modified configure.in,configure and Makefile.in to include nsl and socket libs
+  for Solaris.
+* Modified the signal handler to reestablish itself after being called.
+
+
+
+1.1 - 02/24/2000 - Rene Klootwijk <rene@klootwijk.org>
+-----------------
+* Added ability to bind nrpe to a specific interface by specifying the address
+  of this interface in the nrpe.cfg file (e.g. server_address=192.168.2.3)
+
+
+
+1.0   - 02/16/2000
+------------------
+* Added ability to run as a service under inetd
+
+
+
+1.0b6 - 02/01/2000
+------------------
+* Added configure script
+* Netutils functions from the NetSaint plugins is now used
+* Reset SIGCHLD to default behavior before calling popen() to
+  prevent race condition with pclose() (Reported by Rene Klootwijk)
+* Cleaned up code
+
+
+
+1.0b5 - 01/10/2000
+------------------
+* Added init script contributed by Jacob L
+* Incorporated syslog code and other patches contributed by Jacob L
+
+
+
+1.0b4 - 11/04/1999
+------------------
+* Changed 'allowed_ip' option in configuration file to
+  'allowed_hosts' and added support for multiple hosts
+* Minor buffer overflow protection fixes
+* main() returned STATE_UNKNOWN on successful launch, changed to STATE_OK (jaclu@grm.se)
+* Added syslog support (jaclu@grm.se)

+ 0 - 499
Changelog

@@ -1,499 +0,0 @@
-**************
-NRPE Changelog
-**************
-
-3.2.0 - 2017-06-26
-------------------
-ENHANCEMENTS
-- Added max_commands definition to nrpe.cfg to rate limit simultaneous fork()ed children (Bryan Heden)
-- Added -E, --stderr-to-stdout options for check_nrpe to redirect output (Bryan Heden)
-- Added support for Gentoo init (Troy Lea @box293)
-- Cleaned up code a bit, updated readmes and comments across the board (Bryan Heden)
-- Added -V, --version to nrpe and fixed the output (Bryan Heden)
-- Added different SSL error messages to be able to pinpoint where some SSL errors occured (Bryan Heden)
-- Updated logic in al parse_allowed_hosts (Bryan Heden)
-- Added builtin OpenSSL Engine support where available (Bryan Heden + @skrueger8)
-- Clean up compilation warnings (Bryan Heden)
-- Added more commented commands in nrpe.cfg (Bryan Heden)
-
-FIXES
-- Undefined check returns UNKNOWN (Bryan Heden)
-- Fix incompatibility with OpenSSL 1.1.0 via SECLEVEL distinction (Bryan Heden)
-- Fix ipv4 error in logfile even if address is ipv6 (Bryan Heden)
-- Fix improper valid/invalid certificate warnings (Bryan Heden)
-
-
-3.1.1 - 2017-05-24
-------------------
-FIXES
-- The '--log-file=' or '-g' option is missing from the help (John Frickson)
-- check_nrpe = segfault when specifying a config file (John Frickson)
-- Alternate log file not being used soon enough (John Frickson)
-- Unable to compile v3.1.0rc1 with new SSL checks on rh5 (John Frickson)
-- Unable to compile nrpe-3.1.0 - undefined references to va_start, va_end (John Frickson)
-- Can't build on Debian Stretch, openssl 1.1.0c (John Frickson)
-- Fix build failure with -Werror=format-security (Bas Couwenberg)
-- Fixed a typo in `nrpe.spec.in` (John Frickson)
-- More detailed error logging for SSL (John Frickson)
-- Fix infinite loop when unresolvable host is in allowed_hosts (Nick / John Frickson)
-
-
-3.1.0 - 2017-04-17
-------------------
-ENHANCEMENTS
-- Added option to nrpe.cfg.in that can override hard-coded NASTY_METACHARS (John Frickson)
-- While processing 'include_dir' statement, sort the files (Philippe Kueck / John Frickson)
-- nrpe can now write to a log file using 'log_file=' in nrpe.cfg (John Frickson)
-- check_nrpe can now write to a log file using '--log-file=' or '-g' options (John Frickson)
-
-FIXES
-- Added missing debugging syslog entries, and changed printf()'s to syslog()'s. (Jobst Schmalenbach)
-- Fix help output for ssl option (configure) (Ruben Kerkhof)
-- Fixes to README.SSL.md and SECURITY.md (Elan Ruusamäe)
-- Changed the 'check_load' command in nrpe.cfg.in (minusdavid)
-- Cleanup of config.h.in suggested by Ruben Kerkhof
-- Minor change to logging in check_nrpe (John Frickson)
-- Solaris 11 detection is broken in configure (John Frickson)
-- Removed function `b64_decode` which wasn't being used (John Frickson)
-- check_nrpe ignores -a option when -f option is specified (John Frickson)
-- Added missing LICENSE file (John Frickson)
-- Off-by-one BO in my_system() (John Frickson)
-- Got rid of some compiler warnings (Stefan Krüger / John Frickson)
-- Add SOURCE_DATE_EPOCH specification support for reproducible builds. (Bas Couwenberg)
-- nrpe 3.0.1 allows TLSv1 and TLSv1.1 when I configure for TLSv1.2+ (John Frickson)
-- "Remote %s accepted a Version %s Packet", please add to debug (John Frickson)
-- nrpe 3.0.1 segfaults when key and/or cert are broken symlinks (John Frickson)
-- Fixed a couple of typos in docs/NRPE.* files (Ludmil Meltchev)
-- Changed release date to ISO format (yyyy-mm-dd) (John Frickson)
-- Fix systemd unit description (Bas Couwenberg)
-- Add reload command to systemd service file (Bas Couwenberg)
-- fix file not found error when updating version (Sven Nierlein)
-- Spelling fixes (Josh Soref)
-- Return UNKNOWN when check_nrpe cannot communicate with nrpe and -u set (John Frickson)
-- xinetd.d parameter causes many messages in log file (John Frickson)
-- Fixes for openssl 1.1.x (Stephen Smoogen / John Frickson)
-- PATH and other environment variables not set with numeric nrpe_user (John Frickson)
-- rpmbuild -ta nrpe-3.0.1.tar.gz failed File not found: /etc/init.d/nrpe (bvandi / John Frickson)
-
-
-3.0.1 - 2016-09-08
-------------------
-FIXES
-- _set_rc: command not found reported by init script (John Frickson)
-- Version string contains name (John Frickson)
-- Changes to get 'rpmbuild' to work - nrpe.spec file outdated (John Frickson)
-- typo in startup/default-xinetd.in (Philippe Kueck)
-- debug output missing command name (Philippe Kueck)
-- /usr/lib/tmpfiles.d/ndo2db.conf should have 'd' type, not 'D' (John Frickson)
-- Fixes in parse_allowed_hosts() and called functions (Jobst Schmalenbach / John Frickson)
-- nrpe.cfg: 'debug' statement needs to be first in file (Jobst Schmalenbach / John Frickson)
-
-
-3.0 - 2016-08-01
------------------
-SECURITY
-- Fix for CVE-2014-2913
-- Added function to clean the environment before forking. (John Frickson)
-
-ENHANCEMENTS
-- Added support for optional config file to check_nrpe. With the new SSL
-  parameters, the line was getting long. The config file is specified with
-  --config-file=<path> or -f <path> parameters. The config file must look
-  like command line options, but the options can be on separate lines. It
-  MUST NOT include --config-file (-f), --command (-c) or --args (-a). If any
-  options are in both the config file and on the command line, the command line
-  options are used.
-- make can now add users and groups using "make install-groups-users" (John Frickson)
-- Added "nrpe-uninstall" script to the same directory nrpe get installed to (John Frickson)
-- Updated code so configure && make will work on AIX, HP-UX, Solaris, OS X.
-  There should be no errors or warnings. Let me know if any errors or
-  warning appear (John Frickson)
-- Added command-line option to prevent forking, since some of the init
-  replacements (such as systemd, etc.) don't want daemons to fork (John Frickson)
-- Added autoconf macros and additional files to better support multi-platform
-  config and compile. The default will still set up to install to
-  /usr/local/nagios but I added a new configure option:
-  '--enable-install-method=<method>'. If <method> is 'opt', everything will
-  install to '/opt/nagios'. If <method> is 'os', installation will be to O/S-
-  and distribution-specific locations, such as /usr/sbin, /usr/lib/nagios,
-  /etc/nagios, and so on.
-- Added additional init and inetd config files to support more systems,
-  including SuSE, Debian, Slackware, Gentoo, *BSD, AIX, HP-UX, Solaris, OS X.
-- Added listen_queue_size as configuration option (Vadim Antipov, Kaspersky Lab)
-- Reworked SSL/TLS. See the README.SSL.md file for full info. (John Frickson)
-- Added support for version 3 variable sized packets up to 64KB. nrpe will
-  accept either version from check_nrpe. check_nrpe will try to send a
-  version 3 packet first, and fall back to version 2. check_nrpe can be forced
-  to only send version 2 packets if the switch `-2` is used. (John Frickson)
-- Added extended timeout syntax in the -t <secs>:<status> format. (ABrist)
-
-FIXES
-- Fixed configure to check more places for SSL headers/libs. (John Frickson)
-- Added ifdefs for complete_SSL_shutdown to compile without SSL. (Matthew L. Daniel)
-- Renamed configure.in to configure.ac and added check for sigaction (John Frickson)
-- Replaced all instances of signal() with sigaction() + blocking (John Frickson)
-- check_nrpe does not parse passed arguments correctly (John Frickson)
-- NRPE should not start if cannot write pid file (John Frickson)
-- Fixed out-of-bounds error (return code 255) for some failures (John Frickson)
-- Connection Timeout and Connection Refused messages need a new line (Andrew Widdersheim)
-- allowed_hosts doesn't work, if one of the hostnames can't be resolved by dns (John Frickson)
-- allowed_hosts doesn't work with a hostname resolving to an IPv6 address (John Frickson)
-- Return UNKNOWN when issues occur (Andrew Widdersheim)
-- NRPE returns OK if check can't be executed (Andrew Widdersheim)
-- nrpe 2.15 [regression in Added SRC support on AIX - 2.14] (frphoebus)
-- compile nrpe - Solaris 9 doesn't have isblank() (lilo, John Frickson)
-- sample configuration for check_load has crazy sample load avg (ernestoongaro)
-
-
-
-2.15 - 09/06/2013
------------------
-- Now compiles on HP-UX (Grant Byers)
-- Added support for IPv6 (Leo Baltus, Eric Stanley)
-
-
-
-2.14 - 12/21/2012
------------------
-- Added configure option to allow bash command substitutions, disabled by default [bug #400] (Eric Stanley)
-- Patched to shutdown SSL connection completely (Jari Takkala)
-- Added SRC support on AIX (Thierry Bertaud)
-- Updated RPM SPEC file to support creating RPMs on AIX (Eric Stanley)
-- Updated logging to support compiling on AIX (Eric Stanley)
-
-
-
-2.13 - 11/11/2011
------------------
-- Applied Kaspersky Labs supplied patch for extending allowed_hosts (Konstantin Malov)
-- Fixed bug in allowed_hosts parsing (Eric Stanley)
-- Updated to support compiling on Solaris 10 (thanks to Kevin Pendleton)
-
-
-
-2.12 - 03/10/2008
------------------
-- Fix for unterminated multiline plugin (garbage) output (Krzysztof Oledzki)
-
-
-
-2.11 - 12/26/2007
------------------
-- Added lib64 library paths to configure script for 64-bit systems (John Maag)
-- Added --with-ssl-lib configure script option
-- Added --with-log-facility option to control syslog logging (Ryan Ordway and Brian Seklecki)
-
-
-
-2.10 - 10/19/2007
------------------
-- Moved PDF docs to docs/ subdirectory, added OpenOffice source document
-- A critical result is now returned for child processed that die due to a signal (Klas Lindfors) 
-
-
-
-2.9 - 08/13/2007
-----------------
-- Fixed bug with --with-nrpe-group configure script option (Graham Collinson)
-- Fixed bug with check_disk thresholds in sample config file (Patric Wust)
-- Added NRPE_PROGRAMVERSION and NRPE_MULTILINESUPPORT environment variables
-  for scripts that need to detect NRPE version and capabilities (Gerhard Lausser)
-- Added asprintf() support for systems that are missing it (Samba team)
-
-
-
-2.8.1 - 05/10/2007
------------------
-- Fixed configure script error with user-specified NRPE group
-
-
-
-2.8 - 05/08/2007
----------------
-- Added support for multiline plugin output (limited to 1KB at the moment) (Matthias Flacke)
-
-
-
-2.8b1 - 03/14/2007
------------------
-- Changes to sample config files
-- Added ';' as an additional prohibited metachar for command arguments
-- Updated documentation and added easier installation commands
-
-
-
-2.7.1 - 03/08/2007
-------------------
-- Changed C++ style comment to C style to fix compilation errors on AIX (Ryan McGarry)
-
-
-
-2.7 - 02/18/2007
-----------------
-- Patches for detection SSL header and library locations (Andrew Boyce-Lewis)
-- NRPE daemon will now partially ignore non-fatal configuration file errors and attempt to startup (Andrew Boyce-Lewis)
-
-
-
-2.6 - 12/11/2006
-----------------
-- Added -u option to check_nrpe to return UNKNOWN states on socket timeouts (Bjoern Beutel)
-- Added connection_timeout variable to NRPE daemon to catch dead client connections (Ton Voon)
-- Added graceful timeout to check_nrpe to ensure connection to NRPE daemon is properly closed (Mark Plaksin)
-
-
-
-2.5.2 - 06/30/2006
-------------------
-- Fixed incorrect service name in sample xinetd config file
-- Added note on how to restart inetd for OpenBSD users (Robert Peaslee)
-- Fix for nonblocking accept()s on systems that define EAGAIN differently than EWOULDBLOCK (Gerhard Lausser)
-- Fix to (re)allow week random seed (Gerhard Lausser)
-
-
-
-2.5.1 - 04/09/2006
-------------------
-- Patch to fix segfault if --no-ssl option is used (Sean Finney/Peter Palfrader)
-
-
-
-2.5 - 04/06/2006
-----------------
-- (Re)added allowed_hosts option for systems that don't support TCP wrappers
-- Fix for SSL errors under Solaris 8 (Niels Endres)
-- Fix for config file directory inclusion on ReiserFS (Gerhard Lausser)
-
-
-
-2.4 - 02/22/2006
-----------------
-- Added option to allow week random seed (Gerhard Lausser)
-- Added optional command line prefix (Sean Finney)
-- Added ability to reload config file with SIGHUP
-- Fixed bug with location of dh.h include file
-- Fixed bug with disconnect message in debug mode
-
-
-
-2.3 - 01/23/2006
-----------------
-- Spec file fixes
-- Removed errant PID file debugging code
-- Fixed problem with trimming command definitions
-
-
-
-2.2 - 01/22/2006
-----------------
-- Spec file fix
-- Patch to add Tru64 and IRIX support (Ton Voon)
-- Updated config.sub and config.guess
-- Fixed bug with config file lines with only whitespace
-- Fixed bug with missing getopt() command line option for -V
-- Removed sample FreeBSD init script (now maintained by FreeBSD port)
-- Added config file option for writing a PID file
-
-
-
-2.1 - 01/19/2004
-----------------
-- Replaced host access list with TCP wrapper support
-- Removed length restrictions for command names and command lines
-- Configure script patch for getopt_long on Solaris
-- Bug fixes for accept() on HP-UX 11.0
-- Init script for SUSE Linux (Subhendu Ghosh)
-- SSL protocol used is now limited to TLSv1
-- Any output from plugins after first line is now ignored before
-  plugin process is closed
-
-
-
-2.0 - 09/08/2003
-----------------
-- Added support for passing arguments to command
-- NRPE daemon can no longer be run as root user/group
-- Added getopt support
-- Added 'include' variable to config file to allow inclusion
-  of external config files
-- Added 'include_dir' variable to allow inclusion of external
-  config files in directories (with recursion)
-- Added native SSL support (Derrick Bennett)
-- Added my_strsep(), as Solaris doesn't have strsep()
-- Added license exemption for use with OpenSSL
-
-
-
-1.8 - 01/16/2003
-----------------
-- Daemon now closes stdio/out/err properly (James Peterson)
-- Makefile changes (James Peterson)
-- Mode command line option bug fix in daemon
-- Fixed incorrect command line options in check_nrpe plugin
-
-
-
-1.7 - 01/08/2003
-----------------
-- Spec file updates and minor bug fixes (James Peterson)
-- Bug fix with default nrpe port definition
-- Added sample xinetd config file (nrpe.xinetd)
-- Bug fix for command_timeout variable (James Peterson)
-
-
-
-1.6 - 12/30/2002
-----------------
-- Updated sample commands to match new plugin argument format
-- Added sample init scripts for FreeBSD and Debian (Andrew Ryder)
-- Syntax changes (-H option specifies host name in check_nrpe, 
-  -c option specifies config file in nrpe)
-- Added command_timeout directive to config file to allow user
-  to specify timeout for executing plugins
-- Added spec file and misc patches for building RPMs (James Peterson)
-- Added --with-nrpe-port config directive (James Peterson)
-
-
-
-1.5 - 06/03/2002
-----------------
-- Added setuid/setgid option to config file (suggested by Marek Cervenka) 
-
-
-
-1.4 - 06/01/2002
-----------------
-- Changed STATE_UNKNOWN to value of 3 instead of -1 (old style)
-- Minor doc and sample config file changes
-
-
-
-1.3 - 02/21/2002
-----------------
-- Name and version change
-- Ignore SIGHUP, minor cleanup (Jon Andrews)
-
-
-
-1.2.5 - 12/22/2001
-------------------
-- Implemented Beej's sendall() to handle partial send()s
-- Added instructions on running under xinetd to README
-- Removed some old crud
-
-
-
-1.2.4 - 02/22/2001
-------------------
-- I forgot what changes I made.  Go figure...
-
-
-
-1.2.3 - 12/21/2000
-------------------
-- A bit more documentation on configuring command definitions for the plugin
-
-
-
-1.2.2 - 06/05/2000
-------------------
-- Fixed error in docs for running under inetd using TCP wrappers
-- Replaced old email address in src/netutils.h with new one
-
-
-
-1.2.1 - 05/07/2000
-------------------
-- Removed trapping of SIGCHLD
-- Changed wait4() to waitpid() to allow compilation on HP-UX and AIX
-
-
-
-1.2.0 - 04/18/2000
-------------------
-- Server forks twice after accepting a client connection, so as to prevent the
-  creation of zombies
-
-
-
-1.1.5 - 04/07/2000
-------------------
-- Fixed a small bug where one debug message was not getting logged properly
-
-
-
-1.1.4 - 03/30/2000
-------------------
-- Added option to disable/enable debug messages using the debug option in the
-  config file
-
-
-
-1.1.3 - 03/11/2000
-------------------
-- Changed config file to use an absolute path
-- Changed all debug output to use syslog (Rene Klootwijk)
-- No convert all data to network order before sending it and convert it back to
-  host order when receiving it. This makes it possible to mix Solaris and Linux,  
-  e.g. running check_nrpe on Linux and nrpe on Solaris. (Rene Klootwijk)
-
-
-
-1.1.2 - 03/07/2000
-------------------
-- Removed unnecessary code in signal handler routine
-- Unused signals are no longer trapper
-
-
-
-1.1.1 - 02/28/2000 - RKL
----------------------------
-- Modified syslog code to include string describing the error code.
-- Changed hardcoded number in signal handler to its name. This prevented nrpe
-  to run on Solaris.
-- Fixed race condition in accept loop. The result of accept should also be
-  checked for EINTR.
-- Modified recv and send function calls to compile without warnings on Solaris.
-- Modified configure.in,configure and Makefile.in to include nsl and socket libs
-  for Solaris.
-- Modified the signal handler to reestablish itself after being called.
-
-
-
-1.1 - 02/24/2000 - Rene Klootwijk <rene@klootwijk.org>
------------------
-- Added ability to bind nrpe to a specific interface by specifying the address
-  of this interface in the nrpe.cfg file (e.g. server_address=192.168.2.3)
-
-
-
-1.0   - 02/16/2000
-------------------
-- Added ability to run as a service under inetd
-
-
-
-1.0b6 - 02/01/2000
-------------------
-- Added configure script
-- Netutils functions from the NetSaint plugins is now used
-- Reset SIGCHLD to default behavior before calling popen() to
-  prevent race condition with pclose() (Reported by Rene Klootwijk)
-- Cleaned up code
-
-
-
-1.0b5 - 01/10/2000
-------------------
-- Added init script contributed by Jacob L
-- Incorporated syslog code and other patches contributed by Jacob L
-
-
-
-1.0b4 - 11/04/1999
-------------------
-- Changed 'allowed_ip' option in configuration file to
-  'allowed_hosts' and added support for multiple hosts
-- Minor buffer overflow protection fixes
-- main() returned STATE_UNKNOWN on successful launch, changed to STATE_OK (jaclu@grm.se)
-- Added syslog support (jaclu@grm.se)

+ 0 - 339
LICENSE

@@ -1,339 +0,0 @@
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                            NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.

+ 264 - 0
LICENSE.md

@@ -0,0 +1,264 @@
+The GNU General Public License, Version 2, June 1991 (GPLv2)
+============================================================
+
+> Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+> 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies of this license
+document, but changing it is not allowed.
+
+
+Preamble
+--------
+
+The licenses for most software are designed to take away your freedom to share
+and change it. By contrast, the GNU General Public License is intended to
+guarantee your freedom to share and change free software--to make sure the
+software is free for all its users. This General Public License applies to most
+of the Free Software Foundation's software and to any other program whose
+authors commit to using it. (Some other Free Software Foundation software is
+covered by the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom to
+distribute copies of free software (and charge for this service if you wish),
+that you receive source code or can get it if you want it, that you can change
+the software or use pieces of it in new free programs; and that you know you can
+do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny
+you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for a
+fee, you must give the recipients all the rights that you have. You must make
+sure that they, too, receive or can get the source code. And you must show them
+these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2) offer
+you this license which gives you legal permission to copy, distribute and/or
+modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients to
+know that what they have is not the original, so that any problems introduced by
+others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We wish
+to avoid the danger that redistributors of a free program will individually
+obtain patent licenses, in effect making the program proprietary. To prevent
+this, we have made it clear that any patent must be licensed for everyone's free
+use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+
+Terms And Conditions For Copying, Distribution And Modification
+---------------------------------------------------------------
+
+**0.** This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms of
+this General Public License. The "Program", below, refers to any such program or
+work, and a "work based on the Program" means either the Program or any
+derivative work under copyright law: that is to say, a work containing the
+Program or a portion of it, either verbatim or with modifications and/or
+translated into another language. (Hereinafter, translation is included without
+limitation in the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not covered by
+this License; they are outside its scope. The act of running the Program is not
+restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made by
+running the Program). Whether that is true depends on what the Program does.
+
+**1.** You may copy and distribute verbatim copies of the Program's source code
+as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the Program
+a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you may at
+your option offer warranty protection in exchange for a fee.
+
+**2.** You may modify your copy or copies of the Program or any portion of it,
+thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you also
+meet all of these conditions:
+
+*   **a)** You must cause the modified files to carry prominent notices stating
+    that you changed the files and the date of any change.
+
+*   **b)** You must cause any work that you distribute or publish, that in whole
+    or in part contains or is derived from the Program or any part thereof, to
+    be licensed as a whole at no charge to all third parties under the terms of
+    this License.
+
+*   **c)** If the modified program normally reads commands interactively when
+    run, you must cause it, when started running for such interactive use in the
+    most ordinary way, to print or display an announcement including an
+    appropriate copyright notice and a notice that there is no warranty (or
+    else, saying that you provide a warranty) and that users may redistribute
+    the program under these conditions, and telling the user how to view a copy
+    of this License. (Exception: if the Program itself is interactive but does
+    not normally print such an announcement, your work based on the Program is
+    not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be reasonably
+considered independent and separate works in themselves, then this License, and
+its terms, do not apply to those sections when you distribute them as separate
+works. But when you distribute the same sections as part of a whole which is a
+work based on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the entire whole,
+and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your
+rights to work written entirely by you; rather, the intent is to exercise the
+right to control the distribution of derivative or collective works based on the
+Program.
+
+In addition, mere aggregation of another work not based on the Program with the
+Program (or with a work based on the Program) on a volume of a storage or
+distribution medium does not bring the other work under the scope of this
+License.
+
+**3.** You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1 and 2
+above provided that you also do one of the following:
+
+*   **a)** Accompany it with the complete corresponding machine-readable source
+    code, which must be distributed under the terms of Sections 1 and 2 above on
+    a medium customarily used for software interchange; or,
+
+*   **b)** Accompany it with a written offer, valid for at least three years, to
+    give any third party, for a charge no more than your cost of physically
+    performing source distribution, a complete machine-readable copy of the
+    corresponding source code, to be distributed under the terms of Sections 1
+    and 2 above on a medium customarily used for software interchange; or,
+
+*   **c)** Accompany it with the information you received as to the offer to
+    distribute corresponding source code. (This alternative is allowed only for
+    noncommercial distribution and only if you received the program in object
+    code or executable form with such an offer, in accord with Subsection b
+    above.)
+
+The source code for a work means the preferred form of the work for making
+modifications to it. For an executable work, complete source code means all the
+source code for all modules it contains, plus any associated interface
+definition files, plus the scripts used to control compilation and installation
+of the executable. However, as a special exception, the source code distributed
+need not include anything that is normally distributed (in either source or
+binary form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component itself
+accompanies the executable.
+
+If distribution of executable or object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the source code
+from the same place counts as distribution of the source code, even though third
+parties are not compelled to copy the source along with the object code.
+
+**4.** You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy, modify,
+sublicense or distribute the Program is void, and will automatically terminate
+your rights under this License. However, parties who have received copies, or
+rights, from you under this License will not have their licenses terminated so
+long as such parties remain in full compliance.
+
+**5.** You are not required to accept this License, since you have not signed
+it. However, nothing else grants you permission to modify or distribute the
+Program or its derivative works. These actions are prohibited by law if you do
+not accept this License. Therefore, by modifying or distributing the Program (or
+any work based on the Program), you indicate your acceptance of this License to
+do so, and all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+**6.** Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties to this License.
+
+**7.** If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution of
+the Program by all those who receive copies directly or indirectly through you,
+then the only way you could satisfy both it and this License would be to refrain
+entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and the
+section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose that
+choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+**8.** If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.
+
+**9.** The Free Software Foundation may publish revised and/or new versions of
+the General Public License from time to time. Such new versions will be similar
+in spirit to the present version, but may differ in detail to address new
+problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies
+a version number of this License which applies to it and "any later version",
+you have the option of following the terms and conditions either of that version
+or of any later version published by the Free Software Foundation. If the
+Program does not specify a version number of this License, you may choose any
+version ever published by the Free Software Foundation.
+
+**10.** If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software Foundation,
+write to the Free Software Foundation; we sometimes make exceptions for this.
+Our decision will be guided by the two goals of preserving the free status of
+all derivatives of our free software and of promoting the sharing and reuse of
+software generally.
+
+
+No Warranty
+-----------
+
+**11.** BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
+THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM
+"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+**12.** IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
+INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
+BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
+OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+ 37 - 30
README.SSL.md

@@ -1,16 +1,27 @@
 NRPE With SSL/TLS
 =================
 
-##Contents
-1. [Introduction](#intro)
-2. [NRPE Changes](#nrpe)
-3. [check_nrpe Changes](#chk)
-4. [Certificate Generation Example](#xmp)
+This document covers the different methods of SSL transport
+that NRPE allows for. 
 
-<a id=intro></a>
+If there was a TL;DR here, it is these:
 
-------------
-###Introduction
+### Don't use NRPE without encryption
+
+and
+
+### Use Public Key Encryption
+
+Contents
+--------
+
+1. [Introduction](#introduction)
+2. [NRPE Changes](#current-nrpe-version-changes)
+3. [check_nrpe Changes](#check_nrpe-changes)
+4. [Certificate Generation Example](#certificate-generation-example)
+
+
+Introduction
 ------------
 
 NRPE has had basic support for SSL/TLS for some time now, but it was
@@ -19,17 +30,16 @@ exchange, it used a fixed 512-bit key (generated at `./configure`
 time and extremely insecure) and originally allowed SSLv2. In 2004,
 SSLv2 and SSLv3 support was disabled.
 
-nrpe and check_nrpe have been updated to offer much more secure
+`nrpe` and `check_nrpe` have been updated to offer much more secure
 encryption and more options. And the updates are done in a backward-
 compatible way, allowing you to migrate to the newer versions
 without having to do it all at once, and possibly miss updating some
 machines, causing lost reporting.
 
-<a id=nrpe></a>
 
-------------------------------------------
-###CHANGES IN THE CURRENT VERSION OF NRPE
-------------------------------------------
+
+Current NRPE Version Changes
+----------------------------
 
 Running `./configure` will now create a 2048-bit DH key instead
 of the old 512-bit key. The most current versions of openSSL will
@@ -52,8 +62,8 @@ If you are upgrading NRPE from a prior version, you can run the
 The `ssl_version` directive lets you set which versions of SSL/TLS
 you want to allow. SSLv2, SSLv3, TLSv1, TLSv1.1 and TLSv1.2 are
 allowed, or those litereals with a `+` after them (as in TLSv1.1+).
-Without the `+`, that version _only_ will be used. With the `+`,
-that version _or above_ will be used. openSSL will always negotiate
+Without the `+`, *that version only* will be used. With the `+`,
+that *version or above* will be used. openSSL will always negotiate
 the highest available allowed version available on both ends. This
 directive currently defaults to `TLSv1+`.
 
@@ -61,7 +71,7 @@ The `ssl_use_adh` directive is **DEPRECATED**, even though it is new.
 Possible values are `0` to not allow ADH at all, `1` to allow ADH,
 and `2` to require ADH. The `2` should never be required, but it's
 there just in case it's needed, for whatever reason. `1` is currently
-the default, which allows older check_nrpe plugins to connect using
+the default, which allows older `check_nrpe` plugins to connect using
 ADH. When all the plugins are migrated to the newer version, it
 should be set to `0`. In an upcoming version of NRPE, ADH will no
 longer be allowed at all. Note that if you use a `2` here, NRPE will
@@ -103,13 +113,11 @@ This can be especially helpful during plugin migration, so you can
 tell which plugins have certificates, what SSL/TLS version is being
 used, and which ciphers are being used.
 
-<a id=chk></a>
 
-------------------------------------------------
-###CHANGES IN THE CURRENT VERSION OF CHECK_NRPE
-------------------------------------------------
+check_nrpe Changes
+------------------
 
-The check_nrpe plugin has also been updated to provide more secure
+The `check_nrpe` plugin has also been updated to provide more secure
 encryption and allow the use of client certificates. The command line
 has several new options, which are outlined below. Both the long and
 short arguments are presented.
@@ -145,11 +153,10 @@ data to syslog. OR (or add) values together to have more than one
 option enabled. See the description of the `ssl_logging` directive
 from NRPE above.
 
-<a id=xmp></a>
 
-----------------------------------
-###Certificate Generation Example
-----------------------------------
+
+Certificate Generation Example
+------------------------------
 
 **Note** _The following example does not follow best practice for
 creating and running a CA or creating certificates. It is for testing
@@ -166,7 +173,7 @@ is called `nag_serv`; and there are two Linux machines that will
 run the nrpe daemon: `db_server` and `bobs_workstation`.
 
 
-####Set up the directories
+#### Set up the directories
 
 As root, do the following:
 
@@ -181,7 +188,7 @@ As root, do the following:
         chown root:nagios client_certs
 
 
-####Create Certificate Authority
+#### Create Certificate Authority
 
 If you want to validate client or server certificates, you will need
 to create a Certificate Authority (CA) that will sign all client and
@@ -203,7 +210,7 @@ probably want to include `CA` or `Certificate Authority` in for
         Common Name (e.g. server FQDN or YOUR name) []:Foo Nagios CA
 
 
-####Create NRPE Server Certificate Requests
+#### Create NRPE Server Certificate Requests
 
 For each of the hosts that will be running the nrpe daemon, you will
 need a server certificate. You can create a key, and the CSR
@@ -228,7 +235,7 @@ If you have the default `/etc/openssl.cnf`, either change it, or as root, do:
         mkdir demoCA
         mkdir demoCA/newcerts
         touch demoCA/index.txt
-		echo "01" > demoCA/serial
+        echo "01" > demoCA/serial
         chown -R root:root demoCA
         chmod 700 demoCA
         chmod 700 demoCA/newcerts
@@ -257,7 +264,7 @@ db_server machine, and the `bobs_workstation.pem` and
 `ca/ca_cert.pem` file to both machines.
 
 
-####Create NRPE Client Certificate Requests
+#### Create NRPE Client Certificate Requests
 
 Now you need to do the same thing for the machine that will be
 running the check_nrpe program.

+ 192 - 106
README.md

@@ -1,13 +1,30 @@
-NRPE README
-===========
+![Nagios!](https://www.nagios.com/wp-content/uploads/2015/05/Nagios-Black-500x124.png)
+
+[![Build Status](https://travis-ci.org/NagiosEnterprises/nrpe.svg?branch=master)](https://travis-ci.org/NagiosEnterprises/nrpe)
+
+NRPE
+====
+
+## Nagios Remote Plugin Executor
+
 
 For installation instructions and information on the design overview
 of the NRPE addon, please read the PDF documentation that is found in
-this directory: `docs/NRPE.pdf`
+this directory: `docs/NRPE.pdf`.
 
-If you are upgrading from a previous version, run 'update-cfg.pl' to
+If you are upgrading from a previous version, you'll want to
+check the [Changelog](CHANGELOG.md) and then run `./update-cfg.pl` to
 add the new SSL parameters to your config file.
 
+TL;DR: You can jump straight to [Compiling](#compiling) and
+[Installing](#installing)
+
+You'll want to read up on the [Security](SECURITY.md) document
+regarding NRPE, no doubt.
+
+And make sure to check out the [SSL Readme](README.SSL.md) as well,
+if you plan on using encryption methods to transmit `nrpe` data.
+
 
 Purpose
 -------
@@ -20,69 +37,126 @@ Contents
 
 There are two pieces to this addon:
 
-  1) **NRPE**       - This program runs as a background process on the
-                      remote host and processes command execution requests
-                      from the check_nrpe plugin on the Nagios host.
-                      Upon receiving a plugin request from an authorized
-                      host, it will execute the command line associated
-                      with the command name it received and send the
-                      program output and return code back to the
-                      check_nrpe plugin
-
-  2) **check_nrpe** - This is a plugin that is run on the Nagios host
-                      and is used to contact the NRPE process on remote
-                      hosts.  The plugin requests that a plugin be
-                      executed on the remote host and wait for the NRPE
-                      process to execute the plugin and return the result.
-                      The plugin then uses the output and return code
-                      from the plugin execution on the remote host for
-                      its own output and return code.
+1. `nrpe`
+
+   This program runs as a background process on the
+   remote host and processes command execution requests
+   from the check_nrpe plugin on the Nagios host.
+   Upon receiving a plugin request from an authorized
+   host, it will execute the command line associated
+   with the command name it received and send the
+   program output and return code back to the
+   check_nrpe plugin
+
+2. `check_nrpe` 
+
+   This is a plugin that is run on the Nagios host
+   and is used to contact the NRPE process on remote
+   hosts.  The plugin requests that a plugin be
+   executed on the remote host and wait for the NRPE
+   process to execute the plugin and return the result.
+   The plugin then uses the output and return code
+   from the plugin execution on the remote host for
+   its own output and return code.
 
 
 Compiling
 ---------
 
-The code is very basic and may not work on your particular
-system without some tweaking. If you are having any problems
-compiling on your system, please let us know, hopefully with
-fixes. Most users should be able to compile NRPE and the
-check_nrpe plugin with the following commands...
+If you are having any problems compiling on your system, 
+please let us know (preferrably with fixes). Most users 
+should be able to compile `nrpe` and the `check_nrpe` 
+plugin with the following commands...
 
     ./configure
     make all
 
-The binaries will be located in the `src/` directory after you
-run `make all` and will have to be installed manually somewhere
-on your system.
+***HINT:*** `./configure --help`
 
-_NOTE: Since the check_nrpe plugin and nrpe daemon run on different
-      machines (the plugin runs on the Nagios host and the daemon
-      runs on the remote host), you will have to compile the nrpe
-      daemon on the target machine._
+**NOTE:** If you're cloning from GitHub, you'll need to run
+`autoconf` first.
+
+**NOTE:** Since the check_nrpe plugin and nrpe daemon run 
+on different machines (the plugin runs on the Nagios host and 
+the daemon runs on the remote host), you will have to compile 
+the nrpe daemon on the target machine.
 
 
 Installing
 ----------
 
-The check_nrpe plugin should be placed on the Nagios host along
-with your other plugins.  In most cases, this will be in the
-`/usr/local/nagios/libexec` directory.
+You have a few options here. The binaries created from `make all` 
+were placed in your `src/` directory. You can either copy these 
+where they need to be, or you can run any of the following 
+`make install` options:
+
+* `make install-groups-users`
+
+   Add the users and groups sepcified during `./configure`. Defaults
+   to nagios and nagios, respectively. You can override these with the
+   `./configure --with-nrpe-user=USER --with-nrpe-group=GROUP`.
+
+* `make install`
+
+   This will run both `install-plugin` and `install-daemon`.
+
+* `make install-plugin`
 
-The nrpe program and the configuration file `nrpe.cfg` should
-be placed somewhere on the remote host.  Note that you will also
-have to install some plugins on the remote host if you want to
-make much use of this addon.
+   This will install the plugin by default in 
+   `/usr/local/nagios/libexec`. You can override this 
+   behavior by using the `--with-pluginsdir=DIR` flag during
+   `./configure`.
 
+* `make install-daemon`
+
+   This will install the plugin by default in 
+   `/usr/local/nagios/bin`. You can override this 
+   behavior by using the `--prefix=DIR` or 
+   `--bindir=DIR` flags during `./configure`.
+
+* `make install-config`
+
+   This will install the sample config by default in 
+   `/usr/local/nagios/etc`. You can override this 
+   behavior by using the `--with-pkgsysconfdir=DIR` 
+   flag during `./configure`.
+
+* `make install-inetd`
+
+   `./configure` attempts to determine your inetd type.
+   If it finds it, it will install the appropriate inetd 
+   script in the proper location. You can help it out with
+   `./configure --with-inetd-type=TYPE` where `TYPE` can be
+   one of: `inetd`, `xinetd`, `systemd`, `launchd`, 
+   `smf10`, `smf11`.
+
+* `make install-init`
+
+   `./configure` attempts to determine the appropriate
+   init type. If it figures it out, will install the
+   required startup script. You can help it out with
+   `./configure --with-init-type=TYPE` where TYPE can be
+   one of: `bsd`, `sysv`, `systemd`, `launchd`, `smf10`, 
+   `smf11`, `upstart`, `openrc`.
+
+If you used all the necessary `./configure` flags, you shouldn't
+need to tweak your config file any at this point, and a simple
+`service nrpe start` or `systemctl start nrpe.service` should
+work just fine.
 
 Configuring
 -----------
 
-Sample config files for the NRPE daemon are located in the
+A sample config file for the NRPE daemon are located in the
 `sample-config/` subdirectory.
 
+If you used the proper flags during `./configure`, this file
+should contain all of the appropriate information as a starting
+point.
 
-Running Under INETD or XINETD
------------------------------
+
+Running Under `inetd` or `xinetd`
+---------------------------------
 
 If you plan on running nrpe under inetd or xinetd and making use
 of TCP wrappers, you need to add a line to your `/etc/services`
@@ -93,72 +167,67 @@ file as follows (modify the port number as you see fit)
 The run `make install-inetd` to copy the appropriate file, or
 add the appropriate line to your `/etc/inetd.conf`.
 
-   _NOTE: If you run nrpe under inetd or xinetd, the server_port
-   and allowed_hosts variables in the nrpe configuration file are
-   ignored._
+**NOTE:** If you run nrpe under inetd or xinetd, the server_port
+and allowed_hosts variables in the nrpe configuration file are
+ignored.
 
 
-#### INETD
+* `inetd`
 
-After running `make install-inetd`, your `/etc/inetd.conf` file will
-contain lines similar to the following:
+   After running `make install-inetd`, your `/etc/inetd.conf` file will
+   contain lines similar to the following:
 
-```
-	#
-	# Enable the following entry to enable the nrpe daemon
-	#nrpe stream tcp nowait nagios /usr/local/nagios/bin/nrpe nrpe -c /usr/local/nagios/etc/nr
-	# Enable the following entry if the nrpe daemon didn't link with libwrap
-	#nrpe stream tcp nowait nagios /usr/sbin/tcpd /usr/local/nagios/bin/nrpe -c /usr/local/nag
-```
+       # Enable the following entry to enable the nrpe daemon
+       #nrpe stream tcp nowait nagios /usr/local/nagios/bin/nrpe nrpe -c /usr/local/nagios/etc/nr
+       # Enable the following entry if the nrpe daemon didn't link with libwrap
+       #nrpe stream tcp nowait nagios /usr/sbin/tcpd /usr/local/nagios/bin/nrpe -c /usr/local/nag
 
-Un-comment the appropriate line, then Restart inetd:
+   Un-comment the appropriate line, then Restart inetd:
 
-    /etc/rc.d/init.d/inet restart
+       /etc/rc.d/init.d/inet restart
 
-OpenBSD users can use the following command to restart inetd:
+   OpenBSD users can use the following command to restart inetd:
 
-    kill -HUP `cat /var/run/inet.pid`
+       kill -HUP `cat /var/run/inet.pid`
 
-Then add entries to your `/etc/hosts.allow` and `/etc/hosts.deny`
-file to enable TCP wrapper protection for the nrpe service.
-This is optional, although highly recommended.
+   Then add entries to your `/etc/hosts.allow` and `/etc/hosts.deny`
+   file to enable TCP wrapper protection for the nrpe service.
+   This is optional, although highly recommended.
 
 
-#### XINETD
+* `xinetd`
 
-If your system uses xinetd instead of inetd, `make install-inetd`
-will create a file called `nrpe` in your `/etc/xinetd.d`
-directory that contains a file similar to this:
+   If your system uses xinetd instead of inetd, `make install-inetd`
+   will create a file called `nrpe` in your `/etc/xinetd.d`
+   directory that contains a file similar to this:
 
-```
-    # default: off
-    # description: NRPE (Nagios Remote Plugin Executor)
-    service nrpe
-    {
-        disable         = yes
-        socket_type     = stream
-        port            = @NRPE_PORT@
-        wait            = no
-        user            = nagios
-        group           = nagios
-        server          = /usr/local/nagios/bin/nrpe
-        server_args     = -c /usr/local/nagios/etc/nrpe.cfg --inetd
-        only_from       = 127.0.0.1
-        log_on_failure  += USERID
-    }
-```
+       # default: off
+       # description: NRPE (Nagios Remote Plugin Executor)
+       service nrpe
+       {
+           disable         = yes
+           socket_type     = stream
+           port            = @NRPE_PORT@
+           wait            = no
+           user            = nagios
+           group           = nagios
+           server          = /usr/local/nagios/bin/nrpe
+           server_args     = -c /usr/local/nagios/etc/nrpe.cfg --inetd
+           only_from       = 127.0.0.1
+           log_on_failure  += USERID
+       }
 
-- Replace `disable = yes` with `disable = no`
-- Replace the `127.0.0.1` field with the IP addresses of hosts which
-  are allowed to connect to the NRPE daemon.  This only works if xinetd was
-  compiled with support for tcpwrappers.
-- Add entries to your `/etc/hosts.allow` and `/etc/hosts.deny`
-  file to enable TCP wrapper protection for the nrpe service.
-  This is optional, although highly recommended.
+   * Replace `disable = yes` with `disable = no`
+   * Replace the `127.0.0.1` field with the IP addresses of hosts which
+     are allowed to connect to the NRPE daemon.  This only works if xinetd was
+     compiled with support for tcpwrappers.
+   * Add entries to your `/etc/hosts.allow` and `/etc/hosts.deny`
+     file to enable TCP wrapper protection for the nrpe service.
+     This is optional, although highly recommended.
 
-Restart xinetd:
+   * Restart xinetd:
 
-    /etc/rc.d/init.d/xinetd restart
+          /etc/rc.d/init.d/xinetd restart
 
 
 Configuring Things On The Nagios Host
@@ -173,8 +242,8 @@ to define a few things in the host config file.  An example
 command definition for the check_nrpe plugin would look like this:
 
     define command{
-        command_name    check_nrpe
-        command_line    /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
+        command_name           check_nrpe
+        command_line           /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
         }
 
 In any service definitions that use the nrpe plugin/daemon to
@@ -183,24 +252,41 @@ of the definition to something like this (sample service definition
 is simplified for this example):
 
     define service{
-        host_name           someremotehost
-        service_description someremoteservice
-        check_command       check_nrpe!yourcommand
+        host_name              someremotehost
+        service_description    someremoteservice
+        check_command          check_nrpe!yourcommand
         ... etc ...
         }
 
 where `yourcommand` is a name of a command that you define in
-your nrpe.cfg file on the remote host (see the docs in the
+your `nrpe.cfg` file on the remote host (see the docs in the
 sample nrpe.cfg file for more information).
 
 
+License Notice
+--------------
+
+NRPE - Nagios Remote Plugin Executor
+
+Copyright (c) 2017 Nagios Enterprises
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+
 Questions?
 ----------
 
-If you have questions about this addon, or problems getting things
-working, first try searching the nagios-users mailing list archives.
-Details on searching the list archives can be found at
-http://www.nagios.org
-
-If you don't find an answer there, post a message in the Nagios
-Plugin Development forum at https://support.nagios.com/forum/viewforum.php?f=35
+If you have questions about this addon, or encounter problems getting things
+working along the way, your best bet for an answer or quick resolution is to check the
+[Nagios Support Forums](https://support.nagios.com/forum/viewforum.php?f=5).

+ 35 - 25
SECURITY.md

@@ -1,20 +1,19 @@
 NRPE SECURITY README
 ====================
 
----
-
-### TCP WRAPPER SUPPORT ###
-
+TCP Wrapper Support
+-------------------
 
 NRPE 2.x includes native support for TCP wrappers. Once you
 compile NRPE you can check to see if it has wrapper support
 built in by running the daemon from the command line without
 any arguments like this:
 
-	./nrpe --help
+    ./nrpe --help
 
 
-#### COMMAND ARGUMENTS ####
+Command Arguments
+-----------------
 
 NRPE 2.0 includes the ability for clients to supply arguments to
 commands which should be run.  Please note that this feature
@@ -22,7 +21,8 @@ should be considered a security risk, and you should only use
 it if you know what you're doing!
 
 
-#### BASH COMMAND SUBSTITUTION ####
+Bash Command Substitution
+-------------------------
 
 Even with the metacharacter restrictions below, if command arguments 
 are enabled, it is still possible to send bash command substitutions 
@@ -32,7 +32,8 @@ configuration file option. Enabling this option is **VERY RISKY**
 and its use is **HIGHLY DISCOURAGED**.
 
 
-#### ENABLING ARGUMENTS ####
+Enabling Arguments
+------------------
 
 To enable support for command argument in the daemon, you must
 do two things:
@@ -44,7 +45,8 @@ do two things:
        file to `1`.
 
 
-#### ENABLING BASH COMMAND SUBSTITUTION ####
+Enabling Bash Command Substitution
+----------------------------------
 
 To enable support for arguments containing bash command substitutions, 
 you must do two things:
@@ -58,56 +60,64 @@ you must do two things:
        NRPE config file to `1`.
 
 
-#### ILLEGAL METACHARS ####
+Nasty Metacharacters
+--------------------
 
 To help prevent some nasty things from being done by evil 
 clients, the following metacharacters are not allowed
 in client command arguments:
 
-	| ` & > < ' \ [ ] { } ; ! \r \n
+    | ` & > < ' \ [ ] { } ; ! \r \n
+
+You can override these defaults by adjusting the `nasty_metachars`
+flag in the config file.
 
 Any client request which contains the above mentioned metachars
 is discarded.
 
 
-#### USER/GROUP RESTRICTIONS ####
+User/Group Restrictions
+-----------------------
 
 The NRPE daemon cannot be run with (effective) root user/group
 privileges.  You must run the daemon with an account that does
-not have superuser rights.  Use the nrpe_user and nrpe_group
-directives in the config file to specify which user/group the
-daemon should run as.
+not have superuser rights.  Use the `--with-nrpe-user` and 
+`--with-nrpe-group` flags during `./configure`, or the `nrpe_user`
+and `nrpe_group` config file options to specify which user/group 
+the daemon should run as.
 
 
-#### ENCRYPTION ####
+Encryption
+----------
 
 If you do enable support for command arguments in the NRPE daemon,
 make sure that you encrypt communications either by using:
 
    1.  Stunnel (see http://www.stunnel.org for more info)
-   2.  Native SSL support (See the `README.SSL.md` file for more info)
+   2.  Native SSL support (See the [SSL Readme](README.SSL.md) file for more info)
 
-*Do NOT* assume that just because the daemon is behind a firewall
-that you are safe!  Always encrypt NRPE traffic!
+Do **NOT** assume that just because the daemon is behind a firewall
+that you are safe! ***Always encrypt NRPE traffic!***
 
 
-#### USING ARGUMENTS ####
+Using Arguments
+---------------
 
 How do you use command arguments?  Well, lets say you define a
 command in the NRPE config file that looks like this:
 
-	command[check_users]=/usr/local/nagios/libexec/check_users -w $ARG1$ -c $ARG2$
+    command[check_users]=/usr/local/nagios/libexec/check_users -w $ARG1$ -c $ARG2$
 
 You could then call the check_nrpe plugin like this:
 
-	./check_nrpe -H <host> -c check_users -a 5 10
+    ./check_nrpe -H <host> -c check_users -a 5 10
 
 The arguments '5' and '10' get substituted into the appropriate
-$ARGx$ macros in the command ($ARG1$ and $ARG2$, respectively).
+`$ARGx$` macros in the command (`$ARG1$` and `$ARG2$`, respectively).
 The command that would be executed by the NRPE daemon would look
 like this:
 
-	/usr/local/nagios/libexec/check_users -w 5 -c 10
+    /usr/local/nagios/libexec/check_users -w 5 -c 10
 
 You can supply up to 16 arguments to be passed to the command
-for substitution in $ARG$ macros ($ARG1$ - $ARG16$).
+for substitution in `$ARG$` macros (`$ARG1$` - `$ARG16$`).