diff --git a/booleans-targeted.conf b/booleans-targeted.conf index 35b11a9..3f67bf8 100644 --- a/booleans-targeted.conf +++ b/booleans-targeted.conf @@ -241,7 +241,7 @@ allow_nsplugin_execmem=true # Allow unconfined domain to transition to confined domain # -allow_unconfined_nsplugin_transition=true +allow_unconfined_nsplugin_transition=false # Allow unconfined domains mmap low kernel memory # diff --git a/modules-targeted.conf b/modules-targeted.conf index 91b1cf6..1078d16 100644 --- a/modules-targeted.conf +++ b/modules-targeted.conf @@ -994,7 +994,7 @@ portmap = module # postfix = module -o# Layer: services +# Layer: services # Module: postgrey # # email scanner @@ -1188,6 +1188,13 @@ rwho = module samba = module # Layer: apps +# Module: sandbox +# +# Experimental policy for running apps within a sandbox +# +sandbox = module + +# Layer: apps # Module: sambagui # # policy for system-config-samba diff --git a/policy-20090105.patch b/policy-20090105.patch index 3673569..27f4622 100644 --- a/policy-20090105.patch +++ b/policy-20090105.patch @@ -4578,6 +4578,134 @@ diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/pol +') + +permissive sambagui_t; +diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/sandbox.fc serefpolicy-3.6.12/policy/modules/apps/sandbox.fc +--- nsaserefpolicy/policy/modules/apps/sandbox.fc 1969-12-31 19:00:00.000000000 -0500 ++++ serefpolicy-3.6.12/policy/modules/apps/sandbox.fc 2009-05-20 13:18:54.000000000 -0400 +@@ -0,0 +1 @@ ++# No types are sandbox_exec_t +diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/sandbox.if serefpolicy-3.6.12/policy/modules/apps/sandbox.if +--- nsaserefpolicy/policy/modules/apps/sandbox.if 1969-12-31 19:00:00.000000000 -0500 ++++ serefpolicy-3.6.12/policy/modules/apps/sandbox.if 2009-05-20 13:19:04.000000000 -0400 +@@ -0,0 +1,75 @@ ++ ++## policy for sandbox ++ ++######################################## ++## ++## Execute a domain transition to run sandbox. ++## ++## ++## ++## Domain allowed to transition. ++## ++## ++# ++interface(`sandbox_domtrans',` ++ gen_require(` ++ type sandbox_t; ++ type sandbox_exec_t; ++ ') ++ ++ domtrans_pattern($1,sandbox_exec_t,sandbox_t) ++') ++ ++ ++######################################## ++## ++## Execute sandbox in the sandbox domain, and ++## allow the specified role the sandbox domain. ++## ++## ++## ++## Domain allowed access ++## ++## ++## ++## ++## The role to be allowed the sandbox domain. ++## ++## ++# ++interface(`sandbox_run',` ++ gen_require(` ++ type sandbox_t; ++ ') ++ ++ sandbox_domtrans($1) ++ role $2 types sandbox_t; ++') ++ ++######################################## ++## ++## Role access for sandbox ++## ++## ++## ++## Role allowed access ++## ++## ++## ++## ++## User domain for the role ++## ++## ++# ++interface(`sandbox_role',` ++ gen_require(` ++ type sandbox_t; ++ ') ++ ++ role $2 types sandbox_t; ++ ++ sandbox_domtrans($1) ++ ++ ps_process_pattern($2, sandbox_t) ++ allow $2 sandbox_t:process signal; ++') +diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/sandbox.te serefpolicy-3.6.12/policy/modules/apps/sandbox.te +--- nsaserefpolicy/policy/modules/apps/sandbox.te 1969-12-31 19:00:00.000000000 -0500 ++++ serefpolicy-3.6.12/policy/modules/apps/sandbox.te 2009-05-20 13:27:01.000000000 -0400 +@@ -0,0 +1,40 @@ ++policy_module(sandbox,1.0.0) ++ ++######################################## ++# ++# Declarations ++# ++ ++type sandbox_t; ++type sandbox_exec_t; ++application_domain(sandbox_t, sandbox_exec_t) ++init_daemon_domain(sandbox_t, sandbox_exec_t) ++role system_r types sandbox_t; ++ ++type sandbox_file_t; ++files_type(sandbox_file_t) ++ ++######################################## ++# ++# sandbox local policy ++# ++ ++## internal communication is often done using fifo and unix sockets. ++allow sandbox_t self:fifo_file rw_file_perms; ++allow sandbox_t self:unix_stream_socket create_stream_socket_perms; ++ ++manage_dirs_pattern(sandbox_t, sandbox_file_t, sandbox_file_t) ++manage_files_pattern(sandbox_t, sandbox_file_t, sandbox_file_t) ++manage_lnk_files_pattern(sandbox_t, sandbox_file_t, sandbox_file_t) ++manage_fifo_files_pattern(sandbox_t, sandbox_file_t, sandbox_file_t) ++manage_sock_files_pattern(sandbox_t, sandbox_file_t, sandbox_file_t) ++ ++files_rw_all_inherited_files(sandbox_t) ++files_entrypoint_all_files(sandbox_t) ++ ++libs_use_ld_so(sandbox_t) ++libs_use_shared_libs(sandbox_t) ++ ++miscfiles_read_localization(sandbox_t) ++ ++userdom_use_user_ptys(sandbox_t) diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/apps/screen.fc serefpolicy-3.6.12/policy/modules/apps/screen.fc --- nsaserefpolicy/policy/modules/apps/screen.fc 2008-11-11 16:13:42.000000000 -0500 +++ serefpolicy-3.6.12/policy/modules/apps/screen.fc 2009-05-12 15:30:13.000000000 -0400 @@ -5575,7 +5703,7 @@ diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/pol /var/lib/nfs/rpc_pipefs(/.*)? <> diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/files.if serefpolicy-3.6.12/policy/modules/kernel/files.if --- nsaserefpolicy/policy/modules/kernel/files.if 2009-01-05 15:39:38.000000000 -0500 -+++ serefpolicy-3.6.12/policy/modules/kernel/files.if 2009-05-14 08:50:17.000000000 -0400 ++++ serefpolicy-3.6.12/policy/modules/kernel/files.if 2009-05-20 13:26:43.000000000 -0400 @@ -110,6 +110,11 @@ ## # @@ -5857,7 +5985,7 @@ diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/pol ') ') -@@ -4921,3 +5078,132 @@ +@@ -4921,3 +5078,172 @@ typeattribute $1 files_unconfined_type; ') @@ -5990,6 +6118,46 @@ diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/pol + + dontaudit $1 security_file_type:file read_file_perms; +') ++ ++######################################## ++## ++## rw any files inherited from another process ++## ++## ++## ++## Domain allowed access. ++## ++## ++## ++# ++interface(`files_rw_all_inherited_files',` ++ gen_require(` ++ attribute file_type; ++ ') ++ ++ allow $1 file_type:file { getattr read write append lock }; ++ allow $1 file_type:fifo_file { getattr read write append ioctl lock }; ++ allow $1 file_type:sock_file { getattr read write append ioctl lock }; ++ allow $1 file_type:chr_file { getattr read write append ioctl lock }; ++') ++ ++######################################## ++## ++## Allow any file point to be the entrypoint of this domain ++## ++## ++## ++## Domain allowed access. ++## ++## ++## ++# ++interface(`files_entrypoint_all_files',` ++ gen_require(` ++ attribute file_type; ++ ') ++ allow $1 file_type:file entrypoint; ++') diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/kernel/files.te serefpolicy-3.6.12/policy/modules/kernel/files.te --- nsaserefpolicy/policy/modules/kernel/files.te 2009-01-05 15:39:38.000000000 -0500 +++ serefpolicy-3.6.12/policy/modules/kernel/files.te 2009-05-12 15:30:13.000000000 -0400 @@ -7727,8 +7895,8 @@ diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/pol +') diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/policy/modules/roles/unconfineduser.te serefpolicy-3.6.12/policy/modules/roles/unconfineduser.te --- nsaserefpolicy/policy/modules/roles/unconfineduser.te 1969-12-31 19:00:00.000000000 -0500 -+++ serefpolicy-3.6.12/policy/modules/roles/unconfineduser.te 2009-05-12 15:30:13.000000000 -0400 -@@ -0,0 +1,397 @@ ++++ serefpolicy-3.6.12/policy/modules/roles/unconfineduser.te 2009-05-20 13:21:29.000000000 -0400 +@@ -0,0 +1,401 @@ +policy_module(unconfineduser, 1.0.0) + +######################################## @@ -8008,6 +8176,10 @@ diff -b -B --ignore-all-space --exclude-from=exclude -N -u -r nsaserefpolicy/pol +') + +optional_policy(` ++ sandbox_run(unconfined_t, unconfined_r) ++') ++ ++optional_policy(` + sendmail_run_unconfined(unconfined_t, unconfined_r) +') + diff --git a/selinux-policy.spec b/selinux-policy.spec index f4434aa..f15dfde 100644 --- a/selinux-policy.spec +++ b/selinux-policy.spec @@ -20,7 +20,7 @@ Summary: SELinux policy configuration Name: selinux-policy Version: 3.6.12 -Release: 38%{?dist} +Release: 39%{?dist} License: GPLv2+ Group: System Environment/Base Source: serefpolicy-%{version}.tgz @@ -473,6 +473,10 @@ exit 0 %endif %changelog +* Wed May 20 2009 Dan Walsh 3.6.12-39 +- Allow fprintd to access sys_ptrace +- Add sandbox policy + * Mon May 18 2009 Dan Walsh 3.6.12-38 - Add varnishd policy @@ -484,7 +488,6 @@ exit 0 * Mon May 11 2009 Dan Walsh 3.6.12-35 - Add /usr/share/selinux/packages -- Turn on nsplugin boolean * Mon May 11 2009 Dan Walsh 3.6.12-34 - Allow rpcd_t to send signals to kernel threads