All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] logging: tidy loose end related to systemd-journald
@ 2026-08-09  6:32 Dominick Grift
  2026-08-09  6:49 ` Dominick Grift
  2026-08-09  8:08 ` [RFC 2] logging.te: systemd-journald: loose ends Dominick Grift
  0 siblings, 2 replies; 9+ messages in thread
From: Dominick Grift @ 2026-08-09  6:32 UTC (permalink / raw)
  To: selinux-refpolicy; +Cc: Dominick Grift

RFC because I was unable to test this.

Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
---
 policy/modules/system/logging.if | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/policy/modules/system/logging.if b/policy/modules/system/logging.if
index 3dd2c06c2..6222fed4b 100644
--- a/policy/modules/system/logging.if
+++ b/policy/modules/system/logging.if
@@ -684,8 +684,8 @@ interface(`logging_send_syslog_msg',`
 	allow $1 devlog_t:sock_file write_sock_file_perms;
 
 	# systemd journal socket is in /run/systemd/journal/dev-log
+	write_sock_files_pattern($1, syslogd_runtime_t, syslogd_runtime_t)
 	init_search_run($1)
-	allow $1 syslogd_runtime_t:dir search_dir_perms;
 
 	# the type of socket depends on the syslog daemon
 	allow $1 syslogd_t:unix_dgram_socket sendto;
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [RFC] logging: tidy loose end related to systemd-journald
  2026-08-09  6:32 [RFC] logging: tidy loose end related to systemd-journald Dominick Grift
@ 2026-08-09  6:49 ` Dominick Grift
  2026-08-09  8:08 ` [RFC 2] logging.te: systemd-journald: loose ends Dominick Grift
  1 sibling, 0 replies; 9+ messages in thread
From: Dominick Grift @ 2026-08-09  6:49 UTC (permalink / raw)
  To: selinux-refpolicy

Dominick Grift <dominick.grift@defensec.nl> writes:

> RFC because I was unable to test this.

Turns out that this is atleast incomplete because there are fc specs
that conflict remaining [1] and they indicate that the labeling is
intended to be different. I don't see why according to the fc spec that
content should be devlog_t and how that transition is supposed to
happen.

[1] https://github.com/SELinuxProject/refpolicy/blob/main/policy/modules/system/logging.fc#L78C1-L82C97

>
> Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
> ---
>  policy/modules/system/logging.if | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/policy/modules/system/logging.if b/policy/modules/system/logging.if
> index 3dd2c06c2..6222fed4b 100644
> --- a/policy/modules/system/logging.if
> +++ b/policy/modules/system/logging.if
> @@ -684,8 +684,8 @@ interface(`logging_send_syslog_msg',`
>  	allow $1 devlog_t:sock_file write_sock_file_perms;
>  
>  	# systemd journal socket is in /run/systemd/journal/dev-log
> +	write_sock_files_pattern($1, syslogd_runtime_t, syslogd_runtime_t)
>  	init_search_run($1)
> -	allow $1 syslogd_runtime_t:dir search_dir_perms;
>  
>  	# the type of socket depends on the syslog daemon
>  	allow $1 syslogd_t:unix_dgram_socket sendto;

-- 
gpg --auto-key-locate clear,nodefault,wkd --locate-external-keys dominick.grift@defensec.nl
Key fingerprint = FCD2 3660 5D6B 9D27 7FC6  E0FF DA7E 521F 10F6 4098
Dominick Grift
Mastodon: @kcinimod@defensec.nl

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [RFC 2] logging.te: systemd-journald: loose ends
  2026-08-09  6:32 [RFC] logging: tidy loose end related to systemd-journald Dominick Grift
  2026-08-09  6:49 ` Dominick Grift
@ 2026-08-09  8:08 ` Dominick Grift
  2026-08-09 10:53   ` Russell Coker
  1 sibling, 1 reply; 9+ messages in thread
From: Dominick Grift @ 2026-08-09  8:08 UTC (permalink / raw)
  To: selinux-refpolicy; +Cc: Dominick Grift

rfc because i was unable to (build)test it.

add missing file type transition rules so that systemd-journald
creates these sockets as per the corresponding fc specs for consistency.

the previous rfc did not take the existing fc specs into account

Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
---
 policy/modules/system/logging.te | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/policy/modules/system/logging.te b/policy/modules/system/logging.te
index 314b2559b..b58dda6d3 100644
--- a/policy/modules/system/logging.te
+++ b/policy/modules/system/logging.te
@@ -518,6 +518,12 @@ ifdef(`init_systemd',`
 	allow syslogd_t self:cap_userns sys_ptrace;
 	allow syslogd_t self:netlink_audit_socket { getattr getopt nlmsg_write read setopt write };
 
+	# /run/systemd/journal: for consistency with corresponding fc specs
+	filetrans_pattern(syslogd_t, syslogd_runtime_t, "dev-log", sock_file, devlog_t)
+	filetrans_pattern(syslogd_t, syslogd_runtime_t, "socket", sock_file, devlog_t)
+	filetrans_pattern(syslogd_t, syslogd_runtime_t, "stdout", sock_file, devlog_t)
+	filetrans_pattern(syslogd_t, syslogd_runtime_t, "syslog", sock_file, devlog_t)
+
 	# remove /run/log/journal when switching to permanent storage
 	allow syslogd_t var_log_t:dir rmdir;
 
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [RFC 2] logging.te: systemd-journald: loose ends
  2026-08-09  8:08 ` [RFC 2] logging.te: systemd-journald: loose ends Dominick Grift
@ 2026-08-09 10:53   ` Russell Coker
  2026-08-09 11:05     ` Dominick Grift
  0 siblings, 1 reply; 9+ messages in thread
From: Russell Coker @ 2026-08-09 10:53 UTC (permalink / raw)
  To: selinux-refpolicy, Dominick Grift

On Sunday, 9 August 2026 18:08:46 AEST Dominick Grift wrote:
> rfc because i was unable to (build)test it.
> 
> add missing file type transition rules so that systemd-journald
> creates these sockets as per the corresponding fc specs for consistency.
> 
> the previous rfc did not take the existing fc specs into account
> 
> Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
> ---
>  policy/modules/system/logging.te | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/policy/modules/system/logging.te
> b/policy/modules/system/logging.te index 314b2559b..b58dda6d3 100644
> --- a/policy/modules/system/logging.te
> +++ b/policy/modules/system/logging.te
> @@ -518,6 +518,12 @@ ifdef(`init_systemd',`
>  	allow syslogd_t self:cap_userns sys_ptrace;
>  	allow syslogd_t self:netlink_audit_socket { getattr getopt 
nlmsg_write
> read setopt write };
> 
> +	# /run/systemd/journal: for consistency with corresponding fc specs
> +	filetrans_pattern(syslogd_t, syslogd_runtime_t, "dev-log", 
sock_file,
> devlog_t) +	filetrans_pattern(syslogd_t, syslogd_runtime_t, "socket",
> sock_file, devlog_t) +	filetrans_pattern(syslogd_t, syslogd_runtime_t,
> "stdout", sock_file, devlog_t) +	filetrans_pattern(syslogd_t,
> syslogd_runtime_t, "syslog", sock_file, devlog_t) +
>  	# remove /run/log/journal when switching to permanent storage
>  	allow syslogd_t var_log_t:dir rmdir;

I have the following in the Debian policy.  You seem to have the order wrong.

filetrans_pattern(syslogd_t, syslogd_runtime_t, devlog_t, sock_file, 
"io.systemd.journal")

The others don't seem to be needed:

# ls -laZ /run/systemd/journal/
total 8
drwxr-xr-x.  3 root root system_u:object_r:syslogd_runtime_t:s0  220 Aug  9 
10:33 .
drwxr-xr-x. 26 root root system_u:object_r:init_runtime_t:s0     880 Aug  9 
20:27 ..
srw-rw-rw-.  1 root root system_u:object_r:devlog_t:s0             0 Aug  9 
10:33 dev-log
-rw-r--r--.  1 root root system_u:object_r:syslogd_runtime_t:s0    0 Aug  9 
10:33 flushed
srw-rw-rw-.  1 root root system_u:object_r:devlog_t:s0             0 Aug  9 
10:33 io.systemd.journal
-rw-r--r--.  1 root root system_u:object_r:syslogd_runtime_t:s0    8 Aug  9 
10:33 kernel-seqnum
-rw-r--r--.  1 root root system_u:object_r:syslogd_runtime_t:s0   24 Aug  9 
10:33 seqnum
srw-rw-rw-.  1 root root system_u:object_r:devlog_t:s0             0 Aug  9 
10:33 socket
srw-rw-rw-.  1 root root system_u:object_r:devlog_t:s0             0 Aug  9 
10:33 stdout
drwxr-xr-x.  2 root root system_u:object_r:syslogd_runtime_t:s0 1520 Aug  9 
20:50 streams
srw-rw-rw-.  1 root root system_u:object_r:devlog_t:s0             0 Aug  9 
10:33 syslog

-- 
My Main Blog         http://etbe.coker.com.au/
My Documents Blog    http://doc.coker.com.au/




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFC 2] logging.te: systemd-journald: loose ends
  2026-08-09 10:53   ` Russell Coker
@ 2026-08-09 11:05     ` Dominick Grift
  2026-08-09 11:14       ` Russell Coker
  0 siblings, 1 reply; 9+ messages in thread
From: Dominick Grift @ 2026-08-09 11:05 UTC (permalink / raw)
  To: Russell Coker; +Cc: selinux-refpolicy

Russell Coker <russell@coker.com.au> writes:

> On Sunday, 9 August 2026 18:08:46 AEST Dominick Grift wrote:
>> rfc because i was unable to (build)test it.
>> 
>> add missing file type transition rules so that systemd-journald
>> creates these sockets as per the corresponding fc specs for consistency.
>> 
>> the previous rfc did not take the existing fc specs into account
>> 
>> Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
>> ---
>>  policy/modules/system/logging.te | 6 ++++++
>>  1 file changed, 6 insertions(+)
>> 
>> diff --git a/policy/modules/system/logging.te
>> b/policy/modules/system/logging.te index 314b2559b..b58dda6d3 100644
>> --- a/policy/modules/system/logging.te
>> +++ b/policy/modules/system/logging.te
>> @@ -518,6 +518,12 @@ ifdef(`init_systemd',`
>>  	allow syslogd_t self:cap_userns sys_ptrace;
>>  	allow syslogd_t self:netlink_audit_socket { getattr getopt 
> nlmsg_write
>> read setopt write };
>> 
>> +	# /run/systemd/journal: for consistency with corresponding fc specs
>> +	filetrans_pattern(syslogd_t, syslogd_runtime_t, "dev-log", 
> sock_file,
>> devlog_t) +	filetrans_pattern(syslogd_t, syslogd_runtime_t, "socket",
>> sock_file, devlog_t) +	filetrans_pattern(syslogd_t, syslogd_runtime_t,
>> "stdout", sock_file, devlog_t) +	filetrans_pattern(syslogd_t,
>> syslogd_runtime_t, "syslog", sock_file, devlog_t) +
>>  	# remove /run/log/journal when switching to permanent storage
>>  	allow syslogd_t var_log_t:dir rmdir;
>
> I have the following in the Debian policy.  You seem to have the order wrong.
>
> filetrans_pattern(syslogd_t, syslogd_runtime_t, devlog_t, sock_file, 
> "io.systemd.journal")

Interesting. On IRC a gentoo user ran into labeling issues of the
dev-log sock file where it was labeled syslogd_runtime_t instead of
devlog_t

Looks like I also have the filetrans_pattern arg ordering wrong.

>
> The others don't seem to be needed:

Do you have any type transition rules for those at all?

sesearch -T -s syslogd_t -t syslogd_runtime_t -c sock_file

>
> # ls -laZ /run/systemd/journal/
> total 8
> drwxr-xr-x.  3 root root system_u:object_r:syslogd_runtime_t:s0  220 Aug  9 
> 10:33 .
> drwxr-xr-x. 26 root root system_u:object_r:init_runtime_t:s0     880 Aug  9 
> 20:27 ..
> srw-rw-rw-.  1 root root system_u:object_r:devlog_t:s0             0 Aug  9 
> 10:33 dev-log
> -rw-r--r--.  1 root root system_u:object_r:syslogd_runtime_t:s0    0 Aug  9 
> 10:33 flushed
> srw-rw-rw-.  1 root root system_u:object_r:devlog_t:s0             0 Aug  9 
> 10:33 io.systemd.journal
> -rw-r--r--.  1 root root system_u:object_r:syslogd_runtime_t:s0    8 Aug  9 
> 10:33 kernel-seqnum
> -rw-r--r--.  1 root root system_u:object_r:syslogd_runtime_t:s0   24 Aug  9 
> 10:33 seqnum
> srw-rw-rw-.  1 root root system_u:object_r:devlog_t:s0             0 Aug  9 
> 10:33 socket
> srw-rw-rw-.  1 root root system_u:object_r:devlog_t:s0             0 Aug  9 
> 10:33 stdout
> drwxr-xr-x.  2 root root system_u:object_r:syslogd_runtime_t:s0 1520 Aug  9 
> 20:50 streams
> srw-rw-rw-.  1 root root system_u:object_r:devlog_t:s0             0 Aug  9 
> 10:33 syslog

-- 
gpg --auto-key-locate clear,nodefault,wkd --locate-external-keys dominick.grift@defensec.nl
Key fingerprint = FCD2 3660 5D6B 9D27 7FC6  E0FF DA7E 521F 10F6 4098
Dominick Grift
Mastodon: @kcinimod@defensec.nl

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFC 2] logging.te: systemd-journald: loose ends
  2026-08-09 11:05     ` Dominick Grift
@ 2026-08-09 11:14       ` Russell Coker
  2026-08-09 11:35         ` Dominick Grift
  0 siblings, 1 reply; 9+ messages in thread
From: Russell Coker @ 2026-08-09 11:14 UTC (permalink / raw)
  To: Dominick Grift; +Cc: selinux-refpolicy

On Sunday, 9 August 2026 21:05:27 AEST Dominick Grift wrote:
> Do you have any type transition rules for those at all?
> 
> sesearch -T -s syslogd_t -t syslogd_runtime_t -c sock_file

# sesearch -T -s syslogd_t -t syslogd_runtime_t -c sock_file
type_transition syslogd_t syslogd_runtime_t:sock_file devlog_t 
io.systemd.journal;

No I only have one rule.

# systemctl status syslog.socket
● syslog.socket - Syslog Socket
     Loaded: loaded (/usr/lib/systemd/system/syslog.socket; static)
     Active: active (running) since Sun 2026-08-09 10:33:04 AEST; 10h ago
 Invocation: d0566e3b35b44b7098fe98ca38d88c7e
   Triggers: ● rsyslog.service
       Docs: man:systemd.special(7)
             https://systemd.io/SYSLOG
     Listen: /run/systemd/journal/syslog (Datagram)

# systemctl status systemd-journald-dev-log.socket
● systemd-journald-dev-log.socket - Journal Socket (/dev/log)
     Loaded: loaded (/usr/lib/systemd/system/systemd-journald-dev-log.socket; 
static)
     Active: active (running) since Sun 2026-08-09 10:33:05 AEST; 10h ago
 Invocation: 2e3a2be5a6d24b62b841c92bdd4f3119
   Triggers: ● systemd-journald.service
       Docs: man:systemd-journald.service(8)
             man:journald.conf(5)
     Listen: /run/systemd/journal/dev-log (Datagram)

# systemctl status systemd-journald.socket
● systemd-journald.socket - Journal Sockets
     Loaded: loaded (/usr/lib/systemd/system/systemd-journald.socket; static)
     Active: active (running) since Sun 2026-08-09 10:33:05 AEST; 10h ago
 Invocation: d43d3185e3534a1c881c31bbacc851ec
   Triggers: ● systemd-journald.service
       Docs: man:systemd-journald.service(8)
             man:journald.conf(5)
     Listen: /run/systemd/journal/socket (Datagram)
             /run/systemd/journal/stdout (Stream)

Notice: journal has been rotated since unit was started, output may be 
incomplete.

The syslog socket seems covered by systemd, but that doesn't need a 
transition:

# sesearch -T -t syslogd_runtime_t -c sock_file
type_transition syslogd_t syslogd_runtime_t:sock_file devlog_t 
io.systemd.journal;

-- 
My Main Blog         http://etbe.coker.com.au/
My Documents Blog    http://doc.coker.com.au/




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFC 2] logging.te: systemd-journald: loose ends
  2026-08-09 11:14       ` Russell Coker
