git.lirion.de

Of git, get, and gud

summaryrefslogtreecommitdiffstats
path: root/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav
diff options
context:
space:
mode:
authorHarald Pfeiffer <coding _ lirion.de> 2019-04-17 19:07:19 +0200
committerHarald Pfeiffer <coding _ lirion.de> 2019-04-17 19:07:19 +0200
commit1e2387474a449452b78520b9ad96a8b4b5e99722 (patch)
tree836889471eec7d2aac177405068e2a8f1e2b1978 /nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav
downloadnagios-plugins-contrib-1e2387474a449452b78520b9ad96a8b4b5e99722.tar.bz2
initial commit of source fetch
Diffstat (limited to 'nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav')
-rw-r--r--nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/Makefile1
-rw-r--r--nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/check_clamav190
-rw-r--r--nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/control10
-rw-r--r--nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/copyright14
4 files changed, 215 insertions, 0 deletions
diff --git a/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/Makefile b/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/Makefile
new file mode 100644
index 0000000..23f8a8f
--- /dev/null
+++ b/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/Makefile
@@ -0,0 +1 @@
+include ../common.mk
diff --git a/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/check_clamav b/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/check_clamav
new file mode 100644
index 0000000..af92211
--- /dev/null
+++ b/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/check_clamav
@@ -0,0 +1,190 @@
+#!/usr/bin/perl -w
+#
+# Copyright (c) 2005-2008 Darren Spruell <phatbuckett@gmail.com>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+################################################################################
+# This script is used to compare the version and signature level of the
+# currently running clamd daemon with the latest available versions listed in
+# the TXT record for current.cvd.clamav.net.
+#
+# In order to use this script, you might need to make the following adjustments:
+# - Set the "use lib" path correctly (where utils.pm is located.)
+# - Set the path to your clamd binary in $clamd_cmd.
+#
+# This plugin requires the Net::DNS Perl module.
+################################################################################
+
+# Plugin directory / home of utils.pm.
+use lib "/usr/local/libexec/nagios";
+use utils qw(%ERRORS &print_revision &support &usage);
+use Getopt::Long qw(:config no_ignore_case bundling);
+use File::Basename;
+use Net::DNS;
+
+use strict;
+
+# Path to installed clamd binary.
+my $clamd_cmd = "/usr/local/sbin/clamd";
+
+# Leave the rest of this alone:
+my $prog_name = basename $0;
+my $prog_ver = "1.2";
+
+my $warn_val = 1; # Default - override with -w arg
+my $crit_val = 2; # Default - override with -c arg
+my $help_val = 0; # Off unless -h arg
+my $verb_val = 0; # Off unless -v arg
+my $vers_val = 0; # Off unless -V arg
+
+my ($msg, $rev_word, $rr, $status, $status_print);
+
+# Gives us a way to print out verbose debug information to the screen when user
+# passes in a -v argument.
+# print_debug() should receive one parameter: a text string to print out.
+sub print_debug() {
+ my $message = shift;
+ if ($verb_val == 1) {
+ print "DEBUG: " . $message . "\n";
+ }
+}
+
+# Looks up and returns the current CVD version information from
+# clamav.net.
+sub lookup_current() {
+ my $res = Net::DNS::Resolver->new;
+ my $query = $res->search("current.cvd.clamav.net", "TXT");
+ if ($query) {
+ foreach $rr (grep { $_->type eq 'TXT' } $query->answer) {
+ &print_debug("Net::DNS found result: (TXT) " . $rr->txtdata);
+ return $rr->txtdata;
+ }
+ } else {
+ warn "query failed: ", $res->errorstring, "\n";
+ }
+}
+
+# comp_sig_ver() should receive three parameters: remote signature database
+# version, local signature database version, and build date of local
+# signatures database.
+sub comp_sig_ver() {
+ my $sig_rem = shift;
+ my $sig_local = shift;
+ my $sig_date = shift;
+ my $diff = 0;
+ my $msg = "";
+
+ if ($sig_local != $sig_rem) {
+ $diff = $sig_rem - $sig_local;
+ $rev_word = ($diff == 1) ? "revision" : "revisions";
+ if ($diff >= $crit_val) {
+ &print_debug("Installed daily.cvd is behind clamav.net");
+ $status = $ERRORS{'CRITICAL'}; # Will exit with CRITICAL status
+ $status_print = "CRITICAL";
+ } elsif ($diff >= $warn_val) {
+ &print_debug("Installed daily.cvd is behind clamav.net");
+ $status = $ERRORS{'WARNING'}; # Will exit with WARNING status
+ $status_print = "WARNING";
+ } else {
+ &print_debug("Installed daily.cvd is behind clamav.net");
+ $status = $ERRORS{'OK'}; # Will exit with OK status
+ $status_print = "OK";
+ }
+ $msg = "ClamAV " . $status_print . ": daily.cvd " . $sig_local .
+ " out of date by " . $diff . " " . $rev_word;
+ } else {
+ &print_debug("Installed daily.cvd matches latest from clamav.net");
+ $status = $ERRORS{'OK'}; # Will exit with OK status
+ $msg = "ClamAV OK: daily.cvd " . $sig_local . " (" . $sig_date .
+ ") is up to date";
+ }
+ return $msg, $status;
+}
+
+# Show usage information
+sub show_help() {
+ print <<END;
+$prog_name Nagios plugin $prog_ver (c) 2005-2008 Darren Spruell <phatbuckett\@gmail.com>
+
+Perl Check ClamAV daily.cvd plugin for Nagios
+
+Usage: $prog_name [-w <warn>] [-c <crit>] [-V] [-v] [-h]
+
+-w, --warning=INTEGER
+ Number of revisions behind current daily.cvd to generate a warning state (Default: 1)
+-c, --critical=INTEGER
+ Number of revisions behind current daily.cvd to generate a critical state (Default: 2)
+-V, --version
+ Output version information for the plugin
+-v, --verbose
+ Enable verbose output
+-h, --help
+ Show this help
+END
+}
+
+GetOptions (
+ "w=i" => \$warn_val, "warning=i" => \$warn_val,
+ "c=i" => \$crit_val, "critical=i" => \$crit_val,
+ "h" => \$help_val, "help" => \$help_val,
+ "V" => \$vers_val, "version" => \$vers_val,
+ "v" => \$verb_val, "verbose" => \$verb_val,
+);
+
+if ($help_val != 0) {
+ &show_help;
+ exit $ERRORS{'OK'};
+}
+
+if ($vers_val != 0) {
+ &print_revision($prog_name,$prog_ver);
+ exit $ERRORS{'OK'};
+}
+
+# Make sure the binary exists.
+if (-x $clamd_cmd) {
+ &print_debug("Found clamd at $clamd_cmd");
+} else {
+ &print_debug("Can't execute clamd at $clamd_cmd");
+ die("FATAL: Unable to execute $clamd_cmd");
+}
+
+&print_debug("Threshhold values: warning=$warn_val, critical=$crit_val");
+
+# Should return something like: ClamAV 0.87.1/1205/Wed Dec 7 07:00:48 2005
+chomp(my $clamd_ver = `$clamd_cmd -V`);
+
+# Should return something like: 0.87.1:34:1206:1134072033:1
+chomp(my $dnstxt_ver = &lookup_current());
+
+# Parse what we get from clamd -V and our DNS query
+my @clamdresults = split(/\//,$clamd_ver);
+my @txtresults = split(/:/,$dnstxt_ver);
+
+# Get the currently running ClamAV sig level and cvd date out of this
+my $local_latest_daily = $clamdresults[1];
+my $local_latest_date = $clamdresults[2];
+
+&print_debug("Local daily.cvd dated $local_latest_date");
+&print_debug("Local daily.cvd version = $local_latest_daily");
+
+# Get the latest ClamAV daily signatures version out of this
+my $clamav_latest_daily = $txtresults[2];
+&print_debug("Latest daily.cvd version = $clamav_latest_daily");
+
+my @prog_sig_res = &comp_sig_ver($clamav_latest_daily, $local_latest_daily,
+ $local_latest_date);
+
+print $prog_sig_res[0] . "\n";
+exit $prog_sig_res[1];
diff --git a/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/control b/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/control
new file mode 100644
index 0000000..8f706c8
--- /dev/null
+++ b/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/control
@@ -0,0 +1,10 @@
+Homepage: http://exchange.nagios.org/directory/Plugins/Anti-2DVirus/ClamAV/ClamAV-check-plugin/details
+Watch: http://exchange.nagios.org/directory/Plugins/Anti-2DVirus/ClamAV/ClamAV-check-plugin/details <td>check_clamav plugin v([0-9.]+)</td>
+Uploaders: Bernd Zeimetz <bzed@debian.org>
+Description: plugin to check for clamav signature freshness
+ This script is used to compare the version and signature
+ level of the currently running clamd daemon with the latest
+ available versions listed in the TXT record for
+ current.cvd.clamav.net.
+Recommends: nagios-plugins-basic, libnet-dns-perl
+Version: 1.2
diff --git a/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/copyright b/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/copyright
new file mode 100644
index 0000000..dcd354d
--- /dev/null
+++ b/nagios-plugins-contrib-24.20190301~bpo9+1/check_clamav/copyright
@@ -0,0 +1,14 @@
+Copyright (c) 2005-2008 Darren Spruell <phatbuckett@gmail.com>
+
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+