From 8fa9370a0c0d576c5e8cb945e4195541be7f3823 Mon Sep 17 00:00:00 2001 From: Franz Schwartau Date: Tue, 29 Aug 2023 10:58:31 +0200 Subject: Rename test variables for upcoming new variables with the same name diff --git a/.github/NPTest.cache b/.github/NPTest.cache index 232305a..c8dbdf6 100644 --- a/.github/NPTest.cache +++ b/.github/NPTest.cache @@ -25,8 +25,8 @@ 'NP_HOST_TCP_POP' => 'pop.web.de', 'NP_HOST_TCP_PROXY' => 'localhost', 'NP_HOST_TCP_SMTP' => 'localhost', - 'NP_HOST_TCP_SMTP_NOTLS' => '', - 'NP_HOST_TCP_SMTP_TLS' => '', + 'NP_HOST_TCP_SMTP_NOSTARTTLS' => '', + 'NP_HOST_TCP_SMTP_STARTTLS' => '', 'NP_HOST_TLS_CERT' => 'localhost', 'NP_HOST_TLS_HTTP' => 'localhost', 'NP_HOST_UDP_TIME' => 'none', diff --git a/plugins/t/check_smtp.t b/plugins/t/check_smtp.t index aa6dae4..fd09ed2 100644 --- a/plugins/t/check_smtp.t +++ b/plugins/t/check_smtp.t @@ -8,12 +8,12 @@ use strict; use Test::More; use NPTest; -my $host_tcp_smtp = getTestParameter( "NP_HOST_TCP_SMTP", +my $host_tcp_smtp = getTestParameter( "NP_HOST_TCP_SMTP", "A host providing an SMTP Service (a mail server)", "mailhost"); -my $host_tcp_smtp_tls = getTestParameter( "NP_HOST_TCP_SMTP_TLS", - "A host providing SMTP with TLS", $host_tcp_smtp); -my $host_tcp_smtp_notls = getTestParameter( "NP_HOST_TCP_SMTP_NOTLS", - "A host providing SMTP without TLS", ""); +my $host_tcp_smtp_starttls = getTestParameter( "NP_HOST_TCP_SMTP_STARTTLS", + "A host providing SMTP with STARTTLS", $host_tcp_smtp); +my $host_tcp_smtp_nostarttls = getTestParameter( "NP_HOST_TCP_SMTP_NOSTARTTLS", + "A host providing SMTP without STARTTLS", ""); my $host_nonresponsive = getTestParameter( "NP_HOST_NONRESPONSIVE", "The hostname of system not responsive to network requests", "10.0.0.1" ); @@ -45,16 +45,16 @@ SKIP: { } SKIP: { - skip "No SMTP server with TLS defined", 1 unless $host_tcp_smtp_tls; - # SSL connection for TLS - $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp_tls -p 25 -S" ); + skip "No SMTP server with STARTTLS defined", 1 unless $host_tcp_smtp_starttls; + # SSL connection for STARTTLS + $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp_starttls -p 25 -S" ); is ($res->return_code, 0, "OK, with STARTTLS" ); } SKIP: { - skip "No SMTP server without TLS defined", 2 unless $host_tcp_smtp_notls; - $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp_notls -p 25 -S" ); - is ($res->return_code, 1, "OK, got warning from server without TLS"); + skip "No SMTP server without STARTTLS defined", 2 unless $host_tcp_smtp_nostarttls; + $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp_nostarttls -p 25 -S" ); + is ($res->return_code, 1, "OK, got warning from server without STARTTLS"); is ($res->output, "WARNING - TLS not supported by server", "Right error message" ); } -- cgit v0.10-9-g596f From 3a69b8c16a78953f89267238e74abc4c9e5dca7f Mon Sep 17 00:00:00 2001 From: Franz Schwartau Date: Tue, 29 Aug 2023 12:25:17 +0200 Subject: enable NP_HOST_TCP_SMTP_STARTTLS diff --git a/.github/NPTest.cache b/.github/NPTest.cache index c8dbdf6..e369457 100644 --- a/.github/NPTest.cache +++ b/.github/NPTest.cache @@ -26,7 +26,7 @@ 'NP_HOST_TCP_PROXY' => 'localhost', 'NP_HOST_TCP_SMTP' => 'localhost', 'NP_HOST_TCP_SMTP_NOSTARTTLS' => '', - 'NP_HOST_TCP_SMTP_STARTTLS' => '', + 'NP_HOST_TCP_SMTP_STARTTLS' => 'localhost', 'NP_HOST_TLS_CERT' => 'localhost', 'NP_HOST_TLS_HTTP' => 'localhost', 'NP_HOST_UDP_TIME' => 'none', -- cgit v0.10-9-g596f From 06ebad83995921b622aecbd2111f1f6e6c62efc4 Mon Sep 17 00:00:00 2001 From: Franz Schwartau Date: Tue, 29 Aug 2023 15:12:47 +0200 Subject: check_smtp: add tests for --ssl diff --git a/.github/NPTest.cache b/.github/NPTest.cache index e369457..d488d1b 100644 --- a/.github/NPTest.cache +++ b/.github/NPTest.cache @@ -27,6 +27,7 @@ 'NP_HOST_TCP_SMTP' => 'localhost', 'NP_HOST_TCP_SMTP_NOSTARTTLS' => '', 'NP_HOST_TCP_SMTP_STARTTLS' => 'localhost', + 'NP_HOST_TCP_SMTP_TLS' => 'localhost', 'NP_HOST_TLS_CERT' => 'localhost', 'NP_HOST_TLS_HTTP' => 'localhost', 'NP_HOST_UDP_TIME' => 'none', diff --git a/.github/prepare_debian.sh b/.github/prepare_debian.sh index 9611670..dcf778b 100755 --- a/.github/prepare_debian.sh +++ b/.github/prepare_debian.sh @@ -116,7 +116,11 @@ service snmpd start # start cron, will be used by check_nagios cron -# start postfix +# postfix +cat <> /etc/postfix/master.cf +smtps inet n - n - - smtpd + -o smtpd_tls_wrappermode=yes +EOD service postfix start # start ftpd diff --git a/plugins/t/check_smtp.t b/plugins/t/check_smtp.t index fd09ed2..1a1ebe3 100644 --- a/plugins/t/check_smtp.t +++ b/plugins/t/check_smtp.t @@ -14,6 +14,8 @@ my $host_tcp_smtp_starttls = getTestParameter( "NP_HOST_TCP_SMTP_STARTTLS", "A host providing SMTP with STARTTLS", $host_tcp_smtp); my $host_tcp_smtp_nostarttls = getTestParameter( "NP_HOST_TCP_SMTP_NOSTARTTLS", "A host providing SMTP without STARTTLS", ""); +my $host_tcp_smtp_tls = getTestParameter( "NP_HOST_TCP_SMTP_TLS", + "A host providing SMTP with TLS", $host_tcp_smtp); my $host_nonresponsive = getTestParameter( "NP_HOST_NONRESPONSIVE", "The hostname of system not responsive to network requests", "10.0.0.1" ); @@ -22,7 +24,7 @@ my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID", "An invalid (not known to DNS) hostname", "nosuchhost" ); my $res; -plan tests => 10; +plan tests => 16; SKIP: { skip "No SMTP server defined", 4 unless $host_tcp_smtp; @@ -42,6 +44,10 @@ SKIP: { local $TODO = "Output is over two lines"; like ( $res->output, qr/^SMTP WARNING/, "Correct error message" ); } + + $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp --ssl -p 25" ); + is ($res->return_code, 2, "Check rc of connecting to $host_tcp_smtp with TLS on standard SMTP port" ); + like ($res->output, qr/^CRITICAL - Cannot make SSL connection\./, "Check output of connecting to $host_tcp_smtp with TLS on standard SMTP port"); } SKIP: { @@ -58,6 +64,18 @@ SKIP: { is ($res->output, "WARNING - TLS not supported by server", "Right error message" ); } +SKIP: { + skip "No SMTP server with TLS defined", 1 unless $host_tcp_smtp_tls; + $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp_tls --ssl" ); + is ($res->return_code, 0, "Check rc of connecting to $host_tcp_smtp_tls with TLS" ); + like ($res->output, qr/^SMTP OK - /, "Check output of connecting to $host_tcp_smtp_tls with TLS" ); + + my $unused_port = 4465; + $res = NPTest->testCmd( "./check_smtp -H $host_tcp_smtp_tls -p $unused_port --ssl" ); + is ($res->return_code, 2, "Check rc of connecting to $host_tcp_smtp_tls with TLS on unused port $unused_port" ); + like ($res->output, qr/^connect to address $host_tcp_smtp_tls and port $unused_port: Connection refused/, "Check output of connecting to $host_tcp_smtp_tls with TLS on unused port $unused_port"); +} + $res = NPTest->testCmd( "./check_smtp $host_nonresponsive" ); is ($res->return_code, 2, "CRITICAL - host non responding" ); -- cgit v0.10-9-g596f