@ 2026-08-09 11:35         ` Dominick Grift
  2026-08-09 11:39           ` Russell Coker
  2026-08-11 12:55           ` Christopher J. PeBenito
  0 siblings, 2 replies; 9+ messages in thread
From: Dominick Grift @ 2026-08-09 11:35 UTC (permalink / raw)
  To: Russell Coker; +Cc: selinux-refpolicy

Russell Coker <russell@coker.com.au> writes:

> On Sunday, 9 August 2026 21:05:27 AEST Dominick Grift wrote:
>> Do you have any type transition rules for those at all?
>> 
>> sesearch -T -s syslogd_t -t syslogd_runtime_t -c sock_file
>
> # sesearch -T -s syslogd_t -t syslogd_runtime_t -c sock_file
> type_transition syslogd_t syslogd_runtime_t:sock_file devlog_t 
> io.systemd.journal;
>
> No I only have one rule.

Thanks. I think the user may not have these sockets activated and that
therefore they get created by systemd-journald instead in his
scenario. systemd-journald itself does not seems to use
get/setfscreatecon as it needs a type transition for io.systemd.journal
too.

I suppose the question becomes whether refpolicy wants to support the
scenario where the syslog socket unit is not enabled.

>
> # systemctl status syslog.socket
> ● syslog.socket - Syslog Socket
>      Loaded: loaded (/usr/lib/systemd/system/syslog.socket; static)
>      Active: active (running) since Sun 2026-08-09 10:33:04 AEST; 10h ago
>  Invocation: d0566e3b35b44b7098fe98ca38d88c7e
>    Triggers: ● rsyslog.service
>        Docs: man:systemd.special(7)
>              https://systemd.io/SYSLOG
>      Listen: /run/systemd/journal/syslog (Datagram)
>
> # systemctl status systemd-journald-dev-log.socket
> ● systemd-journald-dev-log.socket - Journal Socket (/dev/log)
>      Loaded: loaded (/usr/lib/systemd/system/systemd-journald-dev-log.socket; 
> static)
>      Active: active (running) since Sun 2026-08-09 10:33:05 AEST; 10h ago
>  Invocation: 2e3a2be5a6d24b62b841c92bdd4f3119
>    Triggers: ● systemd-journald.service
>        Docs: man:systemd-journald.service(8)
>              man:journald.conf(5)
>      Listen: /run/systemd/journal/dev-log (Datagram)
>
> # systemctl status systemd-journald.socket
> ● systemd-journald.socket - Journal Sockets
>      Loaded: loaded (/usr/lib/systemd/system/systemd-journald.socket; static)
>      Active: active (running) since Sun 2026-08-09 10:33:05 AEST; 10h ago
>  Invocation: d43d3185e3534a1c881c31bbacc851ec
>    Triggers: ● systemd-journald.service
>        Docs: man:systemd-journald.service(8)
>              man:journald.conf(5)
>      Listen: /run/systemd/journal/socket (Datagram)
>              /run/systemd/journal/stdout (Stream)
>
> Notice: journal has been rotated since unit was started, output may be 
> incomplete.
>
> The syslog socket seems covered by systemd, but that doesn't need a 
> transition:
>
> # sesearch -T -t syslogd_runtime_t -c sock_file
> type_transition syslogd_t syslogd_runtime_t:sock_file devlog_t 
> io.systemd.journal;

-- 
gpg --auto-key-locate clear,nodefault,wkd --locate-external-keys dominick.grift@defensec.nl
Key fingerprint = FCD2 3660 5D6B 9D27 7FC6  E0FF DA7E 521F 10F6 4098
Dominick Grift
Mastodon: @kcinimod@defensec.nl

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFC 2] logging.te: systemd-journald: loose ends
  2026-08-09 11:35         ` Dominick Grift
