Commit graph

139 commits

Author SHA1 Message Date
Lorenz Kästle
1a94de9ae6 check_smtp: implement ok summary 2026-06-04 23:59:56 +02:00
Lorenz Kästle
3a6f9292f1
Rename USE_OPENSSL to MOPL_USE_OPENSSL (#2253)
net-snmp uses the same pre processor name "USE_OPENSSL" as we do.
To avoid the conflict, this commit renames it on our side to
"MOPL_USE_OPENSSL".
"MOPL" (better "MoPl"?) stands for Monitoring Plugins.
2026-04-08 18:06:29 +02:00
Dirk Mueller
07a249a5d7
Fix typo in enum MP_PARSING_SUCCES(S) (#2233) 2026-02-16 11:22:39 +01:00
Lorenz Kästle
0f0865c910
Make IPv6 unconditional (#2219)
Some checks failed
Tests Debian:Testing and Fedora:Rawhide / Running unit and integrationt tests (push) Has been cancelled
Tests Debian:Testing and Fedora:Rawhide / Running rpm build test on fedora:rawhide (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Spellcheck / codespell (push) Has been cancelled
Tests / Running unit and integrationt tests (push) Has been cancelled
Tests / Running rpm build test on almalinux:9 (push) Has been cancelled
Tests / Running rpm build test on fedora:latest (push) Has been cancelled
Tests / Running rpm build test on rockylinux:8 (push) Has been cancelled
This commits removes the detection of IPv6 availability.
The IPv6 code in the plugins is used unconditionally now.
2026-02-06 12:59:58 +01:00
Alvar
cef40299a9
OpenBSD: pledge(2) some network-facing checks (#2225)
OpenBSD's pledge(2) system call allows the current process to
self-restrict itself, being reduced to promised pledges. For example,
unless a process says it wants to write to files, it is not allowed to
do so any longer.

This change starts by calling pledge(2) in some network-facing checks,
removing the more dangerous privileges, such as executing other files.

My initial motivation came from check_icmp, being installed as a setuid
binary and (temporarily) running with root privileges. There, the
pledge(2) calls result in check_icmp to only being allowed to interact
with the network and to setuid(2) to the calling user later on.

Afterwards, I went through my most commonly used monitoring plugins
directly interacting with the network. Thus, I continued with
pledge(2)-ing check_curl - having a huge codebase and all -,
check_ntp_time, check_smtp, check_ssh, and check_tcp.

For most of those, the changes were quite similar: start with
network-friendly promises, parse the configuration, give up file access,
and proceed with the actual check.
2026-02-06 12:58:38 +01:00
Alvar Penning
ca5c2b3a5f
plugins/check_smtp: Remove unnecessary glibc-only include
This library is glibc-only and not necessary at this point. The
getopt_long function is provided by "getopt.h", included via "common.h".

Similar to #2159.
2025-12-11 21:05:49 +01:00
Lorenz Kästle
bc2720abdd check_smtp: certificate check is no longer opt-in
This is a breaking change.
Testing whether a TLS certificate is still valid (expiration wise)
is now the default in check_smtp.
The reasoning is, that in most scenarios an expired certificate
will effectively mean that the service is not working anymore due to
the refusal of other software to talk to it.

There is a new cli parameter though to explicitly ignore that.
2025-11-09 11:46:36 +01:00
Lorenz Kästle
62035adf6c check_smtp: implement output format cli parameter 2025-11-09 11:32:43 +01:00
Lorenz Kästle
6bc9e518b2 check_smtp: modern output + some tls cert helper functions 2025-11-08 00:19:25 +01:00
Lorenz Kästle
802e46f8ea Run clang-format again 2025-09-15 12:59:37 +02:00
Lorenz Kästle
6cd097921f Allow setting of port independent of argument position again 2025-03-10 21:27:50 +01:00
Lorenz Kästle
5cf53de34f check_smtp: fix positional host logic 2025-03-10 20:56:09 +01:00
Lorenz Kästle
897fef9370 check_smtp: small improvements 2025-03-10 20:54:52 +01:00
Lorenz Kästle
c5f873aa7b check_smtp: small style fixes 2025-03-10 09:56:05 +01:00
Lorenz Kästle
acf57dba52 check_smtp: Remove unused enum 2025-03-10 01:32:49 +01:00
Lorenz Kästle
883fcb607f Refactor check_smtp 2025-03-10 01:31:52 +01:00
Lorenz Kästle
0867319268 check_smtp: clang-format 2025-03-09 23:40:05 +01:00
Lorenz Kästle
b830c7a3e0 check_smtp: delare previously missed file local variables static 2024-11-08 12:51:14 +01:00
Lorenz Kästle
d330b975b3 check_smtp: delare file local variables static 2024-11-08 12:47:32 +01:00
Lorenz Kästle
41b0b959d8 check_smtp: update copyright 2024-10-31 14:46:36 +01:00
RincewindsHat
decca6d290 check_smtp: Restore behaviour pre ead5526efa regarding -D and TLS 2023-10-19 11:31:28 +02:00
RincewindsHat
d820929dd8 check_smtp: little fix for C99 booleans missed earlier 2023-10-19 10:17:28 +02:00
RincewindsHat
163ad151b9 check_smtp: Use C99 booleans 2023-10-18 20:55:22 +02:00
Franz Schwartau
ce96ef868a check_smtp: Let port option always take precedence
Otherwise -s/--ssl would overwrite a port given with -p if it comes
after it, e. g.

check_smtp -H mailhost.example.com -p 4465 --ssl

Found-By: Lorenz Kästle
2023-08-29 09:46:50 +02:00
Franz Schwartau
079c300dcc check_smtp: add new longoption --tls
This is an alias for -s/--ssl.
2023-08-29 09:46:50 +02:00
Franz Schwartau
da81dd3cf2 check_smtp: remove restriction of --proxy with --ssl 2023-08-29 09:46:50 +02:00
Franz Schwartau
e823896d8a check_smtp: set default port to smtps (465) for TLS
The port can still be set with -p.
2023-08-29 09:46:50 +02:00
Franz Schwartau
ead5526efa Add support for SMTP over TLS
This is commonly used on smtps (465) port.

PROXY protocol is not implemented with TLS in check_smtp.c, yet.

Backported from nagios-plugins:
0a8cf08ebb
2023-08-29 09:46:50 +02:00
waja
265a7c0ed8
Merge branch 'master' into compiler_warning_part_2 2023-06-28 16:39:27 +02:00
Arkadiusz Miśkiewicz
252272344e Add support for SNI in check_smtp.
Add support for SSL/TLS hostname extension support (SNI) for check_smtp
plugin.

Backported from nagios-plugins:
9f1628f4b5
2023-06-12 23:18:20 +02:00
Franz Schwartau
d762fb1374 check_smtp: update year in copyright header 2023-06-12 22:09:54 +02:00
Franz Schwartau
6d5e81fcba check_smtp: add missing -r option in usage 2023-06-12 21:49:42 +02:00
Patrick Uiterwijk
ce85affd20 check_smtp: Add option to prefix PROXY header
This enables checks of SMTP servers that expect the haproxy
PROXY protocol:  -o smtpd_upstream_proxy_protocol=haproxy.

Backported from nagios-plugins:
3246efe923
2023-06-12 21:49:42 +02:00
RincewindsHat
f7687d47cb Fixes for -Wimplicit-fallthrough 2023-04-18 00:18:07 +02:00
Jan Wagner
0f3703e641 Fix a lot of typos reported by codespell 2023-04-14 18:35:00 +00:00
Geert Hendrickx
0bd45c200b
check_smtp: add -L flag to support LMTP (LHLO instead of HELO/EHLO). 2021-10-28 23:08:02 +02:00
Iustin Pop
8520c643dd Simply initializes n before it is used
When SSL is enabled, n is assigned the size of the server's second EHLO
response (I think in bytes), which will usually be significantly higher
than the command passed. As such, no commands are executed and no responses
are checked, which - silently - defeats the desired checks and results in a
success value.
2019-01-18 22:52:54 +01:00
Jan Wagner
dbb92c347e Spelling fixes suggested by lintian 2016-12-01 12:49:40 +01:00
Oliver Skibbe
6438fec788 Merge pull request #1382 from riskersen/smtp_tls_expec
check_smtp: extended support for expect option
2016-11-19 16:38:07 +01:00
Holger Weiss
303acfc64f Merge remote-tracking branch 'monitoring-plugins/pr/1443'
* monitoring-plugins/pr/1443:
  add openssl 1.1 support
2016-11-18 11:51:12 +01:00
Holger Weiss
487a9d0a8b check_radius: Replace functions removed in radcli
The radcli library no longer offers the rc_get_ipaddr(),
rc_good_ipaddr(), and rc_own_ipaddress() functions.
2016-11-17 17:22:37 +01:00
vagrant
fe1c4bb0e5 add openssl 1.1 support
changes:
  - CRYPTO_lock detection replaced in configure.ac. We don't use that
    function anywhere, so just replace it with the suggested one from
    https://wiki.openssl.org/index.php/Library_Initialization#Autoconf
  - OPENSSL_NO_SSL2 is no longer defined while ssl2 is not included.
    Set it ourself using the suggested openssl 1.1 version check from
    https://wiki.openssl.org/index.php/1.1_API_Changes#Backward_compatibility
  - openssl 1.1 sends a sigpipe if the connection is still open when
    calling SSL_shutdown(), so move the close before the shutdown.

Signed-off-by: Sven Nierlein <sven@nierlein.de>
2016-11-13 21:14:02 +00:00
Oliver Skibbe
6b8c0bdf11 check_smtp: extended support for expect option
expect option (-e) supported only first response, so checking for
  any other response like 250-xxx would never match. This fix stores
  return of relevant buffer

  closes #1381
2015-10-08 11:09:25 +02:00
Oliver Skibbe
b6de2341f8 check_smtp.c: modified SSL check for use with -e
- currently STARTTLS check does not work with -e if there's text
    like '220 hostname ESMTP*'. This is caused by SMTP answer from
    host. Postfix answer: 220 2.0.0 Ready to start TLS, Exchange
    2010: 220 2.0.0 SMTP server ready. This fix checks against 220

    closes #1093
2015-10-08 09:04:29 +02:00
Holger Weiss
dfe66c01c0 check_smtp: Let "-D" option imply "-S" 2015-10-06 23:28:24 +02:00
Holger Weiss
b317aaf32a check_smtp: QUIT SMTP connection when "-D" is used
Don't forget to issue an SMTP QUIT command when the -D/--certificate
option is specified.  This avoids undesired MTA log messages.
2015-10-06 23:21:17 +02:00
Sven Nierlein
edca257e20 use unknown exit code for help/version in plugins
Signed-off-by: Sven Nierlein <sven@nierlein.de>
2015-10-04 19:24:30 +02:00
Thomas Guyot-Sionnest
11cf54ca78 Merge branch 'rename' 2014-01-21 07:59:07 -05:00
Spenser Reinhardt
212575b858 plugins/*.c: Alterations for timeout messages.
.c file changes for misleading timeout messages in help functions. Solution to pull request #1209 tracker by awiddersheim.

Files: plugins/check_apt.c, plugins/check_by_ssh.c, plugins/check_dbi.c, plugins/check_dig.c, plugins/check_disk.c, plugins/check_dns.c, plugins/check_game.c, plugins/check_http.c, plugins/check_ldap.c, plugins/check_ntp.c, plugins/check_ntp_peer.c, plugins/check_ntp_time.c, plugins/check_nwstat.c, plugins/check_overcr.c, plugins/check_pgsql.c, plugins/check_ping.c, plugins/check_procs.c, plugins/check_radius.c, plugins/check_real.c, plugins/check_smtp.c, plugins/check_snmp.c, plugins/check_ssh.c, plugins/check_tcp.c, plugins/check_time.c, plugins/check_ups.c, plugins/negate.c
2014-01-21 11:33:45 +01:00
Holger Weiss
c3e756a855 Capitalize "Monitoring" when it's the first word 2014-01-20 03:12:50 +01:00