NRPE enhancement

Dave Viner dviner at yahoo-inc.com
Fri Dec 27 19:49:26 CET 2002


This sounds interesting, but I have a question about the security implications of this code.  I'm not a security expert, so please excuse the somewhat basic question.  The struct packet as defined in common/common.h has an argv member which is a character array of length 2048.   I believe this means that if the incoming packet has an argv member whose length is greater than 2048 chars, then the  
	rc=recvall(sock,(char *)&receive_packet,&bytes_to_recv,socket_timeout);
should fail, should it not?  

However, I think your suggestions regarding stunnel, and encryption are good ones, regardless of the inclusion of this code.

thanks

dave


-----Original Message-----
From: Carroll, Jim P [Contractor] [mailto:jcarro10 at sprintspectrum.com]
Sent: Friday, December 27, 2002 10:20 AM
To: 'Dave Viner'; Nagios-users at lists.sourceforge.net
Subject: RE: [Nagios-users] NRPE enhancement


I think it's a good idea, but with the following provisions:

- This should not be enabled by default.

- The configure script, the Makefile and any/all NRPE docs should explicitly
state the security risks in forcing the non-default (added feature)
behaviour.

- If the daemon is compiled with this option, anytime the daemon starts, it
should briefly mention that it has been compiled for this behaviour, and a
quick remark about the increased risks.  (Sent to stderr if standalone, else
sent to syslog if running under (x)inetd).  It should scream loud and clear
if it's started under root; preferably it would simply not run as root, full
stop.

- Perhaps a reference to implementing NRPE with stunnel (and only permitting
connections from localhost, as defined in nrpe.cfg) would be desireable.

I'm not a security guru, but it seems to me that facilitating this feature
would open oneself up to a buffer overflow attack.  If you're on a trusted
network, it's a non-issue.

On a related note, I'd be much more comfy with this feature if there were a
facility to enforce some level of native encryption, such as what NSCA uses.
If you don't have the keys to the house, you get dropped on the floor.  (I
have a similar wish for NSClient.)

Food for thought.

jc