@ 2026-08-09 11:39           ` Russell Coker
  2026-08-11 12:55           ` Christopher J. PeBenito
  1 sibling, 0 replies; 9+ messages in thread
From: Russell Coker @ 2026-08-09 11:39 UTC (permalink / raw)
  To: Dominick Grift; +Cc: selinux-refpolicy

On Sunday, 9 August 2026 21:35:54 AEST Dominick Grift wrote:
> Thanks. I think the user may not have these sockets activated and that
> therefore they get created by systemd-journald instead in his
> scenario. systemd-journald itself does not seems to use
> get/setfscreatecon as it needs a type transition for io.systemd.journal
> too.
> 
> I suppose the question becomes whether refpolicy wants to support the
> scenario where the syslog socket unit is not enabled.

What is Gentoo planing to do regarding defaults for this?

It seems to me that if you are going systemd then do it properly and use the 
socket units.  Then you can restart systemd-journald without affecting 
connections.

-- 
My Main Blog         http://etbe.coker.com.au/
My Documents Blog    http://doc.coker.com.au/




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [RFC 2] logging.te: systemd-journald: loose ends
  2026-08-09 11:35         ` Dominick Grift
  2026-08-09 11:39           ` Russell Coker
@ 2026-08-11 12:55           ` Christopher J. PeBenito
  1 sibling, 0 replies; 9+ messages in thread
From: Christopher J. PeBenito @ 2026-08-11 12:55 UTC (permalink / raw)
  To: Dominick Grift, Russell Coker; +Cc: selinux-refpolicy

On 8/9/26 7:35 AM, Dominick Grift wrote:
> Russell Coker <russell@coker.com.au> writes:
>
>> On Sunday, 9 August 2026 21:05:27 AEST Dominick Grift wrote:
>>> Do you have any type transition rules for those at all?
>>>
>>> sesearch -T -s syslogd_t -t syslogd_runtime_t -c sock_file
>> # sesearch -T -s syslogd_t -t syslogd_runtime_t -c sock_file
>> type_transition syslogd_t syslogd_runtime_t:sock_file devlog_t
>> io.systemd.journal;
>>
>> No I only have one rule.
> Thanks. I think the user may not have these sockets activated and that
> therefore they get created by systemd-journald instead in his
> scenario. systemd-journald itself does not seems to use
> get/setfscreatecon as it needs a type transition for io.systemd.journal
> too.
>
> I suppose the question becomes whether refpolicy wants to support the
> scenario where the syslog socket unit is not enabled.

Yes, this should be corrected.


-- 
Chris PeBenito


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2026-08-11 12:56 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-09  6:32 [RFC] logging: tidy loose end related to systemd-journald Dominick Grift
2026-08-09  6:49 ` Dominick Grift
2026-08-09  8:08 ` [RFC 2] logging.te: systemd-journald: loose ends Dominick Grift
2026-08-09 10:53   ` Russell Coker
2026-08-09 11:05     ` Dominick Grift
2026-08-09 11:14       ` Russell Coker
2026-08-09 11:35         ` Dominick Grift
2026-08-09 11:39           ` Russell Coker
2026-08-11 12:55           ` Christopher J. PeBenito

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.