[00/12] statusmail: Status and Log Summary Emails

Message ID 20190405172940.13168-1-ipfr@tfitzgeorge.me.uk
Headers
Series statusmail: Status and Log Summary Emails |

Message

Tim FitzGeorge April 6, 2019, 4:29 a.m. UTC
  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
  

Comments

Michael Tremer April 9, 2019, 2:10 a.m. UTC | #1
Hey Tim,

I just wanted to let you know that I have seen your patchiest.

It is *massive*. It looks like a lot of work.

However, I am very much behind my schedule at the moment and quite busy with getting c130 ready and so on.

So, please give me some time to go through this. Hopefully somebody else has some time to get the review started!

Best,
-Michael

> On 5 Apr 2019, at 18:29, Tim FitzGeorge <ipfr@tfitzgeorge.me.uk> wrote:
> 
> 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
> 
> -- 
> 2.16.4
>
  
Tim FitzGeorge April 9, 2019, 5:37 a.m. UTC | #2
Hi Michael,

It's fine for you to take as much time as you need to look through it. 
I'm reasonably confident in it, but it needs to be right.  Hopefully the
individual patches are small enough to be easily digestible.  I have
received an updated French language file, but I'll hold off submitting
that for the moment - it can wait to go in with any changes you think
are needed.

Tim

On 08/04/2019 17:10, Michael Tremer wrote:
> Hey Tim,
>
> I just wanted to let you know that I have seen your patchiest.
>
> It is *massive*. It looks like a lot of work.
>
> However, I am very much behind my schedule at the moment and quite busy with getting c130 ready and so on.
>
> So, please give me some time to go through this. Hopefully somebody else has some time to get the review started!
>
> Best,
> -Michael
>
>> On 5 Apr 2019, at 18:29, Tim FitzGeorge <ipfr@tfitzgeorge.me.uk> wrote:
>>
>> 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
>>
>> -- 
>> 2.16.4
>>
>