Nagios - 无法完成 SSL 握手

Nagios - 无法完成 SSL 握手

我正在尝试配置 Nagios 命令,以便使用 NRPE 插件检查远程 Windows 主机上的物理内存状态。我在 Ubuntu Server v14.10 上使用 Nagios v3.0.6,以及最新稳定版 NSClient++ 0.4.3。以下是配置文件中的片段:

define command {
          command_name check_ph_mem
          command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -p 5666 -c CheckMEM -a MaxWarn=$ARG1$% MaxCrit=$ARG2$% ShowAl$
}

define service{
        host_name               remote-win-host
        service_description     Check Memory NRPE
        check_command           check_ph_mem
        use                     generic-service
}

Nagios 无法从此命令中检索任何信息,因为当我执行

/usr/lib/nagios/plugins/check_nrpe -H  192.168.1.150

它返回以下错误:

CHECK_NRPE: Error - Could not complete SSL handshake.

我已尝试按C:\Program Files\NSClient++\nsclient.ini以下方式重新配置部分内容:

[/settings/NRPE/server]

allow arguments = true

allowed hosts = 192.168.1.15

port = 5666 

但它返回了相同的错误。我已经阅读了数十个类似的主题并尝试了不同的建议,但我仍然遇到相同的问题。

您知道如何修复这个问题吗?

答案1

如果您在 Windows 主机上使用 NSCP-0.4.3.x(而不是 NSCP-0.4.2.x),则基于证书的身份验证将成为默认身份验证方法。这就是您的检查不起作用的原因。要解决此问题,您需要将以下内容添加到您的配置中:

[/settings/NRPE/server]
insecure = true  

之后您需要重新启动 NSClient++ 服务。更多信息请参见这里(6.1 什么是不安全模式)

答案2

就我而言,我必须添加以下内容:

; ALLOW INSECURE CHIPHERS and ENCRYPTION - Only enable this if you are using legacy check_nrpe client.

接下来的两行:

insecure = true

allow arguments = true

并更改如下:

; VERIFY MODE - Comma separated list of verification flags to set on the SSL socket

verify mode = peer-cert

verify mode = none

答案3

使用 NSClient++ 0.5.2.39 和 check_nrpe 3.2.1,以下是对我有用的:

  1. 在Linux机器上生成DH密钥(需要很长时间)

    openssl dhparam -C 2048 2> /dev/null|sed -n '/BEGIN/,/END/p'
    
  2. 将你的 DH 密钥粘贴到新创建的文件中C:\Program Files\NSClient++\security\nrpe_dh_2048.pem

  3. 编辑C:\Program Files\NSClient++\nsclient.ini

    [/settings/NRPE/server]
    dh = ${certificate-path}/nrpe_dh_2048.pem
    
  4. 重新启动 NSClient++ 服务:net stop nscp && net start nscp

这是基于精彩的文章http://hodza.net/2019/09/21/failed-to-establish-secure-connection-sslv3-alert-handshake-failure-1040/

答案4

编辑您的 nsclient.ini 文件并按如下所示设置参数,它对我来说有效:

[/settings/NRPE/server]
allow arguments = 1
allow nasty_meta chars = 1
allowed hosts = 10.10.83.94,127.0.0.1
port = 5666
use SSL = 1   
ssl options = no-sslv2,no-sslv3  
verify mode = none
insecure = true

相关内容