[错误]:错误 - 无法完成SSL握手。 ON LOCALHOST

时间:2016-11-02 05:46:57

标签: nagios nrpe

有关此错误的所有问题都显示人们正在运行check_nrpe -H [some_remote_ip],而不是在localhost上运行错误。

但是,我甚至不能在localhost上运行它:

$> ./check_nrpe -H localhost
CHECK_NRPE: Error - Could not complete SSL handshake.

该服务似乎已启动并正在运行:

$> sudo netstat -apn | grep :5666
tcp        0      0 0.0.0.0:5666            0.0.0.0:*        LISTEN      5847/nrpe
tcp6       0      0 :::5666                 :::*             LISTEN      10216/nrpe

守护进程没有返回错误

$> sudo service nagios-nrpe-server status
* nagios-nrpe is running

我的nrpe.cfg文件已正确设置allowed_hosts

allowed_hosts=127.0.0.1,10.0.1.2,0.0.0.0

启用调试的/var/log/syslog内容:

Nov  1 22:54:44 <MYHOST> nrpe[11156]: Connection from ::1 port 6601
Nov  1 22:54:44 <MYHOST> nrpe[11156]: Host ::1 is not allowed to talk to us!
Nov  1 22:54:44 <MYHOST> nrpe[11156]: Connection from ::1 closed.

有没有人知道发生了什么,这看起来几乎是荒谬的。谢谢!

3 个答案:

答案 0 :(得分:1)

请注意,我的示例可能与您的不同。

首先更改为具有nrpe命令的文件夹并运行:

./nrpe --version

该命令的输出如下所示:

NRPE - Nagios Remote Plugin Executor
Copyright (c) 1999-2008 Ethan Galstad (nagios@nagios.org)
Version: nrpe-3.0
Last Modified: 07-12-2016
License: GPL v2 with exemptions (-l for more info)
SSL/TLS Available, OpenSSL 0.9.6 or higher required

请注意,最后一行告诉您这个NRPE版本确实支持SSL。如果不存在,那么您必须安装一个使用SSL支持编译的版本(这可能意味着为您自己编译一个版本,具体取决于您获得它的位置)。源代码的文档非常清楚如何完成。

如果您有上面的SSL行,请查看该行上的所需版本并检查您的系统以确保至少已安装该版本。我用了这个命令:

rpm -qa | grep openssl

收到的输出如下:

libopenssl1_0_0-32bit-1.0.1k-2.39.1.x86_64
openssl-1.0.1k-2.39.1.x86_64

openssl和libopenssl都是NRPE SSL支持正常运行所必需的。我强烈建议如果没有安装这些,请使用您的系统软件包安装程序(aptget,yum,zypper,...)来获取和安装它们。如果这些已经安装,但您仍然有错误,那么您可能会遇到配置问题:

/etc/ssl/openssl.cnf

修复远远超出此处可用的范围/空间。我建议通过工作的在线软件包升级这两个软件包 - 这些软件包总是包含一个默认配置,应该可以正常使用NRPE - 假设版本等于或高于要求。

答案 1 :(得分:0)

我认为check_nrpe正在尝试使用IPv6。

IPv6 localhost ip为::1,因此将其添加到allowed_hosts=中的_nrpe.cfg_行并重新启动nrpe将为您勾选此框。

或者,当另一个响应者回复时,您只需将-4添加到check_nrpe命令,以强制它坚持使用IPv4。

我遇到了同样的问题,只有当我在问题中看到::1时,我才知道发生了什么事。

答案 2 :(得分:0)

我不确定它是否仍然相关,但我遇到了同样的问题并发现有人更改了/etc/hosts.allow文件,阻止了访问。不知何故,这会导致以下错误:

Client: Connection refused by TCP wrapper
Server: Error: (nerrs = 0)(!log_opts) Could not complete SSL handshake with <Client IP> : rc=-1 SSL-error=5

更改/etc/hosts.allow文件解决了问题。