SSL을 활성화한 후 NRPE에 대한 SSL 핸드셰이크 오류가 발생합니다. check_nrpe를 구현하는 SSL이 없어도 잘 작동합니다. 허용된 호스트는 정확하며 SSL을 활성화하지 않고 실행하면 올바른 버전이 표시됩니다. 둘 다 CentOS Linux 버전 7.9.2009(코어) 4.3에서 실행됩니다. Yum을 통해 설치된 소스에서 NRPE 또는 nagios를 컴파일하지 않았습니다.
다음은 이 문제에 중요하다고 생각되는 구성입니다.
이것은 내가 기록한 오류입니다. 잘못된 버전이라고 나와 있지만 둘 다 동일한 버전의 NRPE를 실행하고 있습니다.
실제로 구매한 와일드카드 인증서를 사용하고 있습니다. 인증서는 양면이 동일합니다. 인증서가 서버의 도메인 이름과 일치합니다.
nrpe --version
NRPE - Nagios Remote Plugin Executor
Version: 4.0.3
openssl 버전은 동일합니다.
openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
./check_nrpe -H hostname.domain.com을 실행하면 다음과 같은 결과가 나타납니다.
CHECK_NRPE: (ssl_err != 5) Error - Could not complete SSL handshake with 10.1.1.125: 1
다른 서버에 로그인:
Jan 5 12:48:54 nagiostest2 nrpe[3575]: Error: (ERR_get_error_line_data = 336130315), Could not complete SSL handshake with 10.1.1.64: wrong version number
Jan 5 12:51:11 nagiostest2 nrpe[3692]: CONN_CHECK_PEER: checking if host is allowed: 10.1.1.64 port 16075
Jan 5 12:51:11 nagiostest2 nrpe[3692]: is_an_allowed_host (AF_INET): is host >10.1.1.64< an allowed host >10.1.1.64<
Jan 5 12:51:11 nagiostest2 nrpe[3692]: is_an_allowed_host (AF_INET): is host >10.1.1.64< an allowed host >10.1.1.64<
Jan 5 12:51:11 nagiostest2 nrpe[3692]: is_an_allowed_host (AF_INET): host is in allowed host list!
Jan 5 12:51:11 nagiostest2 nrpe[3692]: Error: (ERR_get_error_line_data = 336105671), Could not complete SSL handshake with 10.1.1.64: peer did not return a certificate
이것은 내 nrpe.cfg의 중요한 부분입니다.
debug=1
ssl_cipher_list=ALL:!aNULL:!eNULL:!SSLv2:!LOW:!EXP:!RC4:!MD5:@STRENGTH
ssl_version=TLSv1.1+
#ssl_cipher_list=ALL:!MD5:@STRENGTH
#ssl_cipher_list=ALL:!MD5:@STRENGTH:@SECLEVEL=0
ssl_cipher_list=ALL:!aNULL:!eNULL:!SSLv2:!LOW:!EXP:!RC4:!MD5:@STRENGTH
# SSL Certificate and Private Key Files
ssl_cacert_file=/etc/nagios/ssl/ca.crt
ssl_cert_file=/etc/nagios/ssl/star.mydomain.com.crt
ssl_privatekey_file=/etc/nagios/ssl/star.mydomain.com.key
# SSL USE CLIENT CERTS
# This options determines client certificate usage.
# Values: 0 = Don't ask for or require client certificates (default)
# 1 = Ask for client certificates
# 2 = Require client certificates
ssl_client_certs=2
# Enables all SSL Logging
ssl_logging=0xff
미리 도움을 주셔서 감사합니다!
답변1
나는 nrpe.cfg
그것이 호출되는 노드(10.1.1.125)에서 나온다고 가정합니다. 그렇다면 Steffen이 위에서 말했듯이 다음과 같이 구성했습니다.필요하다그것을 부르는 사람의 증명서. 아마도 이것이 실행될 때 포함되어야 할 것입니다 check_nrpe
. 그리고 4.0.3(제가 가지고 있는 것)에 대한 도움말 텍스트를 보면 플래그가 있습니다 -C
. 따라서 이를 호출에 포함하거나 호출 중인 NRPE 노드를 재구성해야 할 수도 있습니다.