> -----Original Message-----
> From: Dave Viner [mailto:dviner at yahoo-inc.com]
> Sent: Friday, December 27, 2002 11:48 AM
> To: Nagios-users at lists.sourceforge.net
> Subject: RE: [Nagios-users] NRPE enhancement
> 
> 
> In order to clarify the idea that I'm proposing, I've made a 
> patch to the nrpe source that implements what I'm describing. 
>  This patch is made against the nrpe-1.5.tar.gz from sourceforge.
> 
> Essentially, these changes allow us to specify in the 
> nrpe.cfg file lines like this:
>   command[check_disk_gen]=/usr/local/libexec/nagios/check_disk
> 
> Then when invoking check_nrpe, you can invoke it like this:
>   ./check_nrpe 127.0.0.1 -V 2 -c check_disk_gen -a "-w 50000 
> -c 10000 -p /dev/ad0s1e"
> 
> And the effect is that /usr/local/libexec/nagios/check_disk 
> is invoked with the -w 50000 -c 10000 -p /dev/ad0s1e as the 
> argument string.  For example:
> 
> ~/nagios/nrpe-1.5.new/src>./check_nrpe 127.0.0.1 -V 2 -c 
> check_disk_gen -a "-w 50000 -c 10000 -p /dev/ad0s1e"
> DISK OK - [1484108 kB (9%) free on /dev/ad0s1e]
> ~/nagios/nrpe-1.5.new/src>
> 
> I think this is really useful and would greatly reduce the 
> size of the nrpe.cfg and, more importantly, would reduce the 
> number of times you'd need to modify that configuration file. 
>  Instead the modifications would occur on the centralized 
> Nagios server's configuration file.
> 
> What does everyone think?  Should we add this to the main 
> source for NRPE-1.6?
> 
> dave
> 
> 
> -----Original Message-----
> From: nagios-users-admin at lists.sourceforge.net
> [mailto:nagios-users-admin at lists.sourceforge.net]On Behalf Of 
> Dave Viner
> Sent: Monday, December 23, 2002 8:51 AM
> To: Naios Users
> Subject: RE: [Nagios-users] NRPE enhancement
> 
> 
> Hi Rue,
> 	Security is a great reason for limiting the commands 
> that NRPE is able to execute.  But my suggested enhancement 
> wouldn't allow NRPE to execute any command that isn't listed 
> in the cfg file.  That is, the NRPE would still need to find 
> the path to the executable in the nrpe.cfg file, then use any 
> remaining information as arguments passed to the executable.  
> It is true that this is less secure that forcing the entire 
> command line (executable and arguments) in the config file.  
> But, so long as the executables are well authored and handle 
> unexpected arguments well, I think this enhancement would not 
> significantly decrease security.  Do you think that 
> specifying arguments would make NRPE significantly less secure?
> 
> 
> Dave
> 
> 
> -----Original Message-----
> From: nagios-users-admin at lists.sourceforge.net
> [mailto:nagios-users-admin at lists.sourceforge.net]On Behalf Of 
> Rue Turner
> Sent: Friday, December 20, 2002 1:33 PM
> To: Naios Users
> Subject: Re: [Nagios-users] NRPE enhancement
> 
> 
> dave,
> 
> I think the reson for this choice of configuration is security. If the
> nrpe was allowed to run whatever it was asked it would be easy to
> compromise your machines. This way although your configs are 
> hefty (mine
> have almost a hundred lines in) you can only ask it to run 
> commands from
> this library.
> 
> rue
> 
> 
> On Fri, 2002-12-20 at 17:35, Dave Viner wrote:
> > Hi,
> > 	I'd like to suggest an enhancement to NRPE, and if 
> people think this is a
> > good idea, I'll try to make a patch to support my 
> suggestion.  Currently the
> > nrpe.cfg file specifies all the commands in this fashion:
> > 	
> command[check_disk1]=/usr/local/nagios/libexec/check_disk 80 
> 95 /dev/hda1
> > As result of this design is that if you want to check something like
> > /dev/hda1 and /dev/hdb1, you need two seperate lines in the 
> nrpe.cfg file.
> > 	So, I'd like to propose that we extend NRPE to allow 
> for the arguments to a
> > command to be specified by the central Nagios server 
> instead of in the
> > nrpe.cfg.  The idea is that the nrpe.cfg would have one 
> command line which
> > maps a key, 'check_disk', to a local executable,
> > '/usr/local/nagios/libexec/check_disk'.  The rest would be 
> specified from
> > the central Nagios server in some manner.
> > 	I think this would great simplify the nrpe.cfg files, 
> and reduce a lot of
> > redundant command definitions that differ only in the arguments they
> > require.  Also, it would mean that you'd need to update 
> your nrpe.cfg very
> > rarely.  In fact, you'd only need to update it when you add 
> a new plugin.
> > 	I don't have a concrete suggestion for implementing 
> this yet, because I
> > want to see if the community is interested in this idea 
> first.  Has this
> > idea been suggested previously?  Is anyone currently 
> interested in the idea
> > or would I be the only consumer of such a service?
> > 
> > thanks
> > dave
> > 
> > 
> > 
> > -------------------------------------------------------
> > This SF.NET email is sponsored by:  The Best Geek Holiday Gifts!
> > Time is running out!  Thinkgeek.com has the coolest gifts for
> > your favorite geek.   Let your fingers do the typing.   Visit Now.
> > T H I N K G E E K . C O M        http://www.thinkgeek.com/sf/
> > _______________________________________________
> > Nagios-users mailing list
> > Nagios-users at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/nagios-users
> 
> 
>                       r u e  t u r n e r
>   · t · h · i · n · l · a · y · e · r · 
>  
> -- index, n.: Alphabetical list of words of no possible interest where
> an alphabetical list of subjects with references ought to be.
> 
> 
> -------------------------------------------------------
> This SF.NET email is sponsored by:  The Best Geek Holiday Gifts!
> Time is running out!  Thinkgeek.com has the coolest gifts for
> your favorite geek.   Let your fingers do the typing.   Visit Now.
> T H I N K G E E K . C O M        http://www.thinkgeek.com/sf/
> _______________________________________________
> Nagios-users mailing list
> Nagios-users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nagios-users
> 
> 
> 
> 
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> Nagios-users mailing list
> Nagios-users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nagios-users
> 
> 




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf




More information about the Users mailing list