On 2025-10-13 16:34:24, Darrick J. Wong wrote:
> From: Darrick J. Wong <[email protected]>
> 
> Iustin Pop reports that the xfs_scrub_fail service fails to email
> problem reports on Debian when postfix is installed.  This is apparently
> due to several factors:
> 
> 1. postfix's sendmail wrapper calling postdrop directly,
> 2. postdrop requiring the ability to write to the postdrop group,
> 3. lockdown preventing the xfs_scrub_fail@ service to have postdrop in
>    the supplemental group list or the ability to run setgid programs
> 
> Item (3) could be solved by adding the whole service to the postdrop
> group via SupplementalGroups=, but that will fail if postfix is not
> installed and hence there is no postdrop group.
> 
> It could also be solved by forcing msmtp to be installed, bind mounting
> msmtp into the service container, and injecting a config file that
> instructs msmtp to connect to port 25, but that in turn isn't compatible
> with systems not configured to allow an smtp server to listen on ::1.
> 
> So we'll go with the less restrictive approach that e2scrub_fail@ does,
> which is to say that we just turn off all the sandboxing. :( :(
> 
> Reported-by: [email protected]
> Cc: <[email protected]> # v6.10.0
> Fixes: 9042fcc08eed6a ("xfs_scrub_fail: tighten up the security on the 
> background systemd service")
> Signed-off-by: "Darrick J. Wong" <[email protected]>

lgtm
Reviewed-by: Andrey Albershteyn <[email protected]>

> ---
>  scrub/[email protected] |   57 
> ++------------------------------------
>  1 file changed, 3 insertions(+), 54 deletions(-)
> 
> diff --git a/scrub/[email protected] 
> b/scrub/[email protected]
> index 16077888df3391..1e205768133467 100644
> --- a/scrub/[email protected]
> +++ b/scrub/[email protected]
> @@ -19,57 +19,6 @@ SupplementaryGroups=systemd-journal
>  # can control resource usage.
>  Slice=system-xfs_scrub.slice
>  
> -# No realtime scheduling
> -RestrictRealtime=true
> -
> -# Make the entire filesystem readonly and /home inaccessible.
> -ProtectSystem=full
> -ProtectHome=yes
> -PrivateTmp=true
> -RestrictSUIDSGID=true
> -
> -# Emailing reports requires network access, but not the ability to change the
> -# hostname.
> -ProtectHostname=true
> -
> -# Don't let the program mess with the kernel configuration at all
> -ProtectKernelLogs=true
> -ProtectKernelModules=true
> -ProtectKernelTunables=true
> -ProtectControlGroups=true
> -ProtectProc=invisible
> -RestrictNamespaces=true
> -
> -# Can't hide /proc because journalctl needs it to find various pieces of log
> -# information
> -#ProcSubset=pid
> -
> -# Only allow the default personality Linux
> -LockPersonality=true
> -
> -# No writable memory pages
> -MemoryDenyWriteExecute=true
> -
> -# Don't let our mounts leak out to the host
> -PrivateMounts=true
> -
> -# Restrict system calls to the native arch and only enough to get things 
> going
> -SystemCallArchitectures=native
> -SystemCallFilter=@system-service
> -SystemCallFilter=~@privileged
> -SystemCallFilter=~@resources
> -SystemCallFilter=~@mount
> -
> -# xfs_scrub needs these privileges to run, and no others
> -CapabilityBoundingSet=
> -NoNewPrivileges=true
> -
> -# Failure reporting shouldn't create world-readable files
> -UMask=0077
> -
> -# Clean up any IPC objects when this unit stops
> -RemoveIPC=true
> -
> -# No access to hardware device files
> -PrivateDevices=true
> -ProtectClock=true
> +# No further restrictions because some installations may have MTAs such as
> +# postfix, which require the ability to run setgid programs and other
> +# foolishness.
> 

-- 
- Andrey

Reply via email to