From patchwork Sat Apr 6 04:29:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tim FitzGeorge X-Patchwork-Id: 2171 Return-Path: Received: from mail01.ipfire.org (mail01.i.ipfire.org [172.28.1.200]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail01.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by web07.i.ipfire.org (Postfix) with ESMTPS id 06056861F37 for ; Fri, 5 Apr 2019 18:30:03 +0100 (BST) Received: from mail01.i.ipfire.org (localhost [IPv6:::1]) by mail01.ipfire.org (Postfix) with ESMTP id 44bRf2752Kz5D0Nw; Fri, 5 Apr 2019 18:30:02 +0100 (BST) Received: from smtp.hosts.co.uk (smtp.hosts.co.uk [85.233.160.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPS id 44bRdy1fDVz5Btsv for ; Fri, 5 Apr 2019 18:29:57 +0100 (BST) Received: from [31.127.205.161] (helo=aragorn.tfitzgeorge.me.uk) by smtp.hosts.co.uk with esmtpa (Exim) (envelope-from ) id 1hCSf0-0008Ml-58; Fri, 05 Apr 2019 18:29:51 +0100 From: Tim FitzGeorge To: development@lists.ipfire.org Subject: [PATCH 00/12] statusmail: Status and Log Summary Emails Date: Fri, 5 Apr 2019 18:29:28 +0100 Message-Id: <20190405172940.13168-1-ipfr@tfitzgeorge.me.uk> X-Mailer: git-send-email 2.16.4 X-Spamd-Result: default: False [-9.14 / 11.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[161.205.127.31.zen.spamhaus.org : 127.0.0.11]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:85.233.160.19]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[tfitzgeorge.me.uk]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MX_GOOD(-0.01)[mx1.ukservers.net]; RCPT_COUNT_TWO(0.00)[2]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM(-2.96)[-0.985,0]; IP_SCORE(-3.77)[ip: (-9.91), ipnet: 85.233.160.0/19(-4.96), asn: 8622(-3.96), country: GB(-0.04)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:8622, ipnet:85.233.160.0/19, country:GB]; RCVD_COUNT_TWO(0.00)[2]; BAYES_HAM(-3.00)[100.00%]; RCVD_IN_DNSWL_LOW(-0.10)[19.160.233.85.list.dnswl.org : 127.0.5.1] Authentication-Results: mail01.ipfire.org; dkim=none; dmarc=none; spf=pass (mail01.ipfire.org: domain of ipfr@tfitzgeorge.me.uk designates 85.233.160.19 as permitted sender) smtp.mailfrom=ipfr@tfitzgeorge.me.uk X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" Sends user-definable email messages on a user-definable schedule. The messages are PGP signed and optionally PGP encrypted. To setup: 1 - Make sure mail service is configured and working 2 - Generate signing key and export 3 - Import signing key into email client's key manager 4 - (If necessary) generate key pair in email client 5 - Export public key from email client's key manager 6 - Import public key into Status Email WUI 7 - Check entered into contacts and tick box to enable 8 - Define schedule and tick box to enable. It is possible to define a contact without a corresponding key, in which case the email will be signed but not encrypted. Multiple contacts can be selected for each schedule. Only one of day of week and day of month need be set. Many items have a parameter that allows the amount of data to be restricted. If there's no data for an item it's omitted from the email; if there are no items the email is not sent. For example, setting an hourly schedule with just ssh Errors and Logins enabled will only send an email if one of these events occurs in the last hour. *** BLURB HERE *** Tim FitzGeorge (12): statusmail: Main script statusmail: Perl module for encrypted Encrypted Mail statusmail: WUI statusmail: Supporting files statusmail: Language files statusmail: Infrastructure files statusmail: Plugins for services statusmail: Plugins for system statusmail: Other plugins statusmail: Graph infrastructure changes statusmail: Plugin for apcupsd statusmail: Plugin for clamav config/backup/include | 3 + config/cfgroot/graphs.pl | 274 +++- config/menu/10-system.menu | 5 + config/rootfiles/common/misc-progs | 1 + config/rootfiles/common/statusmail | 22 + config/rootfiles/common/web-user-interface | 2 + config/rootfiles/packages/apcupsd | 1 + config/rootfiles/packages/clamav | 1 + html/cgi-bin/entropy.cgi | 2 +- html/cgi-bin/statusmail.cgi | 1687 ++++++++++++++++++++ html/html/images/play.png | Bin 0 -> 182 bytes langs/de/cgi-bin/de.pl | 1 + langs/en/cgi-bin/en.pl | 94 ++ langs/es/cgi-bin/es.pl | 1 + langs/fr/cgi-bin/fr.pl | 92 ++ langs/it/cgi-bin/it.pl | 1 + langs/nl/cgi-bin/nl.pl | 1 + langs/pl/cgi-bin/pl.pl | 1 + langs/tr/cgi-bin/tr.pl | 1 + lfs/apcupsd | 2 +- lfs/clamav | 2 +- lfs/statusmail | 71 + make.sh | 2 + src/misc-progs/Makefile | 2 +- src/misc-progs/statusmailctrl.c | 36 + src/statusmail/EncryptedMail.pm | 1060 ++++++++++++ src/statusmail/StatusMail.pm | 530 ++++++ src/statusmail/generate_signature.sh | 51 + src/statusmail/plugins/graphs.pm | 697 ++++++++ src/statusmail/plugins/hardware_media_space.pm | 154 ++ src/statusmail/plugins/network_firewall.pm | 357 +++++ src/statusmail/plugins/services_clamav.pm | 170 ++ .../services_intrusion_prevention_system.pm | 239 +++ src/statusmail/plugins/services_ups_apc.pm | 115 ++ src/statusmail/plugins/services_urlfilter.pm | 275 ++++ src/statusmail/plugins/system_kernel.pm | 322 ++++ src/statusmail/plugins/system_pakfire.pm | 198 +++ src/statusmail/plugins/system_ssh.pm | 186 +++ src/statusmail/plugins/system_status_ps.pm | 132 ++ src/statusmail/plugins/system_status_services.pm | 390 +++++ src/statusmail/statusmail.pl | 422 +++++ src/statusmail/statusmail.sh | 3 + src/statusmail/stylesheet.css | 30 + src/statusmail/test_plugin.pl | 541 +++++++ 44 files changed, 8099 insertions(+), 78 deletions(-) create mode 100644 config/rootfiles/common/statusmail create mode 100755 html/cgi-bin/statusmail.cgi create mode 100644 html/html/images/play.png create mode 100644 lfs/statusmail create mode 100644 src/misc-progs/statusmailctrl.c create mode 100644 src/statusmail/EncryptedMail.pm create mode 100644 src/statusmail/StatusMail.pm create mode 100755 src/statusmail/generate_signature.sh create mode 100644 src/statusmail/plugins/graphs.pm create mode 100644 src/statusmail/plugins/hardware_media_space.pm create mode 100644 src/statusmail/plugins/network_firewall.pm create mode 100644 src/statusmail/plugins/services_clamav.pm create mode 100644 src/statusmail/plugins/services_intrusion_prevention_system.pm create mode 100644 src/statusmail/plugins/services_ups_apc.pm create mode 100644 src/statusmail/plugins/services_urlfilter.pm create mode 100644 src/statusmail/plugins/system_kernel.pm create mode 100644 src/statusmail/plugins/system_pakfire.pm create mode 100644 src/statusmail/plugins/system_ssh.pm create mode 100644 src/statusmail/plugins/system_status_ps.pm create mode 100644 src/statusmail/plugins/system_status_services.pm create mode 100755 src/statusmail/statusmail.pl create mode 100755 src/statusmail/statusmail.sh create mode 100755 src/statusmail/stylesheet.css create mode 100755 src/statusmail/test_plugin.pl