From 3e72b0f5b7d9d10a62e1d29e5887abce1e9d8ef2 Mon Sep 17 00:00:00 2001 From: Frank Wall Date: Mon, 8 Feb 2021 22:52:00 +0100 Subject: [PATCH 1/6] security/acme-client: fix missing "--ecc" parameter, closes #2223 --- security/acme-client/pkg-descr | 5 +++++ .../app/library/OPNsense/AcmeClient/LeValidation/Base.php | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/security/acme-client/pkg-descr b/security/acme-client/pkg-descr index ef9766b16..72ac1d1b4 100644 --- a/security/acme-client/pkg-descr +++ b/security/acme-client/pkg-descr @@ -8,6 +8,11 @@ WWW: https://github.com/acmesh-official/acme.sh Plugin Changelog ================ +2.4 + +Fixed: +* fix missing "--ecc" parameter when renewing ECC certs (#2223) + 2.3 Added: diff --git a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeValidation/Base.php b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeValidation/Base.php index 5f2eb9169..a541584ac 100644 --- a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeValidation/Base.php +++ b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeValidation/Base.php @@ -137,7 +137,7 @@ abstract class Base extends \OPNsense\AcmeClient\LeCommon if ($this->cert_keylength == 'ec256' || $this->cert_keylength == 'ec384') { if ($renew == true) { // If it's a renew then pass --ecc to acme client to locate the correct cert directory - $acme_args[] = '--ecc'; + $this->acme_args[] = '--ecc'; } } From 4593ef3f9f6c248aa804181f4b09d5d62c8ffe61 Mon Sep 17 00:00:00 2001 From: Frank Wall Date: Mon, 8 Feb 2021 22:54:26 +0100 Subject: [PATCH 2/6] security/acme-client: bump version --- security/acme-client/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/security/acme-client/Makefile b/security/acme-client/Makefile index 86b2e519e..86b992e8d 100644 --- a/security/acme-client/Makefile +++ b/security/acme-client/Makefile @@ -1,5 +1,5 @@ PLUGIN_NAME= acme-client -PLUGIN_VERSION= 2.3 +PLUGIN_VERSION= 2.4 PLUGIN_COMMENT= Let's Encrypt client PLUGIN_MAINTAINER= opnsense@moov.de PLUGIN_DEPENDS= acme.sh py${PLUGIN_PYTHON}-dns-lexicon From 3a029db4000584f51422b1f5e2d91c3bab5f64a8 Mon Sep 17 00:00:00 2001 From: Frank Wall Date: Fri, 12 Feb 2021 23:01:32 +0100 Subject: [PATCH 3/6] security/acme-client: fix log file location, closes #2227 --- security/acme-client/pkg-descr | 1 + .../opnsense/mvc/app/library/OPNsense/AcmeClient/LeCommon.php | 2 ++ 2 files changed, 3 insertions(+) diff --git a/security/acme-client/pkg-descr b/security/acme-client/pkg-descr index 72ac1d1b4..bacc33ad1 100644 --- a/security/acme-client/pkg-descr +++ b/security/acme-client/pkg-descr @@ -12,6 +12,7 @@ Plugin Changelog Fixed: * fix missing "--ecc" parameter when renewing ECC certs (#2223) +* fix log file location (#2227) 2.3 diff --git a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeCommon.php b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeCommon.php index c3ae40817..0a6fbba49 100644 --- a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeCommon.php +++ b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeCommon.php @@ -123,6 +123,8 @@ abstract class LeCommon // Store config objects $this->config = $obj; $this->model = $model; + // Set log file + $this->acme_args[] = LeUtils::execSafe('--log %s', self::ACME_LOG_FILE); return true; } From 988829bdd0f98c59188cccefe1c4fdfe34f6fe80 Mon Sep 17 00:00:00 2001 From: Frank Wall Date: Mon, 15 Feb 2021 00:55:26 +0100 Subject: [PATCH 4/6] security/acme-client: revamp logs page --- security/acme-client/pkg-descr | 9 ++ .../src/etc/inc/plugins.inc.d/acmeclient.inc | 9 ++ .../OPNsense/AcmeClient/LogsController.php | 45 ++++++ .../library/OPNsense/AcmeClient/LeCommon.php | 12 +- .../models/OPNsense/AcmeClient/Menu/Menu.xml | 5 +- .../app/views/OPNsense/AcmeClient/logs.volt | 130 ++++++++++++++++++ .../systemhealth/logformats/acmeclient.py | 63 +++++++++ .../src/www/diag_logs_acmeclient.php | 7 - .../www/diag_logs_template_acme-client.inc | 117 ---------------- 9 files changed, 270 insertions(+), 127 deletions(-) create mode 100644 security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/LogsController.php create mode 100644 security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/logs.volt create mode 100755 security/acme-client/src/opnsense/scripts/systemhealth/logformats/acmeclient.py delete mode 100644 security/acme-client/src/www/diag_logs_acmeclient.php delete mode 100644 security/acme-client/src/www/diag_logs_template_acme-client.inc diff --git a/security/acme-client/pkg-descr b/security/acme-client/pkg-descr index bacc33ad1..2d89753b0 100644 --- a/security/acme-client/pkg-descr +++ b/security/acme-client/pkg-descr @@ -10,9 +10,18 @@ Plugin Changelog 2.4 +Added: +* add new page to show AcmeClient entries from system log + Fixed: * fix missing "--ecc" parameter when renewing ECC certs (#2223) * fix log file location (#2227) +* fix GUI log formatting (by using the syslog log) + +Changed: +* let acme.sh log through syslog +* revamp logs page, move acme.sh log to a sub tab +* remove legacy logs page 2.3 diff --git a/security/acme-client/src/etc/inc/plugins.inc.d/acmeclient.inc b/security/acme-client/src/etc/inc/plugins.inc.d/acmeclient.inc index a210c2f85..801a1fb07 100644 --- a/security/acme-client/src/etc/inc/plugins.inc.d/acmeclient.inc +++ b/security/acme-client/src/etc/inc/plugins.inc.d/acmeclient.inc @@ -71,6 +71,15 @@ function acmeclient_services() return $services; } +function acmeclient_syslog() +{ + $logfacilities = array(); + $logfacilities['acmeclient'] = array( + 'facility' => array('acmeclient', 'acme.sh') + ); + return $logfacilities; +} + /** * NOTE: Does NOT support configuration sync (xmlrpc). The required acme.sh * state files are missing on the secondary node and thus all attempts diff --git a/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/LogsController.php b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/LogsController.php new file mode 100644 index 000000000..927e31f9d --- /dev/null +++ b/security/acme-client/src/opnsense/mvc/app/controllers/OPNsense/AcmeClient/LogsController.php @@ -0,0 +1,45 @@ +view->pick('OPNsense/AcmeClient/logs'); + } +} diff --git a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeCommon.php b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeCommon.php index 0a6fbba49..151445d0c 100644 --- a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeCommon.php +++ b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeCommon.php @@ -123,8 +123,6 @@ abstract class LeCommon // Store config objects $this->config = $obj; $this->model = $model; - // Set log file - $this->acme_args[] = LeUtils::execSafe('--log %s', self::ACME_LOG_FILE); return true; } @@ -155,26 +153,36 @@ abstract class LeCommon switch ($loglevel) { case 'extended': + $this->acme_args[] = '--syslog 6'; $this->acme_args[] = '--log-level 2'; $this->debug = false; break; case 'debug': + $this->acme_args[] = '--syslog 7'; $this->acme_args[] = '--debug'; $this->debug = true; break; case 'debug2': + $this->acme_args[] = '--syslog 7'; $this->acme_args[] = '--debug 2'; $this->debug = true; break; case 'debug3': + $this->acme_args[] = '--syslog 7'; $this->acme_args[] = '--debug 3'; $this->debug = true; break; default: + $this->acme_args[] = '--syslog 6'; $this->acme_args[] = '--log-level 1'; $this->debug = false; break; } + + // Set log file + // NOTE: This log file is no longer exposed to the GUI. However, it may + // still turn out to be useful for debug purposes in rare egde cases. + $this->acme_args[] = LeUtils::execSafe('--log %s', self::ACME_LOG_FILE); } /** diff --git a/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/Menu/Menu.xml b/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/Menu/Menu.xml index 79a8f7cf8..33a92cfb5 100644 --- a/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/Menu/Menu.xml +++ b/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/Menu/Menu.xml @@ -9,7 +9,10 @@ - + + + + diff --git a/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/logs.volt b/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/logs.volt new file mode 100644 index 000000000..ae057bc86 --- /dev/null +++ b/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/logs.volt @@ -0,0 +1,130 @@ +{# + # Copyright (c) 2019 Deciso B.V. + # All rights reserved. + # + # Redistribution and use in source and binary forms, with or without modification, + # are permitted provided that the following conditions are met: + # + # 1. Redistributions of source code must retain the above copyright notice, + # this list of conditions and the following disclaimer. + # + # 2. Redistributions in binary form must reproduce the above copyright notice, + # this list of conditions and the following disclaimer in the documentation + # and/or other materials provided with the distribution. + # + # THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + # AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + # AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + # OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + # POSSIBILITY OF SUCH DAMAGE. + #} + + + + + + +
+ +
+
+
+ + + + + + + + + + +
{{ lang._('Date') }}{{ lang._('Process') }}{{ lang._('Line') }}
+
+
+
+ +
+
+
+ + + + + + + + + + +
{{ lang._('Date') }}{{ lang._('Process') }}{{ lang._('Line') }}
+
+
+
+ +
diff --git a/security/acme-client/src/opnsense/scripts/systemhealth/logformats/acmeclient.py b/security/acme-client/src/opnsense/scripts/systemhealth/logformats/acmeclient.py new file mode 100755 index 000000000..a311773ec --- /dev/null +++ b/security/acme-client/src/opnsense/scripts/systemhealth/logformats/acmeclient.py @@ -0,0 +1,63 @@ +""" + Copyright (c) 2021 Frank Wall + Copyright (c) 2020 Ad Schellevis + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +""" +import re +import datetime +from . import BaseLogFormat + +class AcmeclientLogFormat(BaseLogFormat): + def __init__(self, filename): + super(AcmeclientLogFormat, self).__init__(filename) + # XXX This is ugly, but it's the only way to override the line() method. + self._priority = 1 + self._startup_timestamp = datetime.datetime.now() + + def match(self, line): + return self._filename.find('acmeclient') > -1 and len(line) > 15 and re.match(r'(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)', line[7:15]) + + def timestamp(self, line): + # syslog format, strip timestamp and return actual log data + ts = datetime.datetime.strptime("%s %s" % (self._startup_timestamp.year, line[0:15]), "%Y %b %d %H:%M:%S") + ts = ts.replace(year=self._startup_timestamp.year) + if (self._startup_timestamp - ts).days < 0: + # likely previous year, (month for this year not reached yet) + ts = ts.replace(year=ts.year - 1) + return ts.isoformat() + + @staticmethod + def line(line): + # parse [date] [hostname] [process_name] [line] format + response = line[16:] + tmp = response.find(':') + pre = response[tmp+1:].strip() if tmp > -1 else response[response.find(' ')+1:].strip() + # strip the duplicate date from the line + return pre[30:].strip() + + @staticmethod + def process_name(line): + response = line[16:] + tmp = response.find(':') + return response[:tmp].strip().split()[-1] if tmp > -1 else "" diff --git a/security/acme-client/src/www/diag_logs_acmeclient.php b/security/acme-client/src/www/diag_logs_acmeclient.php deleted file mode 100644 index e5d406e95..000000000 --- a/security/acme-client/src/www/diag_logs_acmeclient.php +++ /dev/null @@ -1,7 +0,0 @@ - - * Copyright (C) 2004-2009 Scott Ullrich - * Copyright (C) 2003-2004 Manuel Kasper - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -require_once("guiconfig.inc"); -require_once("system.inc"); -require_once("interfaces.inc"); - -/* expects $logfile to point to the system path */ -/* expects $logclog to be true or false */ - -require_once 'diag_logs_common.inc'; - -$filtertext = ''; -$nentries = 50; - -if (isset($config['syslog']['nentries'])) { - $nentries = $config['syslog']['nentries']; -} - -if (!empty($_POST['clear'])) { - if ($logclog) { - system_clear_clog($logfile); - } else { - system_clear_log($logfile); - } -} - -if (isset($_POST['filtertext'])) { - $filtertext = $_POST['filtertext']; -} - -include("head.inc"); -?> - - - -
-
-
-
-

-

-
-
- -
-
-

-
- - - - - - - - - - - - - - -
- -
-
- - - - -
-
-
-
-
-
-
- From b6bbd6a32e60e55f6cddb62598853645ee644922 Mon Sep 17 00:00:00 2001 From: Frank Wall Date: Mon, 15 Feb 2021 21:57:56 +0100 Subject: [PATCH 5/6] security/acme-client: fix OCSP setting not honored, closes #2234 --- security/acme-client/pkg-descr | 1 + .../OPNsense/AcmeClient/LeCertificate.php | 1 + .../OPNsense/AcmeClient/.AcmeClient.xml.swp | Bin 0 -> 16384 bytes 3 files changed, 2 insertions(+) create mode 100644 security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/.AcmeClient.xml.swp diff --git a/security/acme-client/pkg-descr b/security/acme-client/pkg-descr index 2d89753b0..213eb1121 100644 --- a/security/acme-client/pkg-descr +++ b/security/acme-client/pkg-descr @@ -17,6 +17,7 @@ Fixed: * fix missing "--ecc" parameter when renewing ECC certs (#2223) * fix log file location (#2227) * fix GUI log formatting (by using the syslog log) +* fix OCSP setting not honored (#2234) Changed: * let acme.sh log through syslog diff --git a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeCertificate.php b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeCertificate.php index 8e0be409e..6855acb3b 100644 --- a/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeCertificate.php +++ b/security/acme-client/src/opnsense/mvc/app/library/OPNsense/AcmeClient/LeCertificate.php @@ -656,6 +656,7 @@ class LeCertificate extends LeCommon $val->setNames($this->config->name, $this->config->altNames, $this->config->aliasmode, $this->config->domainalias, $this->config->challengealias); $val->setRenewal((int)$this->config->renewInterval); $val->setForce($this->force); + $val->setOcsp((string)$this->config->ocsp == 1 ? true : false); // strip prefix from key value $val->setKey(substr($this->config->keyLength, 4)); $val->prepare(); diff --git a/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/.AcmeClient.xml.swp b/security/acme-client/src/opnsense/mvc/app/models/OPNsense/AcmeClient/.AcmeClient.xml.swp new file mode 100644 index 0000000000000000000000000000000000000000..cb9344443839d7d3a58e6d925c166511fd93baf8 GIT binary patch literal 16384 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 b3rH!1gH Date: Mon, 15 Feb 2021 22:11:16 +0100 Subject: [PATCH 6/6] security/acme-client: add tooltips for certificate command buttons, closes #2188 --- security/acme-client/pkg-descr | 1 + .../views/OPNsense/AcmeClient/certificates.volt | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/security/acme-client/pkg-descr b/security/acme-client/pkg-descr index 213eb1121..f830046bf 100644 --- a/security/acme-client/pkg-descr +++ b/security/acme-client/pkg-descr @@ -12,6 +12,7 @@ Plugin Changelog Added: * add new page to show AcmeClient entries from system log +* add tooltips for certificate command buttons (#2188) Fixed: * fix missing "--ecc" parameter when renewing ECC certs (#2223) diff --git a/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/certificates.volt b/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/certificates.volt index 2d172eb01..c30891a76 100644 --- a/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/certificates.volt +++ b/security/acme-client/src/opnsense/mvc/app/views/OPNsense/AcmeClient/certificates.volt @@ -59,13 +59,13 @@ POSSIBILITY OF SUCH DAMAGE. url: '/api/acmeclient/certificates/search', formatters: { "commands": function (column, row) { - return " " + - "" + - "" + - "" + - "" + - "" + - ""; + return " " + + "" + + "" + + "" + + "" + + "" + + ""; }, "rowtoggle": function (column, row) { if (parseInt(row[column.id], 2) == 1) {