From 569fce239cbd4492687101622a49faed430b2c18 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Wed, 17 Nov 2021 13:47:42 +0000 Subject: [PATCH 1/2] prosody: Switch to and enable mod_lastlog2 This records a timestamp of various account events - account registration time, last connection and last disconnection. In the future I would like to keep a time-limited record of account activity so we can also present it to the user for security purposes (e.g. detecting account compromise and access by third-parties). That will need additional design work to figure out how to do it in a privacy-preserving way. --- ansible/files/prosody.cfg.lua | 1 + ansible/tasks/prosody.yml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ansible/files/prosody.cfg.lua b/ansible/files/prosody.cfg.lua index 8b6ac45..34a8bd5 100644 --- a/ansible/files/prosody.cfg.lua +++ b/ansible/files/prosody.cfg.lua @@ -86,6 +86,7 @@ modules_enabled = { "snikket_client_id"; "snikket_ios_preserve_push"; "snikket_restricted_users"; + "lastlog2"; -- Spam/abuse management "spam_reporting"; -- Allow users to report spam/abuse diff --git a/ansible/tasks/prosody.yml b/ansible/tasks/prosody.yml index c404e85..325a107 100644 --- a/ansible/tasks/prosody.yml +++ b/ansible/tasks/prosody.yml @@ -87,7 +87,7 @@ - mod_compact_resource - mod_conversejs - mod_migrate_http_upload - - mod_lastlog + - mod_lastlog2 - mod_limit_auth - mod_password_policy - mod_roster_allinall From ad694d643622ea6e725e359ac9276b5f9079e938 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Wed, 17 Nov 2021 13:51:05 +0000 Subject: [PATCH 2/2] prosody: Enable mod_measure_active_users This allows an operator (via Prometheus, or eventually the web portal) to keep tabs on how many people are using the server, e.g. to assist with capacity planning. This will become more important once we allow user-to-user account invitations. --- ansible/files/prosody.cfg.lua | 1 + ansible/snikket.yml | 2 +- ansible/tasks/prosody.yml | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ansible/files/prosody.cfg.lua b/ansible/files/prosody.cfg.lua index 34a8bd5..0080bf9 100644 --- a/ansible/files/prosody.cfg.lua +++ b/ansible/files/prosody.cfg.lua @@ -127,6 +127,7 @@ modules_enabled = { -- Monitoring & maintenance "measure_process"; + "measure_active_users"; } registration_watchers = {} -- Disable by default diff --git a/ansible/snikket.yml b/ansible/snikket.yml index 38fd604..53b35f4 100644 --- a/ansible/snikket.yml +++ b/ansible/snikket.yml @@ -9,7 +9,7 @@ package: "prosody-trunk" build: "1544" prosody_modules: - revision: "eb63890ae8fc" + revision: "1132f2888cd2" tasks: - import_tasks: tasks/prosody.yml - import_tasks: tasks/supervisor.yml diff --git a/ansible/tasks/prosody.yml b/ansible/tasks/prosody.yml index 325a107..26e9a79 100644 --- a/ansible/tasks/prosody.yml +++ b/ansible/tasks/prosody.yml @@ -125,6 +125,7 @@ - mod_watch_spam_reports - mod_isolate_host - mod_muc_auto_reserve_nicks + - mod_measure_active_users - name: Enable wanted modules (snikket-modules) file: