From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id AF88713835B for ; Sun, 21 Mar 2021 22:11:04 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 01123E089A; Sun, 21 Mar 2021 22:11:04 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id B126FE089A for ; Sun, 21 Mar 2021 22:11:03 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 8D82A33BEA5 for ; Sun, 21 Mar 2021 22:11:00 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id E2249612 for ; Sun, 21 Mar 2021 22:10:57 +0000 (UTC) From: "Jason Zaman" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jason Zaman" Message-ID: <1613418564.722e26ffd25c220056e1cdb1b48b14f95011ba1f.perfinion@gentoo> Subject: [gentoo-commits] proj/hardened-refpolicy:master commit in: policy/modules/kernel/, policy/modules/system/ X-VCS-Repository: proj/hardened-refpolicy X-VCS-Files: policy/modules/kernel/files.if policy/modules/system/systemd.fc policy/modules/system/systemd.te X-VCS-Directories: policy/modules/kernel/ policy/modules/system/ X-VCS-Committer: perfinion X-VCS-Committer-Name: Jason Zaman X-VCS-Revision: 722e26ffd25c220056e1cdb1b48b14f95011ba1f X-VCS-Branch: master Date: Sun, 21 Mar 2021 22:10:57 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 4734e8a7-babe-4fde-b74d-8e3da02b1298 X-Archives-Hash: 5b4df0791e189820aaff7fb4a2c1e514 commit: 722e26ffd25c220056e1cdb1b48b14f95011ba1f Author: Krzysztof Nowicki op pl> AuthorDate: Wed Feb 3 09:00:35 2021 +0000 Commit: Jason Zaman gentoo org> CommitDate: Mon Feb 15 19:49:24 2021 +0000 URL: https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=722e26ff Enable factory directory support in systemd-tmpfilesd /usr/share/factory serves as a template directory for systemd-tmpfilesd. The copy (C) and link (L) commands can utilize this directory as a default source for files, which should be placed in the filesystem. This behaiour is controlled via a tunable as it gives systemd-tmpfilesd manage permissions over etc, which could be considered as a security risk. Relevant denials are silenced in case the policy is disabled. Signed-off-by: Krzysztof Nowicki op.pl> Signed-off-by: Jason Zaman gentoo.org> policy/modules/kernel/files.if | 20 ++++++++++++++++++++ policy/modules/system/systemd.fc | 2 ++ policy/modules/system/systemd.te | 24 ++++++++++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/policy/modules/kernel/files.if b/policy/modules/kernel/files.if index b493a4a1..55fbf783 100644 --- a/policy/modules/kernel/files.if +++ b/policy/modules/kernel/files.if @@ -3119,6 +3119,26 @@ interface(`files_manage_etc_files',` read_lnk_files_pattern($1, etc_t, etc_t) ') +######################################## +## +## Do not audit attempts to create, read, write, +## and delete generic files in /etc. +## +## +## +## Domain to not audit. +## +## +## +# +interface(`files_dontaudit_manage_etc_files',` + gen_require(` + type etc_t; + ') + + dontaudit $1 etc_t:file manage_file_perms; +') + ######################################## ## ## Delete system configuration files in /etc. diff --git a/policy/modules/system/systemd.fc b/policy/modules/system/systemd.fc index f88fdfb4..8dcae1a9 100644 --- a/policy/modules/system/systemd.fc +++ b/policy/modules/system/systemd.fc @@ -55,6 +55,8 @@ /usr/lib/systemd/system/systemd-rfkill.* -- gen_context(system_u:object_r:systemd_rfkill_unit_t,s0) /usr/lib/systemd/system/systemd-socket-proxyd\.service -- gen_context(system_u:object_r:systemd_socket_proxyd_unit_file_t,s0) +/usr/share/factory(/.*)? gen_context(system_u:object_r:systemd_factory_conf_t,s0) + /var/\.updated -- gen_context(system_u:object_r:systemd_update_run_t,s0) /var/lib/systemd/backlight(/.*)? gen_context(system_u:object_r:systemd_backlight_var_lib_t,s0) diff --git a/policy/modules/system/systemd.te b/policy/modules/system/systemd.te index 5d34e6d2..ed2bce80 100644 --- a/policy/modules/system/systemd.te +++ b/policy/modules/system/systemd.te @@ -45,6 +45,14 @@ gen_tunable(systemd_socket_proxyd_bind_any, false) ## gen_tunable(systemd_socket_proxyd_connect_any, false) +## +##

+## Allow systemd-tmpfilesd to populate missing configuration files from factory +## template directory. +##

+##
+gen_tunable(systemd_tmpfilesd_factory, false) + attribute systemd_log_parse_env_type; attribute systemd_tmpfiles_conf_type; attribute systemd_user_session_type; @@ -104,6 +112,9 @@ type systemd_detect_virt_t; type systemd_detect_virt_exec_t; init_daemon_domain(systemd_detect_virt_t, systemd_detect_virt_exec_t) +type systemd_factory_conf_t; +systemd_tmpfiles_conf_file(systemd_factory_conf_t) + type systemd_generator_t; type systemd_generator_exec_t; typealias systemd_generator_t alias { systemd_fstab_generator_t systemd_gpt_generator_t }; @@ -1283,6 +1294,7 @@ allow systemd_tmpfiles_t systemd_journal_t:dir relabel_dir_perms; allow systemd_tmpfiles_t systemd_journal_t:file relabel_file_perms; allow systemd_tmpfiles_t systemd_tmpfiles_conf_t:dir list_dir_perms; +allow systemd_tmpfiles_t systemd_tmpfiles_conf_type:dir search_dir_perms; allow systemd_tmpfiles_t systemd_tmpfiles_conf_type:file read_file_perms; kernel_getattr_proc(systemd_tmpfiles_t) @@ -1377,6 +1389,18 @@ tunable_policy(`systemd_tmpfiles_manage_all',` files_relabel_non_security_files(systemd_tmpfiles_t) ') +tunable_policy(`systemd_tmpfilesd_factory', ` + allow systemd_tmpfiles_t systemd_factory_conf_t:dir list_dir_perms; + allow systemd_tmpfiles_t systemd_factory_conf_t:file read_file_perms; + + files_manage_etc_files(systemd_tmpfiles_t) +',` + dontaudit systemd_tmpfiles_t systemd_factory_conf_t:dir list_dir_perms; + dontaudit systemd_tmpfiles_t systemd_factory_conf_t:file read_file_perms; + + files_dontaudit_manage_etc_files(systemd_tmpfiles_t) +') + optional_policy(` dbus_read_lib_files(systemd_tmpfiles_t) dbus_relabel_lib_dirs(systemd_tmpfiles_t)