{ config, lib, pkgs, ... }: with lib; let inherit (config) nix-bitcoin-services; dataDir = "/var/lib/dbus-hardening"; # Mitigates a security issue that allows unprivileged users to read # other unprivileged user's processes' credentials from CGroup using # `systemctl status`. dbus-hardening = pkgs.writeText "dbus.conf" '' ''; in { config = { systemd.tmpfiles.rules = [ "d '${dataDir}/etc/dbus-1/system.d' 0770 messagebus messagebus - -" ]; services.dbus.packages = [ "${dataDir}" ]; systemd.services.hardeneddbus = { description = "Install hardeneddbus"; wantedBy = [ "multi-user.target" ]; script = '' cp ${dbus-hardening} ${dataDir}/etc/dbus-1/system.d/dbus.conf chmod 640 ${dataDir}/etc/dbus-1/system.d/dbus.conf ''; serviceConfig = nix-bitcoin-services.defaultHardening // { PrivateNetwork = "true"; Type = "oneshot"; User = "messagebus"; ReadWritePaths = "${dataDir}"; }; }; }